Serve renamed create members and evidence-gated UUID regeneration. Preserve every copied text occurrence and withhold cross-field scalar UUID relations the independent generators cannot reproduce. Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
4.2 KiB
Verification
Executed on macOS with Node v22.23.1 on this branch with the write-plan branch's head 45a5c8b9 merged in. The pilot recordings
were made against live applications on six disposable Linux VMs, each restored from a snapshot first.
Gates
npm run build:cached,npm run check:fast(typecheck and lint, no warnings in the changed files),npm run format:check,npx knip,npm run scan:todos,npm run docs:check,npm run verify:test-discoveryandnpm run mcp-catalog:check: passed.npm run jscpd: 3.43% duplicated lines over 3754 files.npx vitest run --project domain --project services: 7769 passed, 5 pre-existing skips.npm run test:prepare, thennpm run test:focused --the environment serve and export CLI boundaries, the serve and served-writes MCP boundaries, the analysis-view CLI and MCP boundaries, the compact input schema boundary and tool schema validity: 8 files, 79 passed.
Tests
- Gate: a renamed book renewing a sent
version_idand its chapters' ids is served withuniqueandrenewedrules; two creates sending ahandlestored ascodeand embedded inlinkare served withcopyandtemplaterules. - Serving: each served update gets a fresh version and new chapter ids that keep their titles; a served create with a new handle stores it as the code and rebuilds the link.
- Unit: the explanation, including a UUID another entity holds (not
unique), a child row whose text changed (notrenewed), and a member copied only in part (still fixed); the renewal helpers; applying both update rules. - The four gate and serving tests fail on
43d98ea9. - Review round (on
a477b21d, where each fails): serving renews only the UUIDs at the pointers the recording renewed, keeps an author id each chapter names, gives one UUID the same replacement in every renewed field, and gives no rows to an entity that holds none; a recorded call that keeps a renewed value refuses the plan; a renewal that keeps, moves or borrows a UUID is not one; a copied member is type-checked against its stored field; a member stored otherwise under its own name is not accepted; an echoed value's copy is no template source; a sent UUID stored in another letter case is not a generated one.
Pilot recordings
Each application was reset, then recorded with the capture's reads and, per write target, two scratch objects whose every write was read back at once (item and list), deletes read back as 404.
| Application | Write | Before | After |
|---|---|---|---|
| Shlink | post_rest_short_urls |
unexplained-change |
served |
| n8n | patch_rest_workflows_by_workflow_id |
unexplained-change |
served |
| Mealie | patch_recipes_by_recipe_id |
unexplained-change |
unexplained-change |
No other verdict of the six recordings changed. Mealie's update was served by an earlier version of this branch with
recipeIngredient renewed. Each of its two recorded updates keeps the ingredient ids; the gate's copy of the second
recipe held the first recipe's ids, because the read that showed it was the create's observation and was not adopted.
Each renewed field now needs every recorded call to renew it, so the plan is refused rather than served regenerating
ingredient ids. Built on the list-query stack (#5800 with #5699 merged), the held-out sessions agreed on two more
steps each for n8n (127 to 129 of 143) and Shlink (126 to 128 of 137) with the earlier version; Komga, NetBox and
Sentry were unchanged.
Published captures
- Over the 50 published captures, every write verdict is unchanged: 31 served write tools. The only plan that
changes is Shlink's unserved create, which now accepts
customSlugand templatesshortUrl. - An earlier version also made echoed values template sources. It templated Grafana's folder
urlarounduid(the URL also holds a slug of the title) and BookStack's page HTML around its markdown. Echoed values are no longer sources. - The served smoke applies all 31 served write tools, as on
43d98ea9.