fix(cli): unify teardown drain into a single bounded flush mode

Draft
KH
2mo ago
+441-97

Fixes #305.

--flush-outbox-once is now the sole bounded teardown mode in both relayfile-mount and the relayfile CLI, replacing the --flush-outbox-once/--push-local-once split. File watcher observations are durably journaled before debounce under .relay/outbox/local-pending so a flush ingests only journaled paths with scan-free state saves (O(pending), never O(tree)), then force-flushes persisted outbox records. Generation-checked clearing prevents an in-flight upload from erasing a newer event.

Test plan

  • go build ./...
  • go test ./cmd/relayfile-cli/... -count=1
  • go test ./cmd/relayfile-mount/... -count=1
  • go test ./internal/mountsync/... -count=1

Real watcher, mountsync, generation-race, and CLI end-to-end regression tests added.