fix(server): keep previously used providers working after upgrades - #8176
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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. |
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — Provider activation now depends on persisted database history, affecting startup hydration, provider probing, fallback selection, and settings-read failure behavior. The SQLite dependency and changed enablement semantics make this a material runtime change rather than a narrowly isolated fix. You can add or adjust custom eligibility rules. Learn more. |
00d8c18 to
7ec7746
Compare
Dismissing prior approval to re-evaluate 7ec7746
There was a problem hiding this comment.
One finding on error modeling for the new provider-history query. Import namespaces, Context.Service/make/layer shape, and dependency acquisition (yield* SqlClient.SqlClient with SqlClient surfaced in layer's requirements and provided in server.ts) all look consistent with the conventions.
Posted via Macroscope — Effect Service Conventions
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit f492427. Configure here.
- Providers no server: compatibilidade preservada após upgrades (pingdotgg#8176), CLIs disponíveis no serviço do macOS (pingdotgg#8173) e fim do probing do Cursor enquanto não estiver habilitado (pingdotgg#8175) - Client-runtime: retry de queries após interrupção de conexão (pingdotgg#8117), com ajustes em authorization/remote e state/runtime - Claude: compactação de threads antigas antes de estourar o uso (pingdotgg#8144), incluindo novo módulo claudeCompaction em packages/shared e medidor de janela de contexto na web - Web: dicas de atalho de thread agora atrasadas em 200 ms (pingdotgg#8172) - Grok: limite nas atualizações cumulativas de saída de ferramentas (pingdotgg#7279) - Mobile: coleta de modelo de dispositivo e versão de SO (pingdotgg#8169) - Docs: release passa a verificar atualizações remotas com migrações de banco (pingdotgg#8177) e doc de providers do Claude atualizada - Conflitos: 2 arquivos conflitaram e foram resolvidos manualmente, mantendo as modificações próprias do fork e incorporando as mudanças do upstream por cima Sync automatico t3code-sync em 2026-08-25T06:05:15-03:00
## What's Changed * feat(mobile): track device models and OS versions by @t3dotgg in pingdotgg/t3code#8169 * fix(grok): bound cumulative tool output updates by @lnieuwenhuis in pingdotgg/t3code#7279 * fix(web): delay thread shortcut hints by 200 ms by @t3dotgg in pingdotgg/t3code#8172 * fix(server): stop probing Cursor until enabled by @t3dotgg in pingdotgg/t3code#8175 * docs(release): verify remote updates with database migrations by @t3dotgg in pingdotgg/t3code#8177 * fix(server): keep provider CLIs available in the macOS service by @t3dotgg in pingdotgg/t3code#8173 * feat(claude): compact old threads before they burn through usage by @t3dotgg in pingdotgg/t3code#8144 * fix(client-runtime): retry queries after connection interruption by @tris203 in pingdotgg/t3code#8117 * fix(server): keep previously used providers working after upgrades by @t3dotgg in pingdotgg/t3code#8176 **Full Changelog**: pingdotgg/t3code@v0.0.34-nightly.20260825.1182...v0.0.34-nightly.20260825.1183 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.34-nightly.20260825.1183

Provider defaults changed, but stable releases omitted default
enabledvalues from saved settings. Existing Cursor, Grok, and OpenCode threads could stop working after an upgrade.Read persisted thread sessions and provider runtime sessions before loading provider settings. Restore only providers and provider instances that have real usage history, keep unused providers disabled, preserve explicit enables and disables across restarts, and restore used providers even when settings are invalid.
Verified with 87 focused settings, provider contract, provider registry, and startup tests, two integrated server startup tests, and server and contracts type checking.
Made by GPT-5.6 Sol through the Codex harness.
Note
Restore previously used optional providers (
cursor,grok,opencode) on settings loadloadSettingsFromDiskin serverSettings.ts now queries provider usage history fromprojection_thread_sessionsandprovider_session_runtime, then enables optional providers and their instances that were previously used but lack explicitenabledflags.PersistedOptionalProviderSettingsschema for lenient decoding of just the optional provider enabled flags, so valid flags survive even when other settings fields are invalid JSON.writeSettingsAtomicallynow usesPERSISTED_SERVER_SETTINGS_DEFAULTS(with optional providerenabledset toundefined) so explicitenabled:falseentries are retained in the persisted sparse JSON.ServerSettingsLayerLivein server.ts is now wired withSqlitePersistenceLayerLiveto support the history queries.getSettingsnow fails withServerSettingsError(operation="read-provider-history")if the provider history SQL query fails; callers handlingServerSettingsErrorshould account for this new operation literal added in settings.ts.Macroscope summarized 7252980.