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
test(integration): DocsConsistencyTest — the docs get a compiler
Machine-checks the living docs (CLAUDE.md, README, docs/*.md)
against the codebase: project FQNs must resolve (nested classes via
$ fallback), META-INF/services mentions must name real files,
relative links must not dangle, and backticked Class.method(...)
claims must name real methods — external receivers live on a
conscious allowlist extended in the same diff that cites a new
API. Historical records (adr/, released CHANGELOG sections) are
exempt by policy.
First run caught 11 fossils the same-day MANUAL audit missed, all
fixed here: pre-refactor FQNs in tutorial.md imports, a phantom
io.github.dfa1.vortex.extension package, Registry.* claims from
two renames ago and an ArraySegments API that no longer exists in
compatibility.md, plus Registry/Encoding diagram names and a
"DType blob (Protobuf)" claim in explanation.md. The vortex-
reviewer agent gains a standing stale-docs dimension for the prose
claims a regex cannot check.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|`vortex.onpair` experimental string encoding | Rust 0.74.0 | ❌ Not registered. Files using it fail to decode unless `Registry.allowUnknown()` is enabled. |
35
+
|`vortex.onpair` experimental string encoding | Rust 0.74.0 | ❌ Not registered. Files using it fail to decode unless `ReadRegistry.builder().allowUnknown()` is enabled. |
36
36
|`vortex.variant` arbitrary nested objects | Rust (`vortex.parquet.variant`) | ⚠️ Java encodes/decodes variant columns of **typed scalar** values (constant / chunked-of-constants core, optional shredded child); Java↔Rust round-trip verified. Arbitrary nested JSON objects and real path-based shredding need the `vortex.parquet.variant` physical encoding — deferred ([ADR 0014](../adr/0014-variant-encoding-strategy.md)). |
| Duplicate struct field names | Rust writer rejects ("StructLayout must have unique field names"); Rust reader tolerates foreign files (first-match access) | ⚠️ Deliberate divergence on read: Java rejects such files with `VortexException("duplicate field name in file schema")` instead of tolerating them — the name-keyed `Chunk` API cannot represent both columns, and silent column loss is worse than a loud failure on a file the reference writer refuses to produce. Java's writer mirrors the Rust writer's rejection. |
@@ -87,7 +87,7 @@ decoder falls into one of three shapes:
87
87
-**Lazy** — output is a `LazyXxxArray` / `ChunkedXxxArray` record that holds the encoded child
88
88
plus the transform parameters. Per-row `getXxx(i)` applies the transform on demand. No
89
89
output buffer is allocated unless a caller explicitly materializes via
90
-
`ArraySegments.of(arr, arena)`.
90
+
`Array.materialize(arena)`.
91
91
-**Materialized** — output is a buffer allocated from `ctx.arena()` populated during `decode()`.
92
92
Required for decompression-style encodings (Bitpacked, Pco, Zstd, etc.) where reading element
93
93
`i` would require decoding a window.
@@ -156,21 +156,21 @@ metadata. The Rust catalog lives in
0 commit comments