[GH-ISSUE #4815] Windows lab findings: 14 tool-level gaps with proposed fixes (AI-authored, verification documented) #2503

Open
opened 2026-10-17 21:05:52 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @fp2s92d5pd-bit on GitHub (Oct 17, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/4815

What we found (Windows lab, mid-2026)

We run a small research lab that uses REA daily on Windows against games and
applications. Over two working rounds we catalogued 14 tool-level gaps and
implemented fixes for all of them in a patched tree (83 files, based on the 6.5.0 release).
This issue describes them so maintainers can tell us which, if any, they want
proposals for. Nothing here touches game-specific content; everything is
tool-level and reproducible from synthetic fixtures.

Windows platform gaps

  1. MSYS/Git Bash drive paths (/c/...) fail at the caller-path intake on
    win32 — fix converts them and names the mangled root cause on failure.
  2. Linux-only lanes are discoverable only by invoking and failing — fix adds a
    platform applicability matrix to capabilities and doctor checks that stay
    healthy (a platform-gated lane is not an environment fault).
  3. winget install Rizin.Rizin is not on PATH and its MSI exits without
    output when spawned from Node/bash — fix probes the standard winget
    location, adds a rizin doctor inspection, and documents the static-build
    recommendation.
  4. rizin Evidence stdout carries SGR color escapes — both spawn sites now set
    scr.color=0.

Managed (.NET) lane ergonomics

  1. inspect-managed-members only had exact --type; fix adds composable
    --namespace / --kind / --name-contains selectors with explicit
    unmatched reporting and envelope shrink.
  2. Inventorying an application's Managed/ directory costs one invocation per
    DLL — fix adds directory mode emitting one inventory Evidence (identity,
    MVID, classification, table counts) with skipped/truncation reporting.
  3. Answering "types per namespace" or "top types by member count" required
    pulling whole collections — fix adds retained-evidence projections
    (by-namespace, top N, user-string length classes).

Repo-wide quality findings

  1. remediation.action often echoed the failure message verbatim (three
    live specimens) — fix replaces the echo fallback with imperative actions,
    adds a 27-tag contract lint, and gives the producer sites distinct actions.
  2. analyze overview envelopes don't say whether a count is complete or where
    a bounded pass stopped — fix adds a documented coverage field.
  3. capabilities can't answer "which command accepts this file kind" — fix
    adds per-command input kinds.
  4. Doctor/capabilities can't answer "for analyze, which providers could
    serve me" before invocation — fix adds a healthy-by-construction
    deep-analysis readiness check.
  5. New read-only command evidence-cite: deterministic markdown provenance
    blocks from Evidence JSON, a bundle, or stdin.

Feature pitches (issue-first per your guidance)

  1. Container-format awareness for game resource packs (UE .pak incl. the
    encrypted-index flag as a stated limitation, Godot .pck, raylib
    .rres, Bethesda BSA v104/v105) — detection and structure facts only,
    never decryption. Validated against real files: FNV BSA, Dispatch and
    THPS12 paks (v8/v11, all encrypted — matching expectations), Moose Miners
    rres fail-explicit; KCD/ACE custom formats correctly not claimed.
  2. Cross-assembly member-reference resolution for a declared set of
    assemblies ("managed workspace") — design sketch available.

What we're offering

A patched tree (77 files; also split into per-topic patches) with: unit and
acceptance tests for every change, a full source sweep whose failures are
byte-identical to the pristine baseline's on this host, docs updates, and a
verification document per change. No human has reviewed the patches — the
patches are proposals, not ready merges. If any of this is interesting, tell
us the process you'd like (issues per topic, draft PRs you review from
scratch, or patches taken directly) and we'll follow it.

Where the work lives

Originally created by @fp2s92d5pd-bit on GitHub (Oct 17, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/4815 <!-- Written transparently: this report was produced by AI coding agents working under the direction of a researcher who runs a Windows-based reverse-engineering lab on REA. The researcher is not a coder and has not reviewed the referenced patches; the agents' verification documentation is linked and the patches are offered as proposals, not ready merges. --> ## What we found (Windows lab, mid-2026) We run a small research lab that uses REA daily on Windows against games and applications. Over two working rounds we catalogued 14 tool-level gaps and implemented fixes for all of them in a patched tree (83 files, based on the 6.5.0 release). This issue describes them so maintainers can tell us which, if any, they want proposals for. Nothing here touches game-specific content; everything is tool-level and reproducible from synthetic fixtures. **Windows platform gaps** 1. MSYS/Git Bash drive paths (`/c/...`) fail at the caller-path intake on win32 — fix converts them and names the mangled root cause on failure. 2. Linux-only lanes are discoverable only by invoking and failing — fix adds a platform applicability matrix to `capabilities` and doctor checks that stay healthy (a platform-gated lane is not an environment fault). 3. `winget install Rizin.Rizin` is not on PATH and its MSI exits without output when spawned from Node/bash — fix probes the standard winget location, adds a rizin doctor inspection, and documents the static-build recommendation. 4. rizin Evidence stdout carries SGR color escapes — both spawn sites now set `scr.color=0`. **Managed (.NET) lane ergonomics** 5. `inspect-managed-members` only had exact `--type`; fix adds composable `--namespace` / `--kind` / `--name-contains` selectors with explicit unmatched reporting and envelope shrink. 6. Inventorying an application's `Managed/` directory costs one invocation per DLL — fix adds directory mode emitting one inventory Evidence (identity, MVID, classification, table counts) with skipped/truncation reporting. 7. Answering "types per namespace" or "top types by member count" required pulling whole collections — fix adds retained-evidence projections (`by-namespace`, `top N`, user-string length classes). **Repo-wide quality findings** 8. `remediation.action` often echoed the failure `message` verbatim (three live specimens) — fix replaces the echo fallback with imperative actions, adds a 27-tag contract lint, and gives the producer sites distinct actions. 9. `analyze` overview envelopes don't say whether a count is complete or where a bounded pass stopped — fix adds a documented coverage field. 10. `capabilities` can't answer "which command accepts this file kind" — fix adds per-command input kinds. 11. Doctor/capabilities can't answer "for `analyze`, which providers could serve me" before invocation — fix adds a healthy-by-construction deep-analysis readiness check. 12. New read-only command `evidence-cite`: deterministic markdown provenance blocks from Evidence JSON, a bundle, or stdin. **Feature pitches (issue-first per your guidance)** 13. Container-format awareness for game resource packs (UE `.pak` incl. the encrypted-index flag as a stated limitation, Godot `.pck`, raylib `.rres`, Bethesda BSA v104/v105) — detection and structure facts only, never decryption. Validated against real files: FNV BSA, Dispatch and THPS12 paks (v8/v11, all encrypted — matching expectations), Moose Miners rres fail-explicit; KCD/ACE custom formats correctly not claimed. 14. Cross-assembly member-reference resolution for a declared set of assemblies ("managed workspace") — design sketch available. ## What we're offering A patched tree (77 files; also split into per-topic patches) with: unit and acceptance tests for every change, a full source sweep whose failures are byte-identical to the pristine baseline's on this host, docs updates, and a verification document per change. **No human has reviewed the patches** — the patches are proposals, not ready merges. If any of this is interesting, tell us the process you'd like (issues per topic, draft PRs you review from scratch, or patches taken directly) and we'll follow it. ## Where the work lives - Patched tree: https://github.com/fp2s92d5pd-bit/rea-lab-proposals/tree/proposals/round-1-2 (browse or diff against any base). - Per-topic content map: see the table above; per-topic patches available on request. - Verification log: https://github.com/fp2s92d5pd-bit/rea-lab-proposals/blob/proposals/round-1-2/verification/REA-IMPROVEMENT-HANDOFF-R2-RESPONSE.md (tests per change, source-sweep comparison against the release baseline, real-file and real-provider evidence).
Author
Owner

@XinwangTao commented on GitHub (Oct 18, 2026):

This is a genuinely useful catalogue — the Windows gaps match what I hit in practice, especially the MSYS drive-path intake failure and rizin's SGR escape sequences leaking into Evidence (scr.color=0 is exactly the right fix; that noise also breaks downstream parsers that split on ANSI). The 'platform-gated lane is not an environment fault' distinction for doctor is a good principle — it turns confusing red state into actionable green/grey. Two suggestions: (1) the capabilities input-kind matrix would benefit from being machine-checkable in CI (e.g. a fixture asserting every command documents its accepted file kinds), otherwise it drifts; (2) for the container-format awareness pitch, the fail-explicit behavior on unknown formats (KCD/ACE correctly not claimed) is the part that makes the feature trustworthy, so I'd keep that as a hard contract, not a nice-to-have.

<!-- gh-comment-id:6248257010 --> @XinwangTao commented on GitHub (Oct 18, 2026): This is a genuinely useful catalogue — the Windows gaps match what I hit in practice, especially the MSYS drive-path intake failure and rizin's SGR escape sequences leaking into Evidence (scr.color=0 is exactly the right fix; that noise also breaks downstream parsers that split on ANSI). The 'platform-gated lane is not an environment fault' distinction for doctor is a good principle — it turns confusing red state into actionable green/grey. Two suggestions: (1) the capabilities input-kind matrix would benefit from being machine-checkable in CI (e.g. a fixture asserting every command documents its accepted file kinds), otherwise it drifts; (2) for the container-format awareness pitch, the fail-explicit behavior on unknown formats (KCD/ACE correctly not claimed) is the part that makes the feature trustworthy, so I'd keep that as a hard contract, not a nice-to-have.
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#2503
No description provided.