Skip to content

feat(rr): live task board for check-family commands#232

Merged
rqbazan merged 3 commits into
mainfrom
feat/rr-task-board
May 26, 2026
Merged

feat(rr): live task board for check-family commands#232
rqbazan merged 3 commits into
mainfrom
feat/rr-task-board

Conversation

@rqbazan
Copy link
Copy Markdown
Member

@rqbazan rqbazan commented May 26, 2026

Reworks the output of rr check / lint / format / jsc / tsc / pack / doctor into a live task board — one spinner row per task (✔/✖), the tool's output flushed below, and a one-line summary. In a monorepo, tsc shows one row per package so it's clear which one failed.

Highlights

  • Consistent everywhere — a single-target row is <command> (<tool>) · <package> (e.g. lint (biome) · dx); a fan-out is <command> (<tool>) · <n> packages. Each run shows the underlying $ <command> it executed.
  • rr check runs jsc then tsc as framed sections and closes with one overall verdict (✔ check passed / ✖ check failed · <section>) — a passing section can't be the last line of a failed run.
  • Honest verdicts — status is the tool's exit code, never parsed from output. clean stays logger-based (no pass/fail verdict).
  • New runTaskBoard lives in @vlandoss/clibuddy (reusable; glyphs mirror @clack/prompts).

Plugin SDK (kernel-internal)

Capability verbs plus Packer.pack() and Doctor.doctor() now return RunReport; DoctorResult/DoctorOutput are removed. All four official plugins are updated in lockstep.

Architecture + rationale recorded in decisions/012–014.

🤖 Generated with Claude Code

rqbazan and others added 2 commits May 26, 2026 17:44
A TTY-aware board that runs N labelled tasks concurrently, renders one
live spinner row each (collapsing to ✔/✖ with a duration), flushes their
captured output, and prints a summary. Non-TTY/CI prints once,
deterministically. Glyphs mirror @clack/prompts. Adds palette.error.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
check, lint, format, jsc, tsc, pack and doctor now run captured and
render board rows (✔/✖ + flushed output), one row per package for
monorepo tsc. Every command/subcommand reads identically —
`<command> (<tool>) · <package>` (or `· <n> packages` for fan-out) —
and shows the underlying `$ <command>`. `rr check` runs jsc then tsc as
framed sections with one overall verdict. clean stays logger-based.

Plugin SDK: verbs + Packer.pack() + Doctor.doctor() return RunReport;
DoctorResult/DoctorOutput removed. See decisions 012-014.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 26, 2026

🦋 Changeset detected

Latest commit: 908d2c0

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 7 packages
Name Type
@rrlab/cli Minor
@rrlab/biome-plugin Minor
@rrlab/oxc-plugin Minor
@rrlab/ts-plugin Minor
@rrlab/tsdown-plugin Minor
@vlandoss/clibuddy Minor
@vlandoss/vland Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vland-bot
Copy link
Copy Markdown
Contributor

vland-bot Bot commented May 26, 2026

Preview release

Latest commit: 908d2c0

Some packages have been released:

Package Version Install
@rrlab/biome-plugin 1.0.1-git-908d2c0.0 @rrlab/biome-plugin@1.0.1-git-908d2c0.0
@rrlab/cli 1.0.1-git-908d2c0.0 @rrlab/cli@1.0.1-git-908d2c0.0
@rrlab/oxc-plugin 1.0.1-git-908d2c0.0 @rrlab/oxc-plugin@1.0.1-git-908d2c0.0
@rrlab/ts-plugin 1.0.1-git-908d2c0.0 @rrlab/ts-plugin@1.0.1-git-908d2c0.0
@rrlab/tsdown-plugin 1.0.1-git-908d2c0.0 @rrlab/tsdown-plugin@1.0.1-git-908d2c0.0
@vlandoss/clibuddy 0.6.2-git-908d2c0.0 @vlandoss/clibuddy@0.6.2-git-908d2c0.0

Note

Use the PR number as tag to install any package. For instance:

pnpm add @rrlab/biome-plugin@pr-232

Trim the comments added by the task-board work down to the ones that
explain non-obvious "why" (cryptic ANSI escapes, exit-code-not-parsed,
ANSI-aware width, command hoisting, deterministic non-TTY order, the
sync collector push). Drop redundant/obvious narration and rationale
that already lives in decisions/012-014 or cli/CLAUDE.md.

No behaviour change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@rqbazan rqbazan merged commit 5476fe9 into main May 26, 2026
3 checks passed
@rqbazan rqbazan deleted the feat/rr-task-board branch May 26, 2026 22:57
@vland-bot vland-bot Bot mentioned this pull request May 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant