Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Reject or preserve literal RefProxy semantics in remote subset wire

Aperta
#2,187 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di TanStack/db

Tutte le issue di TanStack/db

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.