[GH-ISSUE #6109] [Bug] JavaScript checkpoint refusal recommends unavailable MCP transport recovery #3741

Closed
opened 2026-10-31 00:43:33 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @coygeek on GitHub (Oct 21, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/6109

Before submitting

  • I searched the open and closed issues for a related report.
  • I removed credentials, tokens, private paths, and sensitive target data.

Area

Evidence, artifacts, or reconstruction

Observed behavior

The built analyze-javascript-application command returns partial application Evidence whose per-file analysis_failure recommends retrieving retained records or using complete CLI JSON after the owned worker refuses its fixed 8 MiB static checkpoint. Complete CLI JSON was already the interface used. The refused static checkpoint is absent; the error has no evidence_reference.

The real worker measured 8,389,192 checkpoint bytes against an 8,388,608-byte limit. The command exited 0 because the surrounding application analysis returned partial Evidence. This report concerns the inapplicable recovery action, not the intentional size refusal.

Reproduction

Run from the built source checkout with the repository-pinned Node.js. Create a caller-selected application directory and generate index.js with Python 3:

from pathlib import Path
import json, sys
Path(sys.argv[1]).write_text(
    'fetch(' + json.dumps('https://example.test/' + 'a' * (8 * 1024 * 1024)) + ');'
)

Pass the desired index.js filename as the script argument, then run:

node scripts/rea.mjs analyze-javascript-application "$app" --max-heap-mb 512 --json

This equivalent generated input and command were executed. Inspect normalized_result.graph.nodes[*].observations[*].properties.analysis_failure. A focused production-worker test also reproduced the same refusal after a small fetch("https://example.test/") control succeeded. No analyzer or filesystem error was simulated for the checkpoint refusal.

Expected behavior

Keep resource_constraint and the safe refusal. Identify the fixed checkpoint allowance and explain which observations were retained. Do not imply that another delivery channel or a retained-record lookup can produce the missing per-file checkpoint.

The MCP transport contract describes complete retained Evidence and an exact reference for ordinary response overflow. That recovery contract does not apply to a checkpoint refused before the parent receives it. The existing fixed report allowance helper explicitly distinguishes these cases.

Impact and scope

P2: callers receive an ineffective recovery path for a deterministic internal representation refusal. The failure reason and byte limits are present, so a caller can identify the actual limit manually. Selecting other, smaller complete sources can avoid the affected input where it preserves the desired analysis. No successful reconstruction of the refused facts, corruption or security failure was observed.

Only the checkpoint branch was executed. Per-record and complete-transfer errors share the same reconstruction by source inspection; their runtime behavior was not replayed.

REA version

rea-agents 6.7.0; source revision 52415975942a4b9c53a817915b313ccc404f280e.

Runtime and platform

Node.js v24.18.0 (repository pin); macOS 27.0.1 arm64. Focused observation test used Vitest 5.0.3. The built CLI and real owned JavaScript analyzer both ran.

Target and artifact context

Generated directory containing one JavaScript fetch call with an 8 MiB URL suffix; application code is parsed as inert source.

Interface

CLI

Earliest failure stage

Transport or result projection

Relevant output or evidence

Observed per-file error, with unrelated worker accounting omitted:

{
  "code": "resource_constraint",
  "category": "resource_constraint",
  "message": "JavaScript static checkpoint exceeds its complete-fact byte budget",
  "retryable": false,
  "remediation": {
    "action": "Discover retained records with get_evidence_bundle and detail: summary, then inspect compatible records through inspect_analysis_view using an exact Evidence reference. Export complete retained session evidence through export_evidence_bundle to a caller-selected path, or use complete CLI JSON output. The connection remains usable."
  },
  "details": {
    "operation": "analyze_javascript_application",
    "resource": "transport",
    "reason": "JavaScript static checkpoint exceeds its complete-fact byte budget",
    "reported_limits": {
      "checkpoint_bytes": 8389192,
      "checkpoint_limit_bytes": 8388608
    }
  }
}

No evidence_reference was present. Application Evidence existed, but contained the file failure rather than the refused static facts.

Typed outcome or recovery expected

Producer-specific fixed-checkpoint recovery on the existing non-retryable resource error. State that complete CLI JSON does not increase this allowance and that retrieving partial application Evidence cannot reconstruct refused facts.

Analysis or suspected cause

The worker checkpoint guard uses resource transport. The parent protocol reconstruction supplies no remediation, so shared transport presentation selects MCP response-overflow guidance. Application projection exposes that error as a per-file failure. These are source-derived explanations of the executed result.

Additional context

Related #3538 concerns a parent-memory admission branch. #5910 discusses worker-heap controls and MCP response limits; #5631 covers other capture producers. Their concrete producers and required changes differ from this pre-checkpoint transport failure.

The total transfer-file allowance can scale with admitted parent capacity; this report does not claim all transfer limits are fixed or request larger limits. Upstream main aa51e4343963fdd0b97ec2ebdc3c41579fd9cb38 was fetched; the cited failure and reconstruction lines were unchanged. That newer revision was not executed. No last-known-good version or fix is established.

Originally created by @coygeek on GitHub (Oct 21, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/6109 ### Before submitting - [x] I searched the open and closed issues for a related report. - [x] I removed credentials, tokens, private paths, and sensitive target data. ### Area Evidence, artifacts, or reconstruction ### Observed behavior The built `analyze-javascript-application` command returns partial application Evidence whose per-file `analysis_failure` recommends retrieving retained records or using complete CLI JSON after the owned worker refuses its fixed 8 MiB static checkpoint. Complete CLI JSON was already the interface used. The refused static checkpoint is absent; the error has no `evidence_reference`. The real worker measured 8,389,192 checkpoint bytes against an 8,388,608-byte limit. The command exited 0 because the surrounding application analysis returned partial Evidence. This report concerns the inapplicable recovery action, not the intentional size refusal. ### Reproduction Run from the built source checkout with the repository-pinned Node.js. Create a caller-selected application directory and generate `index.js` with Python 3: ```python from pathlib import Path import json, sys Path(sys.argv[1]).write_text( 'fetch(' + json.dumps('https://example.test/' + 'a' * (8 * 1024 * 1024)) + ');' ) ``` Pass the desired `index.js` filename as the script argument, then run: ```sh node scripts/rea.mjs analyze-javascript-application "$app" --max-heap-mb 512 --json ``` This equivalent generated input and command were executed. Inspect `normalized_result.graph.nodes[*].observations[*].properties.analysis_failure`. A focused production-worker test also reproduced the same refusal after a small `fetch("https://example.test/")` control succeeded. No analyzer or filesystem error was simulated for the checkpoint refusal. ### Expected behavior Keep `resource_constraint` and the safe refusal. Identify the fixed checkpoint allowance and explain which observations were retained. Do not imply that another delivery channel or a retained-record lookup can produce the missing per-file checkpoint. The [MCP transport contract](https://github.com/morluto/rea/blob/52415975942a4b9c53a817915b313ccc404f280e/docs/mcp-contracts.md#L130-L142) describes complete retained Evidence and an exact reference for ordinary response overflow. That recovery contract does not apply to a checkpoint refused before the parent receives it. The existing [fixed report allowance helper](https://github.com/morluto/rea/blob/52415975942a4b9c53a817915b313ccc404f280e/src/domain/fixedAllowanceRemediation.ts#L17-L31) explicitly distinguishes these cases. ### Impact and scope P2: callers receive an ineffective recovery path for a deterministic internal representation refusal. The failure reason and byte limits are present, so a caller can identify the actual limit manually. Selecting other, smaller complete sources can avoid the affected input where it preserves the desired analysis. No successful reconstruction of the refused facts, corruption or security failure was observed. Only the checkpoint branch was executed. Per-record and complete-transfer errors share the same reconstruction by source inspection; their runtime behavior was not replayed. ### REA version rea-agents 6.7.0; source revision `52415975942a4b9c53a817915b313ccc404f280e`. ### Runtime and platform Node.js v24.18.0 (repository pin); macOS 27.0.1 arm64. Focused observation test used Vitest 5.0.3. The built CLI and real owned JavaScript analyzer both ran. ### Target and artifact context Generated directory containing one JavaScript fetch call with an 8 MiB URL suffix; application code is parsed as inert source. ### Interface CLI ### Earliest failure stage Transport or result projection ### Relevant output or evidence Observed per-file error, with unrelated worker accounting omitted: ```json { "code": "resource_constraint", "category": "resource_constraint", "message": "JavaScript static checkpoint exceeds its complete-fact byte budget", "retryable": false, "remediation": { "action": "Discover retained records with get_evidence_bundle and detail: summary, then inspect compatible records through inspect_analysis_view using an exact Evidence reference. Export complete retained session evidence through export_evidence_bundle to a caller-selected path, or use complete CLI JSON output. The connection remains usable." }, "details": { "operation": "analyze_javascript_application", "resource": "transport", "reason": "JavaScript static checkpoint exceeds its complete-fact byte budget", "reported_limits": { "checkpoint_bytes": 8389192, "checkpoint_limit_bytes": 8388608 } } } ``` No `evidence_reference` was present. Application Evidence existed, but contained the file failure rather than the refused static facts. ### Typed outcome or recovery expected Producer-specific fixed-checkpoint recovery on the existing non-retryable resource error. State that complete CLI JSON does not increase this allowance and that retrieving partial application Evidence cannot reconstruct refused facts. ### Analysis or suspected cause The [worker checkpoint guard](https://github.com/morluto/rea/blob/52415975942a4b9c53a817915b313ccc404f280e/src/javascript/analysis/JavaScriptAnalysisWorkerServer.ts#L118-L140) uses resource `transport`. The [parent protocol reconstruction](https://github.com/morluto/rea/blob/52415975942a4b9c53a817915b313ccc404f280e/src/javascript/analysis/JavaScriptAnalysisWorker.ts#L988-L1004) supplies no remediation, so [shared transport presentation](https://github.com/morluto/rea/blob/52415975942a4b9c53a817915b313ccc404f280e/src/domain/analysisErrorPresentation.ts#L67-L79) selects MCP response-overflow guidance. [Application projection](https://github.com/morluto/rea/blob/52415975942a4b9c53a817915b313ccc404f280e/src/application/javascript/JavaScriptArtifactAnalysis.ts#L177-L200) exposes that error as a per-file failure. These are source-derived explanations of the executed result. ### Additional context Related #3538 concerns a parent-memory admission branch. #5910 discusses worker-heap controls and MCP response limits; #5631 covers other capture producers. Their concrete producers and required changes differ from this pre-checkpoint transport failure. The total transfer-file allowance can scale with admitted parent capacity; this report does not claim all transfer limits are fixed or request larger limits. Upstream main `aa51e4343963fdd0b97ec2ebdc3c41579fd9cb38` was fetched; the cited failure and reconstruction lines were unchanged. That newer revision was not executed. No last-known-good version or fix is established.
Sign in to join this conversation.
No milestone
No project
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#3741
No description provided.