DreamDB v0 — Spec Index
A single navigable entry point for the DreamDB v0 specification. Maps every Open Question (OQ) to its owner and disposition and points at every spec document.
The 28 Spec Documents
Read the foundational documents first, then the relevant capability. Later owning sections refine earlier summaries; document number alone is not a blanket override. A conflict must be corrected or explicitly recorded, not silently resolved by order.
| # | Document | What it pins down |
|---|---|---|
| 0 | spec/0000-overview.md | Vocabulary, four first principles, three-layer architecture (App → SDK → HTTP → Object Store) |
| 1 | spec/0001-data-model.md | Five entities (Space, Timeline, Track, Item, Manifest); three Track kinds; Item ≠ Object |
| 2 | spec/0002-content-addressing.md | BLAKE3, deterministic CBOR, address grammar, modality-tag grammar, paged Index Pages |
| 3 | spec/0003-time-encoding.md | u64 ns ticks, integer-only arithmetic, 16-char hex, billion-scale sizing |
| 4 | spec/0004-spatial-indexing.md | dreamdb.lsh-cosine, ChaCha20 hyperplanes, multi-table & multi-probe levers |
| 5 | spec/0005-backend-interface.md | HTTP contract, Manifest Supremacy, ETag normalization, transport-agnostic (HTTP/1.1+; HTTP/2/3 a SHOULD-negotiate perf upgrade) |
| 6 | spec/0006-protocol-operations.md | Eight verbs, per-session cache, GC algorithm, Stream prefetch, Ref freshness |
| 7 | spec/0007-streaming-encapsulation.md | CMAF Fragments, Spatial Bucket layout, Index Page byte format, dynamic B-tree height |
| 8 | spec/0008-versioning-collab.md | Manifest DAG, branching, merging, MUST-refuse-on-incompat, monotonic-ts |
| 9 | spec/0009-conformance.md | Conformance roles, test categories, meta-OQ resolutions (CBOR tags, multihash) |
| 10 | spec/0010-vector-compression.md | VectorCompressor framework + raw-f32/rabitq-cosine/pq-cosine; 200-byte v2 bucket header; re-rank contract — normative, v0.1 (qinco reserved, OQ-46) |
| 11 | spec/0011-scalar-indexing.md | Native bitmap equality and ordered B-tree filtering, persistent path-copy appends, ScalarIndex Object — implemented reference paths |
| 12 | spec/0012-federation.md | Federation Manifest, runtime backend resolution, cross-cluster scatter-gather and explicit partial results — implemented v0.2 read federation |
| 13 | spec/0013-graph-indexing.md | Vamana GraphIndex/GraphPages, compressed ADC graphs, routing GraphIndex, explicit raw Fresh Vamana append/consolidation — implemented reference paths; no background scheduler |
| 14 | spec/0014-streaming-extensions.md | Path A item chunking (map-encoded ItemManifest and Schema write policy), Path B CMAF renditions (RenditionPlaylist) — Draft; published Path A encoding retained, portable conformance remains OQ-58 |
| 15 | spec/0015-hybrid-retrieval.md | TextIndex + MultiVectorIndex; HybridQuery verb; RRF default fusion; query planner cost model — draft, Phase 4 |
| 16 | spec/0016-streaming-freshness.md | v1 embedding and v2 scalar/text HotShards, explicit flush and Fresh Vamana maintenance; consumer staleness scheduling and index-health automation remain design work — partially implemented |
| 17 | spec/0017-schema-evolution.md | Multi-version modalities; Reencode verb; compatible_with planner hint — draft, Phase 4 |
| 18 | spec/0018-multi-tenant.md | Per-Space quotas; deployment-local verified authorization boundary; TenantUsageBatch; fair-share scheduling — Draft; portable token profile and reference gateway remain OQ-78/OQ-92 |
| 19 | spec/0019-encryption.md | Lineage-v3 encryption policy; convergent + randomized DENC envelopes; KMS recipient slots; authenticated range reads — normative format, no reference writer/reader |
| 20 | spec/0020-tombstones.md | Persistent paged TombstoneIndex plus legacy flat lists; per-Space dreamdb.tombstones registry; range-pruned suppression; deletion levels + compliance posture — normative, v0.2 |
| 21 | spec/0021-compaction.md | Bucket/tombstone compaction; lineage + anchor-conflict refusal; read-online property — normative, v0.1 (sharded compaction optional) |
| 22 | spec/0022-fragment-packs.md | Many-Items-per-Object packing (pack_items); pack_offset byte-range reads — normative, v0.1 |
| 23 | spec/0023-performance-profiles.md | Performance profiles (workload + environment + targets); the conformance-vs-performance boundary — companion to 0009 |
| 24 | spec/0024-embedding-spec-identity.md | Embedding-spec identity: which fields make two vectors comparable, and the measured-parity bar for calling two implementations one spec — companion to 0007/0010 |
| 25 | spec/0025-typed-array-items.md | Dense raw/NPY, ragged-array and sparse-CSR Items; validated Dataset/Python/WASM write, read and physical audit — implemented reference paths; structured Arrow projection unsupported |
| 26 | spec/0026-entity-keys.md | Optional typed logical keys, stable entity identities and random revision tokens; mandatory lineage-v4; atomic Sample/tombstone/index publication; conservative divergent-key merge refusal — normative v1 |
| 27 | spec/0027-progressive-geometry.md | Item-internal point/splat cells, packed payloads, paged hierarchy and discrete mesh LODs; authenticated incremental range reads — normative v1 |
Status and counting rules
| Field | Value |
|---|---|
| Document count | 28 (0000–0027) |
This reconciliation is updated through main 213d948 (2026-09-10); it is not a live
CI or release-status feed.
- Draft describes document maturity, not the absence of implemented code. Existing normative sections retain their obligations; a proposal does not become a supported capability merely because another section has shipped.
- Normative / Accepted means the stated contract is adopted within its scope.
It does not imply every SDK implements it. For example,
0019has a normative encryption format but no reference Dataset writer/reader. - Implemented must name a capability and boundary. Shared Rust code exposed through Python/WASM is not independent-implementation agreement.
- Resolved OQ means the owning document gives the decision. Implementation, portable conformance, performance and deployment can remain separate work. A proposed answer or a test-category name alone is not closure.
- Performance examples are informative under
0023. Unbound test counts and historical benchmark-progress snapshots are not maintained here.
16 documents retain a Draft header: 0000–0009, 0014–0018, and
0023. This revision does not promote them wholesale. The other 12 are:
0010, 0011, 0013, 0019–0022, and 0026–0027 (Normative within their stated
scope), 0012 and 0024 (Implemented), and 0025 (Accepted).
Read the owning status paragraph for deferred subfeatures, notably QINCo,
encryption runtime, compressed Fresh graphs and consumer freshness scheduling.
Open Questions: complete ledger
There are 104 distinct OQ identifiers: every numeric identifier OQ-1 through
OQ-102 (none unused), plus OQ-PP1 and OQ-PP2 in 0023.
- Numeric questions: 77 resolved, 25 open.
- Named performance questions: 0 resolved, 2 open.
- Combined: 77 resolved, 27 open.
The six compatibility dispositions in the review record are recorded separately, without allocating new OQ identifiers. Their remaining feature/conformance limits do not silently add to or subtract from these totals.
Open: owner and functional area
“Open” includes deferred decisions and unfinished capability-specific conformance. The owner below is where a resolution must land, even when an earlier document originally raised the question.
| OQ | Owning spec | Functional area / remaining question |
|---|---|---|
| OQ-18 | 0003 | Time: coarser resolutions beyond canonical nanoseconds |
| OQ-31 | 0005 | Storage: Azure block-upload boundary; S3 multipart is already addressed |
| OQ-37 | 0007 | Media: additional codec-specific contracts |
| OQ-42 | 0009 | Conformance: public report registry |
| OQ-43 | 0009 | Conformance: suite release/governance cadence |
| OQ-46 | 0010 / 0009 | Compression: QINCo determinism and portable vectors before promotion |
| OQ-50 | 0012 | Federation: child retention-root auditing |
| OQ-52 | 0012 | Federation: runtime mirror discovery |
| OQ-53 | 0013 | Graph storage: per-page node-offset index |
| OQ-57 | 0014 | Chunked Items: MIME metadata ownership |
| OQ-58 | 0014 / 0009 | Chunked Items: portable read/range/GC conformance for the map wire format |
| OQ-60 | 0014 | Chunked Items: numeric size bound, not a CBOR integer-width saving |
| OQ-64 | 0015 | Hybrid search: learned-retrieval default (SPLADE/ColBERT) |
| OQ-65 | 0015 / 0009 | Hybrid search: portable planning/fusion semantics; benchmarks separate |
| OQ-67 | 0016 | Freshness: proposed hot-tier durability exception; current commit obligations remain |
| OQ-69 | 0016 | Freshness: learned sparse/multi-vector drift metrics |
| OQ-70 | 0016 / 0009 | Graph updates: portable streaming-Vamana evidence |
| OQ-71 | 0017 | Evolution: explicit similarity-space transforms |
| OQ-74 | 0017 / 0009 | Reencode: portable failure/resume vectors |
| OQ-75 | 0018 | Multi-tenancy: usage-history authenticity/non-equivocation |
| OQ-76 | 0018 | Multi-tenancy: multi-region quota aggregation |
| OQ-77 | 0018 / 0009 | Multi-tenancy: fair-share scheduling conformance |
| OQ-78 | 0018 | Multi-tenancy: portable token profile; deployment-local authorization boundary defined |
| OQ-90 | 0020 / 0019 (raised in 0000) | Deletion: selective erasure versus retained/shared history |
| OQ-92 | 0018 (formerly ledger-only) | Trusted mediation gateway and its conformance boundary |
| OQ-PP1 | 0023 | Performance: shared version-pinned corpora/query sets |
| OQ-PP2 | 0023 | Performance: standard environment-class identifiers |
Resolved: decision and owning contract
Each identifier appears once in this disposition table. A group shares an owning contract, not necessarily a delivery milestone.
| OQs | Owning contract | Decision |
|---|---|---|
| OQ-41 | 0008 §4.4 / 0002 §10 | Create-only typed snapshot tags, pinned reads and GC roots; ordinary Ref mutation refused, not backend WORM (#358) |
| OQ-61 | 0014 §3.3 / 0006 §4.4.2 | Explicit media Stream selection, committed defaults, lazy verified Fragments and pinned snapshots (#360) |
| OQ-34 | 0006 §4.1.2 | Optional pull-based Ref Watch, independent cursors and pinned reads; no backend push or durable replay (#357) |
| OQ-72 | 0017 §3.5 | Enforced per-pass batch admission and resumable pauses, not encoder preemption or memory/tenant quotas (#356) |
| OQ-1, OQ-19 | 0003 §2–§4 | Genesis-relative u64 nanoseconds; no negative anchors |
| OQ-2, OQ-9 | 0004 §5 | LSH-cosine spatial-key derivation |
| OQ-3 | 0005 §5 | Content consistency and linearizable Ref CAS |
| OQ-4, OQ-10 | 0007 §5 | CMAF encapsulation; default Fragment duration |
| OQ-5 | 0008 §8 | Manifest distribution through Refs or immutable hashes |
| OQ-6 | 0002 §5 | Modality grammar and namespacing |
| OQ-7 | 0008 §6.3 / 0007 §8.2 | Constant conflict rule |
| OQ-8 | 0007 §8 | Per-modality time-batch sizing |
| OQ-11, OQ-17 | 0009 §3.2 | Local foreign-CBOR tag 65521; no time tag in ordinary Object schemas. Global registration is not established |
| OQ-12 | 0009 §3.1 | DreamDB's fixed 0x1e + 32 bytes digest encoding |
| OQ-13 | 0007 §6.5 | Spatial-first path layout, not LIST-based query visibility |
| OQ-14, OQ-15, OQ-20, OQ-21 | 0007 §7 | Index-page sizing/paging, time deltas; no byte-size delta |
| OQ-16, OQ-23, OQ-24 | 0007 §6 | Record layouts, inline/reference modes and payload byte cap |
| OQ-22 | 0005 §9 | Filesystem adapter exists; remote HTTP and local semantic evidence differ |
| OQ-96 | 0021 §7.1 | Snapshot-bound read-only fragmentation and exact/unknown debt |
| OQ-68 | 0016 §8.4 | Explicit operator maintenance plans; automatic scheduling deferred |
| OQ-98, OQ-99 | 0022 §6 / §10 | Workload-driven sizing and explicit bounded Fragment repacking |
| OQ-25 | 0004 §5.6.1 / 0010 §11.1 | Independently bound IVF + global-vector PQ; no residual-codec claim |
| OQ-26 | 0004 §5.8 | Deterministic L2 projection, signed bins and raw distance query semantics (#321) |
| OQ-27, OQ-30, OQ-33, OQ-36, OQ-39 | 0009 §5–§8 | Conformance categories specified; concrete reports still identify what actually ran |
| OQ-28 | 0006 §6.4–§6.5 | Adaptive widening/preload tactics implementation-defined |
| OQ-29 | 0005 §6 | HTTP/1.1+ semantics; HTTP/2/3 performance recommendation |
| OQ-32 | 0005 OQ-32 | Browser PresignedBackend pattern, not a multi-tenant gateway |
| OQ-35 | 0008 §4.2 | Explicit Publish parents |
| OQ-38, OQ-47 | 0010 §8 | Compressed Bucket layout; compressor at 86..119, reservation 119..200 |
| OQ-44 | 0010 §5 / 0006 §4.3 | Query-local partition pool and explicit inherit/approximate/exact policy |
| OQ-40 | 0012 §7 | Verified ordinary Object copy plus backend-local retention roots |
| OQ-45 | 0010 §8.3 | Compressed reference records inline codes beside exact locators |
| OQ-48 | 0012 §5 | Absolute availability threshold, separate from score/recall policy |
| OQ-49 | 0012 §7.1 | Canonical snapshot-copy plans, verified resume and retained destination publication (#359); reference-mode retention repaired by #365; explicit capability limits remain |
| OQ-51 | 0013 §6 / 0012 | Exact-bound federation routing GraphIndex and eligible-shard traversal (#319) |
| OQ-54 | 0013 OQ-54 / 0016 §4 | Raw Fresh Vamana append, id-preserving consolidation and page lineage; no background scheduler (#318) |
| OQ-55 | 0013 §4 / §7 | Pinned 10,000-node build/search artifacts |
| OQ-56 | 0013 §4.4.1 | Compressed graph ADC candidates and direct exact-source pool reranking (#320) |
| OQ-59 | 0014 §2.3 | Reuse Fragment chunk-address slot; map wire shape separately specified in §2.2 |
| OQ-62 | 0015 §11 | Positions off by default, opt-in |
| OQ-63 | 0015 §6.2 | Operator-tunable cost model with SDK defaults |
| OQ-66 | 0006 §2.2.1 | HybridQuery extends Query, not a new core verb |
| OQ-73 | 0006 §2.2 | Reencode is a distinct optional extension verb |
| OQ-79–OQ-87 | 0019 §2–§7 / 0009 §8.6.5 | Encryption wire-policy decisions and mandatory vectors; runtime writer/reader absent |
| OQ-88 | 0026 / 0001 §5.4 | Optional typed entity keys, stable ids and atomic revision operations; v1 size and merge limits remain (#322) |
| OQ-89 | 0020 §3.6–§5.4 | Persistent paged Timeline-scoped tombstone index |
| OQ-91 | 0002 §6.5.4 | Bao outboards and authenticated ranges; whole-read fallback for historical Objects |
| OQ-93 | 0002 §13 / 0015 §3.7 | Indexes are auxiliary registry-bound Objects, not Tracks; field-qualified bindings and contextual decode |
| OQ-94, OQ-95 | 0021 §5–§6 / §9 | Per-rewritten-Bucket exact sidecars; per-shard JSON output shape |
| OQ-97 | 0022 §10 | Schema-pinned pack_items |
| OQ-100, OQ-101 | 0025 §15 | Array family discriminant and byte-exact semantic labels |
| OQ-102 | 0017 §7 / 0025 §13 | Frozen-basis backfill claims. Ongoing omission is separately resolved for v1 as OutsideDomain by 0017 §7.11 |
Historical numbering
Keep these old references interpretable; do not reuse their numbers.
| Former duplicate | Current identifier |
|---|---|
0021 OQ-44 / OQ-45 / OQ-46 | OQ-94 / OQ-95 / OQ-96 |
0022 OQ-47 / OQ-48 / OQ-49 | OQ-97 / OQ-98 / OQ-99 |
The original 0010 OQ-44–47 and 0012 OQ-48–49 retain their numbers.
OQ-PP1/PP2 retain their published named identifiers rather than being silently
renumbered into the numeric series.
Cross-cutting reading rules
| Rule | Authority | Consequence |
|---|---|---|
| Snapshot visibility | 0005 §5.3.1 | Query the chosen Manifest's indexes; LIST does not authorize Items |
| Item versus Object | 0001 §3.1 / 0002 §6 | An Item may require an Object address plus locator; repacking can change that address |
| Binding identity | 0002 §7.2 | Type identity, active binding, retained lineage and GC reachability are different facts |
| Time versus entity | 0001 §5.4 | Equal anchors do not establish entity identity; scalar lookup does not enforce uniqueness |
| Critical extensions | 0002 §3.1.0 | Payload, visibility or closure changes cannot be silently ignored |
| Integrity of ranges | 0002 §6.5.4 | Whole-root verification is not obtained by hashing an arbitrary slice |
| Protocol versus performance | 0023 §7 | Workload targets do not redefine format conformance |
| Evidence scope | 0009 | A listed category is not an executed result; an implementation's roundtrip is not independent interop |
See the reconciliation record for corrected contradictions and compatibility dispositions with their remaining limits. See README.md for usage; current release/CI evidence belongs with its exact commit and report, not a floating “all tests green” count in this ledger.