Reject or preserve literal RefProxy semantics in remote subset wire
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- sqlite, typescript
- Ambito
- database
Direzione di ricerca
Start in packages/db-sqlite-persistence-core/src/remote-subset-wire.ts, where projectWireValue handles IR.Value.value and its plain-record branch turns a literal RefProxy into {}. Read docs/contributing/oracle-reviews/pr-2134-identity-and-persisted-key.md for the context. The contract must be decided first, probably rejecting with RemoteSubsetWireValueError, and then a receiving oracle case must be added to show the outcome.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
The managed SQLite remote-subset wire accepts a literal RefProxy in an IR.Value, but projects it to {}. A predicate whose literal has reference identity then reaches the provider with different semantics. This is separate from PR #2134's query-identity and historical-owner repairs.
packages/db-sqlite-persistence-core/src/remote-subset-wire.ts calls projectWireValue for IR.Value.value. Its plain-record branch sees the proxy's empty enumerable shape and emits {}. The package's stated wire domain is values whose complete semantics survive transport; an opaque reference proxy does not meet that rule.
During PR #2134's real SQLite receiving attempt, a proxy captured through public Collection.createIndex reached this path, and the provider received {}. Object.is(originalProxy, projectedValue) was false. A row with the projected value therefore cannot establish ownership for the original literal-proxy demand. The attempted row-bearing upgrade witness was removed rather than counted as passing; the limitation is recorded in docs/contributing/oracle-reviews/pr-2134-identity-and-persisted-key.md.
Expected follow-up
Decide the wire contract for opaque literal values. A defensible default is to reject the request with RemoteSubsetWireValueError before coordinator or storage work, since cross-process transport cannot preserve the proxy's reference identity. Add a receiving oracle case using a proxy from the same public @tanstack/db package instance as Query Collection; compare admission, provider requests, and storage work. If the intended contract instead supports such literals, specify and test the identity-preserving representation first.
This issue does not block the primitive singleton-IN migration covered by PR #2134's real SQLite restart tests. It does block a claim that row-bearing historical literal-proxy ownership was migrated through the managed SQLite path.
- Lingua principale
- TypeScript
- Stelle
- 3.9k
- Fork
- 277
- Merge medio
- 22h 54m
- PR unite (30g)
- 236
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di TanStack/db
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 22/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 12/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 8/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 5/100
TanStack/db#2186 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
query-db: a Query refetch that joins a loader's refetch acquisition does not report shifted pagesAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 8/100
TanStack/db#2185 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
auth: agent-bearer --manager-call is told to use the MCP instance argument on an ambiguous managerAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
I maintainer di solito rispondono entro 1 giorno
-
Lyric and ApostrophesApertabug module: playback
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
chthollyphile/folia-major#739 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
agilepathway/label-checker#773 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno