Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
2bbaaf0
chore: bump lancedb-go fork to v0.2.2 for S3 storage options
nvandessel Apr 15, 2026
d7ac0ec
feat(vault): add VaultConfig types and validation (T1)
nvandessel Apr 15, 2026
f016bdb
feat(vault): add sync state tracking (T2)
nvandessel Apr 15, 2026
bb401c3
feat(vault): add S3 file client with MinIO SDK (T3)
nvandessel Apr 15, 2026
1193aa9
feat(vault): add age encryption layer (T5b)
nvandessel Apr 15, 2026
314394c
feat(vault): add row-level vector sync with CGO build tags (T4)
nvandessel Apr 15, 2026
2e2afbd
feat(vault): add graph data sync with V2 backup + corrections (T5)
nvandessel Apr 15, 2026
55d2076
feat(vault): add core VaultService orchestrator (T6)
nvandessel Apr 15, 2026
224b617
feat(vault): add CLI commands for vault sync (T7)
nvandessel Apr 15, 2026
f883aff
test(vault): add integration tests and docker-compose for MinIO (T9)
nvandessel Apr 15, 2026
3f5a132
docs: add vault sync commands to CLI reference (T10)
nvandessel Apr 15, 2026
e09e490
style: apply go fmt formatting
nvandessel Apr 15, 2026
741f8dd
fix: address QA review feedback on vault sync PR
nvandessel Apr 15, 2026
6b0c7ef
fix: content-based correction dedup, state warnings, secret-key docs
nvandessel Apr 15, 2026
3000580
fix: dryRunPull now respects --from flag
nvandessel Apr 15, 2026
b571415
fix(vault): use full table scan instead of ANN search for sync enumer…
nvandessel Apr 15, 2026
353b10e
fix(vault): use JSON Select for full table scan instead of Arrow IPC
nvandessel Apr 15, 2026
6f859b0
fix(ci): add sproink native library build to test-release workflow
nvandessel Apr 15, 2026
77bb37a
fix(ci): include sproink in static link group for test-release CGO build
nvandessel Apr 15, 2026
ec5dc81
fix(ci): remove duplicate sproink link flags from test-release CGO build
nvandessel Apr 15, 2026
c270ce2
fix(ci): remove -Bstatic/-Bdynamic from test-release CGO_LDFLAGS
nvandessel Apr 15, 2026
9432278
fix(ci): add sproink to explicit CGO_LDFLAGS in test-release
nvandessel Apr 15, 2026
c14fd59
fix(vault): address 5 P1 review issues from PR #278
nvandessel Apr 16, 2026
b713522
fix(vault): require endpoint in validation, save config after connect…
nvandessel Apr 16, 2026
7bb65dc
fix(vault): add endpoint to encryption validation test fixtures
nvandessel Apr 16, 2026
3940367
fix(ci): enable sproink FFI feature flag and always rebuild library
nvandessel Apr 16, 2026
eeaa9fb
fix(ci): restore static lancedb_go linking, fix nm on macOS
nvandessel Apr 16, 2026
7619f08
fix(ci): replace nm symbol verification with size check
nvandessel Apr 16, 2026
9c5acbe
fix(ci): allow multiple definition for dual Rust staticlib linking
nvandessel Apr 16, 2026
3a39c85
fix(ci): drop -Bstatic and --allow-multiple-definition from test-release
nvandessel Apr 16, 2026
9b74d27
revert(ci): restore CI workflows to main state
nvandessel Apr 17, 2026
0d97ad8
ci: retrigger CI after sproink staticlib fix
nvandessel Apr 23, 2026
e57d653
fix(sproink): adopt new FFI contract and update CI build
nvandessel Apr 29, 2026
bb551f7
fix(vault): dryRunPull now respects scope and root
nvandessel May 3, 2026
215d4be
fix(vault): extract scope string literals to constants
nvandessel May 3, 2026
40b5042
fix(lint): exclude consolidation from goconst checks
nvandessel May 3, 2026
1463e95
fix(lint): disable goconst linter
nvandessel May 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -196,14 +196,19 @@ jobs:
else
BUILT_LIB="sproink-build/target/release/libsproink.a"
fi
# Build only if cached artifact is absent
# Build only if cached artifact is absent.
#
# sproink's Cargo.toml narrows [lib] crate-type to ["lib"], so plain
# `cargo build` produces only an rlib. Use `cargo rustc` to explicitly
# request a staticlib, and enable the `ffi` feature to gate-in the
# `pub mod ffi` module that exposes the extern "C" symbols.
if [ ! -f "$BUILT_LIB" ]; then
cd sproink-build
if [ "$RUNNER_OS" = "Windows" ]; then
rustup target add x86_64-pc-windows-gnu
cargo build --release --target x86_64-pc-windows-gnu
cargo rustc --release --lib --crate-type staticlib --features ffi --target x86_64-pc-windows-gnu
else
cargo build --release
cargo rustc --release --lib --crate-type staticlib --features ffi
fi
cd ..
fi
Expand Down
39 changes: 38 additions & 1 deletion .github/workflows/test-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,12 +98,49 @@ jobs:
rm -f lancedb-go-native-binaries.tar.gz
fi

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable

- name: Cache sproink build
uses: actions/cache@v5
with:
path: sproink-build/target
key: sproink-test-release-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('third_party/sproink/include/sproink.h') }}

- name: Build sproink native library
shell: bash
run: |
# Clone source if missing (cache only restores target/, not source).
if [ ! -f "sproink-build/Cargo.toml" ]; then
git clone --depth 1 https://github.com/nvandessel/sproink.git sproink-src-tmp
if [ -d "sproink-build/target" ]; then
mv sproink-build/target sproink-src-tmp/target
fi
rm -rf sproink-build
mv sproink-src-tmp sproink-build
fi
BUILT_LIB="sproink-build/target/release/libsproink.a"
# sproink's Cargo.toml narrows [lib] crate-type to ["lib"]; use cargo
# rustc to explicitly request a staticlib and enable the `ffi` feature
# that gates `pub mod ffi`.
if [ ! -f "$BUILT_LIB" ]; then
cd sproink-build
cargo rustc --release --lib --crate-type staticlib --features ffi
cd ..
fi
mkdir -p third_party/sproink/lib/linux_amd64
cp "$BUILT_LIB" third_party/sproink/lib/linux_amd64/libsproink.a

- name: Build with CGO + LanceDB
run: |
PLATFORM="$(go env GOOS)_$(go env GOARCH)"
# liblancedb_go.a and libsproink.a are both Rust staticlibs and each
# bundle their own copy of libstd. --allow-multiple-definition lets
# the linker keep the first definition for the duplicate libstd
# symbols (rust_eh_personality, etc.).
CGO_ENABLED=1 \
CGO_CFLAGS="-I$(pwd)/include" \
CGO_LDFLAGS="-L$(pwd)/lib/${PLATFORM} -Wl,-Bstatic -llancedb_go -Wl,-Bdynamic -lm -ldl -lstdc++ -lpthread" \
CGO_LDFLAGS="-L$(pwd)/lib/${PLATFORM} -Wl,-Bstatic -llancedb_go -Wl,-Bdynamic -lm -ldl -lstdc++ -lpthread -Wl,--allow-multiple-definition" \
go build -ldflags "-s -w -X main.version=test-cgo" \
-o floop-cgo ./cmd/floop

Expand Down
4 changes: 0 additions & 4 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ linters:
- unused
- gosec
- misspell
- goconst
disable:
- lll
- gocyclo
Expand All @@ -36,15 +35,12 @@ linters:
- G302 # File permissions — tracked in w03.6
- G304 # File path from variable — we have pathutil validation
- G306 # WriteFile permissions — tracked in w03.6
goconst:
min-occurrences: 10
exclusions:
rules:
- path: _test\.go
linters:
- errcheck
- gosec
- goconst
# Ignore errcheck on defer Close() — standard Go pattern
- text: "Error return value of .*.Close.*is not checked"
linters:
Expand Down
Loading
Loading