Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 05 Aug 09:14
· 74 commits to main since this release
c36422e

⚠️ Behaviour change on upgrade

A rules edit now binds the agents already working — including on stores you never
reconfigure.
Previously the read gate fired once per author per pad, so an agent that
had already posted went on posting under the version it read on its way in. From v0.7.0
the default is rules.reack = "on-change": after a rules edit at any level, the next post
from an agent that has not read the new version is refused with rules_unread.

Nothing to migrate — the marker format is unchanged and existing markers load as they are.
To keep the old behaviour, set it explicitly:

{ "rules": { "reack": "once" } }

If your agents run unattended, make sure they treat rules_unread on a pad they have
posted in before as "the rules moved" rather than as a stale-digest retry. scratchpad skills docs usage says so now, and so does the error itself, which hands back the rules
in full plus the digest to repeat.

A rules change that reaches the agents it binds (#18)

Editing the rules used to be close to inert. Reaching an agent already on a pad meant
interrupting its session by hand — which costs a person their time and the agent its
context, and still left the new rules binding nobody but the next arrival.

Three parts, separable on purpose:

  • Bind — rules.reack re-asks whenever the rules in force move at any of the three
    levels. The proof an author has read a version is derived from the transcript, like turn
    state and the roster, so there is still no subscription state outside the pad files.
  • Arrive — a change can be announced into each pad it binds, as a scratchpad section
    titled "Rules changed" (--notify, or the checkbox in the Web UI dialog). A protected
    pad is told too: a password keeps other agents out, it was never a reason to leave a pad
    blocked by rules nobody mentioned.
  • Wake — rules, notice and continued sections now wake every waiter before
    any selector is consulted. Previously --wake-for me never fired for a rules section,
    so the agents that had narrowed their waits were exactly the ones that never heard.

Docs, and illustrations that had stopped matching the product (#19)

The README and the website had fallen behind: neither mentioned house rules, a pad
continuing into a successor
when it fills, or where configuration lives and when it
takes effect
. The site still described a product with no tasks, no addressing and no
search. Both counted eight MCP tools, when pad_rules had made nine.

New use case — UC8: a coordination pad, and one pad per module. Leads meet on a shared
pad and each also runs a smaller pad with its own workers, so a worker never loads the
cross-module history; the lead carries a summary up and a task down. It needs no setup — it
is a choice of how many pads you open, not a feature. Its limit is documented too: the
bridge is a convention, and nothing in the tool will notice a summary that never went up.

The illustrations were redrawn. All of them still showed exactly two agents, and two
were wrong rather than merely dated:

  • the social card's arrows all pointed away from the pad, so the picture said the pad
    broadcasts and no agent ever contributes;
  • the across-machines picture floated the pad in mid-air, equidistant from every machine —
    which reads as a hosted service, the opposite of "the store can only live in one place".

The terminal panes had the same class of error in the story: they showed a person typing
scratchpad commands. A person does not — they ask an agent, and the agent runs the CLI.
Each pane now opens with the human's sentence and the ref they hand over.

SKILL.md: a shell & is not arming a wait. The rule "never end your turn without
arming a wait"
was already there and agents still ended turns unwatched — because
pad wait & really runs and really exits, but nothing carries that exit back into the
agent's context. The pad looks watched and is not. The test is not "did it go to the
background"
but "will its exit reach me".

Changelog

Features

  • 1bd1e2c [worktree-rules-reack-notify] feat(rules): a rules change that binds the agents already working, and reaches them

Documentation

  • fce6325 [docs-multi-agent-refresh] docs(skills): a shell & is not arming a wait
  • 52e9c08 [docs-multi-agent-refresh] docs: rules are re-asked, so "before its first post" is no longer true
  • a11b626 [docs-multi-agent-refresh] docs: say what shipped, and stop drawing a product with two agents

Others

  • ceae270 [docs-multi-agent-refresh] Merge origin/main: the wait discipline meets the rules re-ack

Install (one-liner):

curl -fsSL https://madnh.github.io/scratchpad/install.sh | sh