Skip to content

fix(web): restore compact provider instance badges - #13700

Merged
juliusmarminge merged 1 commit into
mainfrom
fix/provider-instance-badge-size
Sep 25, 2026
Merged

juliusmarminge merged 1 commit into
mainfrom
fix/provider-instance-badge-size

Conversation

@t3-code

@t3-code t3-code Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

problem

#13397 replaced the provider-instance badge's 7px compact and 8px default text with text-3xs, which resolves to 10px. the badge height stayed the same, but its content-driven width grew and the initials covered more of the provider icon. in the running settings page, the compact CO badge measured 21.84px wide instead of 17.09px.

fix

restore the original proportions with rem-based text-4xs and text-5xs tokens, registered with tailwind-merge so foreground colors do not discard them. apply the compact size to the composer trigger, sidebar, model picker rail and provider settings; retain the default size for other shared-icon callers, including usage. the accent-only sidebar dot is unchanged.

this fixes web and the desktop renderer. native mobile uses separate components and is unchanged. removed the existing test's CSS-class assertions while retaining its initials-content assertion.

verification

  • web typecheck passed.
  • 18 focused tests passed across provider model picker and provider instance card.
  • targeted formatting and lint passed; lint reports existing warnings in unchanged sidebar/model-picker logic.
  • real settings-page browser verification after reload, light and dark themes, 640px and 1280px viewports, 16px and 20px root text sizes.
  • compact badge text measures 7px at the default scale and 8.75px at the larger scale. badge height remains 12px and 15px respectively.
  • compiled default token resolves to 8px; both new tokens survive color-class merging.

screenshots show the actual settings provider row. the CLI-not-found status belongs to the isolated test environment; provider sessions were not exercised.

before

before, dark

before, light

after

after, dark

after, light

request provenance

requested by @juliusmarminge.

