Task 15: Coverage in CI, README, tag the milestone #15
Labels
No labels
data-integrity
engine
platform
procurement
remote
scaffold
ui
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Cordy/cairn-desktop#15
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Depends on Task 14. Closes out phase 1.
Files
.forgejo/workflows/ci.yml,README.mdSteps
vet and teststep:Optionally add
-race. Note: the race detector requires cgo on most platforms, which conflicts withCGO_ENABLED=0. If it fails on the Alpine runner, drop-raceand leave a comment in the workflow recording why, rather than silently removing it.Write the README: what this is, current phase, package layout, how to run tests, the DCO requirement (
git commit -s), and the licence. Keep it short —CLAUDE.mdholds the detail.Push and dispatch CI. Read the result from the runner pod:
Confirm coverage on
internal/syncis above 80%. If it is not, the gap is a missing test, not a reason to lower the bar — find the untested branch and cover it.Tag the milestone:
phase-1-enginemilestone.Acceptance criteria
go vetclean, all packages pass, coverage printed.internal/synccoverage > 80%.v0.1.0-engineexists onmain.What comes next
Plan 2 — Cairn integration: real WebDAV + tus
remote.Remote, real OS filesystemvfs.FSwith per-platform inode/file-index lookup,cmd/cairnsyncheadless CLI, integration tests against a livecairnd, and ETag-first change detection replacing the naive remote hashing from Task 12.Plan 3 — desktop application: Wails v3 shell, tray, setup wizard, conflict UI, auto-update via Sparkle/WinSparkle, MSI packaging, GPO/MDM policy overlay.
Neither is written yet. Do not start them from this milestone.
Done
Landed on
main, then a whole-branch final review's fix wave, all green in CI:2fed3eaci: print coverage; record why-raceis offa6503abdocs: README (status, layout, tests, DCO, licence)6a9a06bfix(sync): refuse paths resolving outside the sync roote7cef2dfix(sync): refuse non-canonical paths + their canonical twins699ec0afix(sync): re-check a copy before replacing/removing itf5e1583test(sync): property test asserts a fixpoint + matching stateWhat was built
CI prints per-package + total coverage;
-raceis dropped with a recorded reason (needs cgo,conflicts with
CGO_ENABLED=0). README covers scope, phase, layout, tests, DCO, licence. Thefinal review's fix wave then closed two data-loss paths (root-escape via a hostile path segment;
a destructive op run against a stale scan) and made the property test assert a fixpoint with matching state.
Tests
CI run 16 (http://192.168.10.245/Cordy/cairn-desktop/actions/runs/16), green on
f5e1583e4270c265e0385408a1f7fd0b3b9c0f09.internal/synccoverage — CI reported:total: (statements) 90.8%.Acceptance criteria
go vetclean, all packages pass, coverage printed. Met — run 16 above.internal/synccoverage > 80%. Met — CI total 90.8%, well above the bar.v0.1.0-engineexists onmain. Met — tagged atf5e1583(this range's HEAD).Rulings
R5 (owner-confirmed): tag + close #15/milestone deferred until after the whole-branch final
review and its fix wave landed with CI green — done here. R11: an issue closes only once its
commits are on
mainand that push's CI is green. R12: every commit isgit commit -swiththe
Co-Authored-By: Claude Opus 5trailer.Final review
Verdict: ready to tag, with fixes. Decide, R4 conflict naming, the rename collapse,
record-after-confirmation and missing-path handling all held under scrutiny;
internal/synccoverage independently reproduced at 91.2%. The fix wave above closed the two must-fix
findings and strengthened the property test. One process item — posting hand-off amendments on
#22/#23/#25/#26 for phase 2 — is tracked separately and does not block this tag.
Implemented and reviewed by Claude (subagent-driven), landed on main after review and green CI.