Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .changes/20.maint.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Lint CI runs golangci-lint v2.14.0, which understands Go 1.27; v2.12.2 failed to typecheck the Go 1.27 standard library. (#20)
2 changes: 1 addition & 1 deletion .githooks/pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
set -u

# Must match .github/workflows/lint.yml.
GOLANGCI_LINT="github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.12.2"
GOLANGCI_LINT="github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.14.0"

if [ -t 2 ] && [ -z "${NO_COLOR:-}" ]; then
green='\033[32m'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ jobs:
with:
# Pinned so the required check can't shift under a merge;
# bump deliberately alongside .golangci.yml.
version: v2.12.2
version: v2.14.0
19 changes: 7 additions & 12 deletions PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ an unbounded compatibility surface._
### D6. Distribution: Homebrew tap via goreleaser + `go install` fallback

**Decision:** goreleaser on git tags via GitHub Actions,
publishing to a personal tap (`brew install logan/tap/wt`).
publishing to a personal tap (`brew install loganthomas/tap/wt`).
Use goreleaser's **`homebrew_casks`**, not `brews` —
the formula route was deprecated in goreleaser v2.10 (2025);
casks are the current vehicle for pre-built binaries.
Expand Down Expand Up @@ -571,7 +571,8 @@ so they track the installed binary and golden files stay stable.
- **Exit:** claim → work → release loop with crash-safe leases and
warm-cache resets. Tag `v0.1.0-alpha.4`.

**Status (2026-07-21):** code complete, PR open against `dev`.
**Status (2026-07-24): complete.**
Merged to `main`; `v0.1.0-alpha.4` tagged and released.
Design refinements surfaced by implementation:
the lease is a **two-phase handoff**: a claim is held under wt's
own PID while it provisions (a killed wt leaves a provably dead
Expand Down Expand Up @@ -625,9 +626,6 @@ A simplification pass then removed what the hardening had
over-built: a memo over `ps` start tokens that saved a handful of
subprocesses and cost a PID-reuse hazard, and a layer of derived
helpers around the init scan's notes.
Remaining before exit is met: merge, batch fragments,
tag `v0.1.0-alpha.4`.
Phase 5 (sync & freshness) is ready once the tag is cut.

### Phase 5 — Sync & freshness (M)

Expand Down Expand Up @@ -659,7 +657,8 @@ Phase 5 (sync & freshness) is ready once the tag is cut.
- **Exit:** the 24h freshness window holds with zero daemons.
Tag `v0.1.0-alpha.5`.

**Status (2026-07-24): code complete, PR open against `dev`.**
**Status (2026-07-25): complete.**
Merged to `main`; `v0.1.0-alpha.5` tagged and released.
Design decisions and refinements surfaced by implementation:
the opportunistic fetch on `wt new`/`wt claim` is deliberately
**non-invasive** — it updates remote-tracking refs and notes when
Expand All @@ -682,8 +681,6 @@ until wt has a fetch on record: it never touches the network and
never regresses the config-free listing. One dedupe landed too:
`freshness.Age` now backs both the fetch note and pool `ls`'s
claim-age column, so the two coarse formatters can't drift.
Remaining before exit: merge, batch fragments, tag `v0.1.0-alpha.5`.
Phase 6 (doctor, clean, status) is ready once the tag is cut.

### Phase 6 — Doctor, clean, status (M)

Expand All @@ -704,7 +701,8 @@ Phase 6 (doctor, clean, status) is ready once the tag is cut.
support questions answerable with "run `wt doctor`."
Tag `v0.1.0-alpha.6`.

**Status (2026-07-25): code complete, PR open against `dev`.**
**Status (2026-10-03): complete.**
Merged to `main`; `v0.1.0-alpha.6` tagged and released.
Design decisions surfaced by implementation:
`wt clean` counts a branch as merged only when it is **strictly
behind** the base tip — at the tip itself a freshly created tree
Expand Down Expand Up @@ -733,9 +731,6 @@ diagnose — so it reserves exit 3 for findings and never exits 4.
and `--json`; disk usage is one parallel `du -sk` pass cached in
the state dir for an hour (R10). `render.Align` grew no options;
doctor's cause/fix lines ride it as continuation rows.
Remaining before exit: merge, batch fragments, tag
`v0.1.0-alpha.6`. Phase 7 (docs, polish, first release) is ready
once the tag is cut.

### Phase 7 — Documentation, polish, first release (L)

Expand Down
Loading