[GH-ISSUE #6343] fix(environment): preserve nested UUID renewal identity and relations #3824

Closed
opened 2026-10-31 00:44:24 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @gensokyo-dev on GitHub (Oct 22, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/6343

Before submitting

  • Searched open and closed issues for related UUID renewal reports; no matching issue found.
  • No credentials or sensitive target data included.

Area

Evidence, artifacts, or reconstruction; shared environment-state analysis and serving (CLI/MCP).

Observed behavior

Source-derived follow-up to two late reviews of merged #6136:

  • A requested/echoed ownerId: B can also appear as a supposedly generated rows[0].id: B. The gate uses recorded B, but serving generates a different row UUID and disconnects the relation.
  • One UUID repeated in lowercase and uppercase within a nested field is counted as two identities when checking replacement injectivity, incorrectly refusing a consistent renewal.

These are source-backed findings, not claims of live-app reproduction.

Reproduction

NOT_ENOUGH_INFO for executed runtime reproduction at filing. Planned capture→manifest→state→serving guards will cover request aliases, non-renewed output aliases and consistent mixed-case nested IDs, with fail-before/pass-after results recorded before integration.

Expected behavior

Model UUID identity once, case-insensitively, while preserving source spelling. Refuse generated renewal when the rules cannot preserve a relation to requested or non-renewed values; keep supported nested-only shared renewals usable.

Impact and scope

Shared analysis can falsely admit an unsupported write or unnecessarily withhold a supported write. NOT_ENOUGH_INFO for real-app frequency or affected public datasets. No target execution or new side effects are proposed.

REA version

Source revision 957bcfa149 (includes #6136).

Runtime and platform

Planned validation: Node 24.18.0, Linux x86_64. Native providers not applicable.

Target and artifact context

Reduced synthetic capture Evidence, plus existing pinned public application recordings for compatibility checks.

Interface / earliest failure stage

CLI and MCP via shared transport/result projection; rule explanation is the producing boundary.

Relevant output or evidence

Typed outcome or recovery expected

An unmodelled alias must retain served:false, reason:unexplained-change with original Evidence accessible, rather than promising a relation serving cannot reproduce.

Originally created by @gensokyo-dev on GitHub (Oct 22, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/6343 ## Before submitting - [x] Searched open and closed issues for related UUID renewal reports; no matching issue found. - [x] No credentials or sensitive target data included. ## Area Evidence, artifacts, or reconstruction; shared environment-state analysis and serving (CLI/MCP). ## Observed behavior Source-derived follow-up to two late reviews of merged #6136: - A requested/echoed `ownerId: B` can also appear as a supposedly generated `rows[0].id: B`. The gate uses recorded B, but serving generates a different row UUID and disconnects the relation. - One UUID repeated in lowercase and uppercase within a nested field is counted as two identities when checking replacement injectivity, incorrectly refusing a consistent renewal. These are source-backed findings, not claims of live-app reproduction. ## Reproduction NOT_ENOUGH_INFO for executed runtime reproduction at filing. Planned capture→manifest→state→serving guards will cover request aliases, non-renewed output aliases and consistent mixed-case nested IDs, with fail-before/pass-after results recorded before integration. ## Expected behavior Model UUID identity once, case-insensitively, while preserving source spelling. Refuse generated renewal when the rules cannot preserve a relation to requested or non-renewed values; keep supported nested-only shared renewals usable. ## Impact and scope Shared analysis can falsely admit an unsupported write or unnecessarily withhold a supported write. NOT_ENOUGH_INFO for real-app frequency or affected public datasets. No target execution or new side effects are proposed. ## REA version Source revision 957bcfa149c1a0593bb0aa2466cc56d1d4f62e7d (includes #6136). ## Runtime and platform Planned validation: Node 24.18.0, Linux x86_64. Native providers not applicable. ## Target and artifact context Reduced synthetic capture Evidence, plus existing pinned public application recordings for compatibility checks. ## Interface / earliest failure stage CLI and MCP via shared transport/result projection; rule explanation is the producing boundary. ## Relevant output or evidence - [Late alias finding](https://github.com/morluto/rea/pull/6136#discussion_r4350619817). - [Late mixed-case finding](https://github.com/morluto/rea/pull/6136#discussion_r4350619831). - [Pinned generating owner](https://github.com/morluto/rea/blob/957bcfa149c1a0593bb0aa2466cc56d1d4f62e7d/src/domain/analysisView/environmentStateWriteGenerated.ts). ## Typed outcome or recovery expected An unmodelled alias must retain `served:false`, `reason:unexplained-change` with original Evidence accessible, rather than promising a relation serving cannot reproduce.
Author
Owner

@gensokyo-dev commented on GitHub (Oct 22, 2026):

Runtime verification now executed on pinned Node 24.18.0/Linux: all four new capture→manifest→state→serving guards fail on base 957bcfa14 (4 failures / 3 pre-existing passes), and pass with #6345. Exact candidate 65ac765: 763 related source tests, 20 compiled serving/schema boundaries, complete static checks, docs and discovery passed. Added canonical-identity and cross-owner reuse module controls. Independent local Codex source review found no definite defect. Five pinned public application captures passed CLI/MCP fact/Evidence parity with unchanged Evidence IDs and write verdicts; no live applications were executed. Candidate complete task 26.34 s wall / 42.12 s CPU / 1186 MiB sampled process-family RSS; no performance/token reduction claim. Fix remains in pending PR #6345 until merged.

<!-- gh-comment-id:6345732875 --> @gensokyo-dev commented on GitHub (Oct 22, 2026): Runtime verification now executed on pinned Node 24.18.0/Linux: all four new capture→manifest→state→serving guards fail on base 957bcfa14 (4 failures / 3 pre-existing passes), and pass with #6345. Exact candidate 65ac765: 763 related source tests, 20 compiled serving/schema boundaries, complete static checks, docs and discovery passed. Added canonical-identity and cross-owner reuse module controls. Independent local Codex source review found no definite defect. Five pinned public application captures passed CLI/MCP fact/Evidence parity with unchanged Evidence IDs and write verdicts; no live applications were executed. Candidate complete task 26.34 s wall / 42.12 s CPU / 1186 MiB sampled process-family RSS; no performance/token reduction claim. Fix remains in pending PR #6345 until merged.
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#3824
No description provided.