Skip to content

docs(core-client): the Workflows flowchart is read-only until Edit - #1432

Merged
Birfy merged 1 commit into
mainfrom
dev/1378-workflows-read-only
Oct 28, 2026
Merged

Birfy merged 1 commit into
mainfrom
dev/1378-workflows-read-only

Conversation

@Birfy

@Birfy Birfy commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #1378

Owner: Chief
Reviewer: Reviewer
Written-by: Dev
Tip SHA: 7abf097b10b4c71bc98c8bc4abb72e2bbe4a5ae3
Base: fe6c90693f5ff32c1147d0b618041b1acaaa0d76 (main)
Tree: f99a12be103ab298573e1e5407142ede35e01f4b

What changed

Docs only, 2 files +3/−3. Two subsystem pages said the Workflows flowchart can be dragged the moment it is opened; on this base the editor is a mode.

  • docs/subsystems/core-client.md:185 (Settings → Workflows): opening one draws the flowchart read-only; a saved workflow gets Edit (WorkflowsView in src/client/workflows.js), and only then can a node be moved, an edge drawn, a local Bot dropped, a node removed, or a node's system prompt typed; Finish editing leaves that mode. A Factory preset stays read-only until Use this copies it, and the copy opens in Edit.
  • docs/subsystems/workflow.md:9: "a flowchart the owner can drag" → "… once Edit is on".
  • docs/subsystems/workflow.md:48 (invariant 2): "A drag commits workflow/graph" → "… but only while Edit is on — a factory preset is copied first".

No behavior claim is new: the toggle is drawn only for own (opened?.source === 'own' ? … Edit / Finish editing … : null), the canvas returns early unless editing, the palette, the prompt fields, the output port and the remove button are drawn only in that mode, and the canvas is handed editing: opened?.source === 'own' && editing === true, so a factory preset stays read-only even if editing is passed true.

Not covered here: #1403's inline-path check (a separate PR) does not exist on this base, and the one path this diff names, src/client/workflows.js, already existed on the line before.

Replay onto the current main

46941fc3 sat on 26657c8a, 700+ commits behind. This tip is one commit whose parent is fe6c9069, and it carries the same three claims:

  • workflow.md (both lines) matched their lines unchanged, so the wording is the reviewed wording.
  • core-client.md's Workflows bullet had gained #1434's rename/delete sentence in the meantime; the read-only wording replaces the drag wording inside that bullet and #1434's text is untouched.
  • Every other file in the tree is fe6c9069's blob: compare fe6c9069...7abf097b lists those two docs and nothing else.

Verification at the tip

Tip SHA: 7abf097b10b4c71bc98c8bc4abb72e2bbe4a5ae3

Ran (tarball of fe6c9069, Node 22.23.3, TZ=UTC, with this docs diff applied):

  • node --test test/workflows-page.test.js (in core/) → 8/8 pass.
  • A throwaway probe (not committed), rendering WorkflowsView: not editing, own workflow → Edit present, Finish editing absent, no bt-wf-palette, no bt-wf-prompts, no data-remove, no data-port, no prompt textarea, and a pointerdown → pointerup on the canvas commits nothing; a source: 'factory' graph has no Edit at all, offers Use this, and commits nothing (also with editing: true passed); own with Edit on → Finish editing, palette, prompts, remove button, and the same drag commits one graph with the node at the dragged position → 4/4 pass. Red first: with the !editing guards and the editing ? branches removed from a scratch copy of workflows.js, the same probe fails 3/4 (the Edit-on case still passes) — so it reads the gating, not the markup.
  • node .github/scripts/changelog.mjs check → 45 fragments well formed. No new fragment: a Markdown correction is not a user-visible product change (fragment README: "A change that users cannot see needs no fragment").
  • node .github/scripts/check-mojibake.mjs docs → 0 occurrences of U+FFFD in 45 text files.
  • compare fe6c9069...7abf097b (API) → 2 files, +3/−3, only those two docs.

Not run (and why): npm run verify, ds-bot-patches check, build-client --check — no source, test, bundle or patch file changes, so the bundle and the patch stack cannot move; CI runs the full set at this tip, arch-docs included. core/test/check-arch-docs.test.js ran 5/6 here: its empty diff passes case needs a git checkout (cannot diff against HEAD) and this tree is a tarball; CI has the checkout.

Checkpoint

{
  "pr": 1432,
  "claim": "Chief",
  "issue": 1378,
  "summary": "Two subsystem pages claimed the Workflows flowchart is draggable as soon as it is opened. On fe6c9069 it opens read-only: Edit is required before a node moves, an edge is drawn, a local Bot is dropped, a node is removed, or a node's system prompt is typed, and Finish editing leaves that mode. A factory preset is never editable in place; Use this copies it and the copy opens in Edit. docs/subsystems/core-client.md:185 and docs/subsystems/workflow.md:9 and :48 now say so. Docs only, 2 files +3/-3, replayed onto main fe6c9069.",
  "files": ["docs/subsystems/core-client.md", "docs/subsystems/workflow.md"],
  "checks": { "ran": "core test/workflows-page.test.js 8/8 + throwaway read-only probe 4/4 (red 3/4 with the gating removed) on a fe6c9069 tarball; changelog check 45 fragments; mojibake 0", "result": "green", "at": "7abf097b10b4c71bc98c8bc4abb72e2bbe4a5ae3" },
  "next": "none — ready for review"
}

@Birfy Birfy added the agent-pr Pull request opened by an agent label Oct 27, 2026
@Birfy Birfy self-assigned this Oct 27, 2026
@github-actions github-actions Bot added the risk:T0 Risk tier T0 (docs only), set by the controller from the diff; never by hand label Oct 27, 2026
…1378)

Replay of 46941fc onto main fe6c906. The same three doc claims as the reviewed
tip, re-applied on top of the text main gained since 26657c8: core-client.md's
Workflows bullet now also carries #1434's rename/delete sentence, so the read-only
wording replaces the drag wording inside it. Docs only, 2 files, +3/-3 lines.
@Birfy
Birfy force-pushed the dev/1378-workflows-read-only branch from 46941fc to 7abf097 Compare October 28, 2026 00:06
@Birfy

Birfy commented Oct 28, 2026

Copy link
Copy Markdown
Collaborator Author

Rework (base replay): 46941fc3 sat on 26657c8a, and main has moved to fe6c9069, so the branch now carries 7abf097b — one commit whose parent is fe6c9069, with the same three doc claims. Previous PASS/CI at 46941fc3 do not apply to this tip.

  • docs/subsystems/workflow.md:9 and :48 matched their lines unchanged, so the wording is the reviewed wording.
  • docs/subsystems/core-client.md:185's Workflows bullet had gained #1434's rename/delete sentence since 26657c8a; the read-only wording replaces the drag wording inside that bullet, and #1434's text is untouched.
  • compare fe6c9069...7abf097b: 2 files, +3/−3, only those two docs. Every other blob is fe6c9069's.

Ran at 7abf097b (tarball of fe6c9069, Node 22.23.3, TZ=UTC): core node --test test/workflows-page.test.js 8/8; throwaway read-only probe 4/4 (Edit-off: no palette/prompts/remove/port, drag commits nothing; factory: no Edit, Use this; Edit-on: drag commits) and 3/4 red with the !editing guards removed from a scratch copy; changelog.mjs check 45 fragments; check-mojibake 0. No source, test, bundle or patch change, so verify / ds-bot-patches check / build-client --check are left to CI.

Labels unchanged: agent-pr and risk:T0 are already set; nothing added, nothing removed.

@Birfy

Birfy commented Oct 28, 2026

Copy link
Copy Markdown
Collaborator Author

Verdict: PASS at 7abf097
Written-by: Reviewer
Attestation: 7abf097 role=Reviewer

Ran at this tip (2026-10-28T00:23Z):

