v0.2 slice 4: sync modes (+ doc site) #4
No reviewers
Labels
No labels
agent
blocked
agent
new
agent
review
agent
working
complexity
high
complexity
low
priority
high
priority
low
priority
medium
risk
high
risk
low
risk
medium
type
bug
type
chore
type
feature
type
security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
tfks/dropbear!4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "v02-slice4-sync-modes"
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?
Summary
Slice 4: sync modes — wires the
modefield inroot.tomlintoupload.Runvia three predicates oninternal/config.Mode(Downloads(),Uploads(),AllowsLocalDelete()). The four modes now have real behaviour:bidirectional— every phase runsupload-only— peer download + peer-tombstone application skippeddownload-only— manifest build / blob upload / own tombstone / head publish skippedarchive-only— downloads + records peer tombstones as cached, but never deletes local files (newArchivedTombstonesSkippedcounter;archived_tombstones_skippedJSON field)Renames
upload_only/download_only/archive_only→ hyphenated forms to match the project convention. The on-disk test-fixture filename keeps its underscore (fixture naming convention).Retires
Options.EnablePeersin favour ofMode.New ADR at
wiki/decisions/sync-modes.mdcapturing the phase-by-mode matrix and the archive-only no-delete property.Four new integration tests in
internal/upload/integration_test.gocovering each mode end-to-end against a shared fake bucket.Doc site bootstrap — second commit adds a Retype-based documentation site under
./doc, cherry-picked from~/src/tfks/logbus/doc. Six top-level orientation pages (index,why,trade-offs,audience,failure-modes,setup) plus a use-cases section seeded withsync-modes. Wired into the root Justfile viamod doc— recipes arejust doc::dev,just doc::build,just doc::deploy. The url indoc/retype.ymland the rsync target indoc/justfileare placeholders and likely need adjustment to whatever the real doc host is.Test plan
just validategreen (format / vet / lint / tests / secrets / vulns)TestIntegrationUploadOnlyIgnoresPeer,TestIntegrationDownloadOnlyConsumesButDoesNotPublish,TestIntegrationArchiveOnlyRetainsAfterPeerTombstone,TestIntegrationArchiveOnlyDoesNotPublishmodefield is present in the envelopedoc/use-cases/sync-modes.md🤖 Generated with Claude Code