[PR #5207] [MERGED] feat(artifacts): triage desktop installation directories #6813

Closed
opened 2026-11-01 21:43:12 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/5207
Author: @gensokyo-dev
Created: 10/19/2026
Status: ✅ Merged
Merged: 10/19/2026
Merged by: @gensokyo-dev

Base: main ← Head: feat/4399-desktop-directory-triage


📝 Commits (10+)

  • 6f9c722 feat(artifacts): triage desktop installation directories
  • e06e483 fix(artifacts): retain completed probes through failed file cleanup
  • 1364926 perf(artifacts): decode only assembly reference names for desktop triage
  • 278806e fix(artifacts): enforce exact signatures and responsive directory probes
  • 73309be Merge remote-tracking branch 'origin/main' into feat/4399-desktop-directory-triage
  • 4c31961 fix(artifacts): recognize Unity bundles and bound FORM chunks
  • 5a1df7b Merge remote-tracking branch 'origin/main' into feat/4399-desktop-directory-triage
  • 0c8ba30 fix(artifacts): retain bounded desktop omission evidence
  • 41f5389 fix(artifacts): select ASAR targets before inventory probes
  • 18c4116 chore: integrate verified CI baseline for desktop triage

📊 Changes

63 files changed (+4122 additions, -165 deletions)

View changed files

📝 .agents/skills/reverse-engineer-anything/references/native-and-artifacts.md (+16 -0)
📝 README.md (+1 -0)
📝 docs/.vitepress/config.ts (+1 -0)
📝 docs/architecture.mermaid (+1 -1)
➕ docs/desktop-applications.md (+142 -0)
📝 docs/index.md (+1 -0)
📝 docs/readme/README_ar.md (+1 -0)
📝 docs/readme/README_de.md (+1 -0)
📝 docs/readme/README_el.md (+1 -0)
📝 docs/readme/README_es.md (+1 -0)
📝 docs/readme/README_fa.md (+1 -0)
📝 docs/readme/README_fr.md (+1 -0)
📝 docs/readme/README_id.md (+1 -0)
📝 docs/readme/README_it.md (+1 -0)
📝 docs/readme/README_ja.md (+1 -0)
📝 docs/readme/README_ko.md (+26 -25)
📝 docs/readme/README_ml.md (+1 -0)
📝 docs/readme/README_pl.md (+1 -0)
📝 docs/readme/README_pt-BR.md (+1 -0)
📝 docs/readme/README_ru.md (+23 -22)

...and 43 more files

📄 Description

Summary

Fixes #4399. Add inspect_desktop_application / inspect-desktop-application to triage a desktop installation directory before choosing individual binaries or archives.

One shared application service provides typed file/header facts, runtime candidates, component markers and concrete next operations. MCP defaults to a compact retained summary; inspect_analysis_view provides batched IDs, filters, exact fields and pages. Complete Evidence remains accessible. CLI compact output requires an explicit Evidence file.

Electron probes now select the exact ASAR with open_binary before inspect_artifact, so following a directory result works with no selected target or a different active archive. The producer supplies the selection operation; the unused desktop inspect_artifact probe alternative is removed.

Partial summaries now include probe_issues counts and two bounded file/reason previews. File views accept has_issues with the existing ID/path selectors, fields and paging, preserving complete reasons and parent Evidence. Counts reuse the path-index pass; preview formatting does not re-read targets or change source facts.

Snapshot digests now compose admitted root, entry and omission identities plus retained read ranges. Caller ceilings, interpretations and cleanup diagnostics remain in Evidence without changing identical source identity. Different retained source observations still change the digest.

Fact capacity admission counts JSON representation bytes without serializing target strings first. It reuses the existing escape/Unicode counter; complete accepted names and prior header facts survive, while refused facts retain an explicit partial-capacity reason.

Contract and effects

  • Reuse the artifact provider and DirectoryArtifactReader admission/cleanup owner. Physical root identity namespaces stable rows; preserve caller paths, identities, read-range digests, omissions, provenance and unknowns. Snapshot identity covers examined metadata/ranges; unread bytes and atomicity are not claimed.
  • Default limits: 20,000 entries / 8 MiB reads; ceilings 100,000 / 64 MiB. Reserve a conservative 32 MiB retained-representation budget before growth. One active scan per reader, cooperative cancellation, partial coverage and exact failed-close ownership remain enforced.
  • Static inspection reads existing files. It does not execute targets, inject, extract, recover protection or use the network. Component path markers leave runtime presence unknown. Explicit CLI Evidence export creates only the selected report file, without overwrite. No new-provider scope decision applies.
  • CLI, MCP and typed views share the same implementation. Name-only AssemblyRef reading avoids unrelated blob hashing; full managed inspection keeps its existing semantics. No dependency or breaking migration.

Expected effects:

  • Read existing files or captured data.
  • Change process memory, registers, files, or configuration. (Explicit CLI Evidence export creates a report file.)

Executed validation

Head 91631fe0f, including main 10f1994fe and merged CI repairs #5224 / #5249.

  • Relevant build/test gate passes: 88 tests across five files (44 filesystem, five MCP, one CLI, ten catalog and 28 shared Mach-O cases). Pinned Node 24.18.0/npm 11.16.0 static and documentation checks pass. After formatting, all 44 filesystem cases and both shared JSON-counter cases also pass (46-case source run). Full repository format check passes.
  • A real SDK workflow with valid 4 KiB probe budget reproduces missing diagnostics on the preceding implementation. The fix exposes counts/reasons inline and retrieves full failed-file facts directly, including paging, has_issues: false, source partial coverage and parent links. Unicode previews stay bounded without splitting surrogate pairs; complete caller-provided reasons and empty ID selections remain preserved. Both input and output schemas validate after SDK conversion.
  • An escaped 600,000-character AssemblyRef reproduces premature JSON materialization on the preceding implementation. The fixed public service refuses it before serialization and preserves header/range evidence with partial-capacity diagnostics; a separate Unicode/control-character name remains complete when admitted.
  • Snapshot regression controls reproduce three failures before the fix. Fixed tests cover identical observations under different generous limits and cleanup outcomes, distinct Evidence parameters/IDs, actual entry truncation and changed read ranges. Compiled CLI scans of official MarkText at 1,000/4,096 and 2,000/8,192 entry/byte limits return the same 134 files, 15 probes / 1,140 bytes, ranges and snapshot digest, while retaining different request parameters and Evidence IDs.
  • Both valid FAT64-endian cases reproduce missing IL2CPP candidates before the shared-magic correction. Probes stay within the 64-byte prefix and existing 12-byte PCK trailer. A compiled CLI scan of official macOS Daggerfall Unity preserves dotnet + unity-mono, 649 entries / 603 probes / 1,050,489 bytes read. Real FAT64 IL2CPP application coverage is unavailable.
  • Official MarkText, compiled stdio MCP: directory scan → returned open_binary probe → compact ASAR inspection → retained package.json page. Independent ASAR SHA-256 e774918ef645a0d95dedb334a5cc92d202f500130ebd3f8be173e0702d274477, correct parent links, 21,441 nodes / 22,959 occurrences / 22,958 edges, complete coverage, zero integrity contradictions and no retry. A later fresh run hit the SDK's 60-second request timeout during ASAR inspection; its failure is retained. Two matched baseline/current pairs subsequently completed with identical archive facts and no retries. The timeout cause remains unestablished.

Final 91631fe0f compiled CLI repeats also pass: MarkText low/high limits preserve the same 134 files/ranges/digest and distinct Evidence parameters; macOS Daggerfall preserves all 649 file IDs, facts/ranges, complete coverage, 603 probes / 1,050,489 bytes and both families.

Downloaded applications were statically inspected and never executed. Native Windows/macOS desktop filesystem behavior, live target runtime behavior and real Unreal/GameMaker/IL2CPP installations remain unverified locally. Earlier extended controls and official Daggerfall Linux/macOS and Godot scans at 0c8ba3070 are historical evidence, not additional current test totals.

Completed-task costs

Heavy local work is serialized on two CPUs, with a 3 GiB V8 cap and an 8 GiB sampled process-family guard:

Task Wall CPU Peak sampled family RSS
Final main + capacity fix: runtime build / 88 tests 148.06 s 216.46 s 3,118 MiB
Final main + capacity fix: type/lint 135.53 s 268.33 s 4,498 MiB
Final main + capacity fix: docs 11.10 s 12.91 s 722 MiB
Full format check 4.08 s 7.59 s 483 MiB
Final MarkText CLI: lower / higher limits 1.81 / 2.16 s 2.19 / 2.44 s 335 / 336 MiB
Final macOS Daggerfall CLI 2.58 s 3.01 s 365 MiB
Earlier diagnostic fix: real four-call MarkText workflow 62.08 s 47.53 s 1,293 MiB

MarkText uses a fresh MCP process with Node compile caching disabled; OS caches and host load are uncontrolled. Discovery takes 5.87 s; calls take 14.11 / 0.49 / 36.41 / 3.74 s. The retained page reuses immutable Evidence; directory scans remain live. The whole command includes an independent streaming oracle hash. RSS uses 20 ms sampling and can double-count shared pages or miss brief/reparented children. The four-call task and paired measurements precede the snapshot-only hash correction; they measure the diagnostic-summary change. Two matched baseline/current pairs use the same target, pinned toolchain, two-CPU/heap limits and fresh SDK processes. Before: 42.51 / 52.45 s wall, 46.81 / 45.69 s CPU, 1,343 / 1,238 MiB RSS. After: 41.25 / 56.11 s wall, 46.41 / 43.57 s CPU, 1,266 / 1,172 MiB RSS. Both versions return identical archive digest, counts, complete coverage and zero contradictions. These samples do not establish a consistent latency change. No speedup is claimed; the separate 60-second timeout remains an unsuccessful observation.

Tokenx estimates, not model usage: selected tool declarations plus all four request/SDK responses total 19,960 tokens. Including discovery gives 236,725 with every input declaration, or 989,788 with the entire catalog wire response. The catalog alone is 3,211,351 bytes / 981,743 estimated tokens, including output schemas; all input declarations estimate 228,680. Compared with the successful pre-diagnostic workflow at 77d36a80f, the completed input-declaration/request/response task adds 89 estimated tokens; full catalog wire accounting adds 701. These totals include shared catalog discovery.

Capacity-fix A/B uses 527a1244a and 91631fe0f on the same synthetic directory: twelve valid managed PEs, each with a 600,000-control-character AssemblyRef, 36 entries / 12 probes / 7,210,800 bytes. All four CLI tasks return identical complete normalized reports, explicit partial-capacity reasons and no invented Unity witness. Before: 2.15 / 2.48 s wall, 2.34 / 2.49 s CPU, 388 / 395 MiB RSS. After: 2.62 / 2.76 s wall, 3.11 / 3.16 s CPU, 316 / 344 MiB RSS. Each CLI request plus full response estimates 9,360 tokens (33,097 response bytes), with no discovery or retry. These samples show lower peak memory with extra CPU on this extreme input; no speedup is claimed. Each uses a fresh process, compile cache disabled and the same resource limits; OS caches/host load are uncontrolled, and there is no live directory-result cache. The baseline cached build separately took 0.96 s; build/dependency installation and agent orchestration/model usage are outside these CLI task measurements.

Historical Daggerfall measurements at 0c8ba3070 compare complete SDK responses (304,279 estimated tokens) with compact summary (3,133) and selected page (2,766). Those are payload estimates, not measured model usage or latency savings; catalog and extra-call costs also apply. Small targets need not benefit from summary overhead.

Public static artifact provenance
  • Daggerfall Unity Linux, SHA-256 be3c476ae92972f42448757719266ad82c04868eb7b6f3a3c90fcfcf1490849a: dotnet + unity-mono, 642 entries / 129 probes / 1,223,208 bytes read.
  • Daggerfall Unity macOS, SHA-256 1edc4dd594b61686e187b84d99e295074670f07e3d308c29caa3378b6368bf56: both families; all 649 file IDs preserved after the layout correction.
  • MarkText, SHA-256 ff0b907fb84d066316b27b3b54f2ad9f9f6b4e67c06c4d9aea739ef3be80d9d3, checked against official SHA256SUMS.
  • Godot Dodge the Creeps PCK, SHA-256 989666e8c4619bc4022903cfb58fd29d88b881a136452952a3df06b8cf99ad70: a pack-header candidate.

Author readiness

Human owner: @gensokyo-dev

At the owner's explicit direction, the agent performed and supplies the diff/evidence review and declarations below. The owner authorized ready PRs and merging without a separate personal final-diff review; no personal human diff review is claimed.

  • I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work.
  • I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps.
  • I declare this PR ready for initial maintainer review.

Before merge

  • This PR addresses a concrete problem or an agreed enhancement.
  • Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff.
  • The PR has one focused outcome and the title follows type(scope): outcome.
  • Related issue is linked, or the reason for not linking one is stated above.
  • Tests cover changed observable behavior and meaningful failure paths.
  • Owning docs, contracts, and generated metadata are updated where needed.
  • User-visible CLI/MCP changes include representative output.
  • I checked the final diff for secrets, unrelated cleanup, and unsupported claims.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/5207 **Author:** [@gensokyo-dev](https://github.com/gensokyo-dev) **Created:** 10/19/2026 **Status:** ✅ Merged **Merged:** 10/19/2026 **Merged by:** [@gensokyo-dev](https://github.com/gensokyo-dev) **Base:** `main` ← **Head:** `feat/4399-desktop-directory-triage` --- ### 📝 Commits (10+) - [`6f9c722`](https://github.com/morluto/rea/commit/6f9c72241de4b1526fca910e8e973f7303e73668) feat(artifacts): triage desktop installation directories - [`e06e483`](https://github.com/morluto/rea/commit/e06e48340830ca2bee861b4038f7a3d06f371ad1) fix(artifacts): retain completed probes through failed file cleanup - [`1364926`](https://github.com/morluto/rea/commit/1364926fe5e94696d3b15807ca162c75adece5ff) perf(artifacts): decode only assembly reference names for desktop triage - [`278806e`](https://github.com/morluto/rea/commit/278806e2dfacd78aa0cb00192cddb75871397af5) fix(artifacts): enforce exact signatures and responsive directory probes - [`73309be`](https://github.com/morluto/rea/commit/73309be87c95cdcb82f31601cf4f32ecff1aa71b) Merge remote-tracking branch 'origin/main' into feat/4399-desktop-directory-triage - [`4c31961`](https://github.com/morluto/rea/commit/4c31961b84666b6851c37fc6bda1e6fd145f6438) fix(artifacts): recognize Unity bundles and bound FORM chunks - [`5a1df7b`](https://github.com/morluto/rea/commit/5a1df7b725e9303156353cda76611885ca2c1e61) Merge remote-tracking branch 'origin/main' into feat/4399-desktop-directory-triage - [`0c8ba30`](https://github.com/morluto/rea/commit/0c8ba30706fb67ba03bbc3529d460dbca09a25db) fix(artifacts): retain bounded desktop omission evidence - [`41f5389`](https://github.com/morluto/rea/commit/41f53893aa2a1d613438edbd9482073675f8dc35) fix(artifacts): select ASAR targets before inventory probes - [`18c4116`](https://github.com/morluto/rea/commit/18c411656e13d388a3fa0cdbf7e69edaac48709f) chore: integrate verified CI baseline for desktop triage ### 📊 Changes **63 files changed** (+4122 additions, -165 deletions) <details> <summary>View changed files</summary> 📝 `.agents/skills/reverse-engineer-anything/references/native-and-artifacts.md` (+16 -0) 📝 `README.md` (+1 -0) 📝 `docs/.vitepress/config.ts` (+1 -0) 📝 `docs/architecture.mermaid` (+1 -1) ➕ `docs/desktop-applications.md` (+142 -0) 📝 `docs/index.md` (+1 -0) 📝 `docs/readme/README_ar.md` (+1 -0) 📝 `docs/readme/README_de.md` (+1 -0) 📝 `docs/readme/README_el.md` (+1 -0) 📝 `docs/readme/README_es.md` (+1 -0) 📝 `docs/readme/README_fa.md` (+1 -0) 📝 `docs/readme/README_fr.md` (+1 -0) 📝 `docs/readme/README_id.md` (+1 -0) 📝 `docs/readme/README_it.md` (+1 -0) 📝 `docs/readme/README_ja.md` (+1 -0) 📝 `docs/readme/README_ko.md` (+26 -25) 📝 `docs/readme/README_ml.md` (+1 -0) 📝 `docs/readme/README_pl.md` (+1 -0) 📝 `docs/readme/README_pt-BR.md` (+1 -0) 📝 `docs/readme/README_ru.md` (+23 -22) _...and 43 more files_ </details> ### 📄 Description ## Summary Fixes #4399. Add `inspect_desktop_application` / `inspect-desktop-application` to triage a desktop installation directory before choosing individual binaries or archives. One shared application service provides typed file/header facts, runtime candidates, component markers and concrete next operations. MCP defaults to a compact retained summary; `inspect_analysis_view` provides batched IDs, filters, exact fields and pages. Complete Evidence remains accessible. CLI compact output requires an explicit Evidence file. Electron probes now select the exact ASAR with `open_binary` before `inspect_artifact`, so following a directory result works with no selected target or a different active archive. The producer supplies the selection operation; the unused desktop `inspect_artifact` probe alternative is removed. Partial summaries now include `probe_issues` counts and two bounded file/reason previews. File views accept `has_issues` with the existing ID/path selectors, fields and paging, preserving complete reasons and parent Evidence. Counts reuse the path-index pass; preview formatting does not re-read targets or change source facts. Snapshot digests now compose admitted root, entry and omission identities plus retained read ranges. Caller ceilings, interpretations and cleanup diagnostics remain in Evidence without changing identical source identity. Different retained source observations still change the digest. Fact capacity admission counts JSON representation bytes without serializing target strings first. It reuses the existing escape/Unicode counter; complete accepted names and prior header facts survive, while refused facts retain an explicit partial-capacity reason. ## Contract and effects - Reuse the artifact provider and `DirectoryArtifactReader` admission/cleanup owner. Physical root identity namespaces stable rows; preserve caller paths, identities, read-range digests, omissions, provenance and unknowns. Snapshot identity covers examined metadata/ranges; unread bytes and atomicity are not claimed. - Default limits: 20,000 entries / 8 MiB reads; ceilings 100,000 / 64 MiB. Reserve a conservative 32 MiB retained-representation budget before growth. One active scan per reader, cooperative cancellation, partial coverage and exact failed-close ownership remain enforced. - Static inspection reads existing files. It does not execute targets, inject, extract, recover protection or use the network. Component path markers leave runtime presence unknown. Explicit CLI Evidence export creates only the selected report file, without overwrite. No new-provider scope decision applies. - CLI, MCP and typed views share the same implementation. Name-only AssemblyRef reading avoids unrelated blob hashing; full managed inspection keeps its existing semantics. No dependency or breaking migration. Expected effects: - [x] Read existing files or captured data. - [x] Change process memory, registers, files, or configuration. (Explicit CLI Evidence export creates a report file.) ## Executed validation Head `91631fe0f`, including main `10f1994fe` and merged CI repairs [#5224](https://github.com/morluto/rea/pull/5224) / [#5249](https://github.com/morluto/rea/pull/5249). - Relevant build/test gate passes: **88 tests across five files** (44 filesystem, five MCP, one CLI, ten catalog and 28 shared Mach-O cases). Pinned Node 24.18.0/npm 11.16.0 static and documentation checks pass. After formatting, all 44 filesystem cases and both shared JSON-counter cases also pass (46-case source run). Full repository format check passes. - A real SDK workflow with valid 4 KiB probe budget reproduces missing diagnostics on the preceding implementation. The fix exposes counts/reasons inline and retrieves full failed-file facts directly, including paging, `has_issues: false`, source partial coverage and parent links. Unicode previews stay bounded without splitting surrogate pairs; complete caller-provided reasons and empty ID selections remain preserved. Both input and output schemas validate after SDK conversion. - An escaped 600,000-character AssemblyRef reproduces premature JSON materialization on the preceding implementation. The fixed public service refuses it before serialization and preserves header/range evidence with partial-capacity diagnostics; a separate Unicode/control-character name remains complete when admitted. - Snapshot regression controls reproduce three failures before the fix. Fixed tests cover identical observations under different generous limits and cleanup outcomes, distinct Evidence parameters/IDs, actual entry truncation and changed read ranges. Compiled CLI scans of official MarkText at 1,000/4,096 and 2,000/8,192 entry/byte limits return the same 134 files, 15 probes / 1,140 bytes, ranges and snapshot digest, while retaining different request parameters and Evidence IDs. - Both valid FAT64-endian cases reproduce missing IL2CPP candidates before the shared-magic correction. Probes stay within the 64-byte prefix and existing 12-byte PCK trailer. A compiled CLI scan of official macOS Daggerfall Unity preserves `dotnet` + `unity-mono`, 649 entries / 603 probes / 1,050,489 bytes read. Real FAT64 IL2CPP application coverage is unavailable. - **Official MarkText, compiled stdio MCP**: directory scan → returned `open_binary` probe → compact ASAR inspection → retained `package.json` page. Independent ASAR SHA-256 `e774918ef645a0d95dedb334a5cc92d202f500130ebd3f8be173e0702d274477`, correct parent links, 21,441 nodes / 22,959 occurrences / 22,958 edges, complete coverage, zero integrity contradictions and no retry. A later fresh run hit the SDK's 60-second request timeout during ASAR inspection; its failure is retained. Two matched baseline/current pairs subsequently completed with identical archive facts and no retries. The timeout cause remains unestablished. Final `91631fe0f` compiled CLI repeats also pass: MarkText low/high limits preserve the same 134 files/ranges/digest and distinct Evidence parameters; macOS Daggerfall preserves all 649 file IDs, facts/ranges, complete coverage, 603 probes / 1,050,489 bytes and both families. Downloaded applications were statically inspected and never executed. Native Windows/macOS desktop filesystem behavior, live target runtime behavior and real Unreal/GameMaker/IL2CPP installations remain unverified locally. Earlier extended controls and official Daggerfall Linux/macOS and Godot scans at `0c8ba3070` are historical evidence, not additional current test totals. ## Completed-task costs Heavy local work is serialized on two CPUs, with a 3 GiB V8 cap and an 8 GiB sampled process-family guard: | Task | Wall | CPU | Peak sampled family RSS | | --- | ---: | ---: | ---: | | Final main + capacity fix: runtime build / 88 tests | 148.06 s | 216.46 s | 3,118 MiB | | Final main + capacity fix: type/lint | 135.53 s | 268.33 s | 4,498 MiB | | Final main + capacity fix: docs | 11.10 s | 12.91 s | 722 MiB | | Full format check | 4.08 s | 7.59 s | 483 MiB | | Final MarkText CLI: lower / higher limits | 1.81 / 2.16 s | 2.19 / 2.44 s | 335 / 336 MiB | | Final macOS Daggerfall CLI | 2.58 s | 3.01 s | 365 MiB | | Earlier diagnostic fix: real four-call MarkText workflow | 62.08 s | 47.53 s | 1,293 MiB | MarkText uses a fresh MCP process with Node compile caching disabled; OS caches and host load are uncontrolled. Discovery takes 5.87 s; calls take 14.11 / 0.49 / 36.41 / 3.74 s. The retained page reuses immutable Evidence; directory scans remain live. The whole command includes an independent streaming oracle hash. RSS uses 20 ms sampling and can double-count shared pages or miss brief/reparented children. The four-call task and paired measurements precede the snapshot-only hash correction; they measure the diagnostic-summary change. Two matched baseline/current pairs use the same target, pinned toolchain, two-CPU/heap limits and fresh SDK processes. Before: **42.51 / 52.45 s wall, 46.81 / 45.69 s CPU, 1,343 / 1,238 MiB RSS**. After: **41.25 / 56.11 s wall, 46.41 / 43.57 s CPU, 1,266 / 1,172 MiB RSS**. Both versions return identical archive digest, counts, complete coverage and zero contradictions. These samples do not establish a consistent latency change. No speedup is claimed; the separate 60-second timeout remains an unsuccessful observation. Tokenx estimates, not model usage: selected tool declarations plus all four request/SDK responses total **19,960 tokens**. Including discovery gives **236,725** with every input declaration, or **989,788** with the entire catalog wire response. The catalog alone is 3,211,351 bytes / 981,743 estimated tokens, including output schemas; all input declarations estimate 228,680. Compared with the successful pre-diagnostic workflow at `77d36a80f`, the completed input-declaration/request/response task adds 89 estimated tokens; full catalog wire accounting adds 701. These totals include shared catalog discovery. Capacity-fix A/B uses `527a1244a` and `91631fe0f` on the same synthetic directory: twelve valid managed PEs, each with a 600,000-control-character AssemblyRef, 36 entries / 12 probes / 7,210,800 bytes. All four CLI tasks return identical complete normalized reports, explicit partial-capacity reasons and no invented Unity witness. Before: **2.15 / 2.48 s wall, 2.34 / 2.49 s CPU, 388 / 395 MiB RSS**. After: **2.62 / 2.76 s wall, 3.11 / 3.16 s CPU, 316 / 344 MiB RSS**. Each CLI request plus full response estimates **9,360 tokens** (33,097 response bytes), with no discovery or retry. These samples show lower peak memory with extra CPU on this extreme input; no speedup is claimed. Each uses a fresh process, compile cache disabled and the same resource limits; OS caches/host load are uncontrolled, and there is no live directory-result cache. The baseline cached build separately took 0.96 s; build/dependency installation and agent orchestration/model usage are outside these CLI task measurements. Historical Daggerfall measurements at `0c8ba3070` compare complete SDK responses (304,279 estimated tokens) with compact summary (3,133) and selected page (2,766). Those are payload estimates, not measured model usage or latency savings; catalog and extra-call costs also apply. Small targets need not benefit from summary overhead. <details> <summary>Public static artifact provenance</summary> - [Daggerfall Unity Linux](https://github.com/Interkarma/daggerfall-unity/releases/download/v1.1.1-cve-2025/dfu_linux_64bit-v1.1.1.zip), SHA-256 `be3c476ae92972f42448757719266ad82c04868eb7b6f3a3c90fcfcf1490849a`: `dotnet` + `unity-mono`, 642 entries / 129 probes / 1,223,208 bytes read. - [Daggerfall Unity macOS](https://github.com/Interkarma/daggerfall-unity/releases/download/v1.1.1-cve-2025/dfu_mac_universal-v1.1.1.zip), SHA-256 `1edc4dd594b61686e187b84d99e295074670f07e3d308c29caa3378b6368bf56`: both families; all 649 file IDs preserved after the layout correction. - [MarkText](https://github.com/marktext/marktext/releases/download/v0.22.0/marktext-linux-0.22.0.tar.gz), SHA-256 `ff0b907fb84d066316b27b3b54f2ad9f9f6b4e67c06c4d9aea739ef3be80d9d3`, checked against official SHA256SUMS. - [Godot Dodge the Creeps PCK](https://godotengine.github.io/godot-demo-projects/2d/dodge_the_creeps/index.pck), SHA-256 `989666e8c4619bc4022903cfb58fd29d88b881a136452952a3df06b8cf99ad70`: a pack-header candidate. </details> ## Author readiness Human owner: @gensokyo-dev At the owner's explicit direction, the agent performed and supplies the diff/evidence review and declarations below. The owner authorized ready PRs and merging without a separate personal final-diff review; no personal human diff review is claimed. - [x] I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work. - [x] I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps. - [x] I declare this PR ready for initial maintainer review. ## Before merge - [x] This PR addresses a concrete problem or an agreed enhancement. - [x] Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff. - [x] The PR has one focused outcome and the title follows `type(scope): outcome`. - [x] Related issue is linked, or the reason for not linking one is stated above. - [x] Tests cover changed observable behavior and meaningful failure paths. - [x] Owning docs, contracts, and generated metadata are updated where needed. - [x] User-visible CLI/MCP changes include representative output. - [x] I checked the final diff for secrets, unrelated cleanup, and unsupported claims. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-11-01 21:43:12 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#6813
No description provided.