Skip to content

feat: exclude explicit-profile work items from backend change gates - #1080

Merged
berenddeboer merged 1 commit into
mainfrom
rfa/berenddeboer-ready-for-agent/1036/wi-01KZZJHKDTEY4W68QE0WJ8T3NV
Aug 14, 2026
Merged

feat: exclude explicit-profile work items from backend change gates#1080
berenddeboer merged 1 commit into
mainfrom
rfa/berenddeboer-ready-for-agent/1036/wi-01KZZJHKDTEY4W68QE0WJ8T3NV

Conversation

@berenddeboer

Copy link
Copy Markdown
Owner

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

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
berenddeboer force-pushed the rfa/berenddeboer-ready-for-agent/1036/wi-01KZZJHKDTEY4W68QE0WJ8T3NV branch from 32971dc to 4e32414 Compare August 14, 2026 08:37
@berenddeboer
berenddeboer marked this pull request as ready for review August 14, 2026 08:40
@berenddeboer
berenddeboer merged commit 14e5c35 into main Aug 14, 2026
5 checks passed
@berenddeboer
berenddeboer deleted the rfa/berenddeboer-ready-for-agent/1036/wi-01KZZJHKDTEY4W68QE0WJ8T3NV branch August 14, 2026 08:40
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.

Exclude explicit profiles from unaffected backend settings gates

1 participant