model: gpt-6-astra. harness: hermes agent.

Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Sep 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.6 KiB 13.5 KiB −25 B (−0.2%) 15.1 KiB ✅
Codex Thread snapshot wire 7.1 KiB 7.1 KiB −2 B (−0.0%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.5 KiB 6.5 KiB −23 B (−0.3%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 56.3 KiB 56.3 KiB 0 B (0.0%) 66.4 KiB ✅
Codex Live turn messages 10 10 0 (0.0%) 21 ✅
Claude Total thread wire 13.5 KiB 13.5 KiB 0 B (0.0%) 15.1 KiB ✅
Claude Thread snapshot wire 7.1 KiB 7.1 KiB −3 B (−0.0%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.4 KiB 6.4 KiB +3 B (+0.0%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 57.0 KiB 57.0 KiB 0 B (0.0%) 66.4 KiB ✅
Claude Live turn messages 9 9 0 (0.0%) 21 ✅

Baseline: 2598ce7 · PR result: 709c325 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 114.0 KiB
  • Claude decoded thread snapshot: 114.7 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeapp

macroscopeapp Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 709c325

Macroscope's review found this PR approvable — This is a focused presentation fix that restores compact provider badges by changing only font sizing and its supporting Tailwind tokens. It introduces no new workflows, data changes, integrations, or production configuration behavior.

You can add or adjust custom eligibility rules. Learn more.

@juliusmarminge
juliusmarminge merged commit ed809f7 into main Sep 25, 2026
24 checks passed
@juliusmarminge
juliusmarminge deleted the fix/provider-instance-badge-size branch September 25, 2026 21:29
@nbros

nbros commented Sep 26, 2026

Copy link
Copy Markdown

Why do we even need these text badges? Aren't the logos already distinctive enough most of the time?
Maybe only show them to disambiguate when mixing providers with "foreign" models (like GPT in Claude Code).

@juliusmarminge

Copy link
Copy Markdown
Member

You only get them if u have multiple instances of the same providers

github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 26, 2026
## What's Changed
* feat(desktop): honor the standard OTLP variables in the main process and WSL backends by @yordis in pingdotgg/t3code#13641
* fix(web): restore compact provider instance badges by @t3-code[bot] in pingdotgg/t3code#13700
* perf(mobile): lighter Home rows away from the viewport by @AKolenda in pingdotgg/t3code#13702
* fix(usage): price Cursor cache savings by base model by @Yash-Singh1 in pingdotgg/t3code#13731
* perf(mobile): render Home rows further ahead while scrolling by @AKolenda in pingdotgg/t3code#13705
* refactor(observability): name each service after its application by @yordis in pingdotgg/t3code#13699
* perf(server): stop remapping every thread on each thread event by @t3dotgg in pingdotgg/t3code#13720
* Remove unused items tracking from Claude adapter state by @t3dotgg in pingdotgg/t3code#13718
* feat(observability): name the command on subprocess spans by @t3dotgg in pingdotgg/t3code#13701
* fix(cli): t3 triage points agents at log files that exist by @t3dotgg in pingdotgg/t3code#13685
* fix(server): the SQLite WAL file shrinks back after large writes by @t3dotgg in pingdotgg/t3code#13684
* feat(cli): summarize the server trace file from the command line by @t3dotgg in pingdotgg/t3code#13698
* perf(server): pull request sync reads only threads with linked pull requests by @t3dotgg in pingdotgg/t3code#13704

## New Contributors
* @AKolenda made their first contribution in pingdotgg/t3code#13702

**Full Changelog**: pingdotgg/t3code@v0.0.43-nightly.20260925.2269...v0.0.43-nightly.20260926.2282

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.43-nightly.20260926.2282
aorwall added a commit to aorwall/t3code that referenced this pull request Sep 27, 2026
Merges `pingdotgg/t3code` up to `eeea71a88` (55 commits after base
`ebdcda135`). This PR is based on `main`; no other merge PR is open.

## Resolution
- **Files that landed:** 271, against 272 in the upstream range. The one
missing is `apps/server/src/cli/pair.ts`, which stays deleted under
`deletedUpstreamPaths`. The fork delta is 756 files, the same as the
last merge.
- **Conflicts (4):**
  - `apps/server/src/cli/pair.ts` (modify/delete): kept deleted.
- `ProviderSettingsPanel.tsx`, `SettingsSidebarNav.tsx`,
`useAvailableSettingsSearchItems.ts` (converged): kept the fork's gates,
search filters and feature-flag read. Took upstream's `scopeSearch`
argument and `cursorKeychainUsageEnabled` prop.
- **New fork gate:** the `cursor-keychain-usage` search item from pingdotgg#13714
is now `providerConfigurationOnly`, because its row sits inside
`UsageProviderSettings`, which the fork hides. Upstream's test now
asserts against `FEATURES.providerConfiguration` and gained the fork's
`forgejoEnabled` field. That field was the only typecheck failure.
- **Lockfile:** re-derived with `install.mjs`. The install left it
unchanged, and the fork's edges are present.
- **Sweep:** new upstream files matched none of the owned-concern
keywords, and upstream added no workflows.
- **Unsupported methods:** nothing to add or drop.

## Verification
The full `verify.mjs` run passes all 10 checks: duplicate-adds,
tripwires, resolution-check, unsupported-methods, lockfile, fmt, lint,
typecheck, build and test.

## Usable as-is
- Chat width setting (a client setting) (pingdotgg#11594)
- The "agents working" banner links to the Agents panel (pingdotgg#13572)
- Composer fixes: paste lands in the composer after clicking away
(pingdotgg#13553), the collapsed composer bar keeps its labels while scrolling
(pingdotgg#13555), focus returns after saving a citation note (pingdotgg#13450)
- Nested task states stay out of parent bullets (pingdotgg#11477). Compact
provider instance badges are back (pingdotgg#13700), and the OpenAI logo is
updated (pingdotgg#13611)
- Client runtime: sync status no longer flickers (pingdotgg#13551), slow servers
finish loading the thread list once instead of twice (pingdotgg#13683), hidden
terminal drawers release thread history (pingdotgg#13686)
- Mobile fixes: Android control sizing, project icons, Home row
performance, and running threads open at the latest message
- The worktree setup label fix (pingdotgg#13590). It applies to UI that
`FEATURES.worktreeSelection` gates.

## Unsupported in Moatless / needs implementation
- **Cursor, OpenCode and Antigravity usage history** (pingdotgg#10409), and the
Cursor keychain usage toggle `cursorKeychainUsageEnabled` (pingdotgg#13714). They
read usage in `apps/server/src/usage/*UsageReader.ts`, and the toggle is
written through `server.updateSettings`, which the backend does not
dispatch. The toggle stays hidden under
`FEATURES.providerConfiguration`.
- **Android foldable controls in the Device panel** (pingdotgg#13534, pingdotgg#13574).
They sit under `FEATURES.deviceHub`, which is off.
- **Desktop and server only:** `RunningThreadKeepAlive` (pingdotgg#13554), the
desktop compile cache (pingdotgg#13501), the Linux .deb auto-updater (pingdotgg#13575),
OTLP environment variables (pingdotgg#13492, pingdotgg#13641), the heap snapshot on
SIGUSR2 (pingdotgg#13694), event-loop stall tracing (pingdotgg#13697), and the `t3 trace`
CLI (pingdotgg#13698). None of these applies to the Moatless web deployment.

## Backend behavior to consider reproducing in Moatless
Added to `docs/fork/gaps.md`, under *Runtime fixes upstream made to its
own server*:
- Settling a thread closes its idle shells: `terminal/Manager.ts`
(pingdotgg#13673)
- Usage reads Cursor, OpenCode and Antigravity history (pingdotgg#10409)
- Newer Codex models get the runtime instructions again:
`CodexDriver.ts`, `RuntimeInstructions.ts` (pingdotgg#13547)
- Background work no longer scales with every thread or project:
  - no per-minute git reruns (pingdotgg#13689)
- no thread-list rebuilds for per-thread settlement or PR checks
(pingdotgg#13691, pingdotgg#13720, pingdotgg#13693)
  - PR sync reads only threads with a linked PR (pingdotgg#13704)
  - the SQLite WAL shrinks after large writes (pingdotgg#13684)
  - shutdown no longer rewrites every stopped session row (pingdotgg#13688)
- Also: the OpenCode v2 serve ready line (pingdotgg#13651), and retrying failed
SQLite statement preparations (pingdotgg#10584)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---
Moatless task:
https://moatless.soaplabstest.com/tasks/0af5f959-42c9-4219-b6ff-2f43e9e72a5d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants