Flip tiers on the dev lane too

f4e276a62324 · AtlantisPleb · · parent 8f738b70be32

Flip tiers on the dev lane too

Shift+tab on openagents coder --dev now cycles Coder Auto, Flash, Pro,
Local like any session. Every tier is the same acknowledgement stub
today, so the switch changes the label and the notice — and the loop
that arrives behind the surface inherits a client whose tier key
already works.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E1mRkPGYmTVvMKqAzmQvy5
Co-Authored-By
Claude Fable 5 <noreply@anthropic.com>

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 packages/openagents-cli/src/cli.ts

Diff

1 file changed, +32 -10

packages/openagents-cli/src/cli.ts modified +32 -10

@@ -2417,13 +2417,34 @@ const coderCommand = Command.make(

2417 2417
      // nothing was named, the named model's tier when it has one. A model
2418 2418
      // outside the tier map leaves tier switching off rather than mislabeled.
2419 2419
      const initialTier: CoderTierId | undefined =
2420
        ollamaSource !== undefined
2421
          ? "local"
2422
          : thread !== undefined
2423
            ? named === undefined
2424
              ? "auto"
2425
              : tierForModel(thread.modelId)
2426
            : undefined;
2420
        responsesSource !== undefined
2421
          ? "auto"
2422
          : ollamaSource !== undefined
2423
            ? "local"
2424
            : thread !== undefined
2425
              ? named === undefined
2426
                ? "auto"
2427
                : tierForModel(thread.modelId)
2428
              : undefined;
2429
2430
      // The dev lane flips tiers too: every tier is the same stub today, so a
2431
      // switch changes the label and the notice, and the loop that arrives
2432
      // behind the surface inherits a client whose tier key already works.
2433
      const devTiers =
2434
        responsesSource !== undefined
2435
          ? {
2436
              initial: "auto" as CoderTierId,
2437
              build: (_tier: CoderTierId, _history: ReadonlyArray<unknown>) =>
2438
                Promise.resolve<ReplySource>(
2439
                  new ResponsesReplySource({
2440
                    origin: endpoint.origin,
2441
                    ...(Option.isSome(stored)
2442
                      ? { token: Redacted.value(stored.value.token) }
2443
                      : {}),
2444
                  }),
2445
                ),
2446
            }
2447
          : undefined;
2427 2448
2428 2449
      const session = new CoderSession(
2429 2450
        source,

@@ -2432,9 +2453,10 @@ const coderCommand = Command.make(

2432 2453
        setup?.delegation,
2433 2454
        standingContext(skills.active(), process.cwd()),
2434 2455
        undefined,
2435
        buildTier !== undefined && initialTier !== undefined
2436
          ? { initial: initialTier, build: buildTier }
2437
          : undefined,
2456
        devTiers ??
2457
          (buildTier !== undefined && initialTier !== undefined
2458
            ? { initial: initialTier, build: buildTier }
2459
            : undefined),
2438 2460
      );
2439 2461
2440 2462
      // The resumed thread's history goes on the session before anything new,

This page updates live while a promote is in flight · changelog