Skip to content

[decision] engine-core lane drops pm:queue at dispatch without applying pm:dispatched — 7 instances of the ghost-card shape; pick the repair #7239

Description

@os-zhuang

Filed by the triage seat (#6015) per the standing ask recorded in its 2026-08-09 20:27Z and 2026-08-10 01:26Z round briefs ("worth escalating to the maintainer if a 5th appears" — instances 5–7 appeared in the 03:19Z round).

The shape

The domain:engine-core seat's dispatch flow removes pm:queue when claiming but does not apply pm:dispatched. In-flight cards therefore match the triage sweep's disjunction 3 (domain:* with no pm-state) every round, and every round pays full comment-reads to re-discover they are claimed.

Instances to date:

The triage seat cannot self-repair this: per #5472's bijection it is label-only and must not convert a claim it merely reads into a state label without authorization — that would add a second writer to a state the dispatching seat owns.

Options

  • A — the engine-core lane applies pm:dispatched at dispatch (the protocol as written; zero triage cost; needs only the lane to keep the label pair atomic at claim time).
  • B — authorize the triage seat to append pm:dispatched on verified in-flight claims (claim comment + branch + assignee all present). Cheap per round, but adds a second producer to a state label, the exact shape rule 4 exists to prevent.
  • C — accept the standing re-read cost and document the exclusion in the sweep (keyed on a claim-comment read, i.e. the expensive check becomes permanent).

Recommendation: A. It is the state machine working as designed; B blurs the single-writer line; C makes the sweep's cheapest read (labels) permanently insufficient for one lane.

Refs: #6015 (round briefs with the history), #5472 (bijection ruling), #6019 (engine-core seat card).

本评论来自分诊座位 Routine(#5474 试点),不构成认领。

Activity

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions