- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
- Claude-Session
- https://claude.ai/code/session_01KnhfrafYx5ZGaMbzZEJQ2d
Refuse a Coder tier this deployment cannot answer
Deploy story
What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.
Not deployed through the forge lane
No push, promotion, build, or deploy receipt references this commit (receipts are scanned over a bounded recent window). Changes shipped by full node replacement carry their proof in the release gate receipt instead.
Changed files
-
modified
INVARIANTS.md -
modified
packages/openagents-cli/src/cli.ts -
modified
packages/openagents-cli/src/coder-tiers.ts -
modified
packages/openagents-cli/test/coder-tiers.test.ts
Diff
4 files changed, +202 -20
INVARIANTS.md modified +15
@@ -2521,5 +2521,20 @@ renders as the bare product name `Coder`, never as its id.
| 2521 | 2521 |
|
| 2522 | 2522 |
|
| 2523 | 2523 |
|
| 2524 |
|
|
| 2525 |
|
|
| 2526 |
|
|
| 2527 |
|
|
| 2528 |
|
|
| 2529 |
|
|
| 2530 |
|
|
| 2531 |
|
|
| 2532 |
|
|
| 2533 |
|
|
| 2534 |
|
|
| 2535 |
|
|
| 2536 |
|
|
| 2537 |
|
|
| 2538 |
|
|
| 2524 | 2539 |
|
| 2525 | 2540 |
|
packages/openagents-cli/src/cli.ts modified +14 -20
@@ -55,12 +55,7 @@ import type { ReplySource } from "./coder-session.js";
| 55 | 55 |
|
| 56 | 56 |
|
| 57 | 57 |
|
| 58 |
|
|
| 59 |
|
|
| 60 |
|
|
| 61 |
|
|
| 62 |
|
|
| 63 |
|
|
| 58 |
|
|
| 64 | 59 |
|
| 65 | 60 |
|
| 66 | 61 |
|
@@ -115,7 +110,7 @@ import { fileURLToPath } from "node:url";
| 115 | 110 |
|
| 116 | 111 |
|
| 117 | 112 |
|
| 118 |
|
|
| 113 |
|
|
| 119 | 114 |
|
| 120 | 115 |
|
| 121 | 116 |
|
@@ -1727,15 +1722,11 @@ async function buildDelegation(options: {
| 1727 | 1722 |
|
| 1728 | 1723 |
|
| 1729 | 1724 |
|
| 1730 |
|
|
| 1731 |
|
|
| 1732 |
|
|
| 1725 |
|
|
| 1733 | 1726 |
|
| 1734 | 1727 |
|
| 1735 | 1728 |
|
| 1736 |
|
|
| 1737 |
|
|
| 1738 |
|
|
| 1729 |
|
|
| 1739 | 1730 |
|
| 1740 | 1731 |
|
| 1741 | 1732 |
|
@@ -2341,6 +2332,14 @@ const coderCommand = Command.make(
| 2341 | 2332 |
|
| 2342 | 2333 |
|
| 2343 | 2334 |
|
| 2335 |
|
|
| 2336 |
|
|
| 2337 |
|
|
| 2338 |
|
|
| 2339 |
|
|
| 2340 |
|
|
| 2341 |
|
|
| 2342 |
|
|
| 2344 | 2343 |
|
| 2345 | 2344 |
|
| 2346 | 2345 |
|
@@ -2563,9 +2562,7 @@ const coderCommand = Command.make(
| 2563 | 2562 |
|
| 2564 | 2563 |
|
| 2565 | 2564 |
|
| 2566 |
|
|
| 2567 |
|
|
| 2568 |
|
|
| 2565 |
|
|
| 2569 | 2566 |
|
| 2570 | 2567 |
|
| 2571 | 2568 |
|
@@ -2592,10 +2589,7 @@ const coderCommand = Command.make(
| 2592 | 2589 |
|
| 2593 | 2590 |
|
| 2594 | 2591 |
|
| 2595 |
|
|
| 2596 |
|
|
| 2597 |
|
|
| 2598 |
|
|
| 2592 |
|
|
| 2599 | 2593 |
|
| 2600 | 2594 |
|
| 2601 | 2595 |
|
packages/openagents-cli/src/coder-tiers.ts modified +62
@@ -57,6 +57,68 @@ export const coderTierLabel = (modelId: string | undefined): string => {
| 57 | 57 |
|
| 58 | 58 |
|
| 59 | 59 |
|
| 60 |
|
|
| 61 |
|
|
| 62 |
|
|
| 63 |
|
|
| 64 |
|
|
| 65 |
|
|
| 66 |
|
|
| 67 |
|
|
| 68 |
|
|
| 69 |
|
|
| 70 |
|
|
| 71 |
|
|
| 72 |
|
|
| 73 |
|
|
| 74 |
|
|
| 75 |
|
|
| 76 |
|
|
| 77 |
|
|
| 78 |
|
|
| 79 |
|
|
| 80 |
|
|
| 81 |
|
|
| 82 |
|
|
| 83 |
|
|
| 84 |
|
|
| 85 |
|
|
| 86 |
|
|
| 87 |
|
|
| 88 |
|
|
| 89 |
|
|
| 90 |
|
|
| 91 |
|
|
| 92 |
|
|
| 93 |
|
|
| 94 |
|
|
| 95 |
|
|
| 96 |
|
|
| 97 |
|
|
| 98 |
|
|
| 99 |
|
|
| 100 |
|
|
| 101 |
|
|
| 102 |
|
|
| 103 |
|
|
| 104 |
|
|
| 105 |
|
|
| 106 |
|
|
| 107 |
|
|
| 108 |
|
|
| 109 |
|
|
| 110 |
|
|
| 111 |
|
|
| 112 |
|
|
| 113 |
|
|
| 114 |
|
|
| 115 |
|
|
| 116 |
|
|
| 117 |
|
|
| 118 |
|
|
| 119 |
|
|
| 120 |
|
|
| 121 |
|
|
| 60 | 122 |
|
| 61 | 123 |
|
| 62 | 124 |
|
packages/openagents-cli/test/coder-tiers.test.ts modified +111
@@ -8,6 +8,7 @@ import {
| 8 | 8 |
|
| 9 | 9 |
|
| 10 | 10 |
|
| 11 |
|
|
| 11 | 12 |
|
| 12 | 13 |
|
| 13 | 14 |
|
@@ -51,6 +52,78 @@ describe("coder tiers", () => {
| 51 | 52 |
|
| 52 | 53 |
|
| 53 | 54 |
|
| 55 |
|
|
| 56 |
|
|
| 57 |
|
|
| 58 |
|
|
| 59 |
|
|
| 60 |
|
|
| 61 |
|
|
| 62 |
|
|
| 63 |
|
|
| 64 |
|
|
| 65 |
|
|
| 66 |
|
|
| 67 |
|
|
| 68 |
|
|
| 69 |
|
|
| 70 |
|
|
| 71 |
|
|
| 72 |
|
|
| 73 |
|
|
| 74 |
|
|
| 75 |
|
|
| 76 |
|
|
| 77 |
|
|
| 78 |
|
|
| 79 |
|
|
| 80 |
|
|
| 81 |
|
|
| 82 |
|
|
| 83 |
|
|
| 84 |
|
|
| 85 |
|
|
| 86 |
|
|
| 87 |
|
|
| 88 |
|
|
| 89 |
|
|
| 90 |
|
|
| 91 |
|
|
| 92 |
|
|
| 93 |
|
|
| 94 |
|
|
| 95 |
|
|
| 96 |
|
|
| 97 |
|
|
| 98 |
|
|
| 99 |
|
|
| 100 |
|
|
| 101 |
|
|
| 102 |
|
|
| 103 |
|
|
| 104 |
|
|
| 105 |
|
|
| 106 |
|
|
| 107 |
|
|
| 108 |
|
|
| 109 |
|
|
| 110 |
|
|
| 111 |
|
|
| 112 |
|
|
| 113 |
|
|
| 114 |
|
|
| 115 |
|
|
| 116 |
|
|
| 117 |
|
|
| 118 |
|
|
| 119 |
|
|
| 120 |
|
|
| 121 |
|
|
| 122 |
|
|
| 123 |
|
|
| 124 |
|
|
| 125 |
|
|
| 126 |
|
|
| 54 | 127 |
|
| 55 | 128 |
|
| 56 | 129 |
|
@@ -91,4 +164,42 @@ describe("session tier cycling", () => {
| 91 | 164 |
|
| 92 | 165 |
|
| 93 | 166 |
|
| 167 |
|
|
| 168 |
|
|
| 169 |
|
|
| 170 |
|
|
| 171 |
|
|
| 172 |
|
|
| 173 |
|
|
| 174 |
|
|
| 175 |
|
|
| 176 |
|
|
| 177 |
|
|
| 178 |
|
|
| 179 |
|
|
| 180 |
|
|
| 181 |
|
|
| 182 |
|
|
| 183 |
|
|
| 184 |
|
|
| 185 |
|
|
| 186 |
|
|
| 187 |
|
|
| 188 |
|
|
| 189 |
|
|
| 190 |
|
|
| 191 |
|
|
| 192 |
|
|
| 193 |
|
|
| 194 |
|
|
| 195 |
|
|
| 196 |
|
|
| 197 |
|
|
| 198 |
|
|
| 199 |
|
|
| 200 |
|
|
| 201 |
|
|
| 202 |
|
|
| 203 |
|
|
| 204 |
|
|
| 94 | 205 |
|