Skip to content

fix(router): sibling-based merges get a visible label, not a stranded On dev card (backend#1437) - #157

Merged
LukasWodka merged 6 commits into
developfrom
fix/1437-sibling-merge-routing
Aug 5, 2026
Merged

fix(router): sibling-based merges get a visible label, not a stranded On dev card (backend#1437)#157
LukasWodka merged 6 commits into
developfrom
fix/1437-sibling-merge-routing

Conversation

@LukasWodka

@LukasWodka LukasWodka commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Mechanism 1 of backend#1437, fixed at its source. The router's *) fallthrough sent every merged PR with a non-integration base to On dev — where it strands forever, because the parent PR carries the content through the pipeline and nothing ever references the sibling again (6 hand-corrected cards in the 2026-08-02 audit).

Per the ticket's own proposal ("label the card so the condition is visible instead of silent"): a sibling-based merge now makes no column move and gets a sibling-merge label (auto-created per repo, promote-repo.sh's gate-nudge pattern), flagging it for the weekly board pass. The parent's merge advances the actual content through the normal columns, as it always did.

Mechanism 2 of the ticket (repos with no promotion path) was resolved by D1's enrolment — disposition being recorded on the ticket. Closes tracebloc/backend#1437 together with that comment.

🤖 Generated with Claude Code


Note

Low Risk
Changes are limited to kanban GitHub Actions routing and labeling; no application runtime, auth, or data paths are touched.

Overview
Fixes backend#1437 mechanism 1: PRs merged into a sibling feature branch (base other than develop / staging / main / master) were routed to On dev with no signal that the work only ships via a parent PR, so cards could sit there indefinitely.

kanban-closure-router.yml now sets a sibling output on that merge path, still writes On dev (so project “item closed” automation does not mark them Cancelled), runs Status update before labeling, then applies an auto-created sibling-merge label on the PR.

kanban-reconcile.yml mirrors the same base-branch rule when backfilling missing board items (GraphQL now includes baseRefName), resets the sibling flag per loop item so issues are not mislabeled, and applies the label only on the non–dry-run path after status is set.

Reviewed by Cursor Bugbot for commit c9c508d. Bugbot is set up for automated code reviews on this repo. Configure here.

… On dev card (backend#1437)

The '*' fallthrough routed any merged PR with a non-integration base to
On dev, where it stranded forever — the parent PR carries the content
onward and nothing ever moves the sibling's card again (6 cards in the
2026-08-02 audit). Now: no column move, sibling-merge label instead,
so the condition is visible to the weekly board pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Comment thread .github/workflows/kanban-closure-router.yml
Comment thread .github/workflows/kanban-closure-router.yml Outdated
Comment thread .github/workflows/kanban-closure-router.yml
LukasWodka and others added 2 commits August 5, 2026 20:25
… writes hard-fail; reconcile mirrors the rule (Bugbot, #157)

All three findings real: (1) a skipped Status write let the project's
built-in Item-closed automation Cancel shipped-via-parent work - On dev
+ label is the non-terminal holding state; (2) || echo swallowed label
write failures against the PROJECTS_KANBAN_TOKEN write rule - they fail
the step now; (3) kanban-reconcile's membership add re-stranded siblings
missed by auto-add - it now applies the identical rule + label.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… writes hard-fail; reconcile mirrors the rule (Bugbot, #157)

All three findings real: (1) a skipped Status write let the project's
built-in Item-closed automation Cancel shipped-via-parent work - On dev
+ label is the non-terminal holding state; (2) || echo swallowed label
write failures against the PROJECTS_KANBAN_TOKEN write rule - they fail
the step now; (3) kanban-reconcile's membership add re-stranded siblings
missed by auto-add - it now applies the identical rule + label.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Comment thread .github/workflows/kanban-closure-router.yml Outdated
Comment thread .github/workflows/kanban-reconcile.yml Outdated
LukasWodka and others added 2 commits August 5, 2026 20:34
…gbot round 2, #157)

Label-before-status let a label failure skip the column write via the
implicit success() condition, stranding the card in the built-in
automation's Cancelled - exactly what round 1 fixed. Order flipped in
both files. Reconcile's label write moves inside the wet path: dry
runs classify (SIB flag) but mutate nothing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…gbot round 2, #157)

Label-before-status let a label failure skip the column write via the
implicit success() condition, stranding the card in the built-in
automation's Cancelled - exactly what round 1 fixed. Order flipped in
both files. Reconcile's label write moves inside the wet path: dry
runs classify (SIB flag) but mutate nothing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 41f1e7d. Configure here.

Comment thread .github/workflows/kanban-reconcile.yml Outdated
…anch (Bugbot round 3, #157)

SIB=0 lived inside the merged-PR else-branch, so an issue or open PR
visited after a sibling inherited the flag and got mislabeled.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@LukasWodka
LukasWodka merged commit a8c6373 into develop Aug 5, 2026
2 of 4 checks passed
@LukasWodka
LukasWodka deleted the fix/1437-sibling-merge-routing branch August 14, 2026 13:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant