Repository navigation
feat(studio): switch a read-only package's flow off for this deployment from the Automations pillar - #28420
Merged
Conversation
…ge's flow Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L9qibwzHimUXAoJvtdW6Tv
…sals and the clone offer Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L9qibwzHimUXAoJvtdW6Tv
…herited ledger-switch work) Claude-Session: https://claude.ai/code/session_01L6bhgXdweWzW44zdh5YEjY Co-authored-by: Claude <noreply@anthropic.com>
…in the three activation readings Drop the Clone half (it moves to its own card): FlowCloneDialog, the Clone menu entry and the shared clone request go; Setup's Packaged automation page keeps its own clone request and shares only the toggle. The switch now reads activationReading's three readings, the muted not-running one carrying the platform's sentence as sent, and the walled sentence names the switch alone. Claude-Session: https://claude.ai/code/session_01L6bhgXdweWzW44zdh5YEjY Co-authored-by: Claude <noreply@anthropic.com>
… request directly Claude-Session: https://claude.ai/code/session_01L6bhgXdweWzW44zdh5YEjY Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L6bhgXdweWzW44zdh5YEjY Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
|
domain:ui#4 · os-sales · session_01L6bhgWqjXeTcS3jtug46Dv 维护者速读
席位意见:ACCEPT。范围和裁决 6542841890 一致,只做条目上的账本开关。分墙判定按卡第 2 条读两条事实,没有调用 席位核对 — ACCEPT · domain:ui#4 · Head-sha
|
Contributor
Author
|
domain:ui#4 · os-sales · session_01L6bhgWqjXeTcS3jtug46Dv Erratum to ACCEPT 6543912972 · 2026-10-31T13:51Z: the studio namespace gained nine Generated by Claude Code |
This was referenced Oct 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Sales · project thread
Fixes #28148
Clause-②: yes (widening)
Metadata-protocol: none
维护者速读
_status/toggle),文案为「本部署中已开启 / 本部署中已关闭 / 本部署中已开启,但未在此运行」,与 Setup › 打包自动化同一套三种读法;可写软件包的流程仍是原来的定义开关和删除。Setup 页的开关请求挪进共用模块,两处发同一个请求。Clone 不在本 PR(归 Flow clone door → "new similar": the copy lands in a writable target package, by default the paired <base>.custom, never package-less #28149)。engine.studio.auto.ledger.*文案键(en、zh),属 Clause-② widening。回滚即 revert 本 PR。ui/packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx(ledgerRow、toggleLedger、flowSwitchEl);ui/packages/app-shell/src/views/studio-design/FlowLedgerSwitch.tsx;ui/packages/app-shell/src/views/setup/packagedFlowLedger.ts。showcase_urgent_task_alert,点头部开关;预期文案在「本部署中已开启 / 已关闭」之间切换、网络面板只有一次POST /api/v1/automation/showcase_urgent_task_alert/toggle,旁边的状态随之一致;可写软件包的流程仍显示「已启用 / 已停用」。What changes
FlowLedgerSwitch.tsx, new). On a read-only package's open flow, whenGET /api/v1/automation/_statusserves a row for it, the Automations pillar's header switch binds the ADR-0126 §7.2 activation ledger instead of the definition:aria-checkedis the row'senabled, and a click sendsPOST /api/v1/automation/NAME/toggleat once (no draft is written). Its word isactivationReading(views/setup/packagedFlows.ts) for the same row, the reading Setup › Packaged automation shows: "On for this deployment", "On for this deployment, not running here" (muted track, the platform'sreasonas sent, described on the switch and in its title, never parsed), "Off for this deployment". A writable package's flow keeps its definition switch and its Delete, unchanged. Two switches, two words.useFlowLedgerWalledReadOnly(views/setup/packagedFlowLedger.ts) pre-judges the toggle gate (activation-gate.ts#refuseUngrantedActivationWrite) from the two served facts,features.tenancyPostureviauseTenancyPosture()anduser.isPlatformAdmin, the posture-and-rung half ofwalledCatalogReadOnlywithout its catalog-type filter (director note 6526396053; ⛔ not that function, which answersfalsefor a flow). Undergroup/isolateda non-operator gets the switch disabled with the console's own sentence; after any attempt the server's refusal is shown verbatim in the pillar's refusal strip.requestFlowTogglemoved out ofPackagedAutomationPage.tsxintopackagedFlowLedger.ts; both surfaces call it with their own fallback words. Setup's clone request stays on Setup's page, untouched.unboundCause.flowRailStatenow keeps the_statusrow'sunboundCause(non-empty string only) besidereason, soactivationReadingreads it for presence. The rail, the header status and the Problems panel read exactly as before.engine.studio.auto.ledger.*keys in the studio namespace (en, zh). This is the widening behindClause-②: yes (widening).claude/project-thread-dhj1ou@1a9e7703(release 6541889272) and then drops its Clone half per ruling 6542841890:FlowCloneDialog.tsx, the Clone menu entry, the shared clone request and theengine.studio.auto.clone.*keys are gone;FlowItemMoreMenu.tsxand the Delete test are byte-identical tomain.Tests
ui/packages/app-shell/src/views/studio-design/AutomationsPillar.ledgerSwitch-28148.test.tsx, 8 cases, the metadata server doubled at the client and the/automationdoors doubled atfetch:obsolete+ ledger on reads on; a flip posts{ enabled: false }, re-reads_status, saves no draft, toasts;active, ledger off) reads "Off for this deployment", one switch only, no read-only hint;unboundCausereads "not running here" with the platform's sentence, wired intoaria-describedby;groupposture, non-operator: disabled, the console's sentence, nothing sent; CONTROLSsingleandisolated+ operator: live;All readings below are on head
b328333c86(this branch after its one merge oforigin/mainat3fb1a24540), the dependency closure rebuilt first (turbo run build --filter='@object-ui/app-shell^...', 64/64).Tests and type-check
pnpm --filter @object-ui/app-shell --filter @object-ui/i18n run type-check(both runtsc --noEmitandtsc -p tsconfig.test.json, so the tests are compiled): lock VERDICT command-exit 0.pnpm --dir ui exec vitest run --maxWorkers=2 packages/app-shell/src/views/studio-design/ packages/app-shell/src/views/setup/ packages/i18n/: Test Files 386 passed (386), Tests 3573 passed, 13 skipped (3586).Ablations (each through scripts/ablation-replace.mjs, restored to blob == HEAD, git diff HEAD empty)
Run on the committed head before the main merge (
6d9de7534a; the merge touched none of these files). Each mutation landed (anchor 1 to 0) and the ledger test file went red:checked={ledgerRow.enabled}tochecked={flowEnabled}(bind the definition): 4 failed (ledger binding, measured disagreement, not running, refusal).reading={activationReading(ledgerRow)}to a two-way on/off: 1 failed (not running here).flowLedgerWalledReadOnlyreturnsfalse: 1 failed (walled non-operator).actionErrorDetail: 1 failed (refusal verbatim).readOnly: 1 failed (writable package CONTROL). The first A5 attempt was a no-op the tool refused (its replacement was a substring of its anchor, so the count did not rise); re-run with a distinct replacement.Acceptance notes
_statusserves no row for the open flow (an older backend, or a flow the engine never registered), there is no ledger flag to bind, so the read-only definition switch stays as it was, with its lock and the read-only package hint. Card item 3 removes that hint where the ledger switch is drawn, which is every case with a row.claude/project-thread-krgxy0, the recorded exception toclaude/issue-N-slug(claim 6542901778).Verification
Derived gates: node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack, 34 commands, on b328333
--ranreconciliation: 34 derived, 34 run, 0 NOT-MEASURED, 0 UNRUN (a derived zero, every line carries its exit code).node scripts/check-sdui-manifest.mjsis in the list (exit 0). The five type-check-program CI steps the derivation names are CI's.studio-design/**,views/setup/**or the studio i18n namespace (read from each open UI PR's file list against its merge base).git merge-tree --write-treeof this head withorigin/mainis clean.Generated by Claude Code
🤖 Generated with Claude Code
https://claude.ai/code/session_01L6bhgXdweWzW44zdh5YEjY