Skip to content

Releases: rness-dev/rness

v0.22.2

Choose a tag to compare

@github-actions github-actions released this 18 Oct 23:00
  • rness add takes a repository name in any case, as create does: rness add dApp declares dapp in rness.json and clones into org/dapp; the URL keeps the spelling typed. create --repos follows, and add --scopes apps/Web declares scope web.
  • A clone whose directory differs from its name only by case (org/dApp for dapp) is renamed org/dapp by rness add, once its origin is checked: the confirmation says so, and --yes consents to it. A path in another case is the same on macOS and Windows but not on Linux, so a teammate's clone would not match. Two such directories are refused, named.
  • rness add adopts a clone whose origin differs from the URL only by case or by transport (an HTTPS clone, an SSH URL in rness.json). Another repository is still refused.
  • rness sync names each directory under org/ it does not read on a not read: line, instead of skipping it silently; for org/dApp the line points at rness add dapp, which renames it. A declared repository whose directory differs only by case is not cloned a second time and gets no block until renamed.
  • --scope takes a scope name in any case: rness context, rness sync, and rness_context over MCP.

Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md

npm create rness           # a new workspace
pnpm rness upgrade 0.22.2  # an existing one, from .rness/

v0.22.1

Choose a tag to compare

@github-actions github-actions released this 12 Oct 09:16
  • Nothing rness writes carries an em dash (U+2014) any more: the AGENTS.md block, the title rness doc new opens (# NNNN - Title), the rness:adr, rness:spec and rness:plan skills, the scaffold, the titles of a board's issues (NNNN - Title, renamed once at the next rness board push), and the messages of the CLI and of the mod: " - ", a comma or a colon take its place. A title written with the old separator still reads. The repository's lint refuses a new one in a string of the CLI or the mod.

Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md

npm create rness           # a new workspace
pnpm rness upgrade 0.22.1  # an existing one, from .rness/

v0.22.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 23:48
  • One word for the view, whatever the provider (spec 0033, see "Boards"): rness board push replaces rness pulse sync, rness note replaces rness pulse note, and the hooks start rness board run. rness.json names its boards boards; projects and the older pulse still read, and rness sync (which rness upgrade runs) renames the key. pulse stays the name of the board rness ships, Agent Pulse.
  • A board comes to exist by its declaration and a push: there is no create. A board of boards without a number, or a preset by name ("pulse": "agent-pulse", "marketing": "collection"), is created by rness board push once asked (-y off a terminal), its number then written into rness.json.
  • rness pulse … still runs, hidden, as its new command, and says so on stderr; it goes in a later minor. rness pulse mark, kept through 0.21.x for 0.20's hooks, now exits 0 and does nothing. Spec 0031's eject is not built and will not be: every board is written whole.
  • The session-start notice is rness: board not updated — …, its record board.json (one 0.21 left in pulse.json is said once), and messages name boards: boards need a GitHub login: run rness login.
  • Upgrade with npx @rness/cli@latest upgrade, which runs the new copy throughout: a 0.21 copy cannot read boards (unknown key "boards").
  • For the package's API: Manifest.projects is Manifest.boards (Boards, a record of BoardEntry: a number, a preset's name, or a BoardDeclaration, whose number is null until the board is created).

Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md

npm create rness           # a new workspace
pnpm rness upgrade 0.22.0  # an existing one, from .rness/

