mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
Closed
opened 2026-11-01 21:45:28 +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#7114
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/6005
Author: @morluto
Created: 10/21/2026
Status: ✅ Merged
Merged: 10/21/2026
Merged by: @morluto
Base:
main← Head:cursor/mcp-response-startup-ceilings-8a8c📝 Commits (6)
3e279a6fix(mcp): name response-byte and startup ceilings in recovery5808b77fix(mcp): distinguish string ceilings and keep dossier recovery13de9bcmerge: integrate main into MCP response-ceiling recovery33923c5fix(mcp): keep retained SDK errors inside the text budget30c6b4bfix(mcp): keep export advice when a summary exceeds the response budget4e2671bstyle(mcp): format the SDK diagnostic preview return📊 Changes
18 files changed (+815 additions, -55 deletions)
View changed files
📝
docs/mcp-contracts.md(+8 -5)📝
scripts/lib/mcp-startup-probe.d.mts(+7 -0)📝
scripts/lib/mcp-startup-probe.mjs(+71 -14)📝
src/config/mcpResponseBudget.ts(+25 -1)📝
src/domain/analysisErrorPresentation.ts(+8 -1)📝
src/domain/jsonValue.ts(+1 -1)📝
src/mcpDoctor.ts(+32 -6)📝
src/mcpStartupPolicy.ts(+16 -0)📝
src/server/EvidenceMcpServer.ts(+77 -11)📝
src/server/toolResult.ts(+77 -10)📝
src/server/toolResultEncoding.ts(+5 -1)📝
tests/boundary/mcp/analysisViewMcp.test.ts(+3 -0)📝
tests/boundary/mcp/largeToolResult.test.ts(+119 -2)📝
tests/boundary/mcp/mcpDoctor.test.ts(+67 -1)📝
tests/boundary/mcp/mcpStartupPolicy.test.ts(+189 -0)📝
tests/boundary/mcp/sessionMcp.test.ts(+1 -1)📝
tests/conformance/contracts/mcpResponseBudget.test.ts(+37 -1)➕
tests/fixtures/mcpStartupProbeChild.mjs(+72 -0)📄 Description
Summary
Refs #5910 (parent #5808). When the MCP stdio response budget is hit, recovery now names
REA_MCP_MAX_RESPONSE_BYTES, the effective byte value, the 10485760 byte (10 MiB) floor, and that a change requires restarting the REA process. It names REA's reserved single-string limit (MAX_STRING_LENGTH - 1024) separately from Node'sMAX_STRING_LENGTH, and says this setting raises neither.An oversized complete
get_evidence_bundlestill tells the agent to calldetail: summary, theninspect_analysis_view. An oversized summary does not repeat that step. It still namesexport_evidence_bundle, which writes the retained bundle outside one MCP frame. That remains the MCP recovery path when the overflow is a string-length limit a larger byte budget cannot raise.Fixed MCP startup phase budgets are named when those deadlines fire: value, units, and no runtime override. Codex
startup_timeout_secof 30 seconds stays client guidance on the doctor path. REA does not enforce that figure as the doctor deadline. Abinary_sessiontimeout after the catalog uses that same sentence.Oversized SDK validation recovery still returns parseable JSON. When a diagnostic preview of quotes or backslashes would expand past the text budget, only that preview is shortened. The error keeps
reported_limits.evidence_reference.kind: "retained-evidence"when recording succeeds, and the complete diagnostic stays in retained Evidence.Problem and expected behavior
A response that exceeds the stdio budget said to use a larger MCP response budget without naming
REA_MCP_MAX_RESPONSE_BYTES, the floor, or restart. The string-ceiling branch reported REA's reserved limit as Node's ceiling. Oversized complete dossier delivery replaced thedetail: summarynext step with generic CLI JSON guidance.rea mcp doctorreported an expired deadline without the effective milliseconds when the deadline fired duringbinary_sessionafter initialize and the catalog. Packaged startup checks for initialize (15000 ms), tools/list (5000 ms), and first catalog (20000 ms) failed without those values on the probe path.A quoted SDK validation diagnostic (
"\\repeated) made the replacement error's text encoding fail. The transport then removed the structured carrier and sent emptycontent, so the client could not read the retained-evidence reference.An oversized
get_evidence_bundlesummary told MCP-only callers to use CLI JSON.export_evidence_bundlestill works on the same connection, and a string-length overflow is not fixed by raising the byte budget.Change and scope
Wording and projection, plus fitting the SDK diagnostic preview to the MCP text budget. Numeric ceilings are unchanged and no new setting was added.
ToolResultDelivery) and oversized-error replacement (EvidenceMcpServer.recoverError) share one projection. Receive-buffer text names the effectiveREA_MCP_MAX_RESPONSE_BYTESvalue. String-ceiling text names REA's reserved limit and Node's actual ceiling, and says the env var does not raise either. A completeget_evidence_bundlekeeps thedetail: summarydiscovery sentence. An oversized summary drops only that sentence and keeps the sameexport_evidence_bundleclause. Paging or complete CLI JSON stays the next step for the other overflow paths.rea mcp doctorappends the fixed doctor deadline when the deadline, an SDK request timeout, or an abort fires, including abinary_sessionrejection after the catalog. The effective milliseconds are the applied budget (policy default 30000 ms).diagnostic_previewexpands past the text budget under JSON escaping, only that preview is shortened (diagnostic_truncated: true). The wire error remains parseable JSON and keeps the retained-evidence reference.Moonshot's 13312 byte schema budget and the compact schema depth of 10 do not fail the call; compact presentation reduces the advertisement. No new error was added for them.
Analysis-view, environment, and HTTP admission caps in the same inventory theme were left unchanged. They either truncate with an existing limitation or fail through a mixed refusal, and this PR does not spray wording into those directories.
Follow the contribution scope.
Unresolved scope, authority, side effects, or required verification block
integration. Link the required maintainer scope decision for new providers or
capabilities involving target execution, injection, mutation, or protection
recovery; ordinary fixes within existing boundaries may state "not applicable".
Draft PRs may leave the scope decision pending and the readiness and merge checklists
unchecked. Maintainers can help resolve open questions.
Not applicable. This is recovery text for existing MCP budgets. It does not add a provider, target execution, injection, mutation, or protection recovery.
Contract and boundary impact
src/server/toolResult.ts,src/server/EvidenceMcpServer.ts).src/config/mcpResponseBudget.tsowns the stdio budget facts.src/server/toolResultEncoding.tsowns the reserved string limit versus Node's ceiling.src/mcpStartupPolicy.tsandsrc/mcpDoctor.tsown startup-deadline recovery. The packaged probe repeats that sentence because it cannot import the TypeScript module.src/domain/analysisErrorPresentation.tsowns the shared discovery and export sentences.docs/mcp-contracts.mdnow says the response-byte setting is read at process start and does not raise the reserved string limit or Node's ceiling.docs/public/product-catalog.json), package, or installation impact (CI generates and validates ignored catalogs andskills/; edit authored instructions in.agents/skills/reverse-engineer-anything/and never commit build outputs): none. Skill text was not changed.Expected effects (check known effects; use documentation-only on its own).
Unchecked items do not establish absence; leave uncertainties visible.
Evidence and regression coverage
tests/conformance/contracts/mcpResponseBudget.test.ts,tests/boundary/mcp/largeToolResult.test.ts,tests/boundary/mcp/mcpDoctor.test.ts,tests/boundary/mcp/mcpStartupPolicy.test.ts,tests/boundary/mcp/analysisViewMcp.test.ts, plus the existing oversized-error delivery test. The quoted SDK diagnostic case insrc/server/EvidenceMcpServer.test.tsis the regression for empty error content. The summary-overflow case now requiresexport_evidence_bundleand rejects a repeateddetail: summary.get_evidence_bundle and detail: summaryand received only the generic CLI JSON sentence. String-ceiling text reportedMCP_RESULT_STRING_LIMITas Node's ceiling. The doctor saved a plainbinary_sessionerror when that call passed the deadline after the catalog. Source tests on13de9bca9failed both protocol revisions inexpectEscapedSdkDiagnosticRetentionbecausecontentwas empty. An oversized summary's remediation stopped at CLI JSON (discussion_r4339174785).get_evidence_bundle and detail: summaryandREA's reserved single-string limit of <MCP_RESULT_STRING_LIMIT>plusNode's single-string ceiling of <MAX_STRING_LENGTH>. An oversized summary remediation includesexport_evidence_bundleandcaller-selected path, and does not repeatdetail: summary. The doctor hang fixture (applied deadline 60000 ms) includes60000 ms,no runtime override, andCodex startup_timeout_sec of 30 seconds is client guidance. Abinary_sessiontimeout after the catalog uses that same 60000 ms sentence. A quote-heavy SDK validation failure returns aresource_constraintJSON text body withevidence_reference.kindretained-evidence.MAX_STRING_LENGTH; summary overflow uses the same export sentence for both constraints, and the string-ceiling facts are covered by the existing projection test.For evidence-bearing changes:
Validation performed
origin/mainatd8a9673fc. The only conflict wassrc/domain/analysisErrorPresentation.ts: fixed-allowance recovery stays first, and transport overflow still uses thedetail: summarydiscovery sentence.npm run check:fastafter the merge (typecheck and lint succeeded).npx vitest run tests/conformance/contracts/mcpResponseBudget.test.ts— 7 passed.npx vitest run tests/boundary/mcp/largeToolResult.test.ts— 8 passed.npx vitest run tests/boundary/mcp/mcpStartupPolicy.test.ts— 10 passed, including probe phase failures, the first-catalog overrun, and unrelated failures.npx vitest run tests/boundary/mcp/mcpDoctor.test.ts -t "request-flow deadline|child lifecycle"— startup deadline,binary_sessiondeadline, and unrelated request-flow failure passed.npx vitest run tests/boundary/mcp/analysisViewMcp.test.ts— 21 passed, including the oversized dossier discovery case.src/domain/fixedAllowanceRemediation.test.ts(8) andtests/boundary/providers/fixedAllowanceRecovery.test.ts(2) passed after the conflict resolution.33923c55c:npm run check:fast— typecheck and lint succeeded.npm run test:focused -- src/server/EvidenceMcpServer.test.ts tests/boundary/mcp/largeToolResult.test.ts tests/boundary/mcp/analysisViewMcp.test.ts tests/conformance/contracts/mcpResponseBudget.test.ts— 40 passed, including both SDK validation retention revisions.30c6b4b6c:npm run check:fast— typecheck and lint succeeded.npm run test:local -- src/server/EvidenceMcpServer.test.ts— 4 passed, including both public stdio SDK revisions.npm run test:local -- tests/conformance/contracts/mcpResponseBudget.test.ts src/server/toolResultEncoding.test.ts— 17 passed.npm run test:focused -- tests/boundary/mcp/largeToolResult.test.ts tests/boundary/mcp/toolResult.test.ts tests/boundary/mcp/analysisViewMcp.test.ts— 45 passed.largeToolResultwas re-run after the export assertion (8 passed).30c6b4b6cfailedoxfmt --checkinsrc/server/EvidenceMcpServer.ts(the fitted-preview return).CI requiredthen failed becausestaticwas a failure and the lanes that need it were skipped.4e2671b9ewraps that ternary. Behavior is unchanged.4e2671b9e:npm run format:check— all matched files use the correct format.npm run check:fast— typecheck and lint succeeded.npm run test:focused -- src/server/EvidenceMcpServer.test.ts— 4 passed.Real provider workflows were not required. These paths are MCP delivery, doctor, and startup-probe projection.
Compatibility, safety, and release
MCP_RESULT_STRING_LIMITas Node's ceiling will see both numbers. An oversized summary now namesexport_evidence_bundleinstead of CLI JSON alone. Limits and configuration parsing are unchanged. A quote-heavy SDK diagnostic may now include a shorterdiagnostic_previewthan 256 characters;diagnostic_truncatedstays true and the retained record still has the original error.Author readiness
Human owner: @morluto
Before merge
type(scope): outcome.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.