feat: exclude explicit-profile work items from backend change gates - #1080
Merged
berenddeboer merged 1 commit intoAug 14, 2026
Conversation
Unfinished Implement With Work Items have an immutable Explicit Work Item Execution Profile, so Repository overrides and the Harness default cannot change their routing or models. Those Work Items were still incrementing the scoped backend-change counts and blocking unrelated saved-default edits (#1036). `countBlockingUnfinishedForRepository` and `countBlockingUnfinishedForGlobalDefault` now count only unfinished ordinary Work Items (`execution_profile_present = 0`). Fleet unfinished totals, uniqueness, identity, concurrency, and `listSelectedOrInUseBackendIds` still include every unfinished Work Item, including a backend captured only through Implement With. Settings writes do not rewrite profile columns. Persistence tests cover allow/block for both scopes and profile immutability after a successful change. GraphQL settings mutations assert scoped counts and `AGENT_BACKEND_CHANGE_BLOCKED` mapping. Harness tests keep the operator-facing disable copy on the scoped blocking count. GraphQL still stubs `DbService` for those mutations; the real exclusion is in persistence. The staged hook TypeScript shim (`hk.pkl`, `fix-bun-typescript-for-nx.mjs`) is unrelated environment durability for Nx pre-commit, not part of the gate contract. Closes #1036
berenddeboer
force-pushed
the
rfa/berenddeboer-ready-for-agent/1036/wi-01KZZJHKDTEY4W68QE0WJ8T3NV
branch
from
August 14, 2026 08:37
32971dc to
4e32414
Compare
berenddeboer
marked this pull request as ready for review
August 14, 2026 08:40
berenddeboer
deleted the
rfa/berenddeboer-ready-for-agent/1036/wi-01KZZJHKDTEY4W68QE0WJ8T3NV
branch
August 14, 2026 08:40
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 free
to 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.
Unfinished Implement With Work Items have an immutable Explicit Work
Item Execution Profile, so Repository overrides and the Harness default
cannot change their routing or models. Those Work Items were still
incrementing the scoped backend-change counts and blocking unrelated
saved-default edits (#1036).
countBlockingUnfinishedForRepositoryandcountBlockingUnfinishedForGlobalDefaultnow count only unfinishedordinary Work Items (
execution_profile_present = 0). Fleet unfinishedtotals, uniqueness, identity, concurrency, and
listSelectedOrInUseBackendIdsstill include every unfinished WorkItem, including a backend captured only through Implement With.
Settings writes do not rewrite profile columns.
Persistence tests cover allow/block for both scopes and profile
immutability after a successful change. GraphQL settings mutations
assert scoped counts and
AGENT_BACKEND_CHANGE_BLOCKEDmapping.Harness tests keep the operator-facing disable copy on the scoped
blocking count.
GraphQL still stubs
DbServicefor those mutations; the real exclusionis in persistence. The staged hook TypeScript shim (
hk.pkl,fix-bun-typescript-for-nx.mjs) is unrelated environment durabilityfor Nx pre-commit, not part of the gate contract.
Closes #1036