mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
[GH-ISSUE #4917] [Bug] Codex setup rejects valid 64-bit TOML integers as malformed configuration #3050
Closed
opened 2026-10-31 00:35:30 +00:00 by bsakaguchi
·
1 comment
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#3050
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 @xu91102 on GitHub (Oct 17, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/4917
Before submitting
Area
Setup, packaging, or upgrade
Observed behavior
With a valid Codex configuration containing a signed 64-bit integer outside JavaScript's safe integer range, REA refuses even a read-only setup plan. It returns exit 1,
status: "needs_human", no planned/applied actions, and says the file is malformed becauseinteger value cannot be represented losslessly.The native Codex CLI accepts the exact same immutable files. The problem reproduced for both
9007199254740993and9223372036854775807as[history].max_bytes. A small integer works in both clients. A value outside Int64,9223372036854775808, is rejected by both and must remain rejected.Reproduction
Starting from the compiled source revision below, create an isolated directory and write
.codex/config.tomlwith:Run these commands with
HOMEpointing at that isolated directory andCODEX_HOMEat its.codexsubdirectory:I ran four immutable fixtures once each through both commands, with these results:
max_bytes1048576[]planned9007199254740993[]needs_human9223372036854775807[]needs_human9223372036854775808needs_humanEvery configuration's SHA-256 remained unchanged. These are native configuration-read and REA dry-run controls; I did not run a Codex agent/model or apply a registration in this reproduction.
Expected behavior
Setup, doctor and uninstall should read valid client TOML without rounding unrelated integers or calling a valid file malformed. Setup should be able to add its own entry while preserving those values, backups and idempotency. Invalid or out-of-range client input must still fail before writes.
TOML 1.0's integer contract covers lossless signed 64-bit integers. The native Codex results above confirm the selected client accepts these concrete files. REA's existing setup contract also requires preserving unrelated configuration.
Impact and scope
Observed: two valid large-integer configurations deterministically block a setup plan; both controls behave as described above. No wrong write or data loss was observed. The common TOML reader is also used by Grok Build, but native Grok behavior has not been tested here.
REA version
6.5.0 source
f0b9ef34c404c1c65f8167502db972b0bd708403, freshly built with the pinned toolchain.Runtime and platform
Node 24.18.0, npm 11.16.0, macOS arm64; native
codex-cli 0.160.1.Target and artifact context
Self-authored isolated
config.tomlfiles; no analysis target or provider.Interface
Package or setup
Earliest failure stage
Setup or provider admission
Relevant output or evidence
For the valid Int64 maximum, native
codex mcp list --jsonreturns[]with exit 0 and empty stderr. REA returnsneeds_humanwith this diagnostic:Analysis or suspected cause
Source-derived and checked against the installed dependency:
ClientConfigurationDocument.tscallssmol-tomlwithout integer-preservation options. Its default reader rejects integers beyond the safe Number range. The same raw parser is also used when checking that an edited TOML document preserves its values. A shared lossless reader must cover those consumers, retain normal Number behavior for existing safe settings, and keep the client's signed 64-bit rejection boundary.The earlier #4856/#4870 line-expansion capacity fix and #4873 scan-cost fix concern different causes. I read their actual production changes. The earlier #2368 numeric-preservation change concerns Hermes YAML rather than this TOML admission failure.
Local fix and verification
A normal fork commit is now available: 5b4049135, based on
d205c528e31897f1f2919b80a4245356b502c703. There is no upstream PR or upstream CI result for it.The shared TOML owner retains exact integers when needed and rejects values outside signed Int64. Setup and doctor share positive timeout interpretation; the inline writer also retains exact values without triggering a whole-document fallback. The old setup-only timeout reader is removed. Dependency, tool schema, registration identity, transaction and backup ownership are unchanged.
The frozen final version passed 15 relevant files / 281 tests plus five distinct README checks: 286 total, zero skipped. Check, docs, discovery, actual package verification and explicit pack dry-run passed. A newly installed local tarball passed 30 CLI lifecycle calls across six Codex/Grok layouts, with exact original backups, peers, comments/history spelling and repeat bytes retained. Python 3.12 tomllib independently checked exact values; native Codex 0.160.1 accepted the before/after files in 24 read/list calls. Its own JSON timeout projection is not used as an exact integer oracle.
Independent Standards and Spec reviews both passed on the final frozen bytes. Earlier review failures exposed missing timeout and inline consumers; their actual public regression failures were retained and corrected before commit. No earlier run is added to the final test count.
Limits: native Codex configuration admission only; no native Grok client, full agent/model/server session, Windows/Linux or performance qualification. Local verification and fork publication do not establish human readiness, upstream CI, merge or release.
Publication update (2026-10-18)
The existing fork repair at
5b4049135e11d0f9993949795342ab99120e3e32is now held read-only. I read the complete current diffs of #4935 (a7fc23d52afbdc3bacc1df1a5167c11cd3ff769a) and #4937 (3cbb8793ff9352b33cfc7f81177f250a866e7274): both address the same shared TOML parsing root and exact integer serialization, so I will not open a duplicate PR. Both were OPEN and unmerged when checked. I have not run either foreign head or established full coverage of my additional timeout and comment-preservation controls; the validation above remains bound to my original frozen fork. No upstream PR or CI run was created for my repair.Merged-main follow-up (2026-10-18 02:02 UTC): #4937 was merged as
270bc38f7282f4bead10a652b7b328a96f6d739d, and this issue was closed by the maintainer. I independently read back the merge metadata and actual main production diff. My fork stays read-only; this is the other author's PR merge, not my own upstream PR or an established adoption of my fork. I have not run the merged Int64 workflow or certified full coverage of my extra controls.@XinwangTao commented on GitHub (Oct 18, 2026):
Solid analysis — the root cause (smol-toml defaulting to JS number conversion without integer preservation) matches what I'd expect: 9007199254740993 and 9223372036854775807 both exceed Number.MAX_SAFE_INTEGER, so any naive read rounds them or refuses them, while native Codex reads them losslessly as i64. Rejecting 9223372036854775808 (outside Int64) is the right contract to keep.
The draft fix direction (read client TOML integers losslessly) looks correct. A couple of additional points worth covering in #4935: