[PR #424] [MERGED] feat: expand reactive capture and package analysis #1973

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

📋 Pull Request Information

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

Base: main ← Head: codex/reactive-capture-and-package-formats


📝 Commits (3)

  • 69761e9 feat(process): add reactive capture scenarios
  • 6e6cce1 feat(artifacts): support MSIX and AppX packages
  • b906def fix(capabilities): expose typed availability codes

📊 Changes

49 files changed (+2286 additions, -175 deletions)

View changed files

📝 README.md (+1 -1)
📝 docs/process-capture.md (+31 -0)
📝 docs/product-catalog.json (+2 -2)
📝 docs/verification/managed-conformance-manifest.json (+2 -2)
📝 skills/reverse-engineer-anything/SKILL.md (+3 -2)
📝 skills/reverse-engineer-anything/references/native-and-artifacts.md (+2 -2)
📝 src/application/AnalysisProvider.ts (+10 -2)
📝 src/application/ArtifactExtraction.ts (+7 -1)
📝 src/application/ArtifactGraphConstruction.ts (+5 -18)
📝 src/application/ArtifactInventory/classify.ts (+4 -1)
📝 src/application/ArtifactInventory/reader.ts (+2 -0)
📝 src/application/BinarySessionStatus.ts (+1 -0)
📝 src/application/CapabilityInventory.ts (+14 -8)
➕ src/application/ProcessCaptureEnvironment.ts (+39 -0)
📝 src/application/ProcessCaptureLifecycle.ts (+2 -0)
📝 src/application/ProcessCheckpoints.ts (+6 -0)
📝 src/application/ProcessHarness.ts (+70 -56)
📝 src/application/ProcessNormalization.ts (+20 -0)
📝 src/application/ProcessReactiveCoordinator.ts (+25 -5)
📝 src/application/ProcessReactiveEffects.ts (+9 -3)

...and 29 more files

📄 Description

Description

Adds the first end-to-end reactive Process Capture slice, safe MSIX/AppX package support, and typed provider availability codes.

Reactive capture now evaluates bounded declarative state graphs over normalized terminal, process, filesystem, HTTP, WebSocket, shim, and interaction observations. It records deterministic transition/action evidence, handles deadlines, cancellation, target loss, and cleanup failure, and exposes the same schema through CLI and MCP. The implementation keeps observation normalization at the adapter boundary and validates persisted runs by deterministic journal replay.

MSIX/AppX support reuses the existing hardened ZIP reader instead of adding another archive parser. Classification requires ZIP magic, traversal and extraction retain existing CRC, Zip64, overlap, and path protections, and public artifact and Evidence formats preserve the package family.

Capability discovery now carries typed provider rejection codes into session status and tool inventory. Host filtering no longer infers unsupported platforms by parsing human-readable messages, and the catalog test covers every public tool contract.

Type of Change

  • Bug fix
  • New feature
  • Documentation update
  • Performance improvement
  • Refactoring (no functional change)
  • Tool contract change (MCP schema modification)

Testing Performed

  • Unit tests added or updated
  • TypeScript typecheck passes (npm run typecheck)
  • Linting passes (npm run lint)
  • Full test suite passes (npm test)
  • Real Hopper verification performed (npm run verify:hopper)
  • Linux real Hopper verification performed (npm run verify:hopper:linux) or unavailability explained
  • Real browser verification performed (npm run verify:browser) or unavailability explained
  • Package verification performed (npm run verify:package)

npm run check:pr passed on the final tree: 196 test files and 1,383 tests, plus typecheck, lint, formatting, Knip, generated metadata, and documentation checks. Lint retains the pre-existing max-lines warning in src/hopper/HopperClient.ts.

Real Hopper and browser verification were not applicable because this change does not modify either provider. Package verification was not run; package installation behavior is unchanged.

Tool Contract Impact

No tools are added or removed. Process Capture scenario and result schemas gain reactive declarations and transition evidence. Target formats gain msix and appx. Provider capability status gains nullable availability_code. Generated catalog identities are updated.

Suggested review order:

  1. Reactive algebra and replay validation in src/domain/processReactiveRuntime.ts and src/domain/processCaptureReactiveValidation.ts.
  2. Lifecycle wiring in src/application/ProcessHarness.ts and src/application/ProcessReactiveHarness.ts.
  3. ZIP-family classification in src/domain/zipPackageFormat.ts and artifact adapters.
  4. Typed availability projection and generated contract changes.

Related to #330.
Closes #331.
Closes #356.
Closes #389.
Closes #393.


🔄 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/424 **Author:** [@morluto](https://github.com/morluto) **Created:** 7/23/2026 **Status:** ✅ Merged **Merged:** 7/23/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `codex/reactive-capture-and-package-formats` --- ### 📝 Commits (3) - [`69761e9`](https://github.com/morluto/rea/commit/69761e95b63ec7617aa161f7a1b4e3c8847a6175) feat(process): add reactive capture scenarios - [`6e6cce1`](https://github.com/morluto/rea/commit/6e6cce1bf3cbd9c48799bee9969c53d66c42162e) feat(artifacts): support MSIX and AppX packages - [`b906def`](https://github.com/morluto/rea/commit/b906defbff28885a1d39f78da7c2b7170a7108c6) fix(capabilities): expose typed availability codes ### 📊 Changes **49 files changed** (+2286 additions, -175 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+1 -1) 📝 `docs/process-capture.md` (+31 -0) 📝 `docs/product-catalog.json` (+2 -2) 📝 `docs/verification/managed-conformance-manifest.json` (+2 -2) 📝 `skills/reverse-engineer-anything/SKILL.md` (+3 -2) 📝 `skills/reverse-engineer-anything/references/native-and-artifacts.md` (+2 -2) 📝 `src/application/AnalysisProvider.ts` (+10 -2) 📝 `src/application/ArtifactExtraction.ts` (+7 -1) 📝 `src/application/ArtifactGraphConstruction.ts` (+5 -18) 📝 `src/application/ArtifactInventory/classify.ts` (+4 -1) 📝 `src/application/ArtifactInventory/reader.ts` (+2 -0) 📝 `src/application/BinarySessionStatus.ts` (+1 -0) 📝 `src/application/CapabilityInventory.ts` (+14 -8) ➕ `src/application/ProcessCaptureEnvironment.ts` (+39 -0) 📝 `src/application/ProcessCaptureLifecycle.ts` (+2 -0) 📝 `src/application/ProcessCheckpoints.ts` (+6 -0) 📝 `src/application/ProcessHarness.ts` (+70 -56) 📝 `src/application/ProcessNormalization.ts` (+20 -0) 📝 `src/application/ProcessReactiveCoordinator.ts` (+25 -5) 📝 `src/application/ProcessReactiveEffects.ts` (+9 -3) _...and 29 more files_ </details> ### 📄 Description ## Description Adds the first end-to-end reactive Process Capture slice, safe MSIX/AppX package support, and typed provider availability codes. Reactive capture now evaluates bounded declarative state graphs over normalized terminal, process, filesystem, HTTP, WebSocket, shim, and interaction observations. It records deterministic transition/action evidence, handles deadlines, cancellation, target loss, and cleanup failure, and exposes the same schema through CLI and MCP. The implementation keeps observation normalization at the adapter boundary and validates persisted runs by deterministic journal replay. MSIX/AppX support reuses the existing hardened ZIP reader instead of adding another archive parser. Classification requires ZIP magic, traversal and extraction retain existing CRC, Zip64, overlap, and path protections, and public artifact and Evidence formats preserve the package family. Capability discovery now carries typed provider rejection codes into session status and tool inventory. Host filtering no longer infers unsupported platforms by parsing human-readable messages, and the catalog test covers every public tool contract. ## Type of Change - [x] Bug fix - [x] New feature - [x] Documentation update - [ ] Performance improvement - [x] Refactoring (no functional change) - [x] Tool contract change (MCP schema modification) ## Testing Performed - [x] Unit tests added or updated - [x] TypeScript typecheck passes (npm run typecheck) - [x] Linting passes (npm run lint) - [x] Full test suite passes (npm test) - [ ] Real Hopper verification performed (npm run verify:hopper) - [ ] Linux real Hopper verification performed (npm run verify:hopper:linux) or unavailability explained - [ ] Real browser verification performed (npm run verify:browser) or unavailability explained - [ ] Package verification performed (npm run verify:package) npm run check:pr passed on the final tree: 196 test files and 1,383 tests, plus typecheck, lint, formatting, Knip, generated metadata, and documentation checks. Lint retains the pre-existing max-lines warning in src/hopper/HopperClient.ts. Real Hopper and browser verification were not applicable because this change does not modify either provider. Package verification was not run; package installation behavior is unchanged. ## Tool Contract Impact No tools are added or removed. Process Capture scenario and result schemas gain reactive declarations and transition evidence. Target formats gain msix and appx. Provider capability status gains nullable availability_code. Generated catalog identities are updated. Suggested review order: 1. Reactive algebra and replay validation in src/domain/processReactiveRuntime.ts and src/domain/processCaptureReactiveValidation.ts. 2. Lifecycle wiring in src/application/ProcessHarness.ts and src/application/ProcessReactiveHarness.ts. 3. ZIP-family classification in src/domain/zipPackageFormat.ts and artifact adapters. 4. Typed availability projection and generated contract changes. ## Related Issues Related to #330. Closes #331. Closes #356. Closes #389. Closes #393. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-16 21:12:59 +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#1973
No description provided.