tcfs v0.12.17
Quick Install
macOS (.pkg installer path; Finder/FileProvider remains experimental):
curl -LO https://github.com/Jesssullivan/tummycrypt/releases/download/v0.12.17/tcfs-0.12.17-macos-aarch64.pkg
sudo installer -pkg tcfs-0.12.17-macos-aarch64.pkg -target /Linux/macOS tarball convenience installer (CLI-first, not a release-proof surface):
curl -fsSL https://github.com/Jesssullivan/tummycrypt/releases/download/v0.12.17/install.sh | shHomebrew:
brew tap --custom-remote Jesssullivan/tummycrypt https://github.com/Jesssullivan/tummycrypt.git
git -C "$(brew --repo Jesssullivan/tummycrypt)" fetch origin homebrew-tap
git -C "$(brew --repo Jesssullivan/tummycrypt)" checkout homebrew-tap
brew install Jesssullivan/tummycrypt/tcfsContainer image (published by the parallel Build container image job; do not claim container support until that job is green):
podman pull --arch amd64 ghcr.io/jesssullivan/tcfsd:v0.12.17
podman pull --arch arm64 ghcr.io/jesssullivan/tcfsd:v0.12.17Ubuntu 24.04+ / Debian 13+:
curl -LO https://github.com/Jesssullivan/tummycrypt/releases/download/v0.12.17/tcfsd-0.12.17-amd64.deb
curl -LO https://github.com/Jesssullivan/tummycrypt/releases/download/v0.12.17/tcfs-0.12.17-amd64.deb
sudo dpkg -i tcfsd-0.12.17-amd64.deb tcfs-0.12.17-amd64.debRPM (Fedora/RHEL/Rocky, daemon-only today):
curl -LO https://github.com/Jesssullivan/tummycrypt/releases/download/v0.12.17/tcfsd-0.12.17-x86_64.rpm
sudo rpm -i tcfsd-0.12.17-x86_64.rpmVerify checksums
curl -LO https://github.com/Jesssullivan/tummycrypt/releases/download/v0.12.17/SHA256SUMS.txt
sha256sum -c SHA256SUMS.txtVerify signature (Sigstore Cosign)
curl -LO https://github.com/Jesssullivan/tummycrypt/releases/download/v0.12.17/SHA256SUMS.txt.sig
curl -LO https://github.com/Jesssullivan/tummycrypt/releases/download/v0.12.17/SHA256SUMS.txt.pem
cosign verify-blob \
--signature SHA256SUMS.txt.sig \
--certificate SHA256SUMS.txt.pem \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-identity-regexp 'github.com/Jesssullivan/tummycrypt' \
SHA256SUMS.txtmacOS artifacts
macOS CLI binaries are Developer ID signed when Apple credentials are configured.
FileProvider app notarization is attempted for Apple artifacts. Signed .pkg
release jobs require notarization, stapling, Gatekeeper install assessment, and
package policy smoke before the package artifact is uploaded.
Binaries included
| Binary | Purpose |
|---|---|
tcfs |
CLI: push, pull, sync-status, mount, unsync |
tcfsd |
Daemon: gRPC socket, Linux FUSE, Prometheus metrics |
tcfs-tui |
Terminal UI for interactive management |
tcfs-mcp |
MCP server for AI agent integration |
What's Changed
- TIN-1758 add FileProvider fetch diagnostics and smoke SDK fix by @Jesssullivan in #487
- feat(sync): wire git-bundle mode so peer rehydrate keeps working git history by @Jesssullivan in #481
- TIN-1758 add macOS rollout readiness probe by @Jesssullivan in #488
- DRAFT: TIN-1737 fail-closed guard for symlink restore ingress (agent-drafted, needs review) by @Jesssullivan in #491
- DRAFT: TIN-1417 B1 FileProvider device-aware EncryptionContext (agent-drafted, needs review) by @Jesssullivan in #492
- DRAFT: TIN-1417 B1 propagate per_device_wrapping + device_registry_path to FileProvider config (agent-drafted, needs review) by @Jesssullivan in #493
- DRAFT: TIN-1417 tri-state crypto.wrap_mode migration (agent-drafted, needs review) by @Jesssullivan in #496
- DRAFT: TIN-1417 migration doc — tri-state crypto.wrap_mode (supersedes #490) (agent-drafted, needs review) by @Jesssullivan in #497
- DRAFT: TIN-1417 B4 sign the device registry (Ed25519, master-derived) (agent-drafted, needs review) by @Jesssullivan in #499
- DRAFT: TIN-1417 inline per-device recipients + age secret into Keychain config (agent-drafted, needs review) by @Jesssullivan in #498
- fix(fileprovider): restore cargo-deny and grpc-only build gates by @Jesssullivan in #500
- DRAFT: TIN-1898 FP direct/uniffi backends read Dual/v2 via master-wrap fallback (agent-drafted, needs review) by @Jesssullivan in #502
- DRAFT docs(ops): roam-enroll ~/.claude/projects via scheduled reconcile unit (agent-drafted, needs review) by @Jesssullivan in #501
- DRAFT: TIN-1899 scoped per-device key rotation for forward secrecy (agent-drafted, needs review) by @Jesssullivan in #504
- TIN-1620: dev-env zero-diff fingerprint for the repo-roam ladder by @Jesssullivan in #507
- docs: define git roam daily-driver acceptance by @Jesssullivan in #505
- test: harden repo-roam fingerprint deny-set by @Jesssullivan in #509
- DRAFT: reconcile restore fidelity (mtime preserve + symlink opt-in) for zero-diff roam — TIN-1620 T13-Z (agent-drafted, needs review) by @Jesssullivan in #508
- fix(sync): scope path manifest metadata by @Jesssullivan in #510
- docs(README): repo-roam dev-env zero-diff user story + reproducible neo->honey proof by @Jesssullivan in #511
- cleanup(tcfs-sync): dead-code + DRY in the conflict/reconcile chokepoints (pre .git-aware-resolution) by @Jesssullivan in #512
- TIN-1758 harden macOS rollout readiness checks by @Jesssullivan in #489
- fix(deny): resolve RUSTSEC-2026-0189/0190 (anyhow bump + justified rmcp stdio-only ignore) by @Jesssullivan in #516
- FACET 6: .git-as-files conflict/corruption safety for G5/TIN-1620 by @Jesssullivan in #506
- fence: never roam worktree gitfiles or .git/worktrees/** (merge-gate for #513) by @Jesssullivan in #515
- release: cut v0.12.15 (carries #508/#510 fidelity + #504/#502 crypto reads) + version-truth README + commit repo-roam evidence by @Jesssullivan in #514
- evidence: repo-roam no-crutch zero-diff canary on v0.12.15 (mtime fidelity live) by @Jesssullivan in #519
- DRAFT: .git-aware fast-forward conflict resolution (closes bidirectional repo-roam R3; G5-git-5 FF half) — agent-drafted, needs review by @Jesssullivan in #513
- release: cut v0.12.16 (carries #513 FF conflict resolution) by @Jesssullivan in #522
- feat(keep-both PR-1): fence .git conflicts from per-file resolution +
tcfs conflictsread verb by @Jesssullivan in #526 - docs(ops): ghost-device revocation safety analysis + parked packet (ledger item 9, TIN-1417) by @Jesssullivan in #521
- docs: dated decision record for the 2026-07-01 operator session by @Jesssullivan in #518
- Harden git conflict fence paths and persistence by @Jesssullivan in #527
- feat(sync): harden git keep-both prerequisites by @Jesssullivan in #528
- feat(sync): add repo git keep-both resolver by @Jesssullivan in #529
- design: divergent .git keep-both (T10/T11 — the non-FF half of G5-git-5) by @Jesssullivan in #523
- docs: extract pending large-workdir evidence from #517 by @Jesssullivan in #530
- docs: reconcile TCFS frontier truth after PZM recovery by @Jesssullivan in #533
- evidence: bidirectional FF handoff canary LIVE — closes G5-git-5 FF half (TIN-1620) by @Jesssullivan in #532
- evidence: rescue roam-canary + large-workdir packets (clean, no crypto) by @Jesssullivan in #531
- tcfs: loser-side no-loss guard for git keep-both (TIN-2552) by @Jesssullivan in #534
- docs: record current TCFS workstream truth by @Jesssullivan in #535
- docs: divergent keep-both canary runbook + truth refresh (PR-4 merged) by @Jesssullivan in #536
- docs: refresh TCFS keep-both and PZM truth by @Jesssullivan in #537
- docs: remove residual TCFS frontier drift by @Jesssullivan in #538
- tcfs-sync: record Conflict for out-of-band-diverged refs (TIN-2584) by @Jesssullivan in #540
- tcfs-sync: flip entry.status to Conflict on plan-path conflict record (TIN-2652) by @Jesssullivan in #541
- evidence: divergent keep-both canary LIVE — closes G5-git-5 divergent half (G5-git-13 green) by @Jesssullivan in #542
- docs(AGENTS): shared-PR lane claims + durable-notes + precedence by @Jesssullivan in #539
- chore: evidence-tree hygiene — prune orphaned packets, gzip raw logs, archive stale ops docs by @Jesssullivan in #544
- ci(nix): build+publish full aarch64-darwin closure (incl. tcfsd) off-neo — fixes the neo local-compile trap by @Jesssullivan in #524
- fix(state): CLI/daemon state-path convergence + conflict-preserving boot purge (TIN-2657) by @Jesssullivan in #545
- release: cut v0.12.17 — first tagged release since v0.12.14 (TIN-2684) by @Jesssullivan in #546
Full Changelog: v0.12.14...v0.12.17