This sprint follows the usage-reality proof packet. Its job is to move from separate lane proofs to one grounded "work from any machine" acceptance packet for TCFS, without overstating Finder, on-prem, or release-artifact readiness.
Storage-posture evidence base after the May 13 follow-through:
- repo:
Jesssullivan/tummycrypt - branch:
main - commit:
9428513be22f9b55f45cda3713881130b612e9c0 - open PRs: none
- open GitHub issues:
#280,#298,#309,#312,#327 - closed prerequisite:
#308
Planning-pass validation:
- GitHub API confirmed the same five open issues and no open PRs.
- Linear comments for
TIN-131,TIN-133, andTIN-720were checked against the repo docs and current issue boundaries. task docs:linkspassed: 261 links checked, 0 errors.task lazy:checkpassed after adding the fleet-pilot, same-fixture, reverse same-fixture, Linux-mounted reverse-read, delete/rename current-behavior, cross-host conflict, manual keep-both conflict recovery, independent sibling conflict progress, linux-xr shadow, FileProvider cleanup, and focused CLI unsync/resync gates.cargo test -p tcfs-cli cli_unsyncpassed: 6 tests.cargo test -p tcfs-cli cli_pullpassed: 2 tests.cargo test -p tcfs-vfs --test vfs_lifecycle_testpassed: 20 tests.cargo test -p tcfsd unsyncpassed: 1 test.docs/release/evidence/fleet-pilot-20260509T1919Z/was archived after a live run: seed to disposable SeaweedFS prefix, honey mounted traversal/hydration, and liveneo-honeySeaweedFS/NATS smoke.docs/release/evidence/fleet-pilot-extended-20260509T2152Z/was archived after a live run: seed to disposable SeaweedFS prefix, honey mounted traversal/hydration, honey Linux lifecycle companion for mounted write/readback, cache clear/rehydrate, recursive safe-unsync refusal/success, and liveneo-honeySeaweedFS/NATS smoke.task lazy:home-canary-linux-xr-shadownow creates the next real-project shadow lane. It inventories/Users/jess/git/linux-xrread-only, copies a full isolated shadow under~/TCFS Pilot/real-canaries/, writes disposable raw.git/hidden-dir TCFS config, and archives symlinks/special files as parity gates. Current live evidence is archived indocs/release/evidence/home-canary-linux-xr-shadow-20260511T040325Z/: the completed 7.7 GB push was reused, honey mountedfind -maxdepth 8and selected hydration passed, all 85 mounted symlink targets matched viareadlink, and the Linux lifecycle companion passed. This closes the scoped isolated-shadow project-tree parity bar only; it does not claim broad home takeover, production Finder, or production S3 posture.- PR
#367landed opt-in fresh-prefix file upload concurrency plus timeout/retry telemetry. The current storage-posture packetdocs/release/evidence/home-canary-linux-xr-storage-posture-20260514T021513Z/completes the 7.7 GB shadow withfile_upload_concurrency=8,chunk_upload_concurrency=8, no retry or error rows, and reduced raw Git.pack/.revobject counts; the same prefix now also has honey mounted traversal/hydration and all 85 mounted symlink target checks. The exact.tcfilename follow-updocs/release/evidence/home-canary-linux-xr-storage-posture-tc-extfix-20260514T202343Z/drops mounted S3NoSuchKeywarnings from 274 to 0. The lifecycle companiondocs/release/evidence/home-canary-linux-xr-storage-posture-lifecycle-20260514T213826Z/reuses that same prefix and reportsscoped-project-tree-parity-evidence-complete. Thelinux-xr-fastblocker then identified Git pack indexes as the next raw-Git object-count problem; source now routes.git/objects/pack/*.idxthrough the large sequential profile. Treat the next step as a candidate-package rerun plus generated-large-file, socket-accounting, and endpoint/TLS closure, not another client-concurrency bump. task lazy:macos-fileprovider-neo-cleanup-packetarchives neo FileProvider divergence before cleanup and can install the published.pkg; it requires strict production signing preflight before any production-adjacent Finder smoke is claimed.task lazy:neo-honey-unsynced-rehydrate-planstages the focused same-fixture QA row: neo pushes and unsyncs a file, honey mutates that file through a mounted clean-name view, then neo pulls the same relative path and verifies exact honey bytes plus stale.tccleanup. Live M3 evidence is archived indocs/release/evidence/neo-honey-unsynced-rehydrate-20260510T015644Z/; reverse physical-root M6 is archived below, while mounted reverse-read M4 and full conflict permutations remain open. M8 delete/rename current behavior is archived below, but clean stale-placeholder UX remains open.task lazy:neo-honey-reverse-unsynced-rehydrate-plannow stages the reverse same-fixture row: honey pulls and unsyncs a physical copy, neo mutates and pushes the same relative path, then honey pulls exact neo bytes and verifies stale.tccleanup. Live M6 evidence is archived indocs/release/evidence/neo-honey-reverse-unsynced-rehydrate-20260510T022858Z/; the earlier20260510T022657Zattempt is retained as stale-honey-binary blocker evidence.task lazy:honey-mounted-reverse-read-plannow stages and has green live Linux-equivalent mounted reverse-read evidence: honey pulls and unsyncs a physical copy, neo mutates and pushes the same path, then honey reads exact neo bytes through a mounted clean-name view while the physical root remains stub-only. Live evidence is archived indocs/release/evidence/honey-mounted-reverse-read-20260510T042203Z/. This is mounted VFS proof, not a neo/macOS or production Finder closure.task lazy:neo-mounted-reverse-read-plannow stages the M4 mounted reverse read row: honey publishes, neo pulls and unsyncs a physical copy, honey publishes newer bytes, then neo reads exact honey bytes through a mounted clean-name surface while the physical root remains stub-only. Live blocker evidence is archived indocs/release/evidence/neo-mounted-reverse-read-20260510T035826Z/: honey push and neo physical unsync passed, but neo/macOS NFS loopback mount failed withOperation not permitted, before mountedcat.task lazy:neo-honey-delete-rename-unsynced-plannow stages the M8 delete/rename row as current-behavior proof: honey is unsynced to physical.tcstubs, neo deletes one path and renames another, honey old-path pulls fail, and the renamed new path hydrates exact bytes. Live current-behavior evidence is archived indocs/release/evidence/neo-honey-delete-rename-unsynced-20260510T040456Z/. This is not a clean stale-stub cleanup claim; tombstone/placeholder semantics remain a product decision.task lazy:neo-honey-conflict-plannow stages and has green live cross-host conflict evidence: honey pulls and edits a file, neo pushes a divergent version, then honey attempts to push its local version. Live evidence is archived indocs/release/evidence/neo-honey-conflict-20260510T043741Z/; honey reportssync state: conflict, preserves local bytes, and remote pullback proves neo bytes were not overwritten.task lazy:neo-honey-conflict-keep-both-planextends that row with green live manual recovery evidence indocs/release/evidence/neo-honey-conflict-keep-both-20260510T045908Z/: after conflict detection, honey copies the losing bytes toProjects/shared/conflict-notes.conflict-honey.md, pulls the original path back to neo's bytes, pushes the sibling copy, and neo pulls both paths back with exact hash matches. This is not daemon-backedtcfs resolveUX.task lazy:neo-honey-conflict-sibling-planadds green live independent descendant evidence indocs/release/evidence/neo-honey-conflict-sibling-20260510T051328Z/: honey keeps one file in conflict while an edited sibling descendant pushes successfully and reportssync state: synced; pullbacks prove the conflicted file still has neo bytes while the sibling has honey bytes.task lazy:neo-honey-conflict-daemon-keep-both-plannow archives the daemon-backedtcfs resolve --strategy keep-bothblocker. The bounded packet indocs/release/evidence/neo-honey-conflict-daemon-keep-both-20260510T054611Z/reaches isolated honeytcfsd 0.12.12under auth bypass, but the CLI RPC times out after partial keep-both side effects. This is not clean resolution UX.- Production hosted macOS
.pkgattempt25613963424passed published package install/signing/installed-CLI/config gates, then failed before daemon and Finder because the public Cloudflare quick-tunnel endpoint no longer resolved from GitHub-hosted macOS. - May 17 neo production package packets now prove authenticated install of the
notarized workflow artifact, stale user-app quarantine after inventory,
strict installed preflight, package daemon storage
[ok], domain add, CloudStorage enumeration, and host-apprequestDownload. The current production Finder blocker is exact FileProvider read:catofshared/alpha-test.txtreturnsOperation timed out. - PR
#367merged on green. The May 13 merge push for9428513has Docs green in run25816193832; CI25816193953later failed only inwatcher_debounce_coalesces_rapid_writesafter Linux emitted multiple notify paths for one rapid-write burst. The follow-up fix narrows the test to the product contract, per-target-path coalescing, and the focused local test passes. Treat the next remote CI run as the closure gate for this doc/evidence refresh.
Short answer: TCFS is close to an isolated pilot for "browse a tree, hydrate
what I open, edit, unsync, and rehydrate elsewhere" on Linux, but it is not yet
ready to manage real ~/Documents or ~/git across arbitrary machines.
| Host/surface | Ready today | Not ready yet |
|---|---|---|
honey Linux mounted surface |
Strongest lane. The archived lifecycle proof shows clean-name traversal before hydration, exact cat hydration, mounted write/readback, cache clear, exact rehydrate, dirty recursive tcfs unsync refusal, clean recursive .tc conversion, and persisted sync state: not_synced. |
Treating packaged Linux install, systemd first-use, and every distro/service-manager path as continuously proven. |
neo Darwin workstation |
Useful release-adjacent control host and CLI participant for live backend sync. The fleet-pilot-extended-20260509T2152Z packet includes a green live neo-honey smoke from this host, and May 17 packets prove installed Developer ID package preflight plus domain/enumeration/requestDownload. |
Not a production Finder success yet. Exact FileProvider read currently times out, so hydration, evict/rehydrate, mutation, and conflict/status remain #309 gates. |
petting-zoo-mini FileProvider lab |
Strong non-production Apple lane. Testing-mode package/smoke proof covers enumerate, hydrate, evict, rehydrate, mutation, CLI conflict state, and exact content preservation. | Not production Developer ID clean-host Finder acceptance. Badges/progress remain observational until reliable assertions exist. |
| Live on-prem backend | Usable enough for live smoke via named endpoints, and source-owned migration commands are renderable. | Not source-owned/storage-mobile yet. Do not couple the parity sprint to live OpenTofu mutation unless #327 has a named downtime window and rollback owner. |
The isolated fleet-pilot evidence bundle now exists at
docs/release/evidence/fleet-pilot-extended-20260509T2152Z/. It uses a
disposable remote prefix and pilot directories, not real ~/Documents or
~/git. Do not make real home subtrees the default sync roots until the staged
rollout gates below are archived.
Use these names consistently in docs, issues, and release notes:
| Name | Meaning |
|---|---|
tcfs |
The product and protocol surface: CLI, daemon, sync state, VFS, fleet sync, storage, encryption, mounts, and operator tooling. |
tcfs binary |
User CLI for status, push, pull, mount, unsync, and device commands. |
tcfsd |
Daemon process for gRPC, Linux FUSE/NFS mount support, NATS fleet sync, metrics, and FileProvider-facing services. |
TCFSProvider.app |
macOS host app. It provisions shared config, registers the FileProvider domain, and can request download/eviction. It is not the whole TCFS product and not the daemon. |
TCFSFileProvider.appex |
macOS/iOS FileProvider extension process used by Finder/CloudStorage or Files.app for enumerate, hydrate, and mutation hooks. |
| Linux mounted view | Clean filenames from remote index plus local cache hydration. Users should not see .tc names here. |
| Physical sync root | Real files plus .tc/.tcf stubs for dehydrated content. This is the CLI/offline representation, not the Finder representation. |
| macOS CloudStorage root | Finder placeholders/APFS dataless files managed by FileProvider. Raw .tc stubs are not the intended Finder UX. |
This distinction matters for the home-directory goal: a Linux FUSE mount, physical sync-root stubs, and macOS FileProvider placeholders are three product representations of the same remote tree, not three unrelated products.
Produce one repo-archived parity packet that proves an isolated project tree can
move between neo, honey, and the Apple lab without forcing full hydration.
Minimum acceptable packet:
- Seed an isolated tree from one host into a disposable remote prefix.
- Browse the tree on another host without hydrating all file bodies.
- Hydrate exact selected content on demand.
- Edit through the mounted or provider-backed view and prove exact remote pullback.
- Dehydrate/unsync clean descendants and refuse dirty descendants unless
--forceis used. - Rehydrate exact content after cache clear or placeholder eviction.
- Record CLI/daemon/FileProvider status where each surface can currently report it.
- Archive transcript, config, remote prefix, host names, run IDs, and redacted
metadata under
docs/release/evidence/.
| Packet | Tracker | Work | Acceptance |
|---|---|---|---|
| A. Fleet pilot packet | TIN-133, #309 adjacent |
Create a cross-host evidence lane from isolated neo or honey pilot roots, not real home directories. Reuse task lazy:fleet-pilot-plan, the helper's --run-linux-lifecycle companion, task lazy:linux-lifecycle-demo, just neo-honey-smoke, and lab host acceptance docs. |
One archived bundle shows traversal, hydrate, edit, unsync, rehydrate, and exact content across at least neo and honey; PZM can be included as Apple lab proof but does not replace production Finder. |
| A1. Same-fixture unsynced rehydrate | TIN-133, #309 adjacent |
Run task lazy:neo-honey-unsynced-rehydrate-plan with a disposable remote prefix. This is the QA permutation where one machine has removed the local copy and another machine mutates the same file. |
One archived bundle shows neo tcfs unsync, honey mounted traversal/mutation, neo tcfs pull, exact honey content, sync-status, and no stale adjacent .tc stub. |
| A1b. Reverse same-fixture unsynced rehydrate | TIN-133, #309 adjacent |
Run task lazy:neo-honey-reverse-unsynced-rehydrate-plan with a disposable remote prefix. This mirrors A1 by putting honey in the unsynced state before neo mutates and pushes. |
Green in docs/release/evidence/neo-honey-reverse-unsynced-rehydrate-20260510T022858Z/: honey tcfs pull, honey tcfs unsync, neo mutation/push, honey rehydrate/pull, exact neo content, sync-status, and no stale adjacent .tc stub. Stale-binary blocker 20260510T022657Z is retained. |
| A1b-M4. Mounted reverse read | TIN-133, #309 adjacent |
Run task lazy:neo-mounted-reverse-read-plan for neo/macOS, or task lazy:honey-mounted-reverse-read-plan for the Linux-equivalent mounted VFS row, with a disposable remote prefix. This is the QA permutation where one peer has only a physical .tc stub, another peer publishes newer bytes, and the first peer reads latest content through the mounted clean-name surface. |
Linux-equivalent green in docs/release/evidence/honey-mounted-reverse-read-20260510T042203Z/: honey mounted ls/find/cat returned exact neo bytes while the physical root stayed stub-only. Neo/macOS remains blocked in docs/release/evidence/neo-mounted-reverse-read-20260510T035826Z/ because NFS loopback mount failed with Operation not permitted. |
| A1c. Delete/rename while peer-unsynced | TIN-133, #309 adjacent |
Run task lazy:neo-honey-delete-rename-unsynced-plan with a disposable remote prefix. This records current behavior when one peer has only physical .tc stubs and another peer deletes or renames those paths. |
Green for current behavior in docs/release/evidence/neo-honey-delete-rename-unsynced-20260510T040456Z/: old-path pulls fail deterministically, renamed new path hydrates exact bytes, and stale old stub state is explicitly recorded as present. Helper coverage now records repeated old-path pull failure, repeated new-path hydrate success, and stale-stub sync-status in future packets. Do not claim clean delete/rename UX until tombstone or stale-stub cleanup semantics are accepted. |
| A1d. Cross-host conflict | TIN-133, #309 adjacent |
Run task lazy:neo-honey-conflict-plan with a disposable remote prefix, task lazy:neo-honey-conflict-keep-both-plan for manual recovery, task lazy:neo-honey-conflict-sibling-plan for sibling progress while one path remains conflicted, and task lazy:neo-honey-conflict-daemon-keep-both-plan for the daemon-backed resolution lane. This records current behavior when honey has a hydrated edited copy and neo pushes a divergent version before honey attempts to push. |
Detection is green in docs/release/evidence/neo-honey-conflict-20260510T043741Z/: honey push reports CONFLICT, skips upload, sync-status reports conflict, honey local bytes are preserved, and remote pullback still has neo bytes. Manual keep-both recovery is green in docs/release/evidence/neo-honey-conflict-keep-both-20260510T045908Z/: original path remains neo bytes and sibling conflict copy preserves honey bytes. Independent sibling progress is green in docs/release/evidence/neo-honey-conflict-sibling-20260510T051328Z/: the conflicted file stays conflict, the sibling reaches synced, and remote pullbacks match expected bytes. Daemon keep-both is blocked in docs/release/evidence/neo-honey-conflict-daemon-keep-both-20260510T054611Z/: the request reaches tcfsd but the CLI times out after partial side effects. Finder/provider conflict visibility remains open. |
| A2. Real project-tree shadow | TIN-133, #309 adjacent |
Run task lazy:home-canary-linux-xr-shadow against /Users/jess/git/linux-xr with a disposable remote prefix. Do not mutate the live repo; do not broaden to ~/Documents, ~/.local, dotfiles, or all ~/git. |
Green scoped isolated-shadow parity in docs/release/evidence/home-canary-linux-xr-shadow-20260511T040325Z/: source/shadow inventories, raw .git/hidden-dir/symlink config, completed 7.7 GB push, honey mounted bounded traversal/hydration, all 85 symlink targets verified through mounted readlink, and Linux lifecycle companion. This remains project-tree functional evidence only, not production Finder or production S3 posture. |
| A2a. Generic git repo canary | TIN-133, #309 adjacent |
Run task lazy:git-repo-canary against one clean git worktree, defaulting to ~/git/oauth-mux. The helper refuses dirty sources unless explicitly allowed, snapshots into ~/TCFS Pilot/real-canaries/, and writes a packet that says no live repo, Finder, broad ~/git, or home takeover is claimed. Use task lazy:git-repo-restore-proof against a completed packet before any live repo move. |
Small-repo parity is green for source-built binaries in docs/release/evidence/git-repo-canary-oauth-mux-sourcebin-fresh-20260515T014640Z/ and for explicit current Nix flake package binaries in docs/release/evidence/git-repo-canary-oauth-mux-nixpkg-20260515T133843Z/: fresh-prefix push, 0 skipped symlinks, honey mounted traversal/hydration, 9 mounted symlink target checks, and Linux lifecycle companion. The original Nix restore timeout remains archived at docs/release/evidence/git-repo-canary-oauth-mux-nixpkg-20260515T133843Z/restore-proof/. Source-built restore-proof-source-fix-empty-dirs-20260515T183805Z/ and rebuilt Nix-package restore-proof-nixpkg-current-empty-dirs-20260515T200359Z/ both prove fresh-tree restore for 4,601 regular files, 9 symlinks, synced state for all 4,610 restored paths, and all 12 empty dirs with --require-empty-dirs. ~/git/linux-xr-fast is now green for source-built shadow push, honey traversal/hydration, and Linux lifecycle in docs/release/evidence/git-repo-canary-linux-xr-fast-sourcefix-index-20260516T045054Z/, but its fresh-tree restore remains blocked: 2,036 of 2,038 regular files restored and all 6 empty dirs matched, while two multi-GB raw Git pack files failed after transient chunk read errors. Homebrew remains blocked because installed Homebrew tcfs 0.12.12 skips symlinks. Next proof should rerun ~/git/linux-xr-fast with a selected candidate package/binary, enough local free space for full restore, and hardened download retry posture; package-backed restore/rollback remains required before any live repo move. |
| B. Safe-unsync hardening | TIN-133, code |
Keep recursive tcfs unsync <directory> behavior product-grade: clean descendants convert, dirty descendants refuse, --force preserves tracked remote metadata, state flips to NotSynced before destructive file/stub operations. |
cargo test -p tcfs-cli cli_unsync, tcfs-vfs lifecycle tests, daemon RPC unsync tests, and host transcript stay green. |
| C. Production Finder lane | TIN-133, #309 |
Select a true production Developer ID clean-host executor and run the published .pkg path through app install, host launch, domain add, CloudStorage enumeration, hydrate, mutate/conflict if reliable, and log capture. On neo, archive task lazy:macos-fileprovider-neo-cleanup-packet first and use the published .pkg, not stale ~/Applications or build-tree apps. |
#309 gets one tagged production clean-host run. PZM testing-mode remains regression evidence only. TCFS_REQUIRE_PRODUCTION_SIGNING=1 task lazy:macos-finder-preflight must be green before any production-adjacent local Finder smoke is described as such. |
| D. Distribution proof closure | TIN-131, #280 |
Keep v0.12.12 proof boundaries explicit and finish next-tag native linux/arm64/v8 GHCR proof. Tie macOS .pkg closure to Packet C. |
#280 can narrow to only future policy decisions after production macOS and native arm64 container proof land. |
| E. On-prem cutover | TIN-720, #327, #298 |
Keep the parity sprint on disposable prefixes unless a maintenance window is named. If scheduled, run preflight, inventory, plan, retained-PVC migration, candidate workload/service cutover, smoke, and rollback proof. | #327 only moves with live plan/apply evidence, assigned rollback owner, and post-cut smoke owner. #298 remains blocked until then. |
| F. Remote branch hygiene | #312 |
Decide whether to approve or defer the 44-branch Tranche A tinyland prune proposal. | No deletion happens without explicit operator approval. Decision is recorded either way. |
| G. iOS posture | Apple docs | Keep iOS as compile/typecheck proof-of-concept unless a real Files.app device lane is scheduled. | CI keeps simulator typecheck green; no public write/FileProvider device claim is added. |
Do not jump straight to real ~/Documents or ~/git. Use staged gates:
- Disposable remote prefix plus tiny pilot tree.
- Isolated
~/TCFS Pilot/Documentsand~/TCFS Pilot/gitroots. - One real but expendable project repo, with
.gitbehavior and exclusions explicitly checked. - Several real project repos, with conflict/status and unsync behavior archived on at least two machines.
- Opt-in subtrees under
~/Documentsor~/git. - Only then consider broader default management.
Each gate needs an exit transcript and a rollback story. For project repos,
include at least .git, hidden files, symlinks if supported, large binaries,
permissions, ignored/build directories, and network-interruption behavior.
Run these before claiming a sprint packet is green.
Local and CI:
task lazy:check
cargo test -p tcfs-cli cli_unsync
cargo test -p tcfs-cli cli_pull_after_unsync_hydrates_latest_remote_and_removes_stub
cargo test -p tcfs-cli cli_pull_adjacent_stub_cleanup_ignores_non_tcfs_files
cargo test -p tcfs-vfs --test vfs_lifecycle_test
cargo test -p tcfsd unsync
task docs:linksHost evidence:
task lazy:git-repo-canary
task lazy:home-canary-linux-xr-shadow
task lazy:fleet-pilot-plan
TCFS_FLEET_PILOT_RUN_LINUX_LIFECYCLE=1 task lazy:fleet-pilot-plan
PUSH=1 RUN_HONEY=1 task lazy:neo-honey-unsynced-rehydrate-plan
PUSH=1 RUN_HONEY=1 task lazy:neo-honey-reverse-unsynced-rehydrate-plan
PUSH=1 RUN_HONEY=1 HONEY_START_MOUNT=1 task lazy:honey-mounted-reverse-read-plan
PUSH=1 RUN_HONEY=1 NEO_START_MOUNT=1 NEO_NFS=1 task lazy:neo-mounted-reverse-read-plan
PUSH=1 RUN_HONEY=1 task lazy:neo-honey-delete-rename-unsynced-plan
PUSH=1 RUN_HONEY=1 task lazy:neo-honey-conflict-plan
PUSH=1 RUN_HONEY=1 HONEY_RECOVER_KEEP_BOTH=1 task lazy:neo-honey-conflict-keep-both-plan
PUSH=1 RUN_HONEY=1 HONEY_INDEPENDENT_SIBLING=1 task lazy:neo-honey-conflict-sibling-plan
PUSH=1 RUN_HONEY=1 HONEY_TCFSD_BIN=/path/to/current/tcfsd task lazy:neo-honey-conflict-daemon-keep-both-plan
task lazy:linux-lifecycle-demo
just neo-honey-smokeApple lab evidence:
scripts/macos-fileprovider-testing-mode-dispatch.sh \
--exercise-conflict-statusProduction Apple evidence:
- run the release
.pkgon a true clean Developer ID macOS host - capture package install, signing/notarization checks, host policy probe, FileProvider domain add, CloudStorage enumeration, exact hydrate, and at least one desktop follow-on such as mutation or conflict/status if reliable
Distribution evidence:
- Homebrew current tag fresh install and upgrade
- Nix tagged profile install
- Ubuntu 24.04+ and Debian 13+
.debfresh/upgrade proof - Fedora 42 RPM daemon-only proof unless CLI support changes
- GHCR amd64 and native
linux/arm64/v8pull/version/startup proof after the next multi-arch tag
Kubernetes/on-prem evidence, only if Packet E is scheduled:
TCFS_CONTEXT=honey just onprem-preflightTCFS_CONTEXT=honey just onprem-data-inventoryjust onprem-tofu-validate- rendered migration plan archived before any mutation
- post-cut
just neo-honey-smoke
| Tracker | Next update should say |
|---|---|
#280 / TIN-131 |
Current release proof is Homebrew/Nix/Linux packages/amd64 container; remaining blockers are production macOS .pkg clean-host Finder and native arm64 container proof on a future tag. No release artifact cut unless explicitly scheduled. |
#309 / TIN-133 |
Extended fleet packet docs/release/evidence/fleet-pilot-extended-20260509T2152Z/, same-fixture packet docs/release/evidence/neo-honey-unsynced-rehydrate-20260510T015644Z/, reverse same-fixture packet docs/release/evidence/neo-honey-reverse-unsynced-rehydrate-20260510T022858Z/, Linux-mounted reverse-read packet docs/release/evidence/honey-mounted-reverse-read-20260510T042203Z/, M8 current-behavior packet docs/release/evidence/neo-honey-delete-rename-unsynced-20260510T040456Z/, cross-host conflict packet docs/release/evidence/neo-honey-conflict-20260510T043741Z/, manual keep-both recovery packet docs/release/evidence/neo-honey-conflict-keep-both-20260510T045908Z/, independent sibling progress packet docs/release/evidence/neo-honey-conflict-sibling-20260510T051328Z/, and scoped linux-xr isolated-shadow parity packet docs/release/evidence/home-canary-linux-xr-shadow-20260511T040325Z/ are archived. Link linux-xr as scoped project-tree functional evidence only: it proves the isolated shadow, raw .git/hidden dirs, all 85 mounted symlink targets, and Linux lifecycle, but not broad home takeover, production Finder, or production S3 posture. Link neo cleanup packets as FileProvider divergence/blocker evidence, not production Finder readiness. Neo/macOS M4 mounted reverse read still has blocker evidence at mount permission. M8 still needs tombstone/stale-stub semantics before a clean user-facing delete/rename claim. Conflict detection, manual recovery, and independent sibling progress have evidence; daemon-backed resolution UX remains open. Linux and PZM lab evidence are strong, but production Developer ID clean-host Finder remains open. |
#312 |
Record approve/defer for Tranche A branch pruning. Do not delete tinyland branches without explicit approval. |
#327 / TIN-720 |
Record whether a downtime window exists. If not, state that parity proof uses disposable prefixes and no live OpenTofu cutover occurred. |
#298 |
Keep blocked on #327 unless an operator makes a separate Civo retirement decision. |
#308 |
No new work; already closed. |
The sprint is done when all of these are true:
- An archived fleet-parity evidence directory exists under
docs/release/evidence/. - The bundle proves clean traversal, exact hydrate, edit, unsync/dehydrate, exact rehydrate, and status/conflict visibility at the strongest available surface.
- Production Finder remains accurately labeled: either green via Developer ID
clean-host proof, or still open in
#309. - Distribution state remains accurate in
#280andTIN-131. - On-prem work remains explicitly deferred or has named downtime, rollback, and post-cut smoke evidence.
- Docs link to the evidence bundle from product reality, lazy hydration, workstream reality, and the relevant tracker comments.
- No automatic takeover of real
~/Documentsor~/git. - No production Finder claim from PZM testing-mode evidence.
- No live OpenTofu cutover without a named window and rollback owner.
- No tinyland branch deletion without explicit operator approval.
- No new release artifact unless release work is explicitly scheduled.