mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
Closed
opened 2026-11-01 21:47:05 +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#7326
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/6385
Author: @earakely-scale
Created: 10/22/2026
Status: ✅ Merged
Merged: 10/24/2026
Merged by: @morluto
Base:
main← Head:feat/environment-state-targets📝 Commits (10+)
b49177efix(environment): keep read-only POSTs out of the write listd5a1fa9fix(environment): take an entity an unplanned write made when a read first shows it004b064fix(environment): plan a create into the type its returned id is read underd8f9c05fix(environment): end a type's initial reads at the write its reads disagree across64e472afix(environment): replay request lines that show entities in another form28c3ae9docs(environment): specify and record the state-target changes48d7faefix(environment): keep a read-only POST a write when its evidence is incomplete5d48df7fix(environment): answer a field selection only when the state shows it exactlyce2301dfix(environment): hold adopted entities and linked creates to what the recording shows48106e1Merge remote-tracking branch 'origin/main' into feat/environment-state-targets📊 Changes
41 files changed (+5404 additions, -236 deletions)
View changed files
📝
docs/agent-environments.md(+12 -9)📝
docs/specs/agent-environments/list-queries/spec.md(+3 -1)➕
docs/specs/agent-environments/state-targets/plan.md(+14 -0)➕
docs/specs/agent-environments/state-targets/spec.md(+66 -0)➕
docs/specs/agent-environments/state-targets/tasks.md(+10 -0)➕
docs/specs/agent-environments/state-targets/verification.md(+98 -0)📝
docs/specs/agent-environments/state-view/spec.md(+50 -8)📝
docs/specs/agent-environments/state-writes/spec.md(+80 -1)📝
docs/specs/agent-environments/write-coverage/spec.md(+7 -2)📝
docs/web-network-captures.md(+17 -5)📝
src/application/environment/environmentState.ts(+12 -6)📝
src/application/environment/environmentStateAnswer.ts(+52 -20)📝
src/application/environment/environmentStateStore.ts(+9 -0)📝
src/application/environment/environmentStateWriteAnswer.test.ts(+372 -0)📝
src/application/environment/environmentStateWriteAnswer.ts(+88 -8)📝
src/domain/analysisView/EnvironmentStateAccumulator.ts(+1 -0)📝
src/domain/analysisView/EnvironmentStateExtraction.ts(+225 -59)📝
src/domain/analysisView/EnvironmentStateWriteSimulation.test.ts(+167 -5)📝
src/domain/analysisView/EnvironmentStateWriteSimulation.ts(+59 -15)📝
src/domain/analysisView/WebNetworkProjectionAccumulator.ts(+8 -0)...and 21 more files
📄 Description
Summary
Across the 50 published capture-built environments, 91 of 195 write tools got no state target. The gate refused them before weighing any evidence, because their path named no state type, item or document. We traced each of the 91 to its cause in the recordings and the code. This PR fixes the five largest shared causes:
POST /Playlists, read as/Items/{Id}) had no target, and their entity leaked into the initial state.?counts=true,?expand=,?fields=), which show the same entities in another form, failed the whole view.Over the same captures, served write tools go from 46 to 61 and no-state-target from 91 to 61. No served write and no state-backed read view is lost, and every served write tool applies.
Refs #4933. One commit per cause; each commit's tests fail on the commit before it. The spec is
docs/specs/agent-environments/state-targets/.Problem and expected behavior
Read-only calls. A POST stops counting as a state write, and is replayed, when any of these holds:
It stays a write when a related read line changes across one of its calls, or finds its entity gone after it; a read overlapping the call counts on neither side. For example, Grafana's
query-historystays a write.Adopted entities. A write that no built plan models, or one redirected or unanswered, can create an entity the gate's copy never held. When a successful item read later shows that entity, the gate puts it into the copy, and later writes to it are checked as usual. An entity a modelled write touched is never taken back.
Linked creates. A POST whose path names no state type becomes a create into the type whose item read first names an id its response returned, before any other tool's write, as long as the id is new. Its observation is a read of an id its response returned, in an envelope too. Serving creates in that read's collection, for the recorded path arguments in either spelling. If a type's reads only show such an id once the POST began, the POST ends that type's initial window; a list read shows its listed entities' own ids, not those they nest.
Rewrite cuts. When a type's reads disagree across a write under another root, its initial window ends at the earliest write within the change, and the state is extracted again. When both cuts apply, the earlier wins.
Variant lines. A read line that shows the same entities in another form is a variant.
projected_query_keys).A learned filter role whose name matches no field needs two agreeing values.
Change and scope
environmentStateQueryCalls.ts,environmentStateWriteAdoption.ts,environmentStateWriteLinks.ts,environmentStateRewrites.tsandenvironmentStateVariants.ts;/{type}/{id}/archive);Contract and boundary impact
src/domain/analysisView/), then serving.projected_query_keys, and list views may now carryprojected_record_ordinals;variant;docs/public/product-catalog.json), package, or installation impact: none.Expected effects (check known effects; use documentation-only on its own).
Unchecked items do not establish absence; leave uncertainties visible.
Evidence and regression coverage
Measurements. All 50 published captures, one commit at a time on main.
Newly served write tools:
Of the 40 views that variant lines make state-backed, 146 of 151 recorded reads made before the first write match. The other five are Sentry projects, which replay the first of several differing recordings, as before.
Review round. The 10 Greptile and Codex threads are fixed in three commits, each finding with a test that fails without it:
fieldsline is set aside before the identity proof.No write verdict changes; one NocoDB records list becomes state-backed (7 of 7 recorded reads match).
A second round fixed 8 more threads in three commits, again each with a test that fails without it: the write gate now skips exactly the reads serving replays; an earlier list or collection read showing a returned id vetoes a linked create; an RPC batch reads only when every entry names a read operation; a planning pass a rewrite cut discards is released from the budget; and no unbounded array is spread into call arguments. No measurement changes.
A third round fixed 9 more Codex and Greptile threads in one commit, each with a test that fails without it:
findAndModify-style operations stay writes;fields=*list line is whole.Mailpit's send, a linked create that was never observed, loses its target, because other writes ran before the read naming its id. No served write, read view or matching read changes.
A fourth round fixed the 6 threads the bots raised on that push, in one commit, each with a test that fails without it:
projectId) distinct across its entities;No verdict, read view or recorded read changes. A purge of temporary files removed 32 of the local captures, so this round was measured on captures restored from the published datasets. Where a local copy survived they are byte-identical; Baserow's, Grocy's and Keycloak's published captures predate the ones in the table. On that set, the previous head and this one both give 187 write tools, 62 served (smoke 62 of 62), 1,151 views and 2,085 of 2,155 recorded reads matching.
A fifth round, after main
6a34be41was merged, fixed Greptile's 3 threads in one commit, each with a test that fails without it:projectIdas its entities' ids only when no id-named field identifies them, so a foreign key besideidcuts no window;Nothing changes on the restored captures.
A sixth round fixed 5 more Greptile and Codex threads in one commit, each with a test that fails without it:
Nothing changes on the restored captures.
A seventh round, after main
96ea32b7was merged, fixed 4 more Greptile and Codex threads in one commit, each with a test that fails without it:WordPress's post create moves from side-effect to unconfirmed, still unserved: its only later read asks for
context=edit, which shows the edit representation, so it is now replayed rather than checked.An eighth round, after main
3e7e102awas merged, fixed 6 more Greptile and Codex threads in two commits, each with a test that fails without it:?include=shelfbeside a dropped?expand=shelfreplays, and a later?fields=id,namethat keeps the identity replays too;Nothing changes on the restored captures.
A ninth round, after main
b7ebccf8was merged, fixed 5 more Greptile and Codex threads in one commit, each with a test that fails without it:nullshows no id;Nothing changes on the restored captures, session replay included (2,764 of 3,022 session reads matching).
A tenth round, after main
a2235b09was merged, fixed 3 more Greptile threads in one commit, each with a test that fails without it: a linked create passes over an item read naming its id that shows no item; repeated reads for read-only POSTs are found in one sweep; and a creation cut keeps and charges only the ids some creation returned. Nothing changes on the restored captures.Three serving cases an independent review flagged were fixed before this PR:
expandnow answers without it;End-to-end rebuilds. Five published environments last built on 10-18 were re-recorded on disposable Linux VMs and rebuilt with this branch.
POST /channels/{id}/members/idsreplays as a lookup, and its channel, members and pinned reads answer from state.accessas a summary while its item shows the full map, and a created entity carries only the item's values;5.0000…;Tests, each failing on the commit before:
Nine existing view tests that asserted a rewritten type stays
fields-differnow assert the cut and re-plan.Remaining proof gaps:
For evidence-bearing changes:
Validation performed
Run on macOS with Node v22.23.1, on the branch with main
a2235b09merged.npm run -s check:fast(no new oxlint warnings in the changed files),npm run -s format:check,npx knip,npm run -s scan:todos,npm run -s docs:check,npm run -s verify:test-discovery,npm run -s verify:module-boundaries,npm run -s mcp-catalog:checkandnpm run jscpd(3.59%): passed.npx vitest run --project domain --project services: 9393 passed, 6 pre-existing skips, and 10 failures that main has on its own (javascriptStaticAnalysis.mapEndpoints,javascriptStaticAnalysisReturnedInvocation,FridaInstrumentationService).npm run -s test:prepare, then the 8 focused boundary files (environment serve and export CLI, serve and served-writes MCP, analysis-view CLI and MCP, compact input schema, tool schema validity): 90 passed.After merging main
3d4f5565and then2968d1e9, both without conflicts, intoc166a694:npm run jscpd: 3.52%, main's own level.npx vitest run --project domain --project servicesat3d4f5565: the same 148 failing tests as main3d4f5565on this machine (Node v22.23.1, below main's new^22.23.4floor), none new. The boundary failures (clientConfigurationEnvironmentand oneanalysisViewCliinventory test) fail on main too.c166a694: typecheck and format passed, the environment tests passed (1013), and the 8 focused boundary files passed (91). The census, served smoke, initial serve check and session replay are unchanged: 187 write tools, 62 served (smoke 62 of 62), 59 without a state target, 1,151 views, 2,085 of 2,155 initial reads and 2,764 of 3,022 session reads matching.c166a694: every build and test job passed.After the four performance review threads on
c166a694(9614465f, checks recorded in53b2966c):c166a694with the old accessors wired as production wired them (work counts, a budget charge, and body access outside a lease); the test I/O now hands bodies throughwithBody, so the files' other tests no longer run against the old interface.npm run jscpd: 3.53%);npx vitest run --project domain --project services: 9814 passed, 6 skipped, none failed; the environment boundary projects: 100 passed; the 8 focused boundary files: 91 passed.?expand=, the variant pass falls from 401 ms to 2 ms and the state build from 659 ms to 216 ms.After the reviewer's second performance suggestion (
3dd85f21), maind87e73f2(f55c7315, and the same merge pushed by the reviewer,f151988a) and the round's checks (dee4dd75), at3608c5aa, on macOS with Node v24.22.1 and main's locked dependencies:53b2966c; the other 180 tests in their files pass there.npm run jscpd: 3.58%);npx vitest run --project domain --project services: 9852 passed, 6 skipped, none failed; the environment boundary projects: 101 passed; the 8 focused boundary files: 93 passed. Every census, serving-check and session-replay row equals the previous head's.?expand=): 259–264 ms against main's 244–247 ms, from 378–397 ms (Node v22.23.1, medians of seven warm runs).d87e73f2's 2.61 s, 3.41 s and 516 MiB (warm medians of three runs; cold within 2%). The environment-state view takes 2,093 ms against 1,791 ms and its results grow from 3.69 MB to 3.84 MB; agent tokens were not measured.Compatibility, safety, and release
Author readiness
Human owner: @earakely-scale
Before merge
type(scope): outcome.🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.