Commit graph

2409 commits

Author SHA1 Message Date
Claude
1733f42108 fix(adr-033): extend ResultQuality to API boundary, cap brute-force, add malicious manifest test
Three fixes to ADR-033:

1. ResultQuality split into RetrievalQuality (per-candidate) and
   ResponseQuality (per-response at API boundary). ResponseQuality
   survives serialization across JSON/gRPC/MCP. DegradationReason
   provides structured, inspectable evidence for why quality dropped.

2. Brute-force safety net dual-budgeted: max 5ms wall-clock AND max
   50K candidates, whichever hits first. Both configurable via
   QueryOptions. Budget=0 disables fallback entirely. Prevents O(N)
   DoS from adversarial queries on large hot caches.

3. Mandatory acceptance test: malicious tail manifest with valid CRC
   but redirected hotset pointers must fail deterministically under
   Strict policy with a logged, stable error code. Separate test for
   re-signed forgery (wrong signer vs no signature distinction).

https://claude.ai/code/session_01RnwD4x5cbpB7FPvoyYQz8G
2026-02-15 15:54:39 +00:00
Claude
b7b6db2426 fix(adr-033): extend ResultQuality to API boundary, cap brute-force, add malicious manifest test
Three fixes to ADR-033:

1. ResultQuality split into RetrievalQuality (per-candidate) and
   ResponseQuality (per-response at API boundary). ResponseQuality
   survives serialization across JSON/gRPC/MCP. DegradationReason
   provides structured, inspectable evidence for why quality dropped.

2. Brute-force safety net dual-budgeted: max 5ms wall-clock AND max
   50K candidates, whichever hits first. Both configurable via
   QueryOptions. Budget=0 disables fallback entirely. Prevents O(N)
   DoS from adversarial queries on large hot caches.

3. Mandatory acceptance test: malicious tail manifest with valid CRC
   but redirected hotset pointers must fail deterministically under
   Strict policy with a logged, stable error code. Separate test for
   re-signed forgery (wrong signer vs no signature distinction).

https://claude.ai/code/session_01RnwD4x5cbpB7FPvoyYQz8G
2026-02-15 15:54:39 +00:00
Claude
2d35e4669c docs(adr): ADR-033 progressive indexing hardening
Addresses four structural weaknesses in the progressive indexing system:

1. Content-addressed centroid stability — hotset pointers verified by
   SHAKE-256 content hashes, not just byte offsets. Compaction becomes
   physically destructive but logically stable.

2. Adversarial distribution resilience — distance entropy detection
   with adaptive n_probe widening. Silent recall collapse replaced by
   detected degradation with ResultQuality signaling.

3. Honest recall framing — empirical targets scoped to distribution
   classes (natural/synthetic/adversarial). Monotonic recall improvement
   property proven from append-only invariant. Brute-force safety net
   when candidate count is insufficient.

4. Mandatory manifest signatures — SecurityPolicy defaults to Strict.
   No signature = no mount in production. Prevents segment-swap attacks
   on hotset pointers. CRC32C catches corruption; ML-DSA-65 catches
   adversaries.

https://claude.ai/code/session_01RnwD4x5cbpB7FPvoyYQz8G
2026-02-15 15:50:17 +00:00
Claude
ffbdd3c482 docs(adr): ADR-033 progressive indexing hardening
Addresses four structural weaknesses in the progressive indexing system:

1. Content-addressed centroid stability — hotset pointers verified by
   SHAKE-256 content hashes, not just byte offsets. Compaction becomes
   physically destructive but logically stable.

2. Adversarial distribution resilience — distance entropy detection
   with adaptive n_probe widening. Silent recall collapse replaced by
   detected degradation with ResultQuality signaling.

3. Honest recall framing — empirical targets scoped to distribution
   classes (natural/synthetic/adversarial). Monotonic recall improvement
   property proven from append-only invariant. Brute-force safety net
   when candidate count is insufficient.

4. Mandatory manifest signatures — SecurityPolicy defaults to Strict.
   No signature = no mount in production. Prevents segment-swap attacks
   on hotset pointers. CRC32C catches corruption; ML-DSA-65 catches
   adversaries.

https://claude.ai/code/session_01RnwD4x5cbpB7FPvoyYQz8G
2026-02-15 15:50:17 +00:00
Claude
8ee54250b5 feat(rvf): add WASM_SEG (0x10) for self-bootstrapping RVF files
Add the WASM_SEG segment type and complete self-bootstrapping
architecture that allows RVF files to carry their own execution
runtime. When an RVF file embeds a WASM interpreter alongside the
microkernel, the host only needs raw execution capability — making
RVF "run anywhere compute exists."

Changes:
- rvf-types: Add SegmentType::Wasm (0x10), WasmHeader (64-byte),
  WasmRole, WasmTarget enums, and feature flag constants
- rvf-runtime: Add embed_wasm(), extract_wasm(), extract_wasm_all(),
  is_self_bootstrapping() methods on RvfStore, plus write_wasm_seg()
  in the write path
- rvf-wasm: Add bootstrap module with resolve_bootstrap_chain() that
  discovers WASM_SEGs, parses headers, and resolves the optimal
  bootstrap strategy (None/HostRequired/SelfContained/TwoStage/Full)
- docs: Add spec/11-wasm-bootstrap.md with complete wire format,
  bootstrap protocol, size budget analysis, and security model

The three-layer bootstrap stack:
  Layer 0: Raw bytes (.rvf file)
  Layer 1: Embedded WASM interpreter (~50 KB)
  Layer 2: WASM microkernel (~5.5 KB)
  Layer 3: RVF data segments

All 131 rvf-types tests and 72 rvf-runtime tests pass.

https://claude.ai/code/session_01RnwD4x5cbpB7FPvoyYQz8G
2026-02-15 15:36:34 +00:00
Claude
4bec65135f feat(rvf): add WASM_SEG (0x10) for self-bootstrapping RVF files
Add the WASM_SEG segment type and complete self-bootstrapping
architecture that allows RVF files to carry their own execution
runtime. When an RVF file embeds a WASM interpreter alongside the
microkernel, the host only needs raw execution capability — making
RVF "run anywhere compute exists."

Changes:
- rvf-types: Add SegmentType::Wasm (0x10), WasmHeader (64-byte),
  WasmRole, WasmTarget enums, and feature flag constants
- rvf-runtime: Add embed_wasm(), extract_wasm(), extract_wasm_all(),
  is_self_bootstrapping() methods on RvfStore, plus write_wasm_seg()
  in the write path
- rvf-wasm: Add bootstrap module with resolve_bootstrap_chain() that
  discovers WASM_SEGs, parses headers, and resolves the optimal
  bootstrap strategy (None/HostRequired/SelfContained/TwoStage/Full)
- docs: Add spec/11-wasm-bootstrap.md with complete wire format,
  bootstrap protocol, size budget analysis, and security model

The three-layer bootstrap stack:
  Layer 0: Raw bytes (.rvf file)
  Layer 1: Embedded WASM interpreter (~50 KB)
  Layer 2: WASM microkernel (~5.5 KB)
  Layer 3: RVF data segments

All 131 rvf-types tests and 72 rvf-runtime tests pass.

https://claude.ai/code/session_01RnwD4x5cbpB7FPvoyYQz8G
2026-02-15 15:36:34 +00:00
rUv
3f953227f9 fix: add version specifiers to ruvector-cli path dependencies for crates.io publish
Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 06:42:27 +00:00
rUv
65c8d6f3ad fix: add version specifiers to ruvector-cli path dependencies for crates.io publish
Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 06:42:27 +00:00
rUv
f7345eef9e fix: bump Docker Rust version to 1.85 for edition2024 support
wit-bindgen 0.51.0 requires edition2024 which was stabilized in Rust 1.85.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 06:35:05 +00:00
rUv
4ee970fb71 fix: bump Docker Rust version to 1.85 for edition2024 support
wit-bindgen 0.51.0 requires edition2024 which was stabilized in Rust 1.85.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 06:35:05 +00:00
rUv
ea4ba1c307 fix: resolve fpga-transformer BackendSpec.as_ref, hnsw array indexing, rvf-cli version mismatches
- Fix BackendSpec.as_ref() error: backend is a struct, not Option; access options.early_exit directly
- Fix ii_IndexAttrNumbers array indexing: use [0] instead of .offset(0) for fixed-size [i16; 32]
- Bump rvf-cli deps to match rvf-launch 0.2.0 and rvf-server 0.2.0
- Update Docker image version label to 2.0.2

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 06:34:08 +00:00
rUv
3b01076d13 fix: resolve fpga-transformer BackendSpec.as_ref, hnsw array indexing, rvf-cli version mismatches
- Fix BackendSpec.as_ref() error: backend is a struct, not Option; access options.early_exit directly
- Fix ii_IndexAttrNumbers array indexing: use [0] instead of .offset(0) for fixed-size [i16; 32]
- Bump rvf-cli deps to match rvf-launch 0.2.0 and rvf-server 0.2.0
- Update Docker image version label to 2.0.2

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 06:34:08 +00:00
github-actions[bot]
29e5abc68a chore: Update NAPI-RS binaries for all platforms
Built from commit 7365f086da

  Platforms updated:
  - linux-x64-gnu
  - linux-arm64-gnu
  - darwin-x64
  - darwin-arm64
  - win32-x64-msvc

  🤖 Generated by GitHub Actions
2026-02-15 06:29:33 +00:00
github-actions[bot]
ccbac9f67e chore: Update NAPI-RS binaries for all platforms
Built from commit 7365f086da

  Platforms updated:
  - linux-x64-gnu
  - linux-arm64-gnu
  - darwin-x64
  - darwin-arm64
  - win32-x64-msvc

  🤖 Generated by GitHub Actions
