refactor(shared): move the node:sqlite Effect SQL client into shared - #7272
refactor(shared): move the node:sqlite Effect SQL client into shared#7272juliusmarminge wants to merge 1 commit into
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 ea5198f Pure mechanical file reorganization - moving NodeSqliteClient from apps/server to shared package with import path updates. File content unchanged (100% similarity), no runtime behavior changes. No code changes detected at You can customize Macroscope's approvability policy. 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
ee304c0 to
9cd8c24
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>
9cd8c24 to
aae2535
Compare
aae2535 to
4ab2301
Compare
4ab2301 to
aae2535
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: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
Import-path refactor only; persistence and migration behavior are unchanged.
Overview
Moves the Effect-based
node:sqliteSQL client from server persistence intopackages/sharedasnodeSqliteClient.ts, exposed via@t3tools/shared/nodeSqliteClient.Server scripts (
migrate-dev-db,t3-sqlite-state), migration tests, and the Node SQLite loader inSqlite.tsnow import that shared module instead of../NodeSqliteClient. The shared package test import is updated to match the new filename.No behavior changes to the client—relocation and import wiring only, so desktop and other apps can reuse the same layer.
Reviewed by Cursor Bugbot for commit aae2535. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Move
NodeSqliteClientfrom server persistence layer into the shared packageMoves
NodeSqliteClient(an Effect-basednode:sqliteclient) fromapps/server/src/persistence/topackages/shared/src/nodeSqliteClient.tsand exposes it via a new@t3tools/shared/nodeSqliteClientsubpath export. All import sites across server scripts, migration tests, and the SQLite layer loader are updated to use the shared path. No logic changes.Macroscope summarized 4ab2301.