ruvector/examples/OSpipe/Cargo.toml
rUv 82c21c2a7b
ADR-257: extract ruqu + rvdna into two standalone repos (git submodules) (#579)
* docs(adr): ADR-257 extract ruqu + rvdna into standalone repos via submodules

Two separate standalone repos — ruvnet/ruqu (both clusters: quantum-sim
ruqu-* + min-cut ruQu + ruqu-wasm npm) and ruvnet/rvdna (examples/dna +
rvdna npm) — re-referenced as git submodules at external/ruqu, external/rvdna.

Includes the full coupling analysis (rvdna path-depends on 9 unpublished
ruvector crates; ruQu on ruvector-mincut; ruqu consumed by OSpipe/rvf; code
spans crates/ + npm/), the honest standalone-build caveat, migration steps,
and rollback.

Adds scripts/extract-ruqu-rvdna-submodules.sh — idempotent, DRY-RUN by
default; --execute required to create the public repos. Dry-run verified.

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

* docs(adr): ADR-257 correction — ruvector deps ARE published (closure at 2.2.3)

The earlier "rvdna/ruQu can't build standalone" claim was based on a crates.io
API rate-limit misread. Authoritative sparse-index check shows all ruvector-*
deps were already published; the full rvdna closure is now synced to 2.2.3
(published collections/filter/math/dag/cluster/raft/replication/gnn/attention;
solver/core/graph already there). Standalone builds now only need the mechanical
path->version dep rewrite in the extracted repos. Added an Update section.

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

* refactor: reference ruqu + rvdna as submodules (ADR-257)

- Remove crates/ruqu-*, crates/ruQu, examples/dna, and the two npm wrappers
  from the monorepo; they now live in standalone repos ruvnet/ruqu and
  ruvnet/rvdna (both build standalone against published ruvector-* 2.2.3).
- Add them as git submodules at external/ruqu and external/rvdna; exclude
  those nested workspaces from the root workspace.
- Repoint examples/OSpipe and examples/rvf path deps to external/ruqu/crates/*.
- CI: drop the ruqu-quantum shard + ruqu --exclude lines (no longer workspace
  members), add `submodules: recursive` to checkout steps.
- cargo metadata + full dependency resolution verified green.

Refs #579

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

* fix(ci): exclude examples/OSpipe + examples/rvf from workspace (ADR-257)

These two example crates are the only workspace members that path-dep into the
external/ruqu submodule. As members, they forced EVERY workflow that resolves
the workspace (Build Native Modules, etc.) to need `submodules: recursive` —
those jobs checkout submodules:false and failed:
  failed to read external/ruqu/crates/ruqu-algorithms/Cargo.toml (os error 3)

Moving them to `exclude` makes the workspace resolve without the submodules
(verified: 0 members reference external/), so all Build jobs pass. The crates
remain buildable on demand (`cargo build -p ospipe` with submodules checked out).

Refs #579

---------

Co-authored-by: ruv <ruvnet@users.noreply.github.com>
2026-06-17 17:33:40 -04:00

73 lines
2.7 KiB
TOML

[package]
name = "ospipe"
version = "0.1.0"
edition = "2021"
rust-version = "1.77"
license = "MIT"
description = "OSpipe: RuVector-enhanced personal AI memory system integrating with Screenpipe"
authors = ["Ruvector Team"]
repository = "https://github.com/ruvnet/ruvector"
[dependencies]
# Serialization (cross-platform)
serde = { workspace = true }
serde_json = { workspace = true }
# Error handling and utilities (cross-platform)
thiserror = { workspace = true }
tracing = { workspace = true }
# Time and UUID (cross-platform)
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1.11", features = ["v4", "serde", "js"] }
# Math (cross-platform)
rand = { workspace = true }
# Native-only: RuVector ecosystem (path dependencies)
# These crates pull in platform-specific code (mmap, tokio, ring, etc.) that
# does not compile for wasm32-unknown-unknown.
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
ruvector-core = { version = "2.0", path = "../../crates/ruvector-core" }
ruvector-filter = { version = "2.0", path = "../../crates/ruvector-filter" }
ruvector-cluster = { version = "2.0", path = "../../crates/ruvector-cluster" }
ruvector-delta-core = { version = "0.1", path = "../../crates/ruvector-delta-core", features = ["serde"] }
ruvector-router-core = { version = "2.0", path = "../../crates/ruvector-router-core" }
ruvector-graph = { version = "2.0", path = "../../crates/ruvector-graph", default-features = false }
ruvector-gnn = { version = "2.0", path = "../../crates/ruvector-gnn", default-features = false }
cognitum-gate-kernel = { version = "0.1", path = "../../crates/cognitum-gate-kernel", default-features = true }
ruqu-algorithms = { version = "2.0.5", path = "../../external/ruqu/crates/ruqu-algorithms", default-features = false }
ruvector-attention = { version = "2.0", path = "../../crates/ruvector-attention", default-features = false }
# HTTP server dependencies (native only)
axum = { version = "0.7", features = ["json"] }
tower-http = { version = "0.6", features = ["cors"] }
tower = { version = "0.5" }
tokio = { workspace = true }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# WASM-only dependencies
[target.'cfg(target_arch = "wasm32")'.dependencies]
wasm-bindgen = { workspace = true }
js-sys = { workspace = true }
serde-wasm-bindgen = "0.6"
getrandom = { version = "0.2", features = ["js"] }
console_error_panic_hook = { version = "0.1", optional = true }
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
wasm-bindgen-test = "0.3"
[dev-dependencies]
tokio = { workspace = true }
uuid = { version = "1.11", features = ["v4"] }
[features]
default = ["console_error_panic_hook"]
[lib]
crate-type = ["cdylib", "rlib"]
[[bin]]
name = "ospipe-server"
path = "src/bin/ospipe-server.rs"
required-features = []