Skip to content

feat(studio): the organization-flows publish toast names the flows that went live - #27882

Merged
objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/project-thread-9nt6x7
Oct 30, 2026
Merged

objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/project-thread-9nt6x7

Conversation

@objectstack-fleet

@objectstack-fleet objectstack-fleet Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

domain:ui#3 · os-bill · session_01Utp6CaJoinvGQSbHeDaWBe

Requested by Bill · project thread

维护者速读

Part of #27356 (row 18, hotcrm#2320 Studio S7: the publish toast names the flow)
Clause-②: no
Metadata-protocol: none

What changes

Row 18 has three parts; this PR is the Studio one.

  • The toast names the flow. On Studio's Organization flows scope, a publish that put every pending flow draft live toasted Published {count} package-less flow draft(s). Now one flow reads Published flow "{label}" (the draft's served label resolved for the locale, else its machine name) and several read Published {count} flows with the names, comma-separated, as the toast's description. A refusal, a partial failure and the nothing-pending answer are unchanged.
  • i18n. The values of engine.studio.publishedAllFlows and engine.studio.publishedAllFlowsOne change in en and zh (the studio namespace's two packs; check:i18n-drift reads the zh row as followed). publishedAllFlowsOne now takes {label} instead of {count}. No key added, renamed or removed.

The other two parts are not Studio's:

  • The clone notice is server prose: FLOW_CLONE_NOTICE in packages/runtime/src/flow-clone.ts, returned by the flow clone door and shown verbatim on Setup › Packaged automation. Shortening it is a server change, reported to the seat as a card.
  • The "switch the original off" button already exists: after a clone, Packaged automation offers Switch "{label}" off (packagedAutomation.cloneSwitchSourceOff).

Tests

  • StudioDesignSurface.publishCount-11807.test.tsx gains two cases on the real surface and client, with the server stubbed at fetch: one package-less draft with a label toasts the label; two drafts (one labelled, one not) toast the count row with QA alert (copy), qa_digest_clone as the description. The existing two-draft case still pins the count row.
Readings (head 69fa4a7, branch rebuilt from origin/main 7f80732 after #27832 merged)
  • StudioDesignSurface.publishCount-11807, .packageLessFlows-11553, .homeLoop-12513 and the whole packages/i18n/: 93 files, 1408 passed / 13 skipped.
  • pnpm --filter @object-ui/app-shell --filter @object-ui/i18n run type-check: both Done, exit 0.
  • Ablation through scripts/ablation-replace.mjs (anchor 1 to 0): the names read d.name only, never the label: 2 failed / 6 passed (both new cases red); restored blob = HEAD blob 45453952912c, git diff HEAD empty. vitest resolves @object-ui/* to source, so no rebuild leg.
  • pnpm --dir ui run check:i18n-drift: 0 pack values changed; the designer table's 2 changed en values both followed by zh.

Acceptance notes

Verification

On head 69fa4a77: dispatch-gates --commands derived 34 families for this diff; all 34 were run locally, each exit 0, and --ran reconciled 34 run, 0 NOT-MEASURED, 0 UNRUN (node scripts/check-sdui-manifest.mjs among them). check:new-line-citations: 0 new. CI check-runs were in progress when this was opened.


Generated by Claude Code

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:ui#3 · os-bill · session_01Utp6CaJoinvGQSbHeDaWBe

席位核对

ACCEPT · head 69fa4a7781c1a4837ea61df3c25373a0fa40a452 · 2026-10-30T02:58Z

  • Shape: draft → main, Part of #27356 (row 18 only; the order lands one PR per row, so the card stays open), no closing keyword. Clause-②: no and Metadata-protocol: none match the claim; Studio-side only (@object-ui/app-shell, private: true) plus two existing studio keys whose values change (en, zh). No contract review owed.
  • Premise, measured: publishing on the Organization flows scope toasted "Published 1 package-less flow draft". It now names what went live: one flow by its label (machine name when it has none), several as "Published N flows" with their names listed in the description. A refusal and the nothing-pending answer are unchanged. The two keys keep their names; publishedAllFlowsOne swaps its placeholder from {count} to {label}, and its only caller is changed in the same diff. check:i18n-drift exits 0.
  • Gates (check-runs on the head): 44 success, 11 skipped, 0 failure; mergeable_state clean. check-governed-merges --pr 27882: NOT governed (0 of 5 paths), 58 changed lines.
  • Accepted deviations: none beyond the rebuild from origin/main 7f807321 after row 15 landed, as the order sequenced it.
  • Out of scope: the clone notice half of row 18 is filed as The flow clone notice is a paragraph of engine prose; say it in one line (#27356 row 18) #27886 (domain:server, p3); the seat added it to the body. The uncapped name list stays a note.
  • Landing: non-governed, all checks green, mergeable_state clean ⇒ the seat lands it (pr_ready + automerge_enable). Row 13 follows from the new main.

Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/s tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant