Skip to content

Workbook v0.4.3

Choose a tag to compare

@github-actions github-actions released this 09 Aug 15:13
· 232 commits to main since this release
608e707

Reports you can actually read — on the board, on the terminal, and about an
ignored ref — plus a hardened watcher socket and a stricter board Host check,
from thirteen reviewed pull requests.

Web board

  • A refused change is now reported on the card it concerns and stays there until
    you dismiss it, change that card again, or the board stops carrying the card.
    The one-second poll used to erase the banner a refused drag wrote before
    anyone could read it; when the card leaves the board the report moves to the
    notice above it and names the task (#55).
  • A refused board change no longer discards what you have typed into an open
    detail form. Untouched fields follow the task the board holds, edits in
    progress stay as typed with the caret where it was, and a save in flight still
    reports into the form (#61).
  • A card leaving a column no longer disturbs the cards below it. Departed cards
    are swept before the columns are reconciled, so another clone moving one card
    out of a long column no longer re-inserts — and blurs — every card under it
    (#57).
  • The board and the task form are more compact: columns hold a minimum width and
    the board scrolls sideways instead of squeezing titles over four lines, column
    headers drop the refs/workbook/status/… line, card titles are no longer
    underlined, the Depends On and Blocks groups and the form footer are shorter,
    Create more sits directly above Save, and the Labels caption is aligned
    with its input (#50).

Command line

  • workbook show keeps a description's line structure instead of collapsing it
    to one line. Later lines are indented by a tab, which preserves the guarantee
    the collapse provided: no description line can be read as one of show's own
    fields (#54).
  • workbook serve says why the board moved when the default 127.0.0.1:7331 is
    taken, naming the collision on its own line above the board banner instead of
    falling back silently. An explicit --addr still fails rather than moving
    (#53).
  • fetch, push, and sync no longer end an ignored-ref report with blanket
    git push origin --delete advice. Each ignored ref is classified on its own
    line as no project's task or may be another Workbook's task; every ref is
    reported as kept on origin, and the removal command is offered only for names
    no project's ID format could have produced (#62).

Hardening

  • The sync watcher's Unix socket is bound in a private per-user directory rather
    than world-writable /tmp. Candidate directories are refused unless they are
    real directories owned by the caller and writable by nobody else, the socket is
    created 0600 with no world-connectable window, both ends of the watcher
    protocol bound the line they read, and the watcher bounds the status it serves.
    Exclusivity survives a change of socket path, so an older watcher still keeps
    ownership across the upgrade (#51).
  • The board's Host check now pins the bound address on an explicit non-loopback
    bind — --addr 192.168.1.5:7331 is named by that address alone — and the
    Origin check is measured against the bound address too, so a page that
    rebinds its own DNS name to a LAN board no longer holds same-origin read and
    write on it. A wildcard bind is the one case with no host to pin; the exposure
    warning now names drive-by access from off the network, and the README says so
    where the claim is made (#58).

Agent skill and tests

  • The Workbook agent skill says where a dependency's title comes from: resolve
    each data.dependencies entry with workbook show <id> --json, never invent a
    title, and report a dependency this clone cannot read by ID instead of
    abandoning the task. Bad news — a blocked task, a failed command — is announced
    by title like everything else. The behavioral run behind the change is recorded
    under docs/superpowers/evidence/ (#52).
  • A capability probe that skips without the marker is now detected structurally
    rather than by convention, so coverage cannot quietly disappear on a machine
    missing a tool while CI reports success (#59).
  • The board's card-signature fast path and the detail form's Blocks-edge
    orientation guard are covered by tests that fail when the line they protect is
    deleted; both previously left the package green (#56, #60).