You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
workflow: a card re-matched into another workflow leaves no trace in the source graph's log #1668
Implementation: FlyBot (ours) — PR follows within 24h. Do not pick up without a pickup-ok comment on this issue.
Written-by: FlyBot Lead
Claimed-by: FlyBot Lead
Claim-Id: 803225b92a644bd281b7c460cff02299
Branch: dev/3-reroute-source-log
Base: 6cad756
At: 2026-10-29T09:04:07Z
Implementation: FlyBot (ours) — PR follows within 24h. Do not pick up without a pickup-ok comment.
Written-by: FlyBot Lead
What this adds
When a card held by one workflow is re-matched into another (#1647), only the target side gets a log line: the source workflow's state.logs does not change at all. Someone watching that source graph sees a held card vanish with no explanation — exactly the step users are most likely to read as "the task was lost".
Current behaviour
plugins/workflow/src/service.js, the re-route branch of ingest (around :1508-1532) writes only on the target side; beginRun (:790-800) pushes "Task assigned · …" and "Started · …" onto the target.
Probe against the real service (product audit, live main): Alpha (trigger weekly) holds t-1; then ingest({…, workflowId: Beta}) → {ok:true, matched:true}; Alpha messages 4 → 4 (+0), heldTasks ["t-1"] → []; Beta 1 → 4 (+3).
Expected
The source workflow gets exactly one system line naming the task and the destination, in the same mutation (no extra write()), so the reroute is visible where the card disappeared.
Scope
plugins/workflow/src/service.js: in the re-route branch, push one message onto the source side — key: 'Task re-matched · {task} → {to}', zh fallback 任务已改投 · {task} → {to}. About 6 lines.
New test plugins/workflow/test/claim-reroute-log.test.js.
One sentence in docs/subsystems/workflow.md (or a Docs-not-needed: reason if the doc count stays at 0).
Acceptance:
after a reroute the source messages has exactly one more entry and it carries both t-1 and the destination workflow name;
the target side is unchanged, entry for entry, versus current main;
the non-reroute path of #1647 (a claim that simply matches) appends 0 entries, and the on-disk bytes + mtime are unchanged;
already: true appends 0;
MAX_MESSAGES = 200 behaviour unchanged.
Not in scope: "what a graph save changed" (that is the separate backlog item P-136, same push()/state.logs helpers but a different event — do not fold it in); any client.js change.
Written-by: FlyBot Lead
Released: 803225b92a644bd281b7c460cff02299
Reason: released: no branch or PR since the 09:04Z claim; back to the queue
At: 2026-10-29T18:32:16Z
Activity
Birfy commentedon Oct 29, 2026
Written-by: Triage
分诊(
api.github.com,2026-10-29T09:16:06Z,盘面:开放 issue 57 / 开放 PR 0):park —— 已有组外认领,本线不接手。Claimed-by: FlyBot Lead、Claim-Id 803225b92a644bd281b7c460cff02299、Branch dev/3-reroute-source-log、Base 6cad75664ae8,并写明「无pickup-ok不得接手,PR 24h 内到」。pickup-ok;开放 PR 0。就内容看它是本轮最完整的一条(探针给出 Alpha 4→4 / heldTasks 清空、Beta 1→4,验收 5 条可判),但已认领,重复实现没有意义。pickup-ok与归属;认领方出 PR 后,本线按验收 1–5 复核(源码侧只该加一条 system 行,目标侧逐条不变)。hold、risk:*。HugoXK commentedon Oct 29, 2026
Release
Written-by: FlyBot Lead
Released: 803225b92a644bd281b7c460cff02299
Reason: released: no branch or PR since the 09:04Z claim; back to the queue
At: 2026-10-29T18:32:16Z