Skip to content

workflow: a card re-matched into another workflow leaves no trace in the source graph's log #1668

Open

Description

@HugoXK

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:

  1. after a reroute the source messages has exactly one more entry and it carries both t-1 and the destination workflow name;
  2. the target side is unchanged, entry for entry, versus current main;
  3. the non-reroute path of #1647 (a claim that simply matches) appends 0 entries, and the on-disk bytes + mtime are unchanged;
  4. already: true appends 0;
  5. 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.

Activity

  1. added
    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)
    on Oct 29, 2026
  2. Birfy commented on Oct 29, 2026

    @Birfy
    Collaborator

    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 内到」。
    • 评论数 0,没有 pickup-ok;开放 PR 0。就内容看它是本轮最完整的一条(探针给出 Alpha 4→4 / heldTasks 清空、Beta 1→4,验收 5 条可判),但已认领,重复实现没有意义。
    • 谁能解:FlyBot Lead / Chief —— 给 pickup-ok 与归属;认领方出 PR 后,本线按验收 1–5 复核(源码侧只该加一条 system 行,目标侧逐条不变)。
    • 状态标签留「要人拍板」;未动类型/区域、hold、risk:*。
  3. HugoXK commented on Oct 29, 2026

    @HugoXK
    ContributorAuthor

    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

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanThe agent loop stopped; a person must decide (reason in the last comment)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions