Status line improvements: sessions/demo CLI, failure diagnosis, rotating faces#3
Merged
Merged
Conversation
The curl|bash installer downloaded the release tarball with no integrity check. Fetch the release's checksums.txt and verify the asset's SHA-256 before installing, refusing to install on a mismatch. Skips gracefully (with a warning) only when verification genuinely can't run: checksums unreachable, asset unlisted, or no sha256 tool present. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Runs on push to main and PRs. A lint job gates gofmt and go vet; a test matrix builds and tests on ubuntu, macOS, and windows (the three platforms the release ships). Previously only release.yml existed, so tests never ran on PRs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Extracts a short, glanceable reason from a failed build/test's captured output: a compiler/linter file:line location, a named failing test, an error: line, else the bare exit code. High-signal only, so a miss yields nothing rather than a guess. A user-maintained error-signatures file (pattern->message) overrides the heuristic. No network, no model call. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CLI: a dispatcher routes explicit subcommands (Claude Code still invokes ccbit bare for the status line). `ccbit sessions` prints the full live-session roster the heartbeat dir already holds; `ccbit demo` previews every state and the face parts from synthetic data; `ccbit version`/`help` round it out. Faces: the Working and Idle faces now assemble per turn from shared parts — a pool of eye cores and a per-state pool of hands — chosen by a turn-derived seed, so a face is steady through a turn's repaints and varies between turns. Working hands are animated 2-frame gestures; the cup idle prop keeps its narrow fallback. Failure line: the Failed state appends diag's concrete reason when the build output gives one up. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A batch of improvements from a working session. Each commit is self-contained and reviewable on its own.
What's in here
ccbit sessions— prints the full live-session roster the heartbeat dir already holds (the inline line-1 hint only had room for a fragment). Actionable states first;--jsonto pipe.ccbit demo— previews every state and all the face parts from synthetic data (reads nothing). Doubles as a manual QA tool and the harness for the hero visual.ccbit version/help— theversionldflag was stamped but never printed; now there's a CLI to surface it.Rotating faces — Working and Idle now assemble per turn from shared parts: a pool of eye cores and a per-state pool of hands, picked by a turn-derived seed. Steady through a turn's repaints, varied between turns, deterministic (no flicker, no jitter across concurrent renders). Working hands are animated 2-frame gestures.
Build-failure diagnosis — the Failed line now appends a concrete reason (compiler location, named test, or exit code) extracted from the captured output, with an optional
~/.config/ccbit/error-signaturesoverride. No network.Installer integrity — the
curl|bashinstaller now verifies the binary's SHA-256 against the releasechecksums.txtand refuses to install on a mismatch.CI — new workflow: gofmt/vet lint + build/test matrix across ubuntu/macOS/windows. (Previously tests never ran on PRs.)
Notes
ᕙ ᕦ ง ว, eyes◔ ʘ, cup旦) render great on mac/linux but may tofu on a poor Windows font — they're single-width so they don't break layout; the cup keeps a narrow fallback. Runccbit demoto verify in a given terminal.🤖 Generated with Claude Code