v0.1.0-rc.1
Pre-release
Pre-release
Changelog
- 9290890: Bootstrap DevStrap Go workspace (Reederey reederey@Reedereys-Mac-Studio.local)
- 5a4b217: Bump actions/checkout from 5.0.1 to 7.0.0 (#5) (dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>)
- ea9e8ca: Bump github.com/fsnotify/fsnotify from 1.9.0 to 1.10.1 (#9) (dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>)
- c3c281f: Bump golang.org/x/text from 0.36.0 to 0.38.0 (#6) (dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>)
- 27502f6: Clarify agent branch workflow (Reederey reederey@Reedereys-Mac-Studio.local)
- e982c05: Implement second-pass audit recommendations (P0 + medium severity) (#4) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- fd5b7e7: Initial commit (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 80c1e5a: chore(deps): Bump golangci/golangci-lint-action (#7) (dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>)
- 66f40b2: chore(deps): Bump modernc.org/sqlite from 1.50.1 to 1.53.0 (#8) (dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>)
- 76b98d6: chore(deps): Bump the github-actions group with 2 updates (#14) (dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>)
- 3e54bc0: docs(agents): document the live-R2 dogfood credential convention (#84) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- e535024: docs(agents): rewrite AGENTS.md into concise branch/worktree/PR guidance (#42) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 835dcb3: docs(audit): sixth-pass design & implementation audit (post-PR-#25) + spec recommendations (#28) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 4366cce: docs(audits): Pass-6 status reconciliation — 30 SHIPPED markers, status banner, spec count refresh (#86) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 8927bd5: docs(claude): commit the model-selection policy + Pass 6 field notes (#43) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 36e970d: docs(claude): report-only nudge rule + pre-commit re-diff check for delegated worktrees (#53) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- d0b696a: docs(cli): document the shipped r2:// hub path; stop steering to the file hub (P6-CLI-05) (#47) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 577af16: docs(hub): record the live git-carrier GitHub dogfood run (AD-1, spec/19 F.2) (#98) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 158934a: docs(quickstart): make the git carrier the default hub; demote r2:// to scale-up (AD-1 swap) (#99) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 8ffad5f: docs(spec): accuracy sweep — flip two shipped pass-6 sections, fix the command list, drop a phantom flag (#52) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- d3d1e8a: docs(spec): pass-6 verification + architecture-direction revision of the full spec corpus (#29) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- a6d30d8: feat(agent): gate agent pr on run status + reconcile crash-stuck running rows (P6-GIT-06) (#93) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- d9a8312: feat(cli): ssh-add remedy hint on auth-class exits (#104) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 756992b: feat(db): full backup/restore for the whole workspace secret set (P6-DATA-04) (#83) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- ed6313f: feat(devices): device-key fingerprint + compare-and-confirm on approve (P4-SEC-04 part 1) (#54) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 5541df5: feat(devices): joiner-side founder pinning before first sync (P4-SEC-04 joiner half) (#49) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 9940810: feat(devices): one-paste pairing codes (P4-SEC-04 part 2, closes the residual) (#57) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 5b5728d: feat(dist): Homebrew cask + curl|sh installer + completions packaging (AD-8 / P4-PROD-05) (#105) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- ba83d82: feat(doctor): workspace-id mismatch detection + hub prefix-isolation tests (P4-SEC-07) (#50) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 6e6c8db: feat(hub): bounded errgroup fan-out for R2Hub.Push and referenced-blob pushes (P6-HUB-03) (#88) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 36c0661: feat(hub): devstrap hub init writes the carrier hub into config (AD-1 slice) (#101) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 5cc82fc: feat(hub): hub compact — snapshot production, floor advance, cold-event deletion (P4-HUB-11) (#74) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 4937691: feat(hub): keychain/op:// S3 credential custody + auth error hint (P6-HUB-02) (#45) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- bd3aeed: feat(hub): migrate-events + advisory sweep lock + dedup-PutBlob freshness (P4-HUB-12 residual) (#76) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- d4daa21: feat(hub): wire the live R2/S3 S3 adapter behind hubFromOptions (P5-HUB-01) (#24) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 5711a57: feat(hub): zero-infrastructure private-git-repo carrier (AD-1 first slice) (#96) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 81e0754: feat(init): adopt the founder's workspace id (--workspace-id) (P4-SEC-07) (#48) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 24dccf8: feat(keys): periodic WCK rotation — manual command + age-triggered auto-rotate (P4-SEC-07 remainder) (#56) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- a8fa2ba: feat(run-loop): implement the advertised idempotent scan stage (P6-XP-03) (#82) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 1a13271: feat(scan): compile the prune matcher from the root .devstrapignore (P6-XP-06) (#92) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 68086af: feat(sync): address workspace keys by (epoch, kid) so colliding keys coexist and grants never overwrite (P6-SEC-01b/c + P6-SEC-02) (#33) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- e3cbb56: feat(sync): enc.v2 — bind the full carrier tuple into the AEAD AAD (P6-SYNC-04) (#44) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 8c739b8: feat(sync): envelope-encrypt the namespace-map event log (P4-SEC-02 + P4-SEC-07 foundation) (#25) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- a9440ae: feat(sync): signed per-device sync acks + tombstone GC + revoked-stream cleanup (P6-HUB-04 completion, P4-SYNC-06 narrowed) (#75) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 746fbbf: feat(sync): snapshot + retention wire format and hub snapshot plane (P4-SYNC-02 part 1, P6-HUB-04 format) (#65) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 4b7e0d1: feat(sync): snapshot import + ErrSnapshotRequired recovery (P4-SYNC-02 part 2) (#73) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 2fe8f2c: feat(sync): transport cursor decoupled from HLC — per-device Seq pull plane (P5-SYNC-01) (#59) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 20b1367: feat: implement cloud-sync audit workstreams EAGER/DRAFT/HUB/XP (#16) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- cb824b9: fix(agent): diff agent runs against the recorded base SHA (P6-GIT-02) (#66) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- b804cce: fix(cli): gate scan --adopt on the workspace root (P6-CLI-02) (#40) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 652326d: fix(cli): make --quiet suppress progress chatter; results and errors still print (P6-CLI-04) (#90) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- e10b41e: fix(cli): wire every usage-error class to exitUsage=10 (P6-CLI-03) (#89) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 96c54fe: fix(data): atomic event+state emission + hot-path index + single-local-device invariant (P6-DATA-03, P6-DATA-05, P6-DATA-06) (#61) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 00a85e1: fix(data): join ClearRotationForProject through namespace_entries (P6-DATA-02) (#39) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 10a9772: fix(data): record the origin's draft_snapshots row atomically at create time (P6-DATA-01) (#35) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 99e7d59: fix(deps): go mod tidy — promote golang.org/x/sync to direct require (#17) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 094abf0: fix(doctor): probe git-carrier hubs in the --remote workspace-id check (#100) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 30146c2: fix(git): clean up the worktree+branch on any failure after worktree add (P6-GIT-05) (#41) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- e2e5c31: fix(git): honor the stored lfs_policy on materialize/hydrate (P6-GIT-04) (#80) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- e00a21b: fix(git): split the timeout by command class; deadline kills are terminal (P6-GIT-01) (#37) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- b4fe719: fix(hub): make hub gc sync-first, grace-windowed, and refuse-to-sweep when blind (P6-HUB-01) (#36) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 8792c2c: fix(hub): symlink-confine carrier paths + ride the shared network retry (opus M1/M2) (#97) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- c3bec92: fix(hub): userinfo-strip the echoed hub value in hub init's conflict error (review P3) (#102) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- eaf8ae4: fix(ignore): align the compiler with real gitignore semantics (P6-XP-02) (#79) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 8158750: fix(ignore): delete ShouldPruneDir's bare-name fallback; relSlash is authoritative (P6-XP-01) (#67) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 14ae7a7: fix(init): refuse a root change on re-init unless --move-root; surgical config root rewrite (P6-CLI-01) (#72) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- ce1c618: fix(keys): typed keychain custody + never mint over a published identity (P6-XP-04) (#62) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 846f2aa: fix(materialize): run dependency rebuild before .env hydrate; capture a 0600 rebuild log (P6-GIT-03) (#69) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 0d7142b: fix(pass5): implement the fifth-pass open backlog (31/36 findings + P4 items) (#23) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 72fc8c3: fix(scan): keep scan offline — local default-branch resolution (P6-XP-05) (#78) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 363014a: fix(sync): durable, classified pull-drop records (P6-SYNC-02) (#63) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- ce03bba: fix(sync): founder/join split so a joining device never loses pre-approval events (P6-SEC-02) (#32) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 102141d: fix(sync): gate deletes against the live row's HLC — delete-vs-re-add converges (P5-ARCH-01 residual) (#87) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 6d8203f: fix(sync): grace-bounded quarantine for never-granted epochs + approve contiguity guard (P6-SEC-03) (#55) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 8b10be9: fix(sync): ingest replayed quarantined grants + guard Prime's legacy custody upgrade (post-#33 review hardening) (#34) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 0fab192: fix(sync): make the fail-closed enrollment window sticky (P6-SYNC-03) (#38) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 9575735: fix(sync): make the reconcileSamePath winner HLC-monotonic (P4-QUAL-02 follow-up) (#95) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 42a71e0: fix(sync): quarantine per-event verification failures instead of aborting the batch (P6-SYNC-01) (#30) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 4026105: fix(sync): verify device.key.granted carriers before ingesting their WCK (P6-SEC-01a) (#31) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- be664ba: fix: PASS4 audit Phase A hardening (12 findings) (#20) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 97e78dd: refactor(sync): extract a pure Decide(state,event) layer (P5-ARCH-01) (#81) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 5d81af8: test(cli): path-anchor the command-doc gate against both spec inventories (P6-DOC-01 residual) (#91) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 57b7bf6: test(forge): hermetic ssh -G via PATH shim (P6-QUAL-04) (#70) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 8140ee7: test(git): load-robust margins for the terminal-timeout tests (#103) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- 666b52f: test(specdrift): every internal package requires a specific spec owner (P6-DOC-04 residual) (#71) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
- bf69cfb: test(sync): property/model-check layer over the pure Decide seam (P4-QUAL-02) (#94) (Artem Matskevych 52060443+Reederey87@users.noreply.github.com)
Built with GoReleaser. Verify downloads against checksums.txt, or install via
brew install Reederey87/devstrap/devstrap or the scripts/install.sh one-liner.