[PR #203] [MERGED] fix: resolve triaged correctness issues #1854

Closed
opened 2026-10-16 21:11:48 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/203
Author: @N0zoM1z0
Created: 7/14/2026
Status: ✅ Merged
Merged: 7/14/2026
Merged by: @morluto

Base: main ← Head: agent/fix-triaged-bugs


📝 Commits (1)

  • e8ed307 fix: resolve triaged correctness issues

📊 Changes

47 files changed (+992 additions, -197 deletions)

View changed files

📝 src/application/AnalysisSnapshotCache.ts (+8 -8)
📝 src/application/ArtifactGraphConstruction.ts (+13 -4)
📝 src/application/ArtifactInventory.ts (+3 -3)
📝 src/application/BinarySession.ts (+15 -10)
📝 src/application/EvidenceLedger.ts (+10 -7)
📝 src/application/ProcessCaptureLifecycle.ts (+25 -6)
📝 src/application/ProcessCheckpoints.ts (+1 -1)
📝 src/application/ProcessCli.ts (+20 -5)
📝 src/application/ProcessNormalization.ts (+28 -7)
📝 src/application/ProcessOwnership.ts (+8 -3)
📝 src/application/ProcessSampling.ts (+70 -16)
📝 src/application/ProjectPermissionStore.ts (+128 -4)
📝 src/application/TerminalRenderer.ts (+1 -1)
📝 src/artifacts/MachOSliceArtifactReader.ts (+1 -1)
📝 src/artifacts/NativeDmgArtifactReader.ts (+1 -1)
📝 src/artifacts/SafeOutputTree.ts (+3 -3)
📝 src/cliPolicyCommands.ts (+16 -14)
📝 src/domain/changedBehavior.ts (+7 -14)
📝 src/domain/processCapture.ts (+6 -0)
📝 src/domain/processComparison.ts (+33 -43)

...and 27 more files

📄 Description

What changed

  • Use one canonical seven-dimension process-comparison status model across capture parsing, changed-behavior findings, reconstruction verification, runtime correlation, and residual-unknown reporting.
  • Return detached data from evidence, snapshot, session metadata, workspace, terminal/checkpoint, provenance, and cleanup read surfaces.
  • Harden process capture around temporary-root cleanup, malformed CLI evidence, PID normalization, empty environment names, and Linux children created by non-leader threads.
  • Retry transient native tool-resolution failures, narrow Objective-C class discovery, emit MCP resource-list notifications after successful mutations, and translate synchronous derived-operation failures into typed tool errors.
  • Pre-index artifact occurrences and serialize project-policy revocations so large inventories remain linear and concurrent revokes do not lose updates.

Why

The reported bugs came from three recurring root causes: newer interaction/shim dimensions were not propagated to every consumer, mutable domain objects escaped through public accessors, and several filesystem/process/error boundaries handled only the happy path. These fixes keep observations and residual uncertainty consistent across CLI and MCP while preserving local diagnostic detail.

Impact

  • Interaction- and shim-only changes remain visible and internally consistent throughout investigation workflows.
  • Callers can no longer mutate retained evidence or session state through returned objects.
  • Process and permission operations fail deterministically without leaking temporary state or dropping concurrent changes.
  • Tool inventory and caller-visible contract versions are unchanged.

Verification

  • npm run check (84 test files, 577 tests)
  • npm run verify:package
  • npm run knip
  • npm run jscpd
  • npm run scan:todos

Real Hopper verification was not run because this Linux environment has no real Hopper installation.

Issues

Closes #134
Closes #135
Closes #136
Closes #137
Closes #138
Closes #139
Closes #140
Closes #141
Closes #143
Closes #153
Closes #154
Closes #155
Closes #156
Closes #158
Closes #159
Closes #160
Closes #161
Closes #162
Closes #169
Closes #170
Closes #171
Closes #175
Closes #177
Closes #178
Closes #180
Closes #184

Addresses #130 for the EvidenceLedger and BinarySession surfaces present on main. The standalone UnknownRegistry named in that issue exists only on an unpublished branch and is intentionally not included here.


🔄 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/203 **Author:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Created:** 7/14/2026 **Status:** ✅ Merged **Merged:** 7/14/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `agent/fix-triaged-bugs` --- ### 📝 Commits (1) - [`e8ed307`](https://github.com/morluto/rea/commit/e8ed3073ac915e32b5ea630446ed6e14bc788119) fix: resolve triaged correctness issues ### 📊 Changes **47 files changed** (+992 additions, -197 deletions) <details> <summary>View changed files</summary> 📝 `src/application/AnalysisSnapshotCache.ts` (+8 -8) 📝 `src/application/ArtifactGraphConstruction.ts` (+13 -4) 📝 `src/application/ArtifactInventory.ts` (+3 -3) 📝 `src/application/BinarySession.ts` (+15 -10) 📝 `src/application/EvidenceLedger.ts` (+10 -7) 📝 `src/application/ProcessCaptureLifecycle.ts` (+25 -6) 📝 `src/application/ProcessCheckpoints.ts` (+1 -1) 📝 `src/application/ProcessCli.ts` (+20 -5) 📝 `src/application/ProcessNormalization.ts` (+28 -7) 📝 `src/application/ProcessOwnership.ts` (+8 -3) 📝 `src/application/ProcessSampling.ts` (+70 -16) 📝 `src/application/ProjectPermissionStore.ts` (+128 -4) 📝 `src/application/TerminalRenderer.ts` (+1 -1) 📝 `src/artifacts/MachOSliceArtifactReader.ts` (+1 -1) 📝 `src/artifacts/NativeDmgArtifactReader.ts` (+1 -1) 📝 `src/artifacts/SafeOutputTree.ts` (+3 -3) 📝 `src/cliPolicyCommands.ts` (+16 -14) 📝 `src/domain/changedBehavior.ts` (+7 -14) 📝 `src/domain/processCapture.ts` (+6 -0) 📝 `src/domain/processComparison.ts` (+33 -43) _...and 27 more files_ </details> ### 📄 Description ## What changed - Use one canonical seven-dimension process-comparison status model across capture parsing, changed-behavior findings, reconstruction verification, runtime correlation, and residual-unknown reporting. - Return detached data from evidence, snapshot, session metadata, workspace, terminal/checkpoint, provenance, and cleanup read surfaces. - Harden process capture around temporary-root cleanup, malformed CLI evidence, PID normalization, empty environment names, and Linux children created by non-leader threads. - Retry transient native tool-resolution failures, narrow Objective-C class discovery, emit MCP resource-list notifications after successful mutations, and translate synchronous derived-operation failures into typed tool errors. - Pre-index artifact occurrences and serialize project-policy revocations so large inventories remain linear and concurrent revokes do not lose updates. ## Why The reported bugs came from three recurring root causes: newer interaction/shim dimensions were not propagated to every consumer, mutable domain objects escaped through public accessors, and several filesystem/process/error boundaries handled only the happy path. These fixes keep observations and residual uncertainty consistent across CLI and MCP while preserving local diagnostic detail. ## Impact - Interaction- and shim-only changes remain visible and internally consistent throughout investigation workflows. - Callers can no longer mutate retained evidence or session state through returned objects. - Process and permission operations fail deterministically without leaking temporary state or dropping concurrent changes. - Tool inventory and caller-visible contract versions are unchanged. ## Verification - `npm run check` (84 test files, 577 tests) - `npm run verify:package` - `npm run knip` - `npm run jscpd` - `npm run scan:todos` Real Hopper verification was not run because this Linux environment has no real Hopper installation. ## Issues Closes #134 Closes #135 Closes #136 Closes #137 Closes #138 Closes #139 Closes #140 Closes #141 Closes #143 Closes #153 Closes #154 Closes #155 Closes #156 Closes #158 Closes #159 Closes #160 Closes #161 Closes #162 Closes #169 Closes #170 Closes #171 Closes #175 Closes #177 Closes #178 Closes #180 Closes #184 Addresses #130 for the `EvidenceLedger` and `BinarySession` surfaces present on `main`. The standalone `UnknownRegistry` named in that issue exists only on an unpublished branch and is intentionally not included here. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-16 21:11:48 +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#1854
No description provided.