mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
[GH-ISSUE #4436] [Bug] Unmodified 6.5.0 Evidence bundles are rejected on main as an integrity mismatch: records with relationship_coverage: null changed identity #1761
Closed
opened 2026-10-16 21:09:57 +00:00 by bsakaguchi
·
4 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#1761
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?
Originally created by @Rinkia on GitHub (Oct 16, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/4436
Before submitting
Area
Evidence, artifacts, or reconstruction
Observed behavior
A bundle exported by released
rea-agents@6.5.0, then imported unchanged withmain@d72d856f5:The bundle is unmodified and was written by
export_evidence_bundle. 6.5.0 imports it and re-exports it byte for byte.Cause:
db8128dc0(refactor(evidence)!: require current coverage commitments) changedsemanticProjectioninsrc/domain/evidence.ts:So a record whose
relationship_coverageisnullnow hashes"relationship_coverage":nullwhere 6.5.0 hashed nothing, and itsevidence_idchanges. 6.5.0 already writes the field explicitly ("relationship_coverage": null) in every record I exported. The commit and the 6.6.0 release notes in #3476 say:In practice, records that have the field are rejected too, as long as it is
null. In my sample that is every record: WASM and EVM inspections. Records with non-null coverage keep their ID, because the field was hashed in both versions.The same analysis now gets two IDs. For WETH9's runtime code (
inspect_evm_interface, same input file):evidence_idev_b76a66404fdef6a7998c624f808ec293eec4f966452bd8bc230eecc812d45fa2main@d72d856f5, fresh runev_940d15f49440c820a6bcb635495782a20744bf5311d08f54a3f401f02342fed1I recomputed both independently in Python (an RFC 8785 serializer, SHA-256 over the projection): the 6.5.0 rule reproduces all 3 IDs in a 6.5.0 bundle, and the main rule reproduces the fresh main ID. The same serializer reproduces the exported bundle file byte for byte, so the difference is only the projection.
Reproduction
rea-agents@6.5.0MCP session, runinspect_evm_interfaceon any flat runtime bytecode, thenexport_evidence_bundletosmall.json. I used WETH9 (0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2) frometh_getCode; the hex file has SHA-256a9817472fdcc178e9cb0a7b8488edee744b0b65be99ae90d515b227fd27a3e5b.rea evidence-import small.jsonwith 6.5.0:{"imported":2,…}.node scripts/rea.mjs evidence-import small.jsonwith a build ofmain: the error above.The same failure applies to
import_evidence_bundle,compareand anything else that parses saved Evidence (I tested the CLI import only).Expected behavior
One of the following, with the maintainers choosing:
relationship_coverageis explicitlynull. For example, if the current-rule ID doesn't match, verify against the previous projection and keep the record's original ID. Records missing the field could still be rejected, which matches the announced breaking change.integrity_mismatchwith "Supply an unmodified bundle". Also correct the release note to "all records whose relationship coverage is null, including records that state it explicitly", and point to a way to recreate the Evidence.Impact and scope
main@d72d856f5built from source innode:24-bookworm. Not tested: other operations' records, MCP import,inspect-evidence-bundle.Other checks from the same session. No bugs found; listed here for context. On 6.5.0, bundle round trips were byte-identical through both CLI and MCP export. Edits to results or subject digests, manifest changes, record reordering, duplicate records and unknown fields were rejected. Whitespace and trailing-newline changes were accepted and re-exported in canonical form. Edits to the display-only
subject.local_path/namewere accepted, as the projection comment says.@pablodiazjorge commented on GitHub (Oct 16, 2026):
A data point for the other side of this: records that lack the field, which is the announced case. They hit the same misleading message, which supports your second option even for records the release note does cover.
rea-lab publishes Evidence bundles exported by
rea-agents@6.4.0with its writeups: native Ghidra operations on PE targets, such asbinary_overview,search_stringsandprocedure_pseudo_code. I imported the five original, unsanitised bundles on Windows 11 withevidence-import --format json:main@781d5751aevidence_integrity_mismatchevidence_integrity_mismatchevidence_integrity_mismatchevidence_integrity_mismatchevidence_integrity_mismatchThe message is the same each time:
Evidence bundle does not match the bundle schema at records.0.relationship_coverage: Invalid input: expected object, received undefined (N more issues). Supply an unmodified bundle written by export_evidence_bundle or rea evidence-export.N is always the record count minus one, so the missing field is the only issue. The published, sanitised copies (onlysubject.nameandlocal_pathreplaced) fail the same way.So rejecting these matches
db8128dc0, but the bundles are unmodified and were written byexport_evidence_bundle, which is exactly what the message tells the user to supply. A reason naming the REA version that wrote the record would help here too.mainwas built withnpm run compile, becausebuild:cachednow stops on the missing 6.5.0 Windows native artifact, which this import path does not use.@Rinkia commented on GitHub (Oct 18, 2026):
Status on the published release:
rea-agents@6.7.0rejects the same unmodified 6.5.0 bundle (small-6.5.0.json, WETH9inspect_evm_interfaceEvidence) with:The 6.6.0 release note now says to regenerate old Evidence and that saved files are not migrated, which covers the documentation half of this issue. The error itself still says to "Supply an unmodified bundle", and that's wrong for an unmodified 6.5.0 bundle. PR #4442 (tested earlier on e9a2bce33) is still open.
@pablodiazjorge commented on GitHub (Oct 18, 2026):
Re-checked the other half on the published release:
rea-agents@6.7.0(built from therea-agents-6.7.0tag withnpm run compile; Windows 11, Node 24.18.0) still rejects all five rea-lab bundles from my earlier comment, exported by 6.4.0 withoutrelationship_coverage(64 records), with the same message as on main:Evidence bundle does not match the bundle schema at records.0.relationship_coverage: Invalid input: expected object, received undefined (N more issues). Supply an unmodified bundle written by export_evidence_bundle or rea evidence-export.Two details in the JSON output matter for agents:
remediation.actionrepeats that same sentence, so an agent that follows the remediation is told to resubmit the file it already has, anddetails.reasonis the genericEvidence bundle validation failed.#4442 fixes the explicit-null case reported here, but it doesn't touch this message: its diff changes
semanticProjection, the identity check, a test and the migration guide. Records without the field, which the 6.6.0 release note rejects by design, would keep getting "Supply an unmodified bundle" after it merges. A distinct reason, with a remediation that says what the release note already says ("Regenerate old Evidence/snapshots … with this release"), would cover both cases.@morluto commented on GitHub (Oct 23, 2026):
Resolved on main in 546b2a6cf. The permitted documented-breaking-change option is implemented: exact pre-6.6 explicit-null commitments are diagnosed as earlier identities, remain rejected without rewriting IDs, and recovery says recreate observations. CHANGELOG and MCP guide explicitly include serialized null. Validation:
src/domain/evidence.test.ts— diagnoses a previous explicit-null coverage commitment without admitting or rewriting its ID; recorded execution ate1d9ebd3c. One selected Evidence control passed with28 skipped; local source/docs correction verified, not hosted GitHub release-note editing or a new installed6.5 bundle run.