You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
turso: a datasource forced to mode: 'local' beside a syncUrl still replicates (syncs on connect and on the interval, isSyncEnabled() true), so the declared local mode is ignored (#20437's twin, read at source) #20586
Filing gate: ① a product defect with a named landing site. Finding class (c), ADR-0049: a declared mode the runtime ignores. reach: read at source, not driven. The at-tier contract reviews of PR #20504 (#20437) confirmed the inference by reading:
Filed by the domain:engine execution seat 1 (session_01N8TPEsoJxPsdSdNKGnNGEN, os-warren). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.
What happens (read at source on main after c876a7426)
A Turso datasource declared mode: 'local' on a file: url with a syncUrl beside it:
is accepted by both TursoConfigSchema copies and by the constructor;
toKnexConfig has no local-versus-replica arm, so both open the file: path;
connect() builds the sync client, syncs on connect and starts the interval whenever syncUrl is set in a non-remote mode;
isSyncEnabled() answers true.
Only the transportMode label says local. A database the author declared local reads from and writes to a remote.
Why it is its own card
#20437 (PR #20504, landed c876a7426) refused the opposite shape: a forced mode: 'replica' with no syncUrl. Triage's ruling there (5871347046) was "a declared mode the runtime ignores is the ADR-0049 shape (declared ⇒ enforced)". This is the same class in the other direction, outside that card's claim.
honour it: a forced local does not build the sync client.
Triage chooses. Either way, the parity control that pins it accepted moves with the ruling, and an ADR-0087 entry follows if it is refused.
Dedupe
search_issues, run by this seat in objectstack-ai/objectstack, open and closed: "turso forced mode local with syncUrl still replicates syncs declared local embedded replica ignored mode" gives 7 hits.
Filing gate: ① a product defect with a named landing site. Finding class (c), ADR-0049: a declared mode the runtime ignores.
reach:read at source, not driven. The at-tier contract reviews of PR #20504 (#20437) confirmed the inference by reading:mode: 'replica'on afile:url and nosyncUrlis accepted at authoring and at construction, then runs as a plain local database that never syncs #20437 was filed from driver-turso:new TursoDriveracceptssyncUrl/syncundermode: 'remote'and ignores them —isSyncEnabled()answers true, no sync runs, andsync()rejectsSYNC_NOT_SUPPORTED#20200".Filed by the
domain:engineexecution seat 1 (session_01N8TPEsoJxPsdSdNKGnNGEN,os-warren). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.What happens (read at source on
mainafterc876a7426)A Turso datasource declared
mode: 'local'on afile:url with asyncUrlbeside it:TursoConfigSchemacopies and by the constructor;It then behaves as a replica:
toKnexConfighas no local-versus-replica arm, so both open thefile:path;connect()builds the sync client, syncs on connect and starts the interval wheneversyncUrlis set in a non-remote mode;isSyncEnabled()answerstrue.Only the
transportModelabel sayslocal. A database the author declared local reads from and writes to a remote.Why it is its own card
#20437 (PR #20504, landed
c876a7426) refused the opposite shape: a forcedmode: 'replica'with nosyncUrl. Triage's ruling there (5871347046) was "a declared mode the runtime ignores is the ADR-0049 shape (declared ⇒ enforced)". This is the same class in the other direction, outside that card's claim.Suggested shape (⛔ not a ruling)
Either:
mode: 'local'besidesyncUrl(andsync), at both schema copies and at the constructor, as turso: a datasource config withmode: 'replica'on afile:url and nosyncUrlis accepted at authoring and at construction, then runs as a plain local database that never syncs #20437 refuses its shape; orlocaldoes not build the sync client.Triage chooses. Either way, the parity control that pins it accepted moves with the ruling, and an ADR-0087 entry follows if it is refused.
Dedupe
search_issues, run by this seat inobjectstack-ai/objectstack, open and closed: "turso forced mode local with syncUrl still replicates syncs declared local embedded replica ignored mode" gives 7 hits.mode: 'replica'on afile:url and nosyncUrlis accepted at authoring and at construction, then runs as a plain local database that never syncs #20437 (the replica-without-syncUrl twin) and driver-turso:new TursoDriveracceptssyncUrl/syncundermode: 'remote'and ignores them —isSyncEnabled()answers true, no sync runs, andsync()rejectsSYNC_NOT_SUPPORTED#20200 (syncUrlundermode: 'remote') are sibling shapes, both closed.TursoConfigSchemaaccepts turso configs the driver refuses or ignores — a remoteurlbesidesyncUrlor a forced replica/localmode, a non-file:replica,syncUrl/syncundermode: remote#19977 (the spec's accept-set against the driver, closed) named the forced-mode family.os migrate planagainst a remote Turso datasource performs the DDL and the canonical backfill it was meant to preview, and prints no pending work #19823, driver-turso: a url whose scheme the classifier does not recognise (an uppercaseLIBSQL://, a bare path) and nomodefalls through tolocalon a:memory:Knex engine, so every write is lost on restart #19976 and driver-turso: remote mode never materializes object-levelindexes— every declared secondary index is absent on production Turso tenant databases, so hot polling queries full-scan #17609 are other remote-face defects.None is this shape.
Dedupe words:
turso forced local mode syncUrl replicates·declared local database syncs·isSyncEnabled true under mode local