mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
Closed
opened 2026-11-03 13:38:39 +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#7552
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/6989
Author: @8rulerstar
Created: 10/24/2026
Status: ✅ Merged
Merged: 10/24/2026
Merged by: @morluto
Base:
main← Head:fix/il2cpp-lto-registrations📝 Commits (10+)
f82a79ffix(il2cpp): accept arm64 module arrays loaded through adrp/add pairsabf8a86fix(il2cpp): name the matched instruction form in inferred module-array limits24451f2fix(il2cpp): accept type tables loaded without a static MetadataRegistration0d023adtest(il2cpp): pin adrp page deltas, register pairing and type-record shapef2b027erefactor(il2cpp): share Il2CppType kind decoding and document type-table bounds00235dcchore: merge latest main into exp/il2cpp-lto-port23da1ddfix(il2cpp): refuse generic instances when the type table was inferred090ddc8fix(il2cpp): fail closed when an inferred type table is not uniquea6e2c82fix(il2cpp): keep the type-table fallback cheap and its refusals exact39480bafix(il2cpp): judge type-table slots by their loaded value📊 Changes
17 files changed (+1006 additions, -68 deletions)
View changed files
📝
docs/il2cpp-metadata.md(+29 -4)📝
src/application/il2cpp/Il2cppMetadataService.test.ts(+9 -5)📝
src/application/il2cpp/Il2cppMetadataService.ts(+2 -1)📝
src/contracts/il2cpp/il2cppToolContracts.ts(+1 -1)📝
src/domain/analysisView/il2cppMetadataView.test.ts(+18 -0)📝
src/domain/analysisView/il2cppMetadataView.ts(+5 -0)📝
src/domain/il2cpp/il2cppMetadata.ts(+6 -2)📝
src/il2cpp/Il2cppBinaryFile.ts(+26 -3)📝
src/il2cpp/Il2cppBinaryGenerics.ts(+7 -1)📝
src/il2cpp/Il2cppBinaryImage.ts(+19 -34)📝
src/il2cpp/Il2cppBinaryRegistration.ts(+249 -9)📝
src/il2cpp/Il2cppBinaryTypes.ts(+12 -2)📝
src/il2cpp/Il2cppMetadataProvider.ts(+12 -2)📝
tests/boundary/il2cpp/il2cppBinaryFile.test.ts(+416 -0)📝
tests/boundary/il2cpp/il2cppMappingOwnership.test.ts(+39 -1)📝
tests/boundary/il2cpp/il2cppMetadataProvider.test.ts(+93 -0)📝
tests/fixtures/il2cpp/binary.ts(+63 -3)📄 Description
Follow-up to #5327: this extends its inlined module-array fallback to arm64 and adds a matching fallback for the type table.
Summary
A Unity IL2CPP build in the Master configuration (link-time optimisation) can inline both registration structs, so the binary keeps neither
g_CodeRegistrationnorg_MetadataRegistrationas data. On arm64 such a build stopped atcode-registration-not-found, and after that atmetadata-registration-not-found. This change lets it link when exactly one module array and exactly one type table are loaded by code, marks both as inferred, and keeps the existing reasons otherwise. Builds with static registrations are unchanged. Related: #3607.Problem and expected behavior
Trigger: a macOS arm64 IL2CPP Master build of Unity 2022.3.62f3 (metadata v31) fails with
code-registration-not-found. Expected: link its methods and type rows, labelled inferred, and fail closed whenever the code-loaded candidate is not unique.Change and scope
Both fallbacks live in
src/il2cpp/Il2cppBinaryRegistration.tsand run only on x86-64 or arm64 when the static search found nothing.adrp xd+add xd, xd, #imm12pair (same register, not register 31). The x86-64 scan is unchanged.types_fieldbecomes nullable likecode_gen_modules_field;types_countis then the run length. Each fallback adds its own limitation and view unknown.--generic-instanceson an inferred type table fails asgeneric-methods-unsupported.ldr/GOT or non-adjacent address forms, arm64e, chained fixups.Follow the contribution scope. Scope decision: not applicable (static reading inside the existing IL2CPP provider; no new provider or capability).
Contract and boundary impact
Il2cppBinaryRegistration.ts(registration search); Il2CppType kind decoding is shared fromIl2cppBinaryTypes.ts.inspect_il2cpp_metadatadescription names the x86-64/arm64 fallback and that generic instances need both static registrations. No new input field or failure reason;binary.types_fieldbecomes nullable.docs/public/product-catalog.json), package, or installation impact: none.Expected effects:
Evidence and regression coverage
Tests added or updated:
tests/boundary/il2cpp/il2cppBinaryFile.test.tscovers the arm64 module array and type table (later and earlier ADRP pages), the x86-64 type table, generic instances refused on an inferred table, the not-found messages, and fail-closed cases: interior reference, run extended before or reaching past a mapping boundary, a second long-enough run (loaded or not), a static record with matching counts but an unusable table, short and one-short runs, unassigned (0x17, 0x1a) and out-of-range kinds, a value-type definition past the metadata, mismatched or register-31 ADRP/ADD pairs, and a dyld-bound table slot or record kind word whose placeholder must not change the outcome.il2cppMetadataProvider.test.tscovers the limitation per instruction form.Base reproduction or other evidence: executed. With
origin/main'sIl2cppBinaryRegistration.ts(ddde7276c) swapped into this branch, these two test files give 159 passed / 11 failed; the failures are exactly the positive fallback cases. Self-built samples (Unity, not redistributed), linked withorigin/mainand this head:origin/maincode-registration-not-foundOn the Master build: module array
0x7880e0(dSYM_g_CodeGenModules); 12,514 methods whose 11,031 unique code addresses equal the dSYM's 11,031 method symbols as a set. Type table0x7adbc8(dSYM_g_Il2CppTypeTable, 6,576 slots to the next symbol),types_count6,576, highest referenced type index 6,031. Return, field and parameter type rows (12,514 / 8,929 / 15,582) equal the Release build of the same project linked from the sameglobal-metadata.dat(SHA-25682b93b7ac9ee1038025658378f258dffe818c4c4c20f91c1024bbd516b6386a7; MasterGameAssembly.dylib3978ab4f05c937914feec8de2a04a835328101c373e15a2db6242b60c13386ad). Il2CppDumper (upstream master) and Cpp2ILb5ad444(with and without StrippedCodeRegSupport) both stop on this build.User-visible CLI/MCP output (if applicable): on the Master build,
binaryreportswith a limitation for each fallback, for example: "No static MetadataRegistration had the type-definition counts. The type table is inferred from executable bytes consistent with an adjacent ADRP+ADD pair referencing the one run of Il2CppType-shaped pointers long enough for every referenced type index; types_count is that run's length, at least every referenced type index but not an observed typesCount, and instruction boundaries and runtime use were not verified."
Remaining proof gaps: one Master build (macOS arm64) checked; the x86-64 type-table path is fixture-only. A differently scheduled build (address formed by
ldr, a non-adjacent pair, or a type-shaped word right before the table) fails closed rather than linking.types_countmatched the dSYM here but can differ in general. Scan cost on large shipped games is unmeasured; on synthetic images an arm64 image whose words all point into a mapping gap takes 0.48 s at 16 MiB (0.36 s when a static record ends the search) and 1.9 s at 64 MiB, and 8 MiB with 1,024 mappings about 0.1 s. No game was executed or modified.For evidence-bearing changes:
Validation performed
Mapping-scan review follow-up at
a10fba039(2026-10-25), Node 24.22.1 / npm 11.16.0 on macOS:NativeImageowns oneFileMappingIndex, built after image admission and shared by the type scan, stored-word reads, loader-aware scalar reads and mapped-span checks. The scan-local index is removed. File-backed pointer reads use the index before checking zero-fill-only ownership; unresolved ELF/Mach-O slots, aliases, gaps and zero-fill refusals retain their existing semantics. This reuse lasts only for the immutable image; no cross-file or global cache is added.e51425fb9with 96 mapping walks; both pass now.check:fast,format:check, anddocs:checkpassed.inspect-il2cpp-metadata global-metadata.dat --binary BINARY --json, beforee51425fb9versus this change. Every response's complete canonical Evidence is identical across all before/after repetitions, including provenance, limitations and uncertainty. The fallback table remains inferred, with nulltypes_fieldand four entries.The ELF cases use
createIl2cppTypeScanFixture(512, 128)and(1024, 1024): 4,096 and 65,536 isolated one-entry runs respectively, all shorter than the metadata's required four entries. The version-31 metadata fixture has each method return index set to 3. OS caches were not cleared; each CLI invocation starts a new process. CPU comes from child-family resource usage; RSS is sampled from the process family at roughly 15 ms plus process-list overhead. No resource stop occurred. The dense fixture shows about 2.6× lower elapsed time; startup noise dominates the small fixtures, and these runs establish no shipped-game or memory improvement. Agent/model tokens were not measured, and no token savings are claimed. A first fixture preflight correctly refused a metadata fixture that referenced only type 0; that failed attempt was excluded from timings and retained locally.Pinned synthetic input SHA-256 values: metadata
a09e29d0fd562da97024f44327513abfc1b95cba471b535181e46cde864e95ad; dense ELFed7945eb6bbeac958876c2eb90bd29c0fc85c35d5f3e859affde7e8e245c4963. The original real Unity samples were not rerun. Fresh hosted CI remains pending.CI follow-up at
e51425fb9(2026-10-25), Node 24.22.1 / npm 11.16.0 on macOS:packedBridgeVerification.test.tsandpackagedWasmVerifierOwnership.test.ts: their assertions expected top-level stderr and the old package-command identity prefix after the shared verifier-command migration.f196ebf80, which includes the corrected diagnostic/identity assertions from #7002 (347b6e4d9). The failing verifier suites now pass without weakening isolation, descendant ownership, or cleanup assertions. No additional IL2CPP implementation changes were needed.check:fast(typecheck/lint),format:check, anddocs:check: passed.Earlier author validation:
At
ad5532870:npm run check: passed, 6/6 tasks, lint 0 errors.npm run docs:check: passed.npm run jscpd: passed.npx vitest run tests/boundary/il2cpp tests/acceptance/il2cppMetadataCli.test.ts src/domain/analysisView src/il2cpp src/application/il2cpp: 39 files, 1,221 passed.origin/mainand this head: results in the table above.npm test: the local run stopped when a Vitest worker exited in an unrelated JavaScript test, after failures in files that read the CLI build, which was being rebuilt during the run. Rerunning the 119 files that had failed: 74 pass, and the remaining 45 files (165 tests: client setup, doctor and version reports, inspector runtime, SQLite and a GPU codec) fail identically onorigin/mainddde7276con this machine. None touch IL2CPP; CI is the reference for the full suite.Compatibility, safety, and release
binary.types_fieldmay now benullon fallback links; static links still report it.Author readiness
Human owner: @8rulerstar
Before merge
type(scope): outcome.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.