2026-02-15 06:29:33 +00:00
github-actions[bot]
e91ac490f0 chore: Update NAPI-RS binaries for all platforms
Built from commit 7c7368636f

  Platforms updated:
  - linux-x64-gnu
  - linux-arm64-gnu
  - darwin-x64
  - darwin-arm64
  - win32-x64-msvc

  🤖 Generated by GitHub Actions
2026-02-15 06:27:10 +00:00
github-actions[bot]
4622e5b950 chore: Update NAPI-RS binaries for all platforms
Built from commit 7c7368636f

  Platforms updated:
  - linux-x64-gnu
  - linux-arm64-gnu
  - darwin-x64
  - darwin-arm64
  - win32-x64-msvc

  🤖 Generated by GitHub Actions
2026-02-15 06:27:10 +00:00
github-actions[bot]
32a23d44fb chore: Update NAPI-RS binaries for all platforms
Built from commit 78021e910d

  Platforms updated:
  - linux-x64-gnu
  - linux-arm64-gnu
  - darwin-x64
  - darwin-arm64
  - win32-x64-msvc

  🤖 Generated by GitHub Actions
2026-02-15 06:25:46 +00:00
github-actions[bot]
5b25591e0d chore: Update NAPI-RS binaries for all platforms
Built from commit 78021e910d

  Platforms updated:
  - linux-x64-gnu
  - linux-arm64-gnu
  - darwin-x64
  - darwin-arm64
  - win32-x64-msvc

  🤖 Generated by GitHub Actions
2026-02-15 06:25:46 +00:00
rUv
4b18715454 chore: bump @ruvector/postgres-cli to 0.2.7
Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 06:25:23 +00:00
rUv
7365f086da chore: bump @ruvector/postgres-cli to 0.2.7
Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 06:25:23 +00:00
github-actions[bot]
f551e38788 chore: Update NAPI-RS binaries for all platforms
Built from commit b1b4a9ff8d

  Platforms updated:
  - linux-x64-gnu
  - linux-arm64-gnu
  - darwin-x64
  - darwin-arm64
  - win32-x64-msvc

  🤖 Generated by GitHub Actions
2026-02-15 06:23:50 +00:00
github-actions[bot]
04194b8931 chore: Update NAPI-RS binaries for all platforms
Built from commit b1b4a9ff8d

  Platforms updated:
  - linux-x64-gnu
  - linux-arm64-gnu
  - darwin-x64
  - darwin-arm64
  - win32-x64-msvc

  🤖 Generated by GitHub Actions
2026-02-15 06:23:50 +00:00
rUv
ef41b341f0 chore: bump and publish npm packages (ruvector 0.1.99, rvlite 0.2.4, rvf 0.1.3)
Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 06:19:48 +00:00
rUv
7c7368636f chore: bump and publish npm packages (ruvector 0.1.99, rvlite 0.2.4, rvf 0.1.3)
Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 06:19:48 +00:00
rUv
127501d62c chore: bump npm package versions for publish
- ruvector: 0.1.97 -> 0.1.98
- rvlite: 0.2.2 -> 0.2.3
- @ruvector/rvf: 0.1.1 -> 0.1.2

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 06:18:38 +00:00
rUv
78021e910d chore: bump npm package versions for publish
- ruvector: 0.1.97 -> 0.1.98
- rvlite: 0.2.2 -> 0.2.3
- @ruvector/rvf: 0.1.1 -> 0.1.2

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 06:18:38 +00:00
rUv
d05aaae824 Merge pull request #172 from ruvnet/fix/hnsw-agent-sparql-lru-issues
fix: HNSW index bugs, agent/SPARQL crashes, lru security
2026-02-15 01:16:10 -05:00
rUv
b1b4a9ff8d Merge pull request #172 from ruvnet/fix/hnsw-agent-sparql-lru-issues
fix: HNSW index bugs, agent/SPARQL crashes, lru security
2026-02-15 01:16:10 -05:00
rUv
c8f7951d84 Merge remote-tracking branch 'origin/main' into fix/hnsw-agent-sparql-lru-issues
# Conflicts:
#	crates/rvf/README.md
#	crates/rvf/rvf-kernel/src/lib.rs
#	npm/packages/ruvector/package.json
#	npm/packages/rvf/package.json
#	npm/packages/rvlite/package.json
2026-02-15 06:15:42 +00:00
rUv
9a4f97dfaf Merge remote-tracking branch 'origin/main' into fix/hnsw-agent-sparql-lru-issues
# Conflicts:
#	crates/rvf/README.md
#	crates/rvf/rvf-kernel/src/lib.rs
#	npm/packages/ruvector/package.json
#	npm/packages/rvf/package.json
#	npm/packages/rvlite/package.json
2026-02-15 06:15:42 +00:00
rUv
d5af344f2b fix: HNSW index bugs, agent/SPARQL crashes, lru security (#152, #164, #167, #171, #148)
HNSW fixes:
- Extract vector dimensions from column atttypmod instead of hardcoding 128,
  which caused corrupted indexes for non-128-dim embeddings (#171, #164)
- Add page boundary checks in read_vector/read_neighbors to prevent
  segfaults on large tables with >100K rows (#164)
- Use BinaryHeap::into_sorted_vec() for deterministic result ordering
  instead of into_iter() which yields arbitrary order (#171)
- Handle non-kNN scans (COUNT, WHERE IS NOT NULL) gracefully by returning
  false from hnsw_gettuple when no ORDER BY operator is present (#152)

Agent/SPARQL fixes:
- Fix SQL type mismatch: ruvector_list_agents() and
  ruvector_find_agents_by_capability() now use RETURNS TABLE(...)
  matching the Rust TableIterator signatures instead of RETURNS SETOF jsonb (#167)
- Add empty query validation to ruvector_sparql() and
  ruvector_sparql_json() to prevent panics on invalid input (#167)
- Change workspace panic profile from "abort" to "unwind" so pgrx can
  convert Rust panics to PostgreSQL errors instead of killing the backend (#167)

Security:
- Bump lru dependency from 0.12 to 0.16 in ruvector-graph, ruvector-cli,
  and ruvLLM to resolve GHSA-xpfx-fvgv-hgqp Stacked Borrows violation (#148)

Version bumps: workspace 2.0.3, ruvector-postgres 2.0.2

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 06:15:00 +00:00
rUv
e860b24b89 fix: HNSW index bugs, agent/SPARQL crashes, lru security (#152, #164, #167, #171, #148)
HNSW fixes:
- Extract vector dimensions from column atttypmod instead of hardcoding 128,
  which caused corrupted indexes for non-128-dim embeddings (#171, #164)
- Add page boundary checks in read_vector/read_neighbors to prevent
  segfaults on large tables with >100K rows (#164)
- Use BinaryHeap::into_sorted_vec() for deterministic result ordering
  instead of into_iter() which yields arbitrary order (#171)
- Handle non-kNN scans (COUNT, WHERE IS NOT NULL) gracefully by returning
  false from hnsw_gettuple when no ORDER BY operator is present (#152)

Agent/SPARQL fixes:
- Fix SQL type mismatch: ruvector_list_agents() and
  ruvector_find_agents_by_capability() now use RETURNS TABLE(...)
  matching the Rust TableIterator signatures instead of RETURNS SETOF jsonb (#167)
- Add empty query validation to ruvector_sparql() and
  ruvector_sparql_json() to prevent panics on invalid input (#167)
- Change workspace panic profile from "abort" to "unwind" so pgrx can
  convert Rust panics to PostgreSQL errors instead of killing the backend (#167)

Security:
- Bump lru dependency from 0.12 to 0.16 in ruvector-graph, ruvector-cli,
  and ruvLLM to resolve GHSA-xpfx-fvgv-hgqp Stacked Borrows violation (#148)

Version bumps: workspace 2.0.3, ruvector-postgres 2.0.2

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 06:15:00 +00:00
rUv
d516ccfb96 chore: bump and publish npm packages
Published to npm:
- @ruvector/ruvf 0.1.2
- @ruvector/rvf-wasm 0.1.1
- @ruvector/rvf-node 0.1.1
- @ruvector/rvf-mcp-server 0.1.1
- ruvector 0.1.98
- rvlite 0.2.3

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 00:10:46 +00:00
rUv
2984452426 chore: bump and publish npm packages
Published to npm:
- @ruvector/ruvf 0.1.2
- @ruvector/rvf-wasm 0.1.1
- @ruvector/rvf-node 0.1.1
- @ruvector/rvf-mcp-server 0.1.1
- ruvector 0.1.98
- rvlite 0.2.3

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 00:10:46 +00:00
rUv
b373de4985 feat(rvf): embed real Linux 6.8.12 kernel, fix Docker extract, update benchmarks
- Examples (self_booting, linux_microkernel, claude_code_appliance,
  live_boot_proof) now use KernelBuilder::build() which tries Docker
  first and falls back to builtin stub — real 5.2 MB bzImage embedded
- Fix Docker kernel extraction: clean up stale containers, pass dummy
  entrypoint for scratch-based images
- README: add real measured boot benchmarks (257ms boot→service,
  381ms boot→verify), kernel size comparison (5.1 MB general vs
  3.8 MB ultrafast = 26% smaller)
- Fix claude_code_appliance idempotency (remove old file before create)

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 00:07:24 +00:00
rUv
f30e8c50f3 feat(rvf): embed real Linux 6.8.12 kernel, fix Docker extract, update benchmarks
- Examples (self_booting, linux_microkernel, claude_code_appliance,
  live_boot_proof) now use KernelBuilder::build() which tries Docker
  first and falls back to builtin stub — real 5.2 MB bzImage embedded
- Fix Docker kernel extraction: clean up stale containers, pass dummy
  entrypoint for scratch-based images
- README: add real measured boot benchmarks (257ms boot→service,
  381ms boot→verify), kernel size comparison (5.1 MB general vs
  3.8 MB ultrafast = 26% smaller)
- Fix claude_code_appliance idempotency (remove old file before create)

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-15 00:07:24 +00:00
rUv
62f749be02 feat(rvf): add live boot proof, ultra-fast kernel config, and fast initramfs
- Add live_boot_proof.rs: end-to-end Docker boot + SSH + RVF verification
- Add ULTRAFAST_BOOT_CONFIG: sub-100ms kernel config (no NUMA/cgroups/ext4/netfilter)
- Add build_fast_initramfs(): minimal init path (3 mounts + direct service start)
- Add KernelBuilder::ultrafast() with optimized cmdline for fast boot
- Update README with live boot proof instructions and ultra-fast boot docs
- 5 new tests (44 total in rvf-kernel), all passing

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-14 23:55:25 +00:00
rUv
fcc1bd94d7 feat(rvf): add live boot proof, ultra-fast kernel config, and fast initramfs
- Add live_boot_proof.rs: end-to-end Docker boot + SSH + RVF verification
- Add ULTRAFAST_BOOT_CONFIG: sub-100ms kernel config (no NUMA/cgroups/ext4/netfilter)
- Add build_fast_initramfs(): minimal init path (3 mounts + direct service start)
- Add KernelBuilder::ultrafast() with optimized cmdline for fast boot
- Update README with live boot proof instructions and ultra-fast boot docs
- 5 new tests (44 total in rvf-kernel), all passing

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-14 23:55:25 +00:00
github-actions[bot]
06b8fa9d4c chore: Update NAPI-RS binaries for all platforms
Built from commit 7b8035eb54

  Platforms updated:
  - linux-x64-gnu
  - linux-arm64-gnu
  - darwin-x64
  - darwin-arm64
  - win32-x64-msvc

  🤖 Generated by GitHub Actions
2026-02-14 23:08:05 +00:00
github-actions[bot]
fc447a9065 chore: Update NAPI-RS binaries for all platforms
Built from commit 7b8035eb54

  Platforms updated:
  - linux-x64-gnu
  - linux-arm64-gnu
  - darwin-x64
  - darwin-arm64
  - win32-x64-msvc

  🤖 Generated by GitHub Actions
2026-02-14 23:08:05 +00:00
rUv
4ae6b05e3d feat(rvf): RVF WASM integration, witness auto-append, real verification, prebuilt fallbacks, README examples
* feat(adr): add ADR-032 for RVF WASM integration into npx ruvector and rvlite

Documents phased integration plan: Phase 1 adds RVF as optional dep + CLI
command group to npx ruvector, Phase 2 adds RVF as storage backend for rvlite,
Phase 3 unifies shared WASM backend and MCP bridge.

Co-Authored-By: claude-flow <ruv@ruv.net>

* feat(adr): update ADR-032 with invariants, contracts, failure modes, and decision matrix

Adds: single writer rule, crash ordering with epoch reconciliation,
explicit backend selection (no silent fallback), cross-platform compat
rule, phase contracts with success metrics, failure mode test matrix,
hybrid persistence decision matrix, implementation checklist.

Closes #169

Co-Authored-By: claude-flow <ruv@ruv.net>

* feat(rvf): integrate RVF WASM into npx ruvector and rvlite (ADR-032)

Phase 1 implementation:
- Add @ruvector/rvf as optional dependency to ruvector package
- Create rvf-wrapper.ts with 10 exported functions matching core pattern
- Add 3-tier platform detection (core -> rvf -> stub) with explicit
  --backend rvf override that fails loud if package is missing
- Add 8 rvf CLI subcommands (create, ingest, query, status, segments,
  derive, compact, export) routed through the wrapper
- 5 Rust smoke tests validating persistence across restart, deletion
  persistence, compaction stability, and adapter compatibility

Phase 2 foundations:
- Add rvf-backend feature flag to rvlite Cargo.toml (default off)
- Create epoch reconciliation module for hybrid RVF + IndexedDB sync
- Add @ruvector/rvf-wasm as optional dep to rvlite npm package
- Add rvf-adapter-rvlite to workspace members

All tests green: 237 RVF core, 23 adapter, 4 epoch, 5 smoke.

Refs: #169

Co-Authored-By: claude-flow <ruv@ruv.net>

* feat(rvf): complete ADR-032 phases 1-3 — epoch, lease, ID map, MCP tools, compat tests

Phase 2 Rust: full epoch reconciliation (EpochTracker with AtomicU64, 23 tests),
writer lease with file lock and PID-based stale detection (12 tests),
direct ID mapping trait with DirectIdMap and OffsetIdMap (20 tests).

Phase 2 JS: createWithRvf/saveToRvf/loadFromRvf factories, BrowserWriterLease
with IndexedDB heartbeat, rvf-migrate and rvf-rebuild CLI commands, epoch sync
helpers. +541 lines to index.ts, new cli-rvf.ts (363 lines).

Phase 3: 3 MCP rvlite tools (rvlite_sql, rvlite_cypher, rvlite_sparql),
CI wasm-dedup-check workflow, 6 cross-platform compat tests, shared peer dep.

Phase 1: 4 RVF smoke integration tests (full lifecycle, cosine, multi-restart,
metadata). Node.js CLI smoke test script.

81 new Rust tests passing. ADR-032 checklist fully complete.

Co-Authored-By: claude-flow <ruv@ruv.net>

* chore: bump versions and fix TS/README for npm publish

- ruvector 0.1.88 → 0.1.97 (match npm registry)
- rvlite 0.2.1 → 0.2.2
- @ruvector/rvf 0.1.0 → 0.1.1
- Fix MCP command in ruvector README (mcp-server → mcp start)
- Fix WASM type conflicts in rvlite index.ts (cast dynamic imports to any)

Co-Authored-By: claude-flow <ruv@ruv.net>

* feat(rvf): add witness auto-append, real CLI verification, prebuilt fallbacks, and README examples

Five "What's NOT Automatic" gaps fixed:
1. Witness auto-append: WitnessConfig in RvfOptions auto-records ingest/delete/compact
   operations as WITNESS_SEG entries with SHAKE-256 hash chains
2. verify-witness CLI: Real hash chain verification — extracts WITNESS_SEG payloads,
   runs verify_witness_chain() with full SHAKE-256 validation
3. verify-attestation CLI: Real kernel image hash verification and attestation
   witness chain validation
4. Prebuilt kernel fallback: KernelBuilder::from_builtin_minimal() produces valid
   bzImage without Docker
5. Prebuilt eBPF fallback: EbpfCompiler::from_precompiled() produces valid BPF ELF
   without clang; Launcher::check_requirements()/dry_run() for QEMU detection

README examples added to all 3 packages:
- crates/rvf/README.md: Proof of Operations section
- npm/packages/rvf/README.md: 7 real-world examples
- npm/packages/ruvector/README.md: Working cognitive container examples

830 tests passing, workspace compiles cleanly.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-14 18:03:26 -05:00
rUv
7b8035eb54 feat(rvf): RVF WASM integration, witness auto-append, real verification, prebuilt fallbacks, README examples
* feat(adr): add ADR-032 for RVF WASM integration into npx ruvector and rvlite

Documents phased integration plan: Phase 1 adds RVF as optional dep + CLI
command group to npx ruvector, Phase 2 adds RVF as storage backend for rvlite,
Phase 3 unifies shared WASM backend and MCP bridge.

Co-Authored-By: claude-flow <ruv@ruv.net>

* feat(adr): update ADR-032 with invariants, contracts, failure modes, and decision matrix

Adds: single writer rule, crash ordering with epoch reconciliation,
explicit backend selection (no silent fallback), cross-platform compat
rule, phase contracts with success metrics, failure mode test matrix,
hybrid persistence decision matrix, implementation checklist.

Closes #169

Co-Authored-By: claude-flow <ruv@ruv.net>

* feat(rvf): integrate RVF WASM into npx ruvector and rvlite (ADR-032)

Phase 1 implementation:
- Add @ruvector/rvf as optional dependency to ruvector package
- Create rvf-wrapper.ts with 10 exported functions matching core pattern
- Add 3-tier platform detection (core -> rvf -> stub) with explicit
  --backend rvf override that fails loud if package is missing
- Add 8 rvf CLI subcommands (create, ingest, query, status, segments,
  derive, compact, export) routed through the wrapper
- 5 Rust smoke tests validating persistence across restart, deletion
  persistence, compaction stability, and adapter compatibility

Phase 2 foundations:
- Add rvf-backend feature flag to rvlite Cargo.toml (default off)
- Create epoch reconciliation module for hybrid RVF + IndexedDB sync
- Add @ruvector/rvf-wasm as optional dep to rvlite npm package
- Add rvf-adapter-rvlite to workspace members

All tests green: 237 RVF core, 23 adapter, 4 epoch, 5 smoke.

Refs: #169

Co-Authored-By: claude-flow <ruv@ruv.net>

* feat(rvf): complete ADR-032 phases 1-3 — epoch, lease, ID map, MCP tools, compat tests

Phase 2 Rust: full epoch reconciliation (EpochTracker with AtomicU64, 23 tests),
writer lease with file lock and PID-based stale detection (12 tests),
direct ID mapping trait with DirectIdMap and OffsetIdMap (20 tests).

Phase 2 JS: createWithRvf/saveToRvf/loadFromRvf factories, BrowserWriterLease
with IndexedDB heartbeat, rvf-migrate and rvf-rebuild CLI commands, epoch sync
helpers. +541 lines to index.ts, new cli-rvf.ts (363 lines).

Phase 3: 3 MCP rvlite tools (rvlite_sql, rvlite_cypher, rvlite_sparql),
CI wasm-dedup-check workflow, 6 cross-platform compat tests, shared peer dep.

Phase 1: 4 RVF smoke integration tests (full lifecycle, cosine, multi-restart,
metadata). Node.js CLI smoke test script.

81 new Rust tests passing. ADR-032 checklist fully complete.

Co-Authored-By: claude-flow <ruv@ruv.net>

* chore: bump versions and fix TS/README for npm publish

- ruvector 0.1.88 → 0.1.97 (match npm registry)
- rvlite 0.2.1 → 0.2.2
- @ruvector/rvf 0.1.0 → 0.1.1
- Fix MCP command in ruvector README (mcp-server → mcp start)
- Fix WASM type conflicts in rvlite index.ts (cast dynamic imports to any)

Co-Authored-By: claude-flow <ruv@ruv.net>

* feat(rvf): add witness auto-append, real CLI verification, prebuilt fallbacks, and README examples

Five "What's NOT Automatic" gaps fixed:
1. Witness auto-append: WitnessConfig in RvfOptions auto-records ingest/delete/compact
   operations as WITNESS_SEG entries with SHAKE-256 hash chains
2. verify-witness CLI: Real hash chain verification — extracts WITNESS_SEG payloads,
   runs verify_witness_chain() with full SHAKE-256 validation
3. verify-attestation CLI: Real kernel image hash verification and attestation
   witness chain validation
4. Prebuilt kernel fallback: KernelBuilder::from_builtin_minimal() produces valid
   bzImage without Docker
5. Prebuilt eBPF fallback: EbpfCompiler::from_precompiled() produces valid BPF ELF
   without clang; Launcher::check_requirements()/dry_run() for QEMU detection

README examples added to all 3 packages:
- crates/rvf/README.md: Proof of Operations section
- npm/packages/rvf/README.md: 7 real-world examples
- npm/packages/ruvector/README.md: Working cognitive container examples

830 tests passing, workspace compiles cleanly.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-14 18:03:26 -05:00
rUv
2afa003cc0 feat(rvf): add witness auto-append, real CLI verification, prebuilt fallbacks, and README examples
Five "What's NOT Automatic" gaps fixed:
1. Witness auto-append: WitnessConfig in RvfOptions auto-records ingest/delete/compact
   operations as WITNESS_SEG entries with SHAKE-256 hash chains
2. verify-witness CLI: Real hash chain verification — extracts WITNESS_SEG payloads,
   runs verify_witness_chain() with full SHAKE-256 validation
3. verify-attestation CLI: Real kernel image hash verification and attestation
   witness chain validation
4. Prebuilt kernel fallback: KernelBuilder::from_builtin_minimal() produces valid
   bzImage without Docker
5. Prebuilt eBPF fallback: EbpfCompiler::from_precompiled() produces valid BPF ELF
   without clang; Launcher::check_requirements()/dry_run() for QEMU detection

README examples added to all 3 packages:
- crates/rvf/README.md: Proof of Operations section
- npm/packages/rvf/README.md: 7 real-world examples
- npm/packages/ruvector/README.md: Working cognitive container examples

830 tests passing, workspace compiles cleanly.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-14 23:02:48 +00:00
rUv
f42bee9561 feat(rvf): add witness auto-append, real CLI verification, prebuilt fallbacks, and README examples
Five "What's NOT Automatic" gaps fixed:
1. Witness auto-append: WitnessConfig in RvfOptions auto-records ingest/delete/compact
   operations as WITNESS_SEG entries with SHAKE-256 hash chains
2. verify-witness CLI: Real hash chain verification — extracts WITNESS_SEG payloads,
   runs verify_witness_chain() with full SHAKE-256 validation
3. verify-attestation CLI: Real kernel image hash verification and attestation
   witness chain validation
4. Prebuilt kernel fallback: KernelBuilder::from_builtin_minimal() produces valid
   bzImage without Docker
5. Prebuilt eBPF fallback: EbpfCompiler::from_precompiled() produces valid BPF ELF
   without clang; Launcher::check_requirements()/dry_run() for QEMU detection

README examples added to all 3 packages:
- crates/rvf/README.md: Proof of Operations section
- npm/packages/rvf/README.md: 7 real-world examples
- npm/packages/ruvector/README.md: Working cognitive container examples

830 tests passing, workspace compiles cleanly.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-14 23:02:48 +00:00
rUv
c405f27063 chore: bump versions and fix TS/README for npm publish
- ruvector 0.1.88 → 0.1.97 (match npm registry)
- rvlite 0.2.1 → 0.2.2
- @ruvector/rvf 0.1.0 → 0.1.1
- Fix MCP command in ruvector README (mcp-server → mcp start)
- Fix WASM type conflicts in rvlite index.ts (cast dynamic imports to any)

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-14 22:13:03 +00:00
rUv
bcc4d7fd33 chore: bump versions and fix TS/README for npm publish
- ruvector 0.1.88 → 0.1.97 (match npm registry)
- rvlite 0.2.1 → 0.2.2
- @ruvector/rvf 0.1.0 → 0.1.1
- Fix MCP command in ruvector README (mcp-server → mcp start)
- Fix WASM type conflicts in rvlite index.ts (cast dynamic imports to any)

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-14 22:13:03 +00:00
rUv
78913c03d9 feat(rvf): complete ADR-032 phases 1-3 — epoch, lease, ID map, MCP tools, compat tests
Phase 2 Rust: full epoch reconciliation (EpochTracker with AtomicU64, 23 tests),
writer lease with file lock and PID-based stale detection (12 tests),
direct ID mapping trait with DirectIdMap and OffsetIdMap (20 tests).

Phase 2 JS: createWithRvf/saveToRvf/loadFromRvf factories, BrowserWriterLease
with IndexedDB heartbeat, rvf-migrate and rvf-rebuild CLI commands, epoch sync
helpers. +541 lines to index.ts, new cli-rvf.ts (363 lines).

Phase 3: 3 MCP rvlite tools (rvlite_sql, rvlite_cypher, rvlite_sparql),
CI wasm-dedup-check workflow, 6 cross-platform compat tests, shared peer dep.

Phase 1: 4 RVF smoke integration tests (full lifecycle, cosine, multi-restart,
metadata). Node.js CLI smoke test script.

81 new Rust tests passing. ADR-032 checklist fully complete.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-14 22:08:05 +00:00
rUv
ed35626265 feat(rvf): complete ADR-032 phases 1-3 — epoch, lease, ID map, MCP tools, compat tests
Phase 2 Rust: full epoch reconciliation (EpochTracker with AtomicU64, 23 tests),
writer lease with file lock and PID-based stale detection (12 tests),
direct ID mapping trait with DirectIdMap and OffsetIdMap (20 tests).

Phase 2 JS: createWithRvf/saveToRvf/loadFromRvf factories, BrowserWriterLease
with IndexedDB heartbeat, rvf-migrate and rvf-rebuild CLI commands, epoch sync
helpers. +541 lines to index.ts, new cli-rvf.ts (363 lines).

Phase 3: 3 MCP rvlite tools (rvlite_sql, rvlite_cypher, rvlite_sparql),
CI wasm-dedup-check workflow, 6 cross-platform compat tests, shared peer dep.

Phase 1: 4 RVF smoke integration tests (full lifecycle, cosine, multi-restart,
metadata). Node.js CLI smoke test script.

81 new Rust tests passing. ADR-032 checklist fully complete.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-14 22:08:05 +00:00
rUv
59612a97de feat(rvf): integrate RVF WASM into npx ruvector and rvlite (ADR-032)
Phase 1 implementation:
- Add @ruvector/rvf as optional dependency to ruvector package
- Create rvf-wrapper.ts with 10 exported functions matching core pattern
- Add 3-tier platform detection (core -> rvf -> stub) with explicit
  --backend rvf override that fails loud if package is missing
- Add 8 rvf CLI subcommands (create, ingest, query, status, segments,
  derive, compact, export) routed through the wrapper
- 5 Rust smoke tests validating persistence across restart, deletion
  persistence, compaction stability, and adapter compatibility

Phase 2 foundations:
- Add rvf-backend feature flag to rvlite Cargo.toml (default off)
- Create epoch reconciliation module for hybrid RVF + IndexedDB sync
- Add @ruvector/rvf-wasm as optional dep to rvlite npm package
- Add rvf-adapter-rvlite to workspace members

All tests green: 237 RVF core, 23 adapter, 4 epoch, 5 smoke.

Refs: #169

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-14 20:15:57 +00:00
rUv
48260d48ba feat(rvf): integrate RVF WASM into npx ruvector and rvlite (ADR-032)
Phase 1 implementation:
- Add @ruvector/rvf as optional dependency to ruvector package
- Create rvf-wrapper.ts with 10 exported functions matching core pattern
- Add 3-tier platform detection (core -> rvf -> stub) with explicit
  --backend rvf override that fails loud if package is missing
- Add 8 rvf CLI subcommands (create, ingest, query, status, segments,
  derive, compact, export) routed through the wrapper
- 5 Rust smoke tests validating persistence across restart, deletion
  persistence, compaction stability, and adapter compatibility

Phase 2 foundations:
- Add rvf-backend feature flag to rvlite Cargo.toml (default off)
- Create epoch reconciliation module for hybrid RVF + IndexedDB sync
- Add @ruvector/rvf-wasm as optional dep to rvlite npm package
- Add rvf-adapter-rvlite to workspace members

All tests green: 237 RVF core, 23 adapter, 4 epoch, 5 smoke.

Refs: #169

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-14 20:15:57 +00:00