Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
7a63440
feat(verity-go): scaffold Go module and FlatBuffers generated code
imlk0 May 9, 2026
2552870
feat(verity-go): add FsVerityDescriptor and HashAlgorithm types
imlk0 May 9, 2026
91c75ad
feat(verity-go): add MerkleTree type
imlk0 May 9, 2026
2674c98
feat(verity-go): add FsVerityDigest streaming hasher
imlk0 May 9, 2026
125b9c9
feat(verity-go): add cross-validation tests for FsVerityDigest
imlk0 May 9, 2026
1580f66
refactor(verity-go): export DigestSize and BlockSize methods
imlk0 May 9, 2026
dcbd1a2
feat(verity-go): add metadata package with FlatBuffers serialization
imlk0 May 9, 2026
c464a0b
test(cryptpilot-verity): add cross-language deserialize tests
imlk0 May 9, 2026
2065ff6
chore: regenerate FlatBuffers Rust code from updated flatc
imlk0 May 9, 2026
bdb6694
ci: add Go test job and interop test targets
imlk0 May 9, 2026
6381f24
fix: address code review feedback for interop infrastructure
imlk0 May 12, 2026
fc9dfd6
refactor(test): simplify testing to two clean categories
imlk0 May 12, 2026
256db88
docs(verity-go): add bilingual README and fix CI fixture ordering
imlk0 May 12, 2026
23ca68c
docs(verity-go): rewrite README with serialize/verify sections
imlk0 May 12, 2026
60a82c8
refactor(cryptpilot-verity): clean up metadata module and remove cros…
imlk0 May 13, 2026
9e731f5
fix(ci): cd into verity-core before running make_testfiles.py
imlk0 May 13, 2026
38d8e88
ci: remove redundant interop-test job
imlk0 May 13, 2026
f78773d
ci: remove redundant interop-test Makefile targets
imlk0 May 13, 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
24 changes: 24 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,27 @@ jobs:

- name: Run test script from repo
run: make run-test

go-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: 'true'
- uses: actions/setup-go@v5
with:
go-version: '1.24'
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@1.85.0
- name: Verify interop fixture is up to date
run: |
(cd verity-core && python3 make_testfiles.py)
cargo run -p cryptpilot-verity -- format verity-core/testfiles --hash-output - --label env=prod --force
diff verity-core/testfiles/cryptpilot-verity.metadata.fb verity-go/metadata/testdata/rust.metadata.fb \
|| { echo "ERROR: interop fixture is stale. Run verity-go/metadata/gen_fixture.sh to regenerate."; exit 1; }
- name: Run Go tests
run: |
cd verity-go
go test -race -v ./...
- name: Check FlatBuffers schemas in sync
run: make check-fbs
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,9 @@ cryptpilot-verity/benchmark/verity_source_data/

# Superpowers design docs
docs/superpowers/

# Claude session artifacts
.claude/

# Generated test files
testfiles/
8 changes: 8 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# CLAUDE.md

## Rust-Go Sync

When modifying the Rust `cryptpilot-verity`, `verity-core`, or `verity-fuse` code, always evaluate whether the corresponding Go library (`verity-go/`) needs the same change. If the change affects core algorithms (hash computation, merkle tree, descriptor format) or metadata structures (FlatBuffers schema, serialization), apply the equivalent change to the Go code in the same commit.

## Excluded Paths

Never commit files under `docs/superpowers/` or `.claude/` to git. These are Claude session artifacts and should be kept local only. Add them to `.gitignore` if not already present.

## Git Commit Requirements

When creating or amending commits:
Expand Down
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -352,3 +352,27 @@ docker-build-verity:
.PHONY: docker-build-all
docker-build-all: docker-build

# Cross-language quality assurance targets

.PHONY: check-fbs
check-fbs:
@test -L verity-go/metadata/metadata.fbs || { echo "ERROR: metadata.fbs should be a symlink to Rust source"; exit 1; }
@test -L verity-go/metadata/metadata_hash.fbs || { echo "ERROR: metadata_hash.fbs should be a symlink to Rust source"; exit 1; }
@echo "FlatBuffers schemas are shared via symlink."

.PHONY: go-test
go-test:
cd verity-go && /usr/local/go/bin/go test -race -v ./... -skip TestInterop

.PHONY: check-all
check-all: clippy go-test check-fbs
cargo fmt --check

.PHONY: gen-interop-fixture
gen-interop-fixture:
@echo "=== Generating interop fixture ==="
cd verity-core && python3 make_testfiles.py
cargo run -p cryptpilot-verity -- format verity-core/testfiles --hash-output - --label env=prod --force
cp verity-core/testfiles/cryptpilot-verity.metadata.fb verity-go/metadata/testdata/rust.metadata.fb
@echo "Fixture updated: verity-go/metadata/testdata/rust.metadata.fb"

1 change: 1 addition & 0 deletions cryptpilot-verity/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ version.workspace = true

[dependencies]
anyhow = {workspace = true}
base64 = {workspace = true}
async-trait = {workspace = true}
async-walkdir = {workspace = true}
clap = {workspace = true}
Expand Down
Loading
Loading