Repository navigation
fix(kanban): refuse single-sub pin routes (claude-apx/bpx-N, pre-rename aliases) at set time - #1116
Conversation
…me aliases) at set time Card model_override (create / set-model / edit --model / batch) and lane-model writers now refuse provider values that pin one Claude sub: claude-apx-N, claude-bpx-N and the pre-rename aliases (claude-api-proxy = claude-apx-0 = Ace's personal Mac sub, claude-proxy, claude-subscription-proxy, claude-bridge, -fN/-failoverN/-fallbackN). Checked before and after alias resolution, on the explicit provider and on a provider/ prefix of the model. The refusal names the pool alternative (claude-bpr / claude-apr). Verified: tests/hermes_cli/test_kanban_pinned_sub_refusal.py 25 passed; with kanban_db.py+kanban.py wiring reverted, 5 writer tests fail (mutation). Card: t_141135aa
… refuse them) _rl_burst and the vendor-prefix spawn test modelled historical rows via the writers; those rows are still dispatchable, so keep the assertions and seed them directly. Verified: the 3 CI-red node ids pass locally. Card: t_141135aa
|
🤖 merged-by: apollo · lane: kanban-merge-pass · gate: BYPASS: FleetReview paused by Ace 2026-09-22 (state/fleetreview-pause marker present) · why: t_141135aa: Naming/routing floor: no pre-rename provider aliases and no apx-N / local-sub pi; Argus off card review (Ace 13:08), CI green |
FleetReviewReview: post-merge · head Post-merge review ( profile: light (rule: default light: lines 220<800, files 6<1000000, hunks 10<1000000, no hot path) · round 0 · members: B-assert-ctx, B-state, L6, G · families: openai,xai Confidence: 4/5 No issues found. FleetReview provenance · models: B=gpt-6-sol, D=grok-4.6 · cost: $0.30 · duration: 6m 56s · rounds: 1 · files examined: 6 |
Card t_141135aa (Ace 2026-09-25). Worker cards/lanes pinned to claude-apx-0 (and via the claude-api-proxy alias) dropped workers onto Ace's personal sub: 95x 429 + 46x 401 today.
Every kanban route writer (create_task, set_model_override + batch, set_task_model, set_lane_model_override, lane-model CLI) now refuses providers matching claude-(apx|bpx)-N or a pre-rename alias (claude-api-proxy|claude-proxy|claude-subscription-proxy|claude-bridge, -fN/-failoverN/-fallbackN, claude-cli-bridge). Checked pre- and post-alias-resolution, on the explicit provider and a provider/ prefix on the model. Error text names claude-bpr / claude-apr.
Tests: tests/hermes_cli/test_kanban_pinned_sub_refusal.py (25 pass locally; 5 writer tests fail with the wiring reverted). Existing-offender sweep lives in the home repo (scripts/kanban-pinned-sub-sweep.py).
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.