v0.21.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 14:07
  • The agent journal (spec 0030, see "Pulse"): a board declares journal at session-start and journal-summary at session-end. The agent posts notes on the plan it implements — rness pulse note, or rness_note of rness mcp — to the plan's issue in .rness, or to an implementation issue in the repository it works in, a sub-issue of the plan's, which the pull request closes. The session's end posts a summary: its commits, its pull request, its duration. The preset agent-pulse declares neither: nothing changes until a board does.
  • Boards are declared in rness.json (spec 0031, see "Pulse"): each one's collections, statuses, colours, fields, labels and views, written whole. Agent Pulse is the preset agent-pulse, no longer a special case of the code. pulse create writes the board it makes; rness sync (which rness upgrade runs) writes a board declared by its number whole, moves a collection's README declarations into its board, and merges a newer revision of a preset value by value. Views are updated in place where GitHub allows; a view rness made and no longer declared is deleted, the team's are said once. Nothing changes on GitHub for a board 0.20 made. For the package's API: Projects is Record<string, number | BoardDeclaration>; BoardDeclaration and parseBoard are exported.
  • A board's readme and updates stay within .rness/: a path out of it, or a link leading out, is refused before anything is read.
  • What a session does to a board is declared in its hooks (spec 0032): mark-in-progress, mark and clear-marks, from a fixed catalogue; a hook never runs a command rness.json names. The preset agent-pulse declares today's three, so nothing changes on GitHub. The hooks start rness pulse run <event>; rness pulse mark stays, hidden, through 0.21.x, for sessions started before an upgrade.
  • upgrade run by a workspace's pinned copy installed with pnpm no longer ends on mod directory not found next to the @rness/cli package. After its commit it lists the files to commit in the clones, and that list read the plugin's mod from the folder of the copy running it, which the install had just removed. The list now takes the paths alone. The upgrade itself was complete: 0.20.0 to 0.20.1 printed the error after its commit. An upgrade from 0.20.1 still prints it, since the copy that runs it is the old one; pnpm dlx @rness/cli upgrade runs the new one.

Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md

npm create rness           # a new workspace
pnpm rness upgrade 0.21.0  # an existing one, from .rness/

v0.20.1

Choose a tag to compare

@github-actions github-actions released this 06 Oct 11:56
  • The workspace's line in Claude Code moves from the pinned status line to the prompt footer, among the session modes, dim and without a sign: rness · web · 1 in progress, ⚠ <n> at its end when notes need action. Claude Code draws every pinned line a plugin sets after a ⚠ in its warning colour, the wrong sign for a line that informs. rness status --json's statusLine carries the leading rness again. VS Code and mobile surfaces, which draw no session modes, show no line; the /rness:status pane stays.
  • The mod no longer installs the pin from inside Claude Code. It ran status --json with catch-up on, so in a workspace whose pin drifts each refresh ran npm install in .rness, without asking, and replaced a local copy. It now runs with RNESS_NO_DELEGATE=1: the drift is a note in the band, as the settings hooks report it.

Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md

npm create rness           # a new workspace
pnpm rness upgrade 0.20.1  # an existing one, from .rness/

v0.20.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 11:56
  • /rness:status in Claude Code: each row's status in Agent Pulse's colour; ↑/↓ select a row, Tab and Shift+Tab change the tab; Enter, or a click, on a row shows the document in the pane and q brings the list back; Agent Pulse is a link — the board from the list, the document's item from the document. rness status --json prints each row's color and link, and the board as pulse.

Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md

npm create rness           # a new workspace
pnpm rness upgrade 0.20.0  # an existing one, from .rness/

v0.19.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 11:56
  • The Claude Code plugin gains a mod (see "The mod"): the notes to act on above the prompt, a status line entry, and /rness:status as a pane beside the conversation, with no model turn, driven by the keyboard. sync writes three more files into .claude/skills/rness/, at the root and in each clone; an upgrade lists the clone's for commit. Claude Code without mods ignores them; older than 2.1.280, it is told once per version, in the session-start line, to run claude update (when it sets AI_AGENT, as 2.1.240 does).
  • A fourth hook, PreToolUse on Edit|Write: an edit of the block of an AGENTS.md or CLAUDE.md, or of the plugin's files, is refused before it is written, naming the file to edit instead; so is an edit that would add a problem to a document of .rness/ or to rness.json. Until the upgrade has run on a machine, a session there runs the old pinned copy, which says unknown hook event "pre-tool-use" and lets the edit through.
  • rness status --json prints the tabs and what the mod draws.

Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md

npm create rness           # a new workspace
pnpm rness upgrade 0.19.0  # an existing one, from .rness/

v0.18.1

Choose a tag to compare

@github-actions github-actions released this 06 Oct 11:56
  • rness validate and the edit hook name a document of adr/, specs/ or plans/ whose file name has no number, with the next one: plans/2026-10-02-x.md: not numbered; name it 0002-<slug>.md, the next number of plans. A plan another agent's skill wrote with a dated name is the usual case; rename it, or let the agent do it when the hook tells it. A workspace with such a file fails validate (and its CI) after the upgrade until it is renamed. The scaffold's CONVENTIONS.md states the rule, and upgrade merges it in.
  • A dated file name is no longer read as a number: rness doc new after 2026-10-02-x.md gave 2027, and two dated plans of one year were reported as one number twice.
  • rness doc new racing another one at the same number says <file> exists; nothing written (exit 1) instead of a raw EEXIST.
  • 1 repository, not 1 repositories, in create and sync.
  • When the SSH test passes only by asking for the key's passphrase, create, add and sync say once how to load it into an agent (ssh-add), since every clone would ask again.
  • Ctrl+C while create waits for an organization's approval is a cancel in the plain look too: cancelled, nothing written, exit 0 (it was 130).

Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md

npm create rness           # a new workspace
pnpm rness upgrade 0.18.1  # an existing one, from .rness/

v0.18.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 11:56
  • The published CLI runs on Node 22.17 or later (ADR 0010); the guard compares major and minor. A workspace pinned to 0.17.x keeps refusing Node 22 until its pin moves: from inside it, npx @rness/cli@latest upgrade works under Node 22, since upgrade is served by the copy invoked, never the pinned one.
  • rness create asks where the organization lives first — the blank workspace is that question's last answer — then offers the login, which now lists the organizations you belong to that have approved rness (your account last, then an organization not listed here… for the rest). Right after the organization and before anything reads it, an organization that restricts OAuth apps and has not approved "Rness" gets its approval page opened in your browser; the wizard waits for the owner's click (10 minutes at most) and then lists the private repositories too. See "GitHub login".
  • /rness:adr, /rness:spec and /rness:plan read their first word as the verb: create, open (a bare number), and for a plan from <spec> — which approves the specification it plans — and check NNNN, the proofs of a plan, in place of /rness:done. /rness:done is retired: rness sync removes its SKILL.md where an earlier release wrote it (removed in its output); commit the deletion in each repository, as upgrade's next steps list. Note: /rness:plan 0028 now opens plan 0028; a plan is made with from <spec>. See "Agent targets".
  • rness doc new <collection> [--title <text>] writes the next numbered document of adr, specs or plans and prints its path: the skills allocate with it instead of counting. rness validate and the edit hook refuse two documents with one number in a collection.
  • The day of a release, pnpm create rness runs the previous version: pnpm ≥ 11 holds back a package younger than 24 hours (minimumReleaseAge). rness upgrade installs the latest all the same.

Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md

npm create rness           # a new workspace
pnpm rness upgrade 0.18.0  # an existing one, from .rness/

v0.17.3

Choose a tag to compare

@github-actions github-actions released this 06 Oct 11:56
  • homepage of @rness/cli, create-rness and @rness/create is https://rness.dev; repository and bugs stay on GitHub. That is how a scanner tells an official package from a fork; pnpm check:versions checks it with the versions.
  • .claude/skills/rness/.claude-plugin/plugin.json, written by the Claude target, carries the agent-plugins.org $schema, the author, homepage, repository, licence and keywords. rness sync rewrites it once in each repository; commit it there.
  • skills/rness/SKILL.md at the root of the repository: when to use Rness and how to install and run it, for npx skills add rness-dev/rness and skills.sh.

Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md

npm create rness           # a new workspace
pnpm rness upgrade 0.17.3  # an existing one, from .rness/