Uh oh!
There was an error while loading. Please reload this page.
fix(auto-classify): sync Deploy env from Status instead of "set if unset" - #44
Merged
Merged
Conversation
…set" Status is the source of truth for an item's location in the deploy pipeline; Deploy environment should always track it. Previously the cron only filled Deploy when unset and never reconciled drift, which meant items whose Status got updated by paths other than advance-deploy-env (closure-router on issue close, manual drag-and- drop, one-off backfills) ended up with stale Deploy values. Audit on 2026-05-14 found 311 of 449 Prod items pointing at the wrong Deploy environment — the "Deployment environment" board view was showing hundreds of Prod cards in the dev/staging columns. Mapping (Status -> Deploy env): Backlog / Ready / In progress / Code review / Cancelled -> none FR on dev / Ready for staging -> dev FR on staging / Ready for prod -> staging Prod -> prod advance-deploy-env still does the immediate update on push events; this cron is the safety net for everything else. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The "Deployment environment" board view was showing hundreds of
Prodcards in thedevandstagingcolumns — because Status and Deploy environment had silently drifted apart.Audit on 2026-05-14 found 311 of 449
Proditems (69%) with a wrongDeploy environmentvalue. Just synced them via GraphQL — but this PR closes the leak so it doesn't recur.Root cause
advance-deploy-envupdates both fields atomically on push events, but several other paths only touchStatus:kanban-closure-routeron issue close → sets Status, never touches DeployAuto-classify was a candidate to reconcile, but its Deploy section was conservative: only fill if unset, never overwrite. So drift accumulated.
Fix
Make Deploy environment a derived field — always sync from Status:
nonedevstagingprodThe cron runs every 10 min and now overwrites Deploy when it doesn't match the column.
advance-deploy-envstill does the immediate update on push events — this cron is the safety net for everything else.Test plan
workflow_dispatch→ verify zero items mutated (board is now clean)FR on devtoBacklogon the board → wait 10 min → verify Deploy env flips fromdevtononeProdand Deploy env=prodwithin 10 min🤖 Generated with Claude Code