pingdotgg / pingdotgg/t3code

[Bug]: Codex Priority inherited from config is hidden as Standard

Open
#10,576 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
23k
Forks
5.9k
Avg merge
11h 14m
Merged PRs (30d)
357

Description

Before submitting
  • I searched existing issues and did not find an exact duplicate.
  • I included enough detail to reproduce or investigate the problem.
Area

apps/server

Steps to reproduce
  1. Set Codex's effective configuration to Fast/Priority, so config/read reports service_tier = "priority".

  2. In T3 Code, use an All projects, project, or existing thread model selection with no explicit serviceTier, for example:

    {
      "instanceId": "codex",
      "model": "gpt-6-astra"
    }
    
  3. Open or resume that thread in T3 Code.

  4. Observe that the composer shows Standard/no Fast lightning-bolt indicator.

  5. Send a turn.

  6. Inspect the T3 provider event and the Codex rollout's thread_settings_applied event.

This was reproduced from normal persisted state after the All projects selection omitted serviceTier; no database editing was required.

Expected behavior

If the effective Codex tier is Priority/Fast, T3 must visibly show Fast before a turn runs. If T3 displays Standard, it must explicitly dispatch serviceTier: "default" so the displayed and effective values cannot diverge.

An unset T3 selection may inherit provider configuration, but T3 must display that inherited effective value rather than a separate catalog default.

Actual behavior

T3 displays Standard/no Fast indicator while omitting serviceTier from session and turn dispatch. Codex then inherits the top-level service_tier = "priority" and applies Fast mode.

The Codex service tier is global and independent of the selected model, so a Priority setting present while Luna was selected also affected Astra threads when T3 supplied no explicit tier.

Sanitized evidence from the affected installation:

  • No T3 project default was explicitly configured as Fast/Priority.
  • The machine-wide All projects selection specified Codex/Astra but omitted serviceTier; most projects inherited it.
  • Five persisted Codex threads also had no serviceTier selection.
  • The pre-workaround Codex configuration explicitly contained service_tier = "priority".
  • One affected rollout recorded 40 thread_settings_applied events with service_tier = "priority".
  • T3's provider log reported thread/settings/updated ... serviceTier=priority for the same effective session.
  • T3 still showed no Fast state.
  • After changing Fast to Standard in Codex CLI, the config became service_tier = "default"; a new T3 session and Codex rollout both recorded default.

The upstream path appears to be the gap between:

  • #9164, which intentionally changed T3 to dispatch only explicit selections so unset options can inherit provider configuration; and
  • still-open #8913, which reads Codex config/read values, including service_tier, back into T3's displayed provider defaults.

The installed build contains #9164 but not #8913. Closest issue #9804 was closed after restoring machine-wide controls, but it did not establish this effective-tier mismatch or measured accelerated usage. #6306 is adjacent but only covers T3's local cost estimate underpricing already-visible Fast turns.

Suggested regression coverage:

  1. Codex config/read returns priority and T3 has no explicit tier: the composer visibly shows Fast before the first turn.
  2. T3 explicitly selects Standard while Codex config is Priority: T3 dispatches default and Codex applies Standard.
  3. Verify both the displayed descriptor and effective/dispatched tier at an integration seam.
  4. If effective configuration cannot be read, show the tier as unknown rather than confidently presenting Standard.
  5. Cover existing threads and machine/project defaults whose stored selection omits serviceTier.
Impact

Major degradation or frequent failure

This is a usage-safety issue. The UI can confidently indicate Standard while the provider uses an accelerated tier with increased usage. In this incident, affected T3 Codex sessions exhausted usage far faster than expected and the mismatch took approximately eight hours to diagnose.

Version or commit

T3 Code 0.0.40-nightly.20260907.1359 (357b8d5217cd)

Environment

Fedora Linux 44, T3 server/shared web UI, Node 22.22.2, Bun 1.4.2, Codex CLI/app-server 0.153.4, Codex GPT-6 Astra

Logs or stack traces
T3 All projects model selection:
{"instanceId":"codex","model":"gpt-6-astra"}
# serviceTier is absent

Codex configuration before workaround:
service_tier = "priority"

Effective T3/Codex session:
thread/settings/updated ... serviceTier=priority
thread_settings_applied ... service_tier=priority

After selecting Standard in Codex CLI:
service_tier = "default"
thread/settings/updated ... serviceTier=default
thread_settings_applied ... service_tier=default

Thread IDs, project paths, prompts, credentials, and unrelated configuration have been omitted.

Workaround

Set Codex CLI to Standard/Default, or explicitly configure serviceTier: "default" in every applicable T3 All projects, project, and thread selection. Existing omitted selections remain vulnerable to future Codex configuration changes until T3 displays the inherited effective tier.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in apps/server and trace the Codex config/read path through session and turn dispatch, then inspect how the composer derives the displayed service tier. Use the suggested regression cases for inherited Priority, explicit Standard, existing threads, and unavailable configuration. Done means the displayed and dispatched effective tier cannot diverge, with coverage at the integration seam.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend, frontend, full-stack
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.