mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
Closed
opened 2026-11-01 21:46:38 +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#7270
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/6304
Author: @morluto
Created: 10/22/2026
Status: ✅ Merged
Merged: 10/22/2026
Merged by: @morluto
Base:
main← Head:cursor/mcp-startup-budgets-d806📝 Commits (3)
9256f1dfeat(mcp): make MCP startup phase budgets configurable40a302efix(mcp): enforce the first-catalog budget while phases are pendingaf924caMerge origin/main into cursor/mcp-startup-budgets-d806📊 Changes
18 files changed (+856 additions, -141 deletions)
View changed files
📝
docs/client-configuration.md(+13 -1)📝
scripts/lib/mcp-startup-probe.d.mts(+8 -12)📝
scripts/lib/mcp-startup-probe.mjs(+100 -43)📝
scripts/verify-package-mcp.mjs(+2 -2)📝
scripts/verify-package.mjs(+3 -3)📝
src/application/Doctor.test.ts(+4 -0)📝
src/application/SetupRegistrationEnvironment.ts(+4 -0)📝
src/config/environment.ts(+10 -0)➕
src/config/mcpStartupBudgets.test.ts(+117 -0)➕
src/config/mcpStartupBudgets.ts(+216 -0)📝
src/mcpDoctor.ts(+63 -10)📝
src/mcpStartupPolicy.ts(+31 -18)📝
src/setupEnvironment.test.ts(+14 -0)📝
tests/acceptance/setup/registrationRuntimeEnvironmentCli.test.ts(+12 -0)📝
tests/boundary/filesystem/clientConfigurationEnvironment.test.ts(+20 -0)📝
tests/boundary/mcp/mcpDoctor.test.ts(+72 -5)📝
tests/boundary/mcp/mcpStartupPolicy.test.ts(+162 -46)📝
tests/fixtures/mcpStartupProbeChild.mjs(+5 -1)📄 Description
Summary
Part of #6176. The MCP initialize, tools/list, first-catalog, and doctor phase budgets are now named settings. Unset behavior stays 15000, 5000, 20000, and 30000 ms. Codex's 30 second startup figure stays client guidance.
Problem and expected behavior
Those four phase budgets were fixed, and recovery said this release has no runtime override. Callers need named settings whose defaults are those constants. Invalid values must fail configuration and name the setting. They must not fall back to the default.
Unset behavior stays the current constants. A value from 1 to 2147483647 ms is the effective budget. Any other value fails startup, doctor,
rea mcp doctor, and client-registration configuration and names the setting. Setup copies a caller-selected value throughSELECTED_REGISTRATION_SETTINGS.Recovery names the setting, the effective milliseconds, the source (
defaultorsetting), the default, the floor, the maximum, and how to change it. Doctor recovery still says Codexstartup_timeout_secof 30 seconds is client guidance and that REA does not enforce that figure as the doctor deadline.REA_MCP_FIRST_CATALOG_BUDGET_MSbounds the whole initialize plus tools/list startup, including while either request is still pending. A value lower than a phase budget must stop that pending request. It must not wait until the longer phase timeout returns.Change and scope
src/config/mcpStartupBudgets.tsowns the four settings. Startup (parseEnvironment/parseConfig) and doctor use that schema.rea mcp doctorresolves the same parser from its selected environment before it starts a child. An invalid setting returns an unhealthy check named for that setting and does not launch the child.The packaged startup probe reads
resolveMcpStartupProbePolicyfrom the environment it is given, so a selected value is not ignored. The probe's recovery sentence is duplicated inscripts/lib/mcp-startup-probe.mjsbecause that script cannot import the TypeScript module; a test requires the two sentences to be identical. A synthetic probe budget carries its own source, so a 200 ms test budget issource settingand still names the real default.The probe measures one first-catalog deadline from the same instant as the phase durations. Each in-flight initialize or tools/list request uses the shorter of that phase's budget and the time still left. The recovery names that shorter bound. The deadline also rejects the probe when the SDK timeout has not started yet, and the existing close path stops the child. A completed run still fails when the measured total exceeds the first-catalog budget. The module profiler is unchanged: it has no first-catalog budget.
This branch includes current
main, includingREA_REGEX_WORKER_HEAP_REQUEST_MIB. Registration, environment parsing, and the related tests keep that setting together with the four phase budgets. Doctor timeout recovery still uses the phase budget, and it is attached only for an owned abort or an SDK request timeout.The floor is 1 ms. The maximum is 2147483647 ms, the largest delay Node schedules exactly. A larger
setTimeoutor SDK timeout is clamped to 1 ms, so it is refused. Zero, negative, non-decimal, and out-of-range values areconfiguration_invalid.codexStartupTimeoutSeconds(30),kimiStartupTimeoutMs(30000),toolOperationHeadroomMs(120000), anddoctorStderrBytes(64 KiB) stay fixed. They are not settings.Follow the contribution scope. This is configuration of existing MCP startup admissions. It does not add a provider or a capability that executes, injects, mutates, or recovers a target. Maintainer scope decision: not applicable. The product decision to make these ceilings settings is recorded in #6176.
Contract and boundary impact
src/config/mcpStartupBudgets.tsparses the settings;parseEnvironmentrejects them before provider startup.explicitSetupRegistrationEnvironmentpreserves a caller-selected value when setup writes a registration.runProductionMcpDoctorresolves them again before connecting.scripts/lib/mcp-startup-probe.mjsowns enforcement of those budgets on the packaged probe.rea mcp doctorand the packaged startup probe name the effective budget, source, default, floor, and maximum. Invalid settings fail the doctor report before a child starts.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): client-configuration docs name the four settings. No tool catalog text 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
16000,6000,21000, and31000when set and omits the initialize key when unset; public Codex and Kimi setup writes those values and still omitsREA_UNRELATED_MARKER. Probe timeouts of 200 ms and a 1 ms first-catalog budget namesource settingand the real default. A hanging initialize with a 250 ms first-catalog budget and an 8000 ms initialize budget names the first-catalog setting and returns before that initialize budget. A child that finishes initialize and then hangs, with an 800 ms first-catalog budget and an 8000 ms tools/list budget, leaves the initialize marker and names the first-catalog setting.rea mcp doctorwithREA_MCP_DOCTOR_DEADLINE_MS=2000and no caller deadline fired at that budget.0for initialize and doctor returns unhealthy checks named for those settings and does not start the missing child. Codex's 30 second constant remains 30 after an initialize override.source settinganddefault 30000 ms.The effective REA_MCP_DOCTOR_DEADLINE_MS value for the MCP doctor startup deadline is 30000 ms (source default; default 30000 ms, floor 1 ms, maximum 2147483647 ms). Set REA_MCP_DOCTOR_DEADLINE_MS in the environment that starts REA to a positive decimal integer from 1 to 2147483647, then restart REA.It then says Codexstartup_timeout_secof 30 seconds is client guidance. A selected 2000 ms deadline usessource settingand2000 ms. A probe that exceeds the first-catalog budget namesREA_MCP_FIRST_CATALOG_BUDGET_MSand the effective milliseconds.verify-packageworkflow was not executed. The probe tests use the production probe against the fixture child. Windows was not executed. A budget above the default was checked through the parser, setup registration, and the 60000 ms doctor deadline, not by waiting out a full 30 second packaged startup.For evidence-bearing changes:
Validation performed
origin/main(af924ca4b):npm run check:fast— typecheck and lint passed (2 tasks, 4.235s).npm run format:check— all matched files use the correct format.npm run test:local -- src/config/mcpStartupBudgets.test.ts src/application/Doctor.test.ts src/setupEnvironment.test.ts— 90 passed.npm run test:focused -- tests/boundary/mcp/mcpStartupPolicy.test.ts tests/boundary/mcp/mcpDoctor.test.ts tests/boundary/filesystem/clientConfigurationEnvironment.test.ts tests/acceptance/setup/registrationRuntimeEnvironmentCli.test.ts— 82 passed, 11 skipped. The pending tools/list first-catalog case completed in 808 ms.REA_MCP_DOCTOR_DEADLINE_MS=2000completed in 1923 ms. Remote timeout prose did not receive doctor deadline guidance. Codex and Kimi setup preserved the phase budgets andREA_REGEX_WORKER_HEAP_REQUEST_MIB.Compatibility, safety, and release
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.