Repository navigation
fix(runtime): say the flow clone notice in one business line - #28072
Conversation
The clone door's notice was seven sentences of engine prose (status draft, lifecycle labels, both switches). The console shows it beside a "Switch the original off" button, so it now states the two facts the admin must know in one line: the copy runs alongside the original until one is switched off, and it still uses what the original used. The detail stays in the constant's TSDoc. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4cxQRTfRrRf5wo1ZC3U
📓 Docs Drift Check1 anchor(s) derived from 1 changed package(s); no hand-written page names any of them, so this run has nothing to list — not a clean bill of health. This check sees only pages that NAME a derived anchor: one that documents this change in prose, or enumerates it in an authoring dialect, names none and stays invisible to it on every run. What this run could not see
Coarse fallback — 28 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): Which tree this was computed onThis run read A worktree cut from an older # while this PR is open — GitHub drops the merge commit once it closes
git fetch origin 627b299959907d0264f8152f3dfe7524e9210471 && git checkout 627b299959907d0264f8152f3dfe7524e9210471
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin c1b52de22e87680ceb3b093c4c6035b0ef894a3f 83b42f1c881ea676ac53b2c79b35190214a485b8 && git checkout -B drift-repro c1b52de22e87680ceb3b093c4c6035b0ef894a3f && git merge --no-ff 83b42f1c881ea676ac53b2c79b35190214a485b8
node scripts/docs-audit/affected-docs.mjs --json c1b52de22e87680ceb3b093c4c6035b0ef894a3f |
|
domain:server#3 · os-elon-musk · session_016WV4czuTWNgKR22fKv7jia Seat ACCEPT · PR #28072 · head
|
Requested by Elon · project thread
Fixes #27886
domain:server#3 card thread · os-elon-musk · session_016WV4cxQRTfRrRf5wo1ZC3U
What changes
FLOW_CLONE_NOTICE(packages/runtime/src/flow-clone.ts), the noticePOST /api/v1/automation/:name/clonereturns with{ flow, notice }, goes from seven sentences of engine prose to one line:The detail the old paragraph carried (
status: 'draft'is not an off-switch, references are not re-pointed, the Packaged automationSwitch "…" offaction does not reach the clone, the clone is switched off in Studio with its Enabled switch and a publish) now lives in the constant's TSDoc. The REST recipe stays in the client SDK'sautomation.toggleTSDoc, unchanged.The runtime pin in
domains/automation-flow-clone.test.tsnow asserts both facts by their new wording, exactly one sentence, and no engine words (draft,status,off-switch,lifecycle,Studio). The existingtoBe(FLOW_CLONE_NOTICE)and no-endpoint pins stay.Why
Triage 6515426773: the packaged-flow clone notice is one business line. The console shows it verbatim beside a "Switch the original off" button, so most of the paragraph repeated the screen. Re-measured on
mainat 5aee206: the notice was the seven-sentence string the card quotes.Both facts are kept on purpose. "Runs alongside the original" is the double-fire warning the card asks to keep. "Still uses the same subflows, actions and objects" is the ADR-0126 §9 line ("the clone's references stay pointed at what the original pointed at, and the surface tells the admin so"), said in business words, so the shortening does not drop an ADR requirement.
Verification
vitest run src/domains/automation-flow-clone.test.ts src/dispatcher-plugin.automation-clone-mount.integration.test.ts: 23 passed.origin/main'sflow-clone.tsrestored, the rewritten notice test fails (1 failed, 18 passed); restored to this diff, green.dispatch-gates --ran: 60 derived families accounted for, 58 exit 0, 2 exit 3 in the fresh worktree. Re-run after their prerequisites:check-plugin-teardown-shape --self-testexit 0 after fetching its pinned commit;check:dual-build-cjs-loadsNOT MEASURED (needs every package's dist).pnpm lintexit 0;pnpm --filter @objectstack/runtime typecheckexit 0.qa/dogfood/test/automation-flow-clone-door.dogfood.test.ts) assertstoBe(FLOW_CLONE_NOTICE)by import, so it follows the constant; not run locally.Clause-②: no
Metadata-protocol: none
Skills-docs: none.
grep -rn "re-pointed\|alongside the original\|lifecycle label and NOT\|does not reach the clone" skills/ docs/ content/finds no copy of the notice; the one Setup mention (content/docs/build-without-code.mdx:38) does not quote it.Out of scope, for the seat:
ui/packages/app-shell/src/views/setup/PackagedAutomationPage.test.tsxkeeps a fixtureCLONE_NOTICEwith the first two old sentences. The page test pins that whatever notice arrives is shown unedited, so it stays green, but the fixture text is now stale (ui/is outside this order's surface).Human Minimum
packages/specholds no runtime logic.pnpm lintpasses.main, one pull request.packages/spectouched: its generated artifacts are regenerated and committed. (not touched)content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.🤖 Generated with Claude Code
https://claude.ai/code/session_016WV4cxQRTfRrRf5wo1ZC3U