mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
Closed
opened 2026-10-31 01:11:12 +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#6017
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/4047
Author: @JFSAS
Created: 10/15/2026
Status: ❌ Closed
Base:
main← Head:codex/plist-real-character-data📝 Commits (5)
e31f5c5fix(plist): preserve real character data44da0cffix(plist): avoid CDATA entity expansiona33f082chore(plist): reconcile upstream OpenStep handling25accccchore(plist): reconcile wide integer handling43be57afix(plist): avoid bigint metadata round trips📊 Changes
14 files changed (+482 additions, -194 deletions)
View changed files
📝
docs/native-investigation.md(+3 -0)📝
src/artifacts/apple/InterfaceBuilderAnalysis.ts(+3 -5)📝
src/artifacts/apple/KeyedArchiveReader.ts(+2 -6)📝
src/artifacts/apple/PlistNumberLiterals.ts(+5 -121)📝
src/domain/apple/plistNumbers.ts(+36 -0)📝
src/domain/propertyListKeys.test.ts(+121 -0)📝
src/domain/propertyListKeys.ts(+122 -57)📝
src/native/parsers/plist.test.ts(+2 -2)📝
src/native/parsers/plist.ts(+4 -1)📝
tests/acceptance/applications/interfaceBuilderPlistNumbers.test.ts(+12 -0)➕
tests/acceptance/plistRealCharacterData.test.ts(+84 -0)➕
tests/boundary/filesystem/plistRealDecodeExpansion.test.ts(+34 -0)📝
tests/fixtures/keyedArchiveNumberMetadata.ts(+13 -2)➕
tests/process-global/appBundleIntegerMetadata.test.ts(+41 -0)📄 Description
Summary
Fixes #4042. Keyed-archive inspection now retains
1.25from both<real>1<![CDATA[.25]]></real>and<real><![CDATA[1.25]]></real>through CLI and MCP. Previously these became1or an unknown non-finite real, while plain XML and native binary conversions were correct.Change and scope
Reuse the existing XML preflight DOM to own real character data and numeric facts. Normalize each parsed real to a round-trippable exponential literal (at most 24 ASCII characters), removing its original character-data spans before the pinned value decoder. This eliminates CDATA entity expansion while retaining signed zero, literal-entity meaning and neighboring source line endings. XML consumers use those parsed number facts; remove the superseded raw XML number scanner and its entity decoder. The collector is shared with the upstream binary-number interpretation. It retains exact decimal text by normalizing its sign and leading zeroes, and uses
Numberonly for the rounded-value association. This removes the unnecessaryBigIntparse/format round trip from every consumer, including app Info.plist resolution.Integer/real collisions remain ambiguous. Original archive bytes/digests, object identities, references, selection and limits remain intact. No adapter-specific value repair, dependency upgrade or new tool is introduced. The native JSON path continues to use its existing canonical plutil conversion.
Related #3426 and #3475 change this same XML boundary for keys and hexadecimal integers. This PR addresses real character data and does not incorporate their separate behavior changes.
The upstream OpenStep omission-count fix from #4105 is retained alongside the shared
numberLiteralsresult. The merge also preserves #4324's 128-bit binary integer decoding, overlap validation and decode budgets. Both keyed-archive and Interface Builder consumers receive XML number facts from the shared DOM parser; the new upstream Interface Builder caller does not restore the superseded XML scanner. Its existing CLI regression now checks exact integer attributes alongside mixed-text and pure-CDATA reals.Contract and boundary impact
parseXmlPropertyList; consumers receive numeric facts alongside decoded values.Expected effect:
Evidence and validation
Validated head
43be57a7d37305d6837195eff9ecb8dfd62d0a63on main4838f444939677107902549c59b73439e14d3ae9; original base337d2e33c5aae40f20c64584c341a3593420b8e0; macOS arm64, Node 24.18.0 / npm 11.16.0.plutilcontrols independently returned1.25, and the original four-case replay passed all eight CLI/MCP checks with unchanged source bytes and matching Evidence digests. Current-head CLI/stdio MCP acceptance tests again pass XML and binary controls.npm run check: passed typecheck, lint, formatting, knip, metadata, resolved module boundaries and architecture guards.npm run docs:check: passed, including five consistency tests.npm run verify:test-discovery: all 1,442 test files discovered exactly once.git diff --check: passed.a33f08297, a public CLI/stdio MCP OpenStep smoke retained the neighboring value, reported one omitted__proto__entry, and preserved source bytes and digest. Current-head parser tests continue to cover that behavior.Numeric metadata resource regression
The app-opening review finding is valid and addressed in
43be57a7d. Adding numeric facts to the shared XML parser exposed unrelated Info.plist integers to an unnecessary arbitrary-precision parse/format round trip. Decimal metadata needs canonical source text and a rounded numeric key; it does not need a BigInt representation. The fix removes that representation in the shared collector, preserving all callers and avoiding a caller-specific bypass or arbitrary digit cutoff.resolveAppBundleExecutablewith a 5,000,000-digit unrelated integer. A scoped conversion guard fails on the previous head and passes after the fix; it does not depend on a timing threshold.Whole-workflow observations compare
25acccc40with this fix using a 5,000,120-byte Info.plist. CLI runsanalyze; stdio MCP performs initialize/open/shutdown. Both intentionally stop at the same unknown-provider diagnostic after resolving the app, so no disassembler starts. Output and original source bytes match in every run.Versions alternate; separate Node compile caches are cold on first use and warm afterward. OS disk caches were not forced cold. CPU is
wait4user/system including waited children. Process-family RSS is sampled every 10 ms pluspsoverhead and may miss brief peaks. CLI wall time varied substantially on the shared host, and RSS did not uniformly decrease. Output remains 2,489 bytes for CLI and 2,462 for MCP. Agent-token use was not measured. This removes the added arbitrary-precision work; file reading and DOM parsing still scale with input, and no new total Info.plist size or resident-memory cap is claimed.Earlier CDATA resource and performance evidence
The resource and performance measurements below were executed at
44da0cf8f, before the upstream merges. The current merge preserves the XML real normalization implementation and retains upstream binary-width handling. These timings and near-limit capacity probes were not rerun at the current head.The P1 review finding was reproduced on
e31f5c59e: a 262,472-byte archive reached the second real XML parser as 1,311,036 bytes. The new production-boundary regression invokes both real parsers and fails on that expansion. After this change, the second parser receives 319 bytes for the same archive. The entity-escaping path has been removed.A 66,060,616-byte (63 MiB payload) self-authored archive also completed through the public CLI and real stdio MCP, each with a 512 MiB JavaScript heap setting and 30-second deadline. Both returned the expected value and original digest, with source bytes unchanged. The corresponding owner probe's second parse was still 319 bytes. The old near-limit case was not executed. A seeded 2,007-value round-trip check matched the previous plain-text decoder, including negative zero, subnormals, extreme finite values and non-finite values.
The following whole-workflow measurements compare
e31f5c59ewith this fix on a 1,048,904-byte archive containing entity-like CDATA. This is well-formed XML admitted by the pinned decoder; it does not establish that Apple accepts the numeric suffix. Each run is a complete fresh CLI invocation or stdio MCP connection plus open/inspect/close. Separate Node compile caches were cold for the first run and warm for four subsequent alternating runs; OS disk caches were not forced cold.CPU uses
wait4user/system accounting for the process and waited children. Family RSS is sampled every 10 ms pluspsoverhead, so brief peaks may be missed. Normalized results match exactly; complete stdout remains 2,352 bytes for CLI and 2,351 for MCP. No real-agent run or agent-token measurement was performed. These samples do not establish a universal speedup or total resident-memory cap. The initial DOM/input cost remains subject to the existing acquisition and depth boundaries; no entity-expansion cleanup remains.Compatibility and limitations
No migration or public schema change. Binary and OpenStep decoding retain their existing routes. Malformed nested numeric content remains explicitly incomplete. Tests use self-authored artifacts; frequency in real applications, Linux/Windows behavior and the full CI suite have not been established locally. No real disassembler coverage is claimed. Prepared with AI assistance.
Author readiness
Human owner: @JFSAS
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.