Repository navigation
feat(web): Add provider button sits with the provider list - #17152
Conversation
Co-Authored-By: Claude Opus 5.5 <[email protected]>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a contained UI refinement that repositions the existing provider-add action and adds a clearly labeled list-row shortcut, with both actions sharing the existing dialog and read-only gating. The shared layout extension is optional and presentation-only, with no schema, backend, deployment, or sensitive-area impact. You can add or adjust custom eligibility rules. Learn more. |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 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.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 1 remain after this review. 📝 WalkthroughWalkthroughThe provider settings panel moves the add-provider action from the refresh header to the section title and below the provider rows. Both actions open the existing dialog and appear only when the environment is editable. ChangesProvider Settings
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~8 minutes Change: Feature Suggested reviewers: Merge Risk: ⚪ Minimal · up to Provider addition remains available through the new controls in editable settings, while existing provider rows and sections retain their behavior. No material merge risk is evident. 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
## What's Changed * feat(providers): run Muse Code as a native provider by @t3dotgg in pingdotgg/t3code#17082 * feat(web): compact-before-send is a chip that shows the token count by @t3dotgg in pingdotgg/t3code#17127 * fix(clients): copy button is back in its old spot, before fork by @t3dotgg in pingdotgg/t3code#17137 * fix(usage): repeat usage scans no longer decode unchanged Antigravity databases by @t3dotgg in pingdotgg/t3code#17139 * fix(server): shell snapshots no longer block other database reads while decoding by @t3dotgg in pingdotgg/t3code#17141 * perf(server): ACP tool updates no longer persist a snapshot per streamed chunk by @darjss in pingdotgg/t3code#16682 * feat(web): filter the Usage page to just the providers you want by @t3dotgg in pingdotgg/t3code#16970 * fix(usage): Cursor account history loads about 4x faster by @t3dotgg in pingdotgg/t3code#17140 * fix(server): threads settle as soon as branch status sees their PR merge by @t3dotgg in pingdotgg/t3code#17148 * perf(usage): the Usage page shows numbers in under a second and dims only what is still loading by @t3dotgg in pingdotgg/t3code#17147 * fix(server): an agent can settle its own thread when its turn ends by @t3dotgg in pingdotgg/t3code#17145 * feat(web): Add provider button sits with the provider list by @t3dotgg in pingdotgg/t3code#17152 ## New Contributors * @darjss made their first contribution in pingdotgg/t3code#16682 **Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261008.2813...v0.0.46-nightly.20261008.2819 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261008.2819
## What's Changed * feat(providers): run Muse Code as a native provider by @t3dotgg in pingdotgg/t3code#17082 * feat(web): compact-before-send is a chip that shows the token count by @t3dotgg in pingdotgg/t3code#17127 * fix(clients): copy button is back in its old spot, before fork by @t3dotgg in pingdotgg/t3code#17137 * fix(usage): repeat usage scans no longer decode unchanged Antigravity databases by @t3dotgg in pingdotgg/t3code#17139 * fix(server): shell snapshots no longer block other database reads while decoding by @t3dotgg in pingdotgg/t3code#17141 * perf(server): ACP tool updates no longer persist a snapshot per streamed chunk by @darjss in pingdotgg/t3code#16682 * feat(web): filter the Usage page to just the providers you want by @t3dotgg in pingdotgg/t3code#16970 * fix(usage): Cursor account history loads about 4x faster by @t3dotgg in pingdotgg/t3code#17140 * fix(server): threads settle as soon as branch status sees their PR merge by @t3dotgg in pingdotgg/t3code#17148 * perf(usage): the Usage page shows numbers in under a second and dims only what is still loading by @t3dotgg in pingdotgg/t3code#17147 * fix(server): an agent can settle its own thread when its turn ends by @t3dotgg in pingdotgg/t3code#17145 * feat(web): Add provider button sits with the provider list by @t3dotgg in pingdotgg/t3code#17152 ## New Contributors * @darjss made their first contribution in pingdotgg/t3code#16682 **Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261008.2813...v0.0.46-nightly.20261008.2819 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261008.2819
Merges `pingdotgg/t3code` `c9fa1367ca` (99 commits from `0f09627a11`) into the fork. No open merge PR to stack on; branches from `main`. ## Merge - Landed 940 files against 939 in the upstream range (the extra is `docs/fork/inventory.json`); fork delta 775 files. - 8 conflicts, resolved by their preflight verdicts — details in the `docs/fork/upstream-merge-log.md` entry. The ones worth a reviewer's eye: - `ProviderSettingsPanel.tsx`: upstream moved Add provider into `titleAction` (pingdotgg#17152); the `FEATURES.providerConfiguration` gate moved with it. - `PreviewView.tsx` (`decide`): fork's framed `navigate` kept beside upstream's move-tab/`close`. - `ChatMarkdown.tsx`: upstream's markdown pipeline moved to `@t3tools/shared/markdownPipeline`; only the Moatless Artifact imports re-applied. - `pnpm-lock.yaml` re-derived by install (fork `moatless-api` edge present). - Contract: `UnsupportedMethodError` added to `orchestration.searchThread`, `orchestration.searchThreadStream`, `preview.reportProfiles`; dropped from `projects.mutate` (served by the backend since moatless pingdotgg#1075). - `AppRoot.test.tsx` (fork-only) updated for upstream's new `<BrowserProfileReporter />` child. ## Verification `verify.mjs`: duplicate-adds, tripwires, resolution-check, unsupported-methods, lockfile, fmt, lint, typecheck and build all pass. Test: `@t3tools/web` had one failure (`AppRoot.test.tsx`), fixed and re-run green. Still red and confirmed failing alone — the same four as the 2026-10-08 merge, recorded there as machine rather than code: `ServerBrowserPage`, `AcpAdapterV2`, `OrchestratorReplayFixtures` (server) and `OpenCodeServerLedger` (now in `@t3tools/provider-opencode`). The full pass was not re-run after the `AppRoot` test fix; the web package re-run and that file alone were. ## Usable as-is - Thread-find match tints, timeline marker room, sidebar drag fix, collapsed-composer spacing, centered scroller fix, PR panel layout fixes (pingdotgg#17263, pingdotgg#17372, pingdotgg#17373, pingdotgg#17016, pingdotgg#17077, pingdotgg#15560–pingdotgg#15588, pingdotgg#16162). - Compact-before-send chip with token count (pingdotgg#17127); quote chips show your note (pingdotgg#15703); projectless threads show their machine (pingdotgg#17022); short messages with quotes/links no longer collapse (pingdotgg#16624); copy button position (pingdotgg#17137). - File preview fixes: downloads, in-page links, repo paths, favicons no longer leak internal hosts (pingdotgg#16950); previews before a thread's first message (pingdotgg#17352). - Terminal scrollback navigation (pingdotgg#17091). - Usage page filters and performance (pingdotgg#16970, pingdotgg#17147) — only where the fork exposes Usage. - Mobile, desktop and relay fixes (many) — not fork targets, taken as-is. - Provider package extraction (`packages/provider-{core,acp,cursor,grok,muse,opencode,pi,testing}`) — internal refactor, no fork impact beyond the new web deps. ## Unsupported in Moatless / needs implementation - **Find in thread** (pingdotgg#10439) — `orchestration.searchThread`, `orchestration.searchThreadStream`; client gated on the `threadFind` / `threadFindProgressive` capabilities, which Moatless does not report, so it toasts "unavailable on this server". Needs a backend search over projected messages plus the capability. Added to `docs/fork/gaps.md`. - **Browser profiles for server-hosted tabs** (pingdotgg#16956, `BrowserProfileReporter`) — `preview.reportProfiles`; sent only to `serverBrowser` environments, so never sent here. Extends the server-hosted-browser gap. - **Connection permissions / session lifetime** (pingdotgg#17370) — `SessionPermissions.tsx` renders inside the Connections page, which `FEATURES.connections` hides. - **CLI-update-unlocks-model hint** (pingdotgg#17307) — needs provider snapshot fields Moatless does not publish. - **Muse Code native provider** (pingdotgg#17082), **JetBrains over SSH** (pingdotgg#17271) — upstream server/desktop runtime. ## Backend behavior to consider reproducing in Moatless - Settle as soon as branch status sees the PR merge (pingdotgg#17148, `ThreadSettlementReactor.ts`); an agent can settle its own thread at turn end (pingdotgg#17145). - A message sent during a rollback no longer undoes it (pingdotgg#17079); held queued wakes no longer keep delegated tasks running (pingdotgg#17028). - Long-thread message sync paged faster (pingdotgg#17387); shell snapshot decode no longer blocks other DB reads (pingdotgg#17141); ACP tool updates no longer persist a snapshot per chunk (pingdotgg#16682). - Agent browser tools stop bloating history and respect tab ownership (pingdotgg#16956); authenticated GitHub Enterprise hosts recognised (pingdotgg#11059); session lifetime enforced (pingdotgg#17370). All recorded in `docs/fork/gaps.md`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- Moatless task: https://moatless.soaplabstest.com/tasks/571512c6-b6a0-4727-943d-231929222fc2
The "Add provider" button sat at the far right of the Providers header, next to the refresh status. It was easy to miss.
Now it sits with the providers:
Both open the same dialog and hide in read-only sessions.
SettingsSectiongets a smalltitleActionslot for the title button.Verified in a local dev server: both controls show in an editable session, and clicking the new row opens the Add provider dialog. Existing panel tests cover the read-only case.
Reviewed with sol-loop: 1 round with GPT-6.1 Sol on medium.
Created with Claude Opus 5.5 in Claude Code (via T3 Code).
🤖 Generated with Claude Code