mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
[PR #7025] [MERGED] feat(environment): explain values an application derives from other fields #7584
Closed
opened 2026-11-03 13:38:53 +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#7584
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/7025
Author: @earakely-scale
Created: 10/24/2026
Status: ✅ Merged
Merged: 10/24/2026
Merged by: @morluto
Base:
main← Head:feat/environment-derived-values📝 Commits (10+)
a1edeaffeat(environment): explain values an application derives from other fields8ce1127docs(environment): record the derived-values verification1ec053echore: merge main into derived valuesa80a96ffix(environment): keep clock spellings, linked ids and word boundaries honest1e6c02ctest(environment): keep a same-width fixed clock out of trimming8e23f18fix(environment): check composed parts and clock fits before they shape a plan5a976d7chore: merge main into derived values09c48c5test(environment): split the derived-values view tests by rule2e5f56dfix(environment): keep fixed-width, zone and generated-integer evidence through a plan96783c7chore: merge main into derived values📊 Changes
31 files changed (+3467 additions, -85 deletions)
View changed files
📝
docs/agent-environments.md(+15 -4)➕
docs/specs/agent-environments/write-derived-values/plan.md(+12 -0)➕
docs/specs/agent-environments/write-derived-values/spec.md(+59 -0)➕
docs/specs/agent-environments/write-derived-values/tasks.md(+10 -0)➕
docs/specs/agent-environments/write-derived-values/verification.md(+91 -0)📝
docs/web-network-captures.md(+20 -5)📝
src/application/environment/environmentCompareDiff.test.ts(+352 -0)📝
src/application/environment/environmentCompareDiff.ts(+89 -15)➕
src/application/environment/environmentStateDerivedAnswer.test.ts(+84 -0)📝
src/application/environment/environmentStateWriteAnswer.ts(+8 -4)📝
src/domain/analysisView/EnvironmentStateWriteSimulation.ts(+1 -0)➕
src/domain/analysisView/environmentStateDerivedWrites.test.ts(+517 -0)📝
src/domain/analysisView/environmentStateView.ts(+22 -0)📝
src/domain/analysisView/environmentStateWriteApply.test.ts(+78 -0)📝
src/domain/analysisView/environmentStateWriteApply.ts(+20 -6)📝
src/domain/analysisView/environmentStateWriteCalls.ts(+17 -0)📝
src/domain/analysisView/environmentStateWriteChanges.ts(+5 -0)➕
src/domain/analysisView/environmentStateWriteClockFormats.test.ts(+111 -0)➕
src/domain/analysisView/environmentStateWriteClockFormats.ts(+164 -0)➕
src/domain/analysisView/environmentStateWriteComposed.test.ts(+302 -0)...and 11 more files
📄 Description
Summary
Environments built from a prompt withheld creates in three of five applications. In each case the response carried a
value the application derives deterministically from other fields, which the write model either kept as a constant or
could not match across calls:
web_archive_snapshot_urlishttps://web.archive.org/web/<creation time as YYYYMMDDhhmmss>/<sent url>.The plan kept it as a constant, which pinned
urlto its recorded value, so a second create was refused.urlis/dashboards/f/<uid>/<slug of the title>, which pinneduidthe same way. Itsnumeric
idis a large time-based integer, which the plan copied from the first create, so the second create'sread-back contradicted it.
(
…34.38812218Z), so a later create's clock did not follow the format learned from the first.This PR adds three rules to the write model:
clock's calendar digits.
uniqueand served as a fresh seeded integer.On the same timed captures, the baseline's 0/2 on the new create tasks becomes 2/2 with both models for Linkding's
bookmarks and Homebox's tags. A new timed Grafana recording serves its folder create, rename and delete, where the
baseline serves only the delete. Over 69 recorded captures no write goes from served to withheld, and the 50 published
environments serve the same writes as before.
Problem and expected behavior
the recording, and should not stop the call from sending other values of the fields it reads.
trimming, and served in that spelling.
Change and scope
environmentStateWriteComposed.ts):other ruled fields offer. Generated values may be short; others need eight characters, as a copy does.
spells it otherwise. One call alone cannot show which text is literal.
count as one source.
the existing rules, and only when the same parts spell the value before the call and no other entity spells it
otherwise.
against every earlier call.
something the parts do not spell, a non-string included, vetoes the composition.
environmentStateWriteClockFormats.ts):ClockFormatgainstrimmed, and a clock reading gainsfixedWidth(its fraction ends in a zero).and none ends in a zero. This is learned from the type's held values, a later create or a later update.
no fit or sibling trim makes that clock trimmed, and a later call that shows it shorter is withheld. An update
adopts a fitted spelling only after its checks pass.
kind (and none of them a clock), is
unique.create is withheld.
uniquerule as generated values.docs/web-network-captures.md, the update row and a served-write limit indocs/agent-environments.md, anddocs/specs/agent-environments/write-derived-values/.Not included:
shared, Homeboxitem creates after a location create), which is the next PR;
parent);Contract and boundary impact
src/domain/analysisView)and served write answers (
src/application/environment).reads recorded captures only and adds no new target interaction.
environment-stateview's write plans may carry acomposedrule and a clock format withtrimmed, and auniquerule may now name an integer field.because the plan schemas are strict.
Expected effects:
Evidence and regression coverage
Write plans over 69 recorded captures, built by the baseline and by this branch. The captures are the 50 published
ones, 18 Claude Code recorded from a prompt for #6946's checks, and one new timed Grafana recording:
rename (the timed one).
value and now accepts the member it reads, with the same served verdicts.
lexical: keeps itsderivedrule.Served write tasks on the same timed captures, rebuilt by the baseline and by this branch, with
fireworks_ai/gpt-oss-120bandfireworks_ai/glm-5p3-flash. The create tasks are new. Each checks the created entityfrom the environment's state, including the composed address and that nothing else changed:
environment refused each call and named the members it accepts.
only, so the models never find the item.
claude-sonnet-5-5) recorded each app from a one-paragraph prompt on Ubuntu 24.04 VMs with snapChromium 155.
browser scenarios need its request times for clock rules. The baseline is the same merge without this branch.
Tests added:
with composed addresses and generated integer ids are served.
stored otherwise than sent, a before value the parts do not spell);
Remaining proof gaps:
differs for text that needs it, which is documented as a served-write limit.
For evidence-bearing changes:
Validation performed
Current follow-up at
5fd87e9c6, based on the author'saeae47f7b(macOS, Node 24.22.1 / npm 11.16.0):environment-comparecase and existing trimmed-clock case; input Evidence files are unchanged by those workflows.check:fast(typecheck/lint),format:check,docs:check, and pre-push checks passed. Four added assertions fail onaeae47f7band pass here: equal stale compositions, differing actual inputs, unproven generated-looking inputs, and UUID-to-token drift.Completed
environment-compareCLI tasks with the same tag/bookmark captures and one create probe per case, beforeaeae47f7bversus this change. Complete canonical reports are identical for these valid tasks.Each invocation starts a fresh CLI process; OS caches were not cleared. CPU is child-family resource usage; RSS is sampled at roughly 15 ms plus process-list overhead. No resource stop occurred. These small samples establish no speedup or memory improvement. Agent/model tokens and costs on larger responses were not measured; no token savings are claimed.
Earlier revision validation and application results
Follow-up at
94f17534f(2026-10-25), after merging main2acdd5413, on macOS with Node 24.22.1 and npm 11.16.0:5f8a954c6; the subsequent main merge changes no environment source.94f17534f: 3 files, 21 passed.check:fast(typecheck/lint),format:check,docs:check, and the pre-push check: passed.2acdd5413; the merge adopts that file verbatim, retaining all four scenarios and removing the temporary branch-specific fixture cleanup.check:fastpasses again after the merge.fb0eece97versus5f8a954c6. First invocation: 0.552 → 0.529 s elapsed, 0.735 → 0.731 s CPU, 362.5 → 365.9 MiB sampled peak process-family RSS. Median of three repeat invocations: 0.519 → 0.500 s elapsed, 0.713 → 0.703 s CPU, 367.2 → 374.8 MiB RSS. Each uses a fresh CLI process; OS caches were not cleared. RSS is sampled at roughly 15 ms plus process-list overhead. These small samples establish no speedup claim. The original reports two false clock-format differences; this head reports agreement. Agent/model tokens and broader performance costs were not measured.Follow-up at
3705faeb3, on macOS with Node 24.22.1:serialText, or a token likefolder-<id>) is withheld unless atemplateorcomposedrule rebuilds that string from it; its tests fail on94f17534f, and a templated copy is still served.check:fast,format:check,docs:check,mcp-catalog:check,verify:test-discovery,scan:todos,jscpdandnpx knip: passed.domain+services+adapters: 17,323 passed, with the Inspector stat test failing as it doeson main in this environment. The 10 focused boundary files: 82 passed. Managed bundle read guards: 11 passed.
2acdd541and on this head: 124 → 129 served, the same five gains, nolosses. The 50 published environments serve the same 68 writes with 68/68 smoke calls, and all 54 rebuilt bundles are
byte-identical to the three-step path's.
Follow-up at
aeae47f7b(e54b75a17plus mainaced9fa9b), on macOS with Node 24.22.1:integer with anything but an integer of its length and kind; compare counts a composed field as equal when each side
spells it from its own fields. Each new test fails on
3705faeb3.domain+services+adapters: 17,358 passed, with the Inspector stat test failingas on main); the 10 focused boundary files: 82 passed. The 69-capture census on main
aced9fa9bis still 124 → 129with the same five gains, the 50 published environments are unchanged, and all 54 bundles are byte-identical.
Earlier author validation:
Run on macOS with Node v24.22.1 at
96783c72(main42577617plus this branch).tsc,npm run -s check:fast,format:check,docs:check,mcp-catalog:check,verify:test-discovery,scan:todosandjscpd(3.64%), andnpx knip: passed.npx vitest run --project domain --project services --project adapters: 17,274 passed and 1 failed ("stops Inspectortarget authorization after the current stat settles"), which fails the same way on main in this environment.
npm run test:focused --the environment build, export and serve CLI boundaries, the analysis-view CLI and MCPboundaries, the environment serve, served-writes and bundle MCP boundaries, MCP schema validation and output schema
constraints: 10 files, 82 passed.
42577617and on this head: 124 → 129 served, with the same fivegains and no write going from served to withheld. The review fixes change no plan in these captures, so the
served-write task results above, measured before the review fixes, still describe this head.
and all 54 rebuilt bundles are byte-identical to the three-step path's.
8ce1127bor09c48c59).tests/process-global/managedBundleReadGuards.test.ts("projects a rejected managed parent by reference withoutcloning under low headroom") failed from
9b3a6332through the earlier main42577617, with and without this branch.Compatibility, safety, and release
version or later to serve.
recordings; macOS for gates.
call sent or the state already holds.
Author readiness
Human owner: @earakely-scale
Before merge
type(scope): outcome.Part of #4933.
🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.