step 1: Etebase-compatible file-backed server, green against the Rust suite #1
Loading…
Reference in a new issue
No description provided.
Delete branch "step1-server"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Step 1 of SPEC §9: the Etebase-compatible server, file-backed, green against the Etebase Rust core's integration suite. Five commits, spec first:
SPEC: step-1 amendment— §5 on-disk format (mysync-data 1), §6 server API, §7 escape hatch. Its own commit, before any code. Decisions it pins (confirm at merge): email is not stored and returns empty; sharing endpoints answer empty lists ornot_supported; the sync token is one decimal counter per account; the test-reset route exists only behindserve --test-reset; tokens are<account>:<secret>.scripts/go-image(golang 1.26-bookworm by digest),scripts/ci-gates.sh(the one copy of the gates),ci.yml,release-on-merge.yml(publishes the binary and checksum, no deploy job),internal/msgpackpinned to the spec vectors.internal/store— §5: accounts, hashed token files, per-collection append-only log whoseseqis the sync token, chunk files, crash-remnant handling, idle eviction, caps.internal/api+serve+tests/conformance/run.sh— §6, with in-process Go tests over every endpoint.mysync dump+tests/fixture— the §4 allow-list gate over a data directory written by the real client (300 contacts, 500 events, 150 notes).Receipt (workstation, 2026-10-21,
./scripts/dev-check.sh):go vet,go test ./..., build,gofmt -lempty)c0c74b7) suite against a boxed server: 22 passed, 0 failed, 2 ignored upstream, 3 sharing tests skipped by name (SPEC §6.9)mysync dumpover the data directory after the suite and the fixture: allow-list OK, 8646 fields and files, nothing outside SPEC §4boxed --check: no leftoversNot in this PR:
mysync decrypt(SPEC §7). Etebase's KDF is libsodiumcrypto_kdf= BLAKE2b keyed with salt and personalization;golang.org/x/crypto/blake2bexposes neither. The module decision is fork A in~/forks/mysync-2026-10-21.md(recommended: copyx/crypto/blake2bintointernal/and add the two parameter-block fields, vectored against the Rust oracle). SPEC and CLAUDE.md say so.Not deployed, not merged. CI needs Actions enabled on this repo (grant still pending).
🤖 Generated with Claude Code
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.