refactor(shared): move the node:sqlite Effect SQL client into shared - #7272
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:
Comment |
There was a problem hiding this comment.
Reviewed the changed Effect service code (desktop BrowserSession/PreviewManager, server ProviderService, the NodeSqliteClient move) against the service conventions. Service definition order, inline Context.Service interfaces, make/layer exports, Foo["Service"] references, environment-based dependency acquisition, and the pure module move with no compatibility shims all look consistent. One import-convention deviation in the new contracts module is noted inline.
Posted via Macroscope — Effect Service Conventions
There was a problem hiding this comment.
One finding: the new leading-icon utility on MenuSubTrigger also matches the chevron on sub-triggers that have no leading icon, which regresses the two existing icon-less sub-triggers (DiffPanel "Turn", PreviewMoreMenu "Appearance"). Details inline.
Posted via Macroscope — UI Consistency
|
Correction to my previous review comment: the inline note referenced Posted via Macroscope — Effect Service Conventions |
|
UI consistency finding (inline comment could not be attached —
The new class string starts with Smallest fix: scope the utilities away from the last child, which never matches the chevron and behaves identically for real leading icons: - "[&>svg:first-of-type]:-mx-0.5 flex min-h-8 cursor-pointer items-center gap-2 ... [&>svg:first-of-type:not([class*='opacity-'])]:opacity-80 [&_svg]:pointer-events-none [&>svg]:shrink-0",
+ "[&>svg:not(:last-child)]:-mx-0.5 flex min-h-8 cursor-pointer items-center gap-2 ... [&>svg:not(:last-child):not([class*='opacity-'])]:opacity-80 [&_svg]:pointer-events-none [&>svg]:shrink-0",(the Posted via Macroscope — UI Consistency |
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This PR is a mechanical relocation of an unchanged SQLite client into the shared package, with corresponding export and import updates. The production loader continues to use the same implementation, and no product defaults or user-facing behavior change. No code changes detected at You can add or adjust custom eligibility rules. Learn more. |
f7f7164 to
ea5198f
Compare
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: 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. |
ea5198f to
d98f7fb
Compare
d98f7fb to
9b26f68
Compare
9cd8c24 to
aae2535
Compare
aae2535 to
4ab2301
Compare
193805f to
5c239bf
Compare
5c239bf to
6ba7425
Compare
1f0b61d to
d025426
Compare
6999513 to
2a306c6
Compare
2a306c6 to
2ce7780
Compare
bd4acbc to
2817352
Compare
The desktop app needs to read browser cookie databases and should reach for the same Effect SQL client the server already uses rather than opening `node:sqlite` by hand. Nothing about the client is server-specific, so it moves to `packages/shared` and both apps import it from there. Pure move plus import updates; the client itself is unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2817352 to
ae568f8
Compare
## What's Changed * feat(desktop): browser profiles for the preview browser by @juliusmarminge in pingdotgg/t3code#7254 * refactor(shared): move the node:sqlite Effect SQL client into shared by @juliusmarminge in pingdotgg/t3code#7272 * feat(web): add opt-in panel animations by @maria-rcks in pingdotgg/t3code#8830 * feat(projects): automatically pull clean default branches by @maria-rcks in pingdotgg/t3code#9277 * fix(web): show pull request state icons in tabs by @flamboh in pingdotgg/t3code#9112 * feat(providers): add context compaction across harnesses by @maria-rcks in pingdotgg/t3code#8808 * feat(web): add proactive panels by @maria-rcks in pingdotgg/t3code#9276 * fix(web): unify control sizing across settings pages by @juliusmarminge in pingdotgg/t3code#9281 * fix(web): offer browser profiles from the empty-panel launcher by @juliusmarminge in pingdotgg/t3code#9279 * Revert "feat(providers): add context compaction across harnesses" by @maria-rcks in pingdotgg/t3code#9284 * fix(web): show scroll-to-end as soon as the last message slips under the composer by @juliusmarminge in pingdotgg/t3code#9280 * fix(cursor): honor auto and full access modes by @maria-rcks in pingdotgg/t3code#9283 * fix(desktop): detect installed Spectre libs for Windows builds by @juliusmarminge in pingdotgg/t3code#9285 * fix(pull-requests): missing features & better behaviour by @maria-rcks in pingdotgg/t3code#9188 * fix(providers): discover workspace skills everywhere by @maria-rcks in pingdotgg/t3code#9180 * fix(server): preserve automatic settlement timestamps by @eimexdev in pingdotgg/t3code#9254 * fix(opencode): show Reasoning selector for OpenCode models by @maria-rcks in pingdotgg/t3code#9287 * feat(web): preview document attachments in the file viewer by @juliusmarminge in pingdotgg/t3code#9292 * chore(ci): narrow the UI consistency check-run agent by @juliusmarminge in pingdotgg/t3code#9297 **Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1261...v0.0.39-nightly.20260903.1262 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1262
The desktop app needs to read browser cookie databases and should reach for the same Effect SQL client the server already uses, rather than opening
node:sqliteby hand. Nothing about the client is server-specific, so it moves topackages/sharedand both apps import it from there.Pure move plus import updates — the client itself is unchanged. Split out of #7255 so the cookie-import work reviews on its own.
Model: Claude Opus 5 (1M context), harness: Claude Code.
🤖 Generated with Claude Code
Note
Low Risk
Refactor-only with no client logic changes; risk is limited to missed imports still pointing at the removed server path.
Overview
Relocates the Effect SQL client built on
node:sqlitefrom server persistence into@t3tools/shared/nodeSqliteClient(lowercase module name) so desktop and other packages can reuse the same layer without duplicating SQLite wiring.packages/sharedgains a./nodeSqliteClientexport; the implementation and its unit test live underpackages/shared/src/.apps/serverupdates every consumer—dev DB and sqlite-state CLIs, migration tests, and the Node runtime loader inSqlite.ts—to import from the shared package instead of../NodeSqliteClient. Behavior of the client is unchanged; this is an import-path and packaging move.Reviewed by Cursor Bugbot for commit ae568f8. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Move
NodeSqliteClientinto@t3tools/sharedpackageNodeSqliteClient.tsand its test fromapps/server/src/persistence/topackages/shared/src/(renamed to lowercasenodeSqliteClient), and adds a./nodeSqliteClientexport path in package.jsonapps/serverscripts, migration tests, and thedefaultSqliteClientLoadersloader to use@t3tools/shared/nodeSqliteClientinstead of relative paths@t3tools/shared/nodeSqliteClient; any remaining references to the oldapps/server/src/persistence/NodeSqliteClient.tspath will fail to resolveMacroscope summarized ae568f8.