mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
[GH-ISSUE #1563] bug(javascript): public Bun module exhausts bounded heap and terminates CLI/MCP #528
Closed
opened 2026-10-15 18:25:53 +00:00 by bsakaguchi
·
10 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#528
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 @N0zoM1z0 on GitHub (Oct 10, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/1563
The public Claude Code 2.1.296 package provides a shareable reproducer for JavaScript semantic-analysis heap exhaustion. This resource-scaling failure is separately reproducible from private bundle regression #1387 and responsiveness #1462. Refs #1065.
Public report: https://x.com/servasyy_ai/status/2108846931183378537 . Official X oEmbed text and video frames were inspected. The video names Claude Code 2.1.296 and reports 2,589 Bun modules / 47.3 MiB extracted contents, but does not show the actual REA version, heap, failing command, or fatal stderr. The reporter's exact crash remains unverified.
Independent artifact:
@anthropic-ai/claude-code-linux-x64@2.1.296; npm SHA512 integrity verified.24972e3bc859fab2b46ed4c1e51f7d6130f06d3bd550811a114640de3370d0de..bunmodule table: 2,589 records, 49647008 source bytes. Text was decoded according to producer encoding; the target was never executed..jsfiles / 45765393 extracted UTF8 bytes; REA inventories 2,351 relevant files. The extensionless Bun entrycliwas preserved and is not claimed analyzed as JavaScript.chunk-kasbfbhj.js, 4762637 bytes, SHA25664516393b8f06dce5b74140781d43b1df4e743de3e283526a533508ca1c58147.Independent results:
a310f190= maina6d6e595+ cooperative scans subsequently merged in #1557.chunk-kasbfbhj.js (1432/2351). Fatal stderr:Reached heap limit Allocation failed - JavaScript heap out of memory. The outer RSS guard did not kill it.analyzeParsedJavaScriptSemanticsSteps. Its exact collector/allocation remains unestablished. This failure precedes final application-result JSON serialization. A CJS parser observer did not intercept the bundled CLI parser and supplies no phase attribution.8c47a9ce4b1349b3ccd50da8f8c587a3080759af: full-directory CLI with old-space 1024 MiB still exits 134 after 201.69 s, family peak 1356345344 bytes. Same largest member at 1432/2351; fatal heap allocation before any JSON output. No outer RSS/host-reserve/timeout stop. The isolated 1024 MiB success does not make this a full-tree workaround.rea-agents@6.3.0artifact (integrity verified, all 33 dependency versions matched exactly): same isolated member/768 MiB old-space also exits 134 after 37.82 s, family peak 1040461824 bytes, fatal heap allocation. This is an independent packaged-artifact reproduction; the original post may have used different limits.Minimal public reproduction (literal offsets apply only to this verified package):
Run the final command from a built REA checkout using Node 24.18.0. Extraction reads packaged bytes only.
Follow-up:
@N0zoM1z0 commented on GitHub (Oct 10, 2026):
Rechecked current main
a97bd5ed297cd9159b3ba1909b94b54ca62b206bagainst the same official Claude Code 2.1.296 member (chunk-kasbfbhj.js, SHA25664516393b8f06dce5b74140781d43b1df4e743de3e283526a533508ca1c58147). The defect remains reproducible.Phase-only instrumentation of compiled diagnostic copies, with the repository runtime left unchanged, narrowed the 768 MiB old-space failure to
collectJavaScriptSemanticObjects: the preceding definitions, member mutations, references, binding values, returns and other derived collectors completed. The process terminated with SIGABRT; the outer RSS/timeout guard did not stop it. This diagnostic is narrower than a public CLI/MCP workflow.A successful 1024 MiB domain run recovered the full IR: 82,461 bindings, 252,716 references, 86,112 call sites and 91,009 object operations. Its complete serialized representation is 256,300,420 bytes, SHA256
c109f190e1fb1719b73705096730bf4876338d191a9a07d88e3f6eaed019df04. The hash was streamed one record at a time, without keeping a giant JSON copy.An allocation experiment replaced only the high-volume call-site, object-operation and return-site ID construction with single joins. It completed the same domain analysis at 768 MiB with the identical full IR byte count and hash. However, the actual CLI still exhausts its heap: current public startup/static analysis has additional live memory, and CLI phase instrumentation now locates that failure earlier in member-mutation analysis. Therefore this improvement alone is not a fix for this issue.
I am testing lazy allocation of the mutation observer's empty collections next. The existing 346 affected source tests pass. Public CLI/MCP recovery and the full extracted directory remain required before any resolution claim. Resource proposal #1565 is still a proposal, rather than an implemented workaround.
@akushonkamen commented on GitHub (Oct 10, 2026):
Confirming the root cause from a local clone of
origin/main@6543405: the semantic resource limits insrc/domain/javascript/javascriptSemanticResourceLimits.ts:7-11only bound single primitive values (256 candidates / 1 MiB JSON bytes) — there is no module-payload-level budget, and the JS semantic main path (src/application/javascript/JavaScriptArtifactGraphBuilder.ts:117) applies limits only as post-hoc accounting, so a multi-MiB bundled module expands inside the host CLI/MCP heap and terminates the whole process. The repo already has the right precedent insrc/javascript/sourceMaps/SourceMapDecoder.ts(independently bounded owned process).Working on a fix now: bound oversized module payloads so the semantic stage degrades to
unknown+ a resource-limit reason instead of killing the process, reusingsemanticResourceLimitUnknown, keeping clear of the general timeout design in #1565 (this is payload-scale isolation only) and not touching the private-bundle regression in #1387.Heads-up on coordination: I saw @N0zoM1z0's allocation experiments — I'm taking the process-boundary/budget lane, not the collector-allocation lane, to avoid stepping on that work.
Disclosure: AI-assisted contribution (Claude), as with other PRs in this repo.
@akushonkamen commented on GitHub (Oct 10, 2026):
Follow-up on my claim above: the payload-bound fix is implemented and verified locally on
fix/1563-js-payload-bound(baseorigin/mainc1b5ccf0); this run's scope ends at a local commit, no PR from this account.Correction: an earlier version of this comment reported the subset as "1023 passed / 6 failed"; the actual observed numbers are below (1018 passed / 6 failed on this branch, 1013 passed / 6 failed on clean
c1b5ccf0).Root cause confirmed at
c1b5ccf0:src/domain/javascript/javascriptSemanticResourceLimits.tsbounds only single primitive values; nothing budgets the module payload itself, so the JS semantic main path (src/application/javascript/JavaScriptArtifactAnalysis.ts→analyzeParsedJavaScriptSemanticsSteps) expands the multi-MiB member inside the host heap.Fix: modules above a 2 MiB (
SEMANTIC_MODULE_SOURCE_BYTES_LIMIT) source-payload budget skip deep semantics with an explicit failed coverage carrying a new namedmodule-source-byteslimit plus a disclosed limitation — static analysis and every smaller module continue unaffected, so the CLI/MCP process survives and coverage stays partial with the bound named, per the issue's follow-up ("preserve actionable resource failure through CLI/MCP"). This deliberately takes the payload-isolation lane and stays out of the collector-allocation lane @N0zoM1z0 is instrumenting and the general timeout design in #1565.Measured on macOS arm64, Node 24.14.0, official package bytes (tarball SHA512 matched the npm registry integrity; member SHA256
64516393…verified; target never executed):NODE_OPTIONS=--max-old-space-size=768isolated member → exit 134,FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory, zero output (matches the issue).coverage.status=partialwithlimits=[{name: javascript_semantic_module_source_bytes, value: 2097152, unit: bytes}]and the payload-budget limitation; the member's staticparse_statusstayscomplete.Tests: 5 new domain/services tests pass.
npx vitest run --project domain --project services src/domain/javascript src/application/javascriptobserved 1018 passed / 6 failed (1024 tests, 59 files) on this branch and 1013 passed / 6 failed (1019 tests, 57 files) on cleanc1b5ccf0(temporary worktree at that commit); the same 6 tests fail in both runs, so they predate this change. The adapters JS+artifacts slice (npx vitest run --project adapters src/artifacts src/javascript) passes 107/107; typecheck, oxlint, oxfmt, module boundaries andgit diff --checkclean. Disclosure: AI-assisted (Claude).@N0zoM1z0 commented on GitHub (Oct 10, 2026):
Allocation work is now tracked in draft #1601. This is a partial improvement; #1563 is still reproducible and should remain open.
I integrated main
603d04eeand verified the resulting runtimee00c2bf123b6e006c753895fb084cd6f287a8b11on Linux x64, Node 24.18.0/npm 11.16.0, CPUs 13/15, nice 10, one heavy lane, a 2304 MiB process-family RSS guard, and 2 GiB host reserve:chunk-kasbfbhj.jsproduces the same complete 256,300,420-byte semantic IR at 768 MiB old-space: SHA256c109f190e1fb1719b73705096730bf4876338d191a9a07d88e3f6eaed019df04. Peak family RSS: 1,036,480,512 bytes. This checks semantic preservation through the production domain path, not a full CLI success at that heap size.The PR flattens high-volume ID construction, lazily materializes mutation-observer collections, and reuses the existing AST parent index for lexical scope lookup. It adds no source-size cutoff, result cap, or skipped facts. Its CI remains pending/blocked by current main regressions, including fixture corrections already in #1603; it has not been merged.
For the proposed fixed 2 MiB source cutoff, please keep its coverage tradeoff explicit: it would skip semantics for this 4.76 MB member even though the allocation candidate now completes its full IR at 768 MiB in the production domain lane. Source length alone does not measure retained semantic representation. That proposal is distinct from a supervised process boundary that can preserve static observations, report a real resource failure, and keep the CLI/MCP host alive. I have not independently verified the unpublished cutoff patch or an isolation implementation.
@akushonkamen commented on GitHub (Oct 10, 2026):
Opened #1610 with the bounded fix: modules above a 2 MiB source-payload budget now degrade to explicit failed coverage (named
javascript_semantic_module_source_byteslimit + disclosed limitation) instead of exhausting the heap; the process survives and coverage stays partial. Rebased on current main; red (exit 134) re-verified on main11e3fae6, green (exit 0, partial coverage, static parse complete) at 768 MiB and 2048 MiB.🤖 Generated with Claude Code
@N0zoM1z0 commented on GitHub (Oct 10, 2026):
Latest integration check: #1601 at
03994825c118ced5eef90d62d5757c49d76147bdpreserves the independent ancestry-cache follow-up and main's Android cleanup/bundled-runtime relationship repairs. The full-directory OOM remains reproducible, so #1563 stays open.The real 4,762,637-byte member still completes production domain semantics at 768 MiB old-space with the identical full 256,300,420-byte IR, SHA256
c109f190e1fb1719b73705096730bf4876338d191a9a07d88e3f6eaed019df04. The actual pinned-SDK MCP server at 1024 MiB passes result retention after the transport constraint, summary/page/exact node selection/one-node trace, close/stale-reference and subsequent small analysis/ping. The 170-tool catalog is complete, input bytes are unchanged, and retained Evidence isev_c11a23f39bc7f3f371eeea1c5754dbc2d3923b124b2ac83562c73112f27c87a9. Graph semantic coverage still reports the existing partial ceiling.The complete 2,351-relevant-file extracted-directory CLI at the same head and 1024 MiB old-space still reaches fatal heap exhaustion at the same member (1432/2351): exit 134, 166.14 seconds, 1,355,161,600-byte peak process-family RSS, zero CLI stdout. The external guard did not stop it. The narrower successful workflows therefore do not establish a full fix, and these noisy single runs do not establish a general speedup.
Independent current-integration checks: 458 selected semantic tests, including the ancestry-read growth regression, pass; 33 JADX subprocess-boundary and 11 runtime-scope domain/public-CLI cases pass after integrating the relevant main repairs. Build/typecheck/lint pass. Final-head CI is running; the PR has not been merged. Linux x64, Node 24.18.0, CPUs 13/15, nice 10, one heavy lane, 2304 MiB family-RSS guard and 2 GiB host reserve. No new Windows/macOS memory or real JADX/Hopper/Ghidra coverage is claimed.
@N0zoM1z0 commented on GitHub (Oct 10, 2026):
I independently built and reviewed #1610 at exact head
808ded32c4b18691365ca5fcc54c090621c92c25; the original complete directory still kills both public workflows, so #1563 remains unresolved.chunk-kasbfbhj.js(1432/2351), fatal heap exhaustion, zero stdout, 170.64 seconds. Peak family RSS 1,165,242,368 bytes; no external guard stop.CONNECTION_CLOSEDafter 174.60 seconds. Subsequent ping and a small analysis both reportNot connected. Server 768 MiB/parent 512 MiB; peak family RSS 1,411,112,960 bytes; no guard stop. Culprit SHA unchanged.function f(){return 1;}\nfollowed byf();repeated 400000 times; SHA256fd861fc0c984035c6c9a41df7bf389f6e82a69404f7bf91323159e0aa56f6efe. This is a distinct synthetic counterexample, not the tweet's target.The check is after parsing/classification/static analysis. Full evidence and the blocking review: https://github.com/morluto/rea/pull/1610#pullrequestreview-5480296727 . A genuinely bounded supervised boundary/admission treatment is still needed to preserve collected facts and keep the host alive. No claim is made for higher-heap full-tree success, Windows/macOS or private #1387.
#1601 remains a partial allocation improvement, unmerged because final-head CI has maintenance-boundary failures. I reproduced those failures and am correcting the stale browser/uninstall/diagnostic tests separately; firmware recovery is already in #1616. #740 stays deferred.
@N0zoM1z0 commented on GitHub (Oct 10, 2026):
The complete original directory remains reproducible on the recently refreshed main production sources
dce81ca400eda369fe65b3de6e5a9aef4dfdaa50, including the graph/factory and process optimizations.The runtime was freshly rebuilt in test-only #1617 at
c2e2ed9aa2469b7ff8225018fddc8c6e071ebe5a;git diff --name-only MAIN HEAD -- src bridge scripts package.json package-lock.jsonreturned no paths. This records production-source equivalence, not byte-for-byte package/build-metadata equivalence. Neither #1601's allocation changes nor #1610's cutoff are included.Actual full-directory CLI, 2351 relevant files, Linux x64/Node 24.18.0, 1024 MiB old-space: exit 134, fatal heap exhaustion at
chunk-kasbfbhj.js(1432/2351), zero stdout, 207.93 seconds. Peak family RSS 1,339,428,864 bytes; the external RSS/time guard did not stop it. All 2589 extracted files were independently rehashed afterwards: zero mismatches. No general throughput comparison follows from this single run.The PR1610 review separately establishes full original CLI/MCP server death at 768 MiB and the below-cutoff synthetic counterexample: https://github.com/morluto/rea/pull/1610#pullrequestreview-5480296727 . #1563 remains open; a reliable analysis resource boundary has not yet landed.
@N0zoM1z0 commented on GitHub (Oct 10, 2026):
#1601 is now merged as
b28c0337fcb3f34533ffb61a8220e802eb6973e7. All 20 checks passed at its final heada2255f49, including the complete CI run and real JavaScript recovery. The complete-directory memory failure remains reproducible after that merge.Freshly built main
b28c0337, original 2,351-file directory, Linux x64 / Node 24.18.0, two CPUs / reduced priority / 2,304 MiB family RSS guard:chunk-kasbfbhj.js(1432/2351), zero stdout, 165.38 seconds. Sampled peak family RSS: 1,367,728,128 bytes.Not connected. Sampled peak family RSS: 1,427,992,576 bytes.The resource boundary also needs to account for returned representations. A separate file-local diagnostic at
a2255f49, using the production parser/semantic/projector with empty application bindings, measured the same member:c109f190e1fb1719b73705096730bf4876338d191a9a07d88e3f6eaed019df04.#1563 and #1565 remain open. A source-length cutoff does not establish the required parsing, semantic expansion, accumulated-result, transfer and parent-recovery bounds. The blocking #1610 review remains applicable: https://github.com/morluto/rea/pull/1610#pullrequestreview-5480296727 .
A further implementation checkpoint now validates file-local projection and record transfer against the real original source. The production codec transferred 151,019,319 bytes in 217,400 records, including the 9,175,244-byte module projection. An independent decoder configured with a 512 MiB V8 old-space limit validated the records, retained the module facts through graph sealing, and reproduced the frozen inline graph commitment with a realm-local immutable proof. Producer and decoder exited normally; both process cleanups were verified, their temporary record files were removed, and the original source digest was unchanged.
The affected CLI/filesystem/composition lanes passed 83 tests. A stronger decoded-facts-to-application-graph regression also passes, alongside typecheck, lint, Knip and architecture guards. This establishes the file-transfer boundary; it does not establish complete-tree memory bounds or a shipped CLI/MCP recovery fix. Persistent process supervision, accumulated-result admission, and application-visible static facts on worker failure are still being connected. #1563 and #1565 remain open.
@N0zoM1z0 commented on GitHub (Oct 10, 2026):
The owned-worker fix is ready for review in #1651; it is not merged or released yet.
The complete extracted feedback directory now finishes under 768 MiB parent/worker heaps: 2346 JavaScript files parsed, all 2589 input hashes unchanged, no parent heap failure or leftover owned runtime roots. Graph coverage remains partial where deeper projection does not fit. The full analysis is retained when the default MCP response exceeds its existing transport budget; summary/page/item/trace, close/stale and a subsequent small analysis all passed. Sampled process-family peak was 1.70 GiB.
A separate 1.6 MB dense source actually exhausted its 512 MiB worker during semantic extraction. Its completed static observations survived and the MCP parent continued accepting work. Real Notion ASAR also passed with explicit partial coverage and 98 control pings (maximum 13.31 ms). CLI cancellation preserved the first completed source in full JSON partial Evidence. The production package verifier and 154 focused tests passed; native Windows install testing and exact-head CI are still running.