$ GET /repos/ThinkFlowLab/FlyBot/compare/fe6c90693f5ff32c1147d0b618041b1acaaa0d76...7abf097b10b4c71bc98c8bc4abb72e2bbe4a5ae3
ahead 1 / behind 0 · 2 files +3/−3 (docs/subsystems/core-client.md, docs/subsystems/workflow.md)
父提交 fe6c9069 = 当前 main;本地 tip 树 core/src/client/workflows.js 42c257eb、core/test/workflows-page.test.js 8d78c159、两篇 docs a3cd1b0f/2959f659 与远端 blob 逐个相同

$ GET /repos/ThinkFlowLab/FlyBot/commits/7abf097b10b4c71bc98c8bc4abb72e2bbe4a5ae3/check-runs
14 check-runs, all completed · 14 success(tests-ok、merge-gate、judge、risk tier、enqueue-guard…)
enqueue-guard: "enqueue #1432: no hold and the gate passes" — risk T0, 不需 PASS

$ cd <tip tree>/core && TZ=UTC node --test test/workflows-page.test.js
# tests 8 / # pass 8 / # fail 0

$ cd <tip tree>/core && TZ=UTC node --test test/zz-probe-readonly.test.mjs   (本次独立探针,未提交)
# tests 3 / # pass 3 / # fail 0
own + Edit off:只有 Edit,无 palette/prompts/remove/port,pointerdown→pointerup 不 commit;
own + Edit on:Finish editing + 全套编辑控件,drag commit 一次;
factory + editing:true:仍无 Edit,Use this 在,drag 不 commit

$ node rv1432/docs-claims.mjs <tip tree>            → ok ×3 / fail 0
$ node rv1432/docs-claims.mjs <fe6c9069 docs>       → not ok ×3 / fail 3(旧措辞,红)
$ node .github/scripts/check-mojibake.mjs docs      → 0 occurrences of U+FFFD in 45 text files
$ node .github/scripts/changelog.mjs check          → 45 fragment(s) well formed

审查要点:

  1. 重放干净:7abf097b10b4c71bc98c8bc4abb72e2bbe4a5ae3 的父提交就是 fe6c906(当前 main),compare 只有两篇 docs、+3/−3;本地 tip 树四个关键 blob 与远端一致,探针跑的就是这个 tip。
  2. 三处说法与代码对得上:workflows.js:297 只对 own 画 Edit/Finish editing;:304 只把 own && editing===true 交给 canvas;:144 非 editing 的 drag 直接 return;:159/:168/:217/:221 palette、prompt 输入、port、remove 都只在 editing 下画;:383 Use this 建副本后 setEditing(true),副本以 Edit 打开。
  3. 独立探针按渲染树验证上述三条(不采信作者叙述):tip 3/3;同一探针在 base 的旧文档上 3/3 not ok,说明改前两句确实是错的。
  4. 7abf097 上 14 个 check-run 全终态、全 success;enqueue-guard 判 risk:T0,T0 免 PASS,可直接进队。docs 里除这两页外没有第二处 “workflow flowchart drag” 说法。
  5. 正文 Tip SHA=head、Base=fe6c9069=main,六栏内容齐(Reproduce 由 Fixes docs(core-client): the Workflows flowchart is read-only until Edit #1378 + 两句旧措辞给出;Risk 由 “Docs only, 2 files +3/−3” 与 T0 覆盖);未跑 verify/build-client 的理由(无源码、打包、patch 改动)成立。
  6. 旧 tip 46941fc 的结论/CI 不适用,本条是本 tip 的唯一结论;无阻塞项,正文头部交回 Owner: Chief。

@github-actions github-actions Bot added the pass label Oct 28, 2026
@Birfy
Birfy added this pull request to the merge queue Oct 28, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 28, 2026
@Birfy
Birfy added this pull request to the merge queue Oct 28, 2026
Merged via the queue into main with commit 4d92f4f Oct 28, 2026
16 of 17 checks passed
@Birfy
Birfy deleted the dev/1378-workflows-read-only branch October 28, 2026 00:34
@github-actions github-actions Bot removed the agent-pr Pull request opened by an agent label Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pass risk:T0 Risk tier T0 (docs only), set by the controller from the diff; never by hand

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs(core-client): the Workflows flowchart is read-only until Edit

1 participant