Tagged 2026-05-11 (commit 0b478446). First release after the repo flipped public. Four user-visible changes, one freshness pass, one known follow-up.
Shipped
cidx workflow watch
- What — watch GitHub Actions runs without an open PR.
- Why —
cidx pr watchrequired an open pull request. Pushing tomain, working pre-PR, or monitoring a scheduled workflow had no cidx-native answer; users fell back togh run watch. - Choice — use
ListRepositoryWorkflowRunsrather than the per-PR API, so the command works on any repo, not only ones using cidx-generated workflows.
$ cidx workflow watch # latest run on current branch
$ cidx workflow watch --branch main
$ cidx workflow watch 12345678
$ cidx workflow watch -q # CI-friendly minimal output
cidx init --diff / --update
- What — re-running
cidx initon an existing project is now safe. - Why — previously it either errored out or clobbered
cidx.toml. First-time users would lose work on the second invocation (the typo-then-rerun loop). - Choice —
--updateis strictly additive: new containers detected from the project get merged in, user-configured overrides are never removed.--diffis preview-only, touches nothing.
Log replay fix (#127)
- What —
cidxno longer replays output from previous runs. - Why — after fixing a lint violation,
cidxwould still print “violation” lines from the prior run. Misdiagnosed for weeks as a cache-invalidation problem. - Choice — root cause was
ContainerLogsreturning the full history of a reused container. Fix: capturetime.Now()immediately beforeContainerStart, pass it asSincetoContainerLogs. Four-line change inpkg/executor/docker.go. No cache layer added.
cidx.toml split: 491 → 84 lines
- What — root config trimmed to functional minimum; full catalog moved to
examples/cidx-complete.toml. - Why — the 491-line root file was serving two contradictory roles (build config for cidx itself + exhaustive catalog of every option with pedagogical comments). A new project’s
cidx initoutput should be 15–20 lines; a 491-line example sent the wrong signal — this is how much config you need. - Choice — keep root at 84 lines (only what
cidx run ci,cidx run docker,cidx action releaseactually need). Move 493-line catalog (all options explicit, all comments preserved) toexamples/cidx-complete.toml.cidx check driftoutput is byte-identical pre/post — pure ergonomics, zero behavioral change.
Maintenance
Bumped or fixed without user-facing surface change:
- Go toolchain: 1.25 → 1.26
actions/checkoutin cidx’s own CI: v4 → v6go-git/v5: 5.17.2 → 5.19.0- Rust presets: switched from Docker Hardened Images to public Docker Hub (
rust:1.83-alpine3.21); works on clean CI runners without DHI credentials cidx generate githubfor external projects: emitsgo install github.com/cidx-org/cidx/cmd/cidx@latest(was hardcoded togo build ./cmd/cidx, valid only inside the cidx repo)- Per-key env override in
[containers.X]: TOML inline-table type coercion was silently dropping user env overrides; fixed
What we learned
Two lessons from the work that ended up in this release.
Wrong-direction debugging is a category of bug. The log replay confusion was tweaked toward “cache invalidation” for weeks because the first hypothesis felt plausible enough that subsequent fixes stayed in its orbit. Two cache-related variants didn’t move the symptom. The real fix was a four-line change in the Docker logs call — found only by suspecting the diagnosis, not the implementation. When a fix doesn’t budge the symptom, the diagnosis is the bug.
An example file is a public signal, not internal documentation. The 491-line cidx.toml worked perfectly as a reference catalog while embarrassing itself as a starting template — the same artifact, two roles, opposite aesthetic requirements. No amount of comment cleanup would have fixed it; the fix had to be structural (two files). For more on what going public surfaced, see Reading My Own README.
Open
#138 — cidx generate github still emits actions/checkout@v4 in generated workflows. GitHub removes Node.js 20 / v4 from runners on June 2, 2026. Affects every downstream user who runs the generator after that date. Natural v1.7.1 or early v1.8.0 fix.
Install
go install github.com/cidx-org/cidx/cmd/cidx@latest