mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
Open
opened 2026-11-03 13:38:53 +00:00 by bsakaguchi
·
0 comments
No Branch/Tag specified
main
codex/procedure-reference-stacked
release-please--branches--main--components--rea-agents
release-please--branches--main--components--rea-agents--release-notes
codex/kuna-independent-retry
codex/byte-search-overlay-coverage
codex/open-failure-target-receipt
codex/kuna-xref-evidence
codex/ghidra-ambiguous-procedure-recovery
codex/function-source-bundle
codex/trace-function-integration-prototype
codex/snapshot-source-closure
codex/recorded-evidence-array-pages
codex/evidence-recovery-redesign
codex/trace-feature-address-scope
codex/call-discovery-scope
codex/ghidra-literal-candidate-evidence
codex/decompile-directory-independent-retry
codex/retry-provenance-base
codex/value-flow-capability-experiment
codex/ghidra-containing-instruction
cursor/readme-discord-button-ef9f
dependabot/github_actions/actions/setup-node-7.1.0
dependabot/github_actions/actions/upload-artifact-7.0.2
dependabot/npm_and_yarn/npm-minor-and-patch-d8d97ce6df
codex/kuna-1989
fix/8559-native-ui-fixture-ownership
fix/8555-go-verifier-mcp-ownership
codex/provider-capability-recovery
fix/8642-rizin-target-stdin
codex/ghidra-memory-effect-scope
codex/ghidra-annotation-entry-selector
codex/ghidra-readonly-recovery
codex/ghidra-regex-verifier-recovery
codex/evidence-discovery-view-guidance
fix/8545-bulk-append-overflow
fix/8428-navigation-refusal-alternatives
codex/address-context-recovery
codex/matching-member-limitations
codex/unknown-scope-contract
codex/evidence-view-guidance
feat/8373-native-trace-views
codex/ghidra-snapshot-verifier-binding
codex/elf-export-visibility
codex/evidence-view-recovery
codex/native-reference-cli-help
codex/provider-candidate-observation-scope
codex/kuna-session-verification
codex/ghidra-switch-lifetime-guidance
codex/pseudocode-paging-discovery
codex/clarify-evidence-view-support
codex/kuna-xrefs-selector-recovery
codex/context-capacity-recovery
codex/evidence-closure-large-links
codex/same-function-evidence-identity
codex/ghidra-verifier-inspected-jdk
codex/audit-guided-workflows
codex/crash-prompt-retained-dossiers
codex/analysis-view-error-recovery
codex/kuna-verifier-target-selection
codex/ghidra-selected-project-call-coverage
codex/docs-native-analysis-scope
codex/ghidra-java-socket-boundary
codex/ghidra-retained-snapshot-verifier
codex/ghidra-search-inventory-facts
fix/8284-zero-argument-parameter-bindings
fix/8198-ui-action-handler-offset
fix/8257-elf-entry-label-identity
fix/8304-deferred-output-schema-projection
fix/8277-call-path-computed-target-uncertainty
fix/pr-8089-conflicts
fix/ci-static-duplicate-export
dependabot/npm_and_yarn/lint-staged-17.6.0
dependabot/github_actions/actions/download-artifact-8.0.2
dependabot/npm_and_yarn/write-file-atomic-8.0.0
dependabot/npm_and_yarn/canonicalize-5.1.0
dependabot/github_actions/actions/cache/restore-6.1.0
dependabot/npm_and_yarn/toon-format/toon-4.4.0
dependabot/github_actions/actions/deploy-pages-5.0.1
codex/review-fixes-pr-2403
codex/review-fixes-pr-2400
codex/process-terminal-width
codex/test-brittleness-cleanup
verify/7167-browser-connect-macos
fix/7167-browser-connect
feat/native-matching-allowance-setting
feat/browser-scenario-dry-run
test/managed-caller-parameters-20261024
codex/parser-fortythird-boundaries
fix/6926-pinvoke-platform-decorations-20261023
fix/6889-har-body-encoding-20261023
fix/6888-sqlite-schema-budget-20261023
fix/dependency-security-gates-6708
cursor/evidence-overwrite-rebase-b4ac
feat/4057-verify-native-exports
fix/windows-acl-observer-overhead-20261022
cursor/erlang-beam-restack-4476
cursor/pe-certificate-review-bf32
fix/6116-javascript-application-fs-errors
fix/6061-unmapped-runtime-script-unknown
feat/browser-scenario-summary
fix/pe-certificates
codex/verify-3407
cursor/rebase-5699
cursor/rebase-5352
cursor/rebase-5600
cursor/fix-cli-schema-omission-10a8
codex/audit-hopper-shutdown-reasons-20261021
fix/demangle-swift-omitted-record
fix/nib-boolean-value-types
cursor/cancellation-partial-observation-a5ac
fix/ib-object-limit-reasons
fix/electron-fuse-limit-advice
fix/kuna-doctor-dangling-cache
fix/fixed-budget-refusal-advice
fix/js-ipc-listener-dedup
fix/js-return-member-provenance
fix/dmg-integrity-retry-advice
fix/ida-doctor-readiness
fix/kuna-version-probe-output-drain
fix/legacy-swift-runtime-name-matching
fix/dylib-lazy-load-commands
fix/browser-scenario-startup-cancel
fix/swift-nested-punycode-classification
fix/compare-unselected-scopes
fix/objc-method-budget-coverage
fix/dmg-mounted-root-observations
audit/ci-tests-20261019-round2
release/6.7.0
fix/wabt-cleanup-retry-resolution
fix/electron-fuse-elf-pe-architecture
fix/native-plist-descriptor-ownership
fix/kuna-caller-cleanup-ownership
experiment/atomic-codemode-20261016
review/first-contributor-3776
fix/call-resolution-full-read-cycles
fix/member-mutation-selection-repeat
experiment/atomic-re-tools-20261015
perf/member-mutation-lazy-origins
perf/static-network-mutation-index
fix/hopper-startup-lifecycle
audit/3050-windows-proof-20261015
feat/windows-window-capture-2183
audit/3049-windows-proof-20261015
audit/3735-macos-fixtures-20261015
fix/batch-decompile-null-pseudocode
fix/kuna-inventory-honors-jobs
experiment/browser-codemode-tool-design-20261015
fix/hopper-clean-runtime-argv
codex/review-2049-27f1b367
review-fixes/pr-2787-routing
fix/3360-scoped-this-emitters
fix/3367-replaced-global-effects
fix/3838-compact-any-value-items
test/hopper-download-probe-20261015
codex/windows-runtime-creation-red-green-20261015
codex/windows-readonly-root-red-green-20261015
codex/windows-root-share-red-green-20261015
codex/exp-1685-win-mcp-startup
codex/bug-sweep-20261015
investigate/2190-windows-package-phases
investigate/3543-macos-cli-deadline
perf/3281-reverse-tools-feedback-quality
fix/3406-hopper-doctor-fixture
fix/3341-wrapper-require-test-context
fix/3301-owned-uninstall-fixtures
fix/3164-compiler-input-ownership
fix/pcap-cleanup-stdout-newline-20261014
perf/interface-builder-summary
codex/review-fixes-pr-1977
fix/ghidra-effective-jvm-platform
fix/docs-turkish-rust-link-20261013
fix/main-maintenance-ci-20261010
fix/recover-binary-session-process-effects
codex/review-fixes-pr-2457
codex/ci-required-cancellation-gate
fix/main-format-baseline-20261013
fix/setup-preserve-entry-fields
cursor/restore-main-checks-1ffc
fix/ghidra-bridge-hashmap-import
codex/shared-ci-jadx-json-default-20261013
codex/shared-ci-ghidra-test-groups-20261013
codex/shared-ci-java-fixture-format-20261013
codex/fix-intrinsic-invocation-boundaries
test/release-preflight-reusable-jobs
test/js-parameter-provenance-expectation
fix/linux-hopper-verification-current
test/2419-ghidra-elf-probe-size
followup/pr-1544-native-ida
codex/fold-pr-2230-contribution
docs/readme-responsible-use
fix/issue-2064
fix/issue-2050
fix/issue-2053
fix/issue-1968
fix/issue-1945
experiment/codemode-bridge-20261011
fix/tool-effects-negative-wording-1904-20261012
fix/1842-electron-interop-provenance
feat/recover-javascript-multi-input
refactor/website-i18n-prep
fix/nativeaot-pe-virtual-extent
fix/browser-verifier-ci-hang
fix/pe-resources-input-selection
docs/beginner-friendly-guides
docs/beginner-setup-guide
fix/javascript-analysis-worker-1563
fix/1649-ghidra-duplicate-names
fix/javascript-export-keys-integration-1369
test/maintenance-boundary-contracts-20261011
review/javascript-export-keys-1369
review/process-live-progress-1483
test/javascript-1495-growth-ratio
fix/ci-escape-timing
docs/normalized-terminal-geometry-1450
release/6.3.0
archive/release-6.3.0-pr1381
release/6.2.0
fix/electron-preload-dynamic-override
fix/javascript-self-referential-bundler-edges
release/6.1.0
cursor/grok-client-cherry-pick-0b56
feat/signature-posture
feat/dyld-shared-cache
feat/artifact-integrity-policy
feat/pkg-inventory
release/6.0.0
chore/sync-release-5.0.0
release/5.0.0
cursor/cloud-agent-node-787e
fix/javascript-xhr-open-endpoints
review/pr-711-realpath-fallback-wording
cleanup/replay-confinement
codex/test-suite-performance
codex/issue-foundations
codex/address-open-issues-2026-07-20
agent/javascript-vite-rollup-esbuild-adapters
agent/process-cleanup
agent/triage-integration
agent/unknown-commands-registry
feat/mcp-identity-metadata
morlvps/issue_cleanup
codex/installer-redesign
morl/roadmap-investigation-core
morl/roadmap-investigation-docs
release-please--branches--main--components--rea
rea-agents-6.8.0
rea-agents-6.7.0
rea-agents-6.6.0
experiment/atomic-codemode-wait-runtime-20261016
rea-agents-6.5.0
rea-agents-6.4.0
rea-agents-6.3.0
rea-agents-6.2.0
rea-agents-6.1.0
rea-agents-6.0.0
rea-agents-5.0.0
rea-agents-4.1.0
rea-agents-4.0.1
rea-agents-4.0.0
rea-agents-3.2.1
rea-agents-3.2.0
rea-agents-3.1.0
rea-agents-3.0.0
rea-agents-2.7.0
rea-agents-2.6.0
rea-agents-2.5.1
rea-agents-2.5.0
rea-agents-2.4.0
rea-agents-2.3.0
rea-agents-2.2.0
rea-agents-2.1.0
rea-agents-2.0.0
rea-agents-1.7.0
rea-agents-1.6.0
rea-agents-1.5.0
rea-agents-1.4.0
rea-agents-1.3.0
rea-agents-1.2.0
rea-agents-1.1.0
rea-agents-1.0.0
rea-agents-0.5.0
rea-agents-0.4.0
rea-agents-0.3.0
rea-0.2.1
rea-0.2.0
Labels
Clear labels
area: bridge
area: bridge
area: build
area: build
area: build
area: cli
area: domain
area: evidence
area: mcp
area: native
area: providers
area: runtime
area: server
area: setup
area: tests
bug
design
documentation
enhancement
enhancement
enhancement
experiment
help wanted
i18n
invalid
P0: critical
P1: high
P2: medium
P2: medium
P2: medium
P3: low
performance
provider-request
pull-request
Mirrored from GitHub Pull Request
question
roadmap
triage
No labels
area: bridge
area: bridge
area: build
area: build
area: build
area: cli
area: domain
area: evidence
area: mcp
area: native
area: providers
area: runtime
area: server
area: setup
area: tests
bug
design
documentation
enhancement
enhancement
enhancement
experiment
help wanted
i18n
invalid
P0: critical
P1: high
P2: medium
P2: medium
P2: medium
P3: low
performance
provider-request
pull-request
question
roadmap
triage
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
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#7583
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/morluto/rea/pull/7024
Author: @NgLanNg
Created: 10/24/2026
Status: 🔄 Open
Base:
main← Head:feat/pe-image-layout-and-exception-directory📝 Commits (6)
475da95feat(pe): share one image-layout owner and read the exception directorya7c2931chore(vault): stop tracking the harness-managed FM26 session transcript102b05echore(vault): keep reverse-engineering evidence out of the repositoryf266c63chore: ignore local pi session exportsd284d32chore(release): 6.8.09fa9aa1fix(pe): route the certificate parser through the shared image-layout owner📊 Changes
13 files changed (+1358 additions, -151 deletions)
View changed files
📝
.gitignore(+8 -0)📝
.release-please-manifest.json(+1 -1)📝
CHANGELOG.md(+12 -0)📝
docs/installation.md(+3 -3)📝
package-lock.json(+2 -2)📝
package.json(+1 -1)📝
server.json(+2 -2)📝
src/generatedPackageMetadata.ts(+1 -1)➕
src/native/PeExceptionDirectory.test.ts(+446 -0)➕
src/native/PeExceptionDirectory.ts(+438 -0)📝
src/native/pe/PeCertificateParser.ts(+10 -6)➕
src/native/pe/PeImageLayout.ts(+394 -0)📝
src/native/pe/PeResourceLayout.ts(+40 -135)📄 Description
Summary
PE header, section-table and data-directory facts now have one shared owner, and a new
reader exposes the image's exception directory as measured function extents.
PeImageLayoutowns header admission, the section table, data directories, virtualextent and file-backed RVA mapping, with tagged failure reasons.
PeResourceLayoutdelegates its header and section facts to that owner and keeps only the
resource-specific mapping rules and their messages.
PeExceptionDirectorydecodes the exception directory asRUNTIME_FUNCTIONrecordsand reports partial coverage and tagged failures instead of silently dropping extents
that no section maps.
Problem and expected behavior
PE header and section-table facts were parsed in more than one place, so two readers
could disagree about the same image. A reader that wanted a function boundary had no
supported way to obtain one: the exception directory is the authoritative source for
x64 function extents, and nothing read it.
Expected: one owner for PE image facts, and a way to ask an image for its measured
function extents with explicit failure reasons and coverage.
Change and scope
PeImageLayoutbecomes the single owner for MZ/PE header admission, the sectiontable, data directories, virtual extent and file-backed RVA mapping.
PeResourceLayoutkeeps its own resource mapping semantics — an empty interval still resolves at a
section's virtual end, a zero-extent section owns no byte, and an ambiguous interval
still fails — and only its messages.
PeExceptionDirectoryreads the exception directory and reports each measured extent,the coverage it achieved, and a tagged reason when the directory is absent,
inconsistent, unmapped, not file-backed, empty or malformed.
No target execution, no injection, no memory mutation, no protection recovery. This is
static format inspection of an artifact the caller already possesses.
Contract and boundary impact
src/native/pe/PeImageLayout.tsowns PEimage facts;
PeResourceLayoutconsumes it. Native artifact inspection stage.inspection", "ordinary archive and standard-compression extraction, disassembly,
decompilation, cross-references". No new provider, no target execution, no
protection recovery. Not applicable.
catalog entry changes. This adds library capability only.
EXCEPTIONdata directory of an existing PE image; no new dependency, no bridgechange, no platform-specific code.
artifact inventory or provenance field changes. The new reader reports partial
coverage and tagged failures rather than defaulting to "absent".
not applicable; the reader takes bytes already in memory and reads no target.
docs/public/product-catalog.json), package, or installationimpact: the package version moves to 6.8.0 with matching
package-lock.json,server.json,src/generatedPackageMetadata.ts,docs/installation.mdand.release-please-manifest.json. CI regenerates and validates the ignored catalogand
skills/; no authored skill instruction changed.Expected effects:
Evidence and regression coverage
src/native/PeExceptionDirectory.test.ts(new, 446 lines)covers record decoding, partial coverage, and each tagged failure reason.
tests/boundary/filesystem/peResources.test.tscontinues to cover resourcemapping through the new shared owner.
in this repository, so there is no base behaviour to regress. The resource reader's
behaviour is covered by the existing boundary test, which passes unchanged.
CLI command or MCP tool, so it is not reachable by users in this release. PE
(32-bit and 64-bit) is covered; ELF, Mach-O and other formats are out of scope for
this reader.
For evidence-bearing changes:
Validation performed
All commands below were executed on this branch.
npm run check:fast— passed (typecheck and lint clean, 0 errors).npx vitest run tests/boundary/native tests/boundary/filesystem/peResources.test.ts src/native— 15 passed.npx vitest run tests/conformance/releaseConfiguration.test.ts— 5 passed.npx vitest run tests/boundary/filesystem/releaseCheckpoint.test.ts— 39 passed.npx vitest run tests/boundary/filesystem/releaseNotes.test.ts— 5 passed.npm run metadata:check— passed.npm run docs:check— passed.npm run test:python— 91 passed.npm run jscpd— 3.40% duplicated lines, no threshold failure.npm run scan:todos— no tech-debt markers.npm run knip— clean.npm pack --dry-run—rea-agents-6.8.0.tgz, 2110 files, 8.1 MB; contains novault/path.npm ci --ignore-scripts— succeeded and leftpackage-lock.jsonunchanged.Pre-existing failures, not caused by this change
Each was reproduced identically on clean
origin/mainin a separate worktree.npm run check:pr—test:runwas force-killed at the 50-minute task limit; theremaining suite steps (
test:python,docs:check,jscpd,scan:todos) passindividually.
tests/acceptance/setup/*— 20 failed / 24 passed onorigin/mainfor the sametest names; on this branch 5 failed / 39 passed for the same set. Setup and
client-configuration tests, unrelated to PE code.
tests/boundary/filesystem/analysisSnapshot.test.ts,tests/boundary/filesystem/processCliFileInput.test.ts— 5 failed / 59 passed onorigin/main, identical on this branch. Cancellation-timing tests.tests/boundary/mcp/toolSchemaValidity.test.ts— 2 failed / 13 passed onorigin/main, identical on this branch. 30s MCP stdio handshake timeouts.tests/acceptance/applications/peResources.test.ts— fails identically onorigin/main(30s MCP stdio handshake timeout).Compatibility, safety, and release
always-bump-minor.PeResourceLayout's public behaviour and messages areunchanged; only the internal owner of PE image facts moved.
browser or OS-specific path changed. The PE reader is exercised through the
real-file boundary test (
tests/boundary/filesystem/peResources.test.ts), whichadmits the largest measured stock Windows resource table.
package.json,package-lock.json,server.json,src/generatedPackageMetadata.ts,docs/installation.mdand.release-please-manifest.json;CHANGELOG.mdhas a6.8.0 section.
npm pack --dry-runproducesrea-agents-6.8.0.tgz.the caller already supplied. It adds no target execution, no network access and no
credential handling, and it reports partial coverage explicitly rather than
presenting missing extents as absent.
Author readiness
Human owner:
Before merge
type(scope): outcome.Update: rebased onto current main
mainadvanced 1,160 commits during review preparation. The branch is rebased ontoorigin/mainat422ca5a8fand re-verified.Two rebase resolutions worth review:
PeResourceLayout.ts—mainhad evolved its own inline header parsing.Resolved in favour of the shared
PeImageLayoutowner, which already carries thethree checks
mainadded (RVA range overflows,raw bytes overlap headers,overlapping raw file ranges). Behaviour is preserved; the owner moved.src/generatedPackageMetadata.ts— keptmain's newpinnedNodeVersionfieldalongside the 6.8.0 version bump.
Integration fix found by the rebase
origin/mainaddedPeCertificateParser, which importedreadPeHeadersfromPeResourceLayout— the exact export this branch had moved intoPeImageLayout. Therebase left that import dangling, and
typecheckfailed withTS2305.Fixed by exposing the header offsets the parser needs (
peOffset,optionalOffset,optionalMagic,directoriesOffset) onPeImageLayout, and reading the securitydirectory through
directoryOffsetrather than recomputing it. The certificateparser now shares one owner for PE header facts instead of carrying a second reader.
Re-validation after the rebase
Toolchain: pinned Node 24.22.1 / npm 11.19.1 (installed for this;
.nvmrcpins24.22.1 and
enginesrequires^24.22.1).npm ci --ignore-scripts— succeeded, lockfile unchanged.npm run check:fast— passed.npm run typecheck— passed (was failing TS2305 before the integration fix).npm run build:cached— passed.npx vitest run --project acceptance tests/acceptance/peCertificatesCli.test.ts— 5 passed. This is the suite that exercises the parser I changed.npx vitest run --project boundary --project conformance --project unit— 9169 passed, 3 failed. All three reproduced as failures onorigin/mainor pass in isolation:productCatalog.test.tsandsetupSkill.test.ts— stale generated catalog after the rebase;npm run docs:generateregenerates it and both then pass (27 tests).kunaProvider.test.ts— passes in isolation (31 tests); contention-flaky.npm run metadata:check— passed.npm run docs:check— 9 passed.npm run test:python— 91 passed.npm run jscpd— 3.63% duplicated lines.npm run scan:todos— no tech-debt markers.npm run knip— clean.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.