Reject or preserve literal RefProxy semantics in remote subset wire
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 25/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- sqlite, typescript
- Domaine
- database
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- TypeScript
- Étoiles
- 3.9k
- Forks
- 277
- Merge moyen
- 18 h 7 min
- PR mergées (30 j)
- 228
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de TanStack/db
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 1-2 jours Accessibilité débutants 48/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 1-2 jours Accessibilité débutants 48/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de TanStack/db
Issues similaires
-
[Feature]: 建议导入源后,自动切换到新导入的源Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
lyswhut/lx-music-desktop#3026 ·
-
area: ci type: test
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
schlessera/brain-kit#2769 ·
Les mainteneurs répondent en général sous 1 jour
-
Read a vector index's quantization back on Neo4j 2026.10, which reports vector.quantization.typeOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
liberation-data/drivine#231 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
alveusgg/alveusgg#2502 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
bug workspace/linguist
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
backstage/community-plugins#11698 ·
Les mainteneurs répondent en général sous 3 jours