~bigbes/sr-ht-dolt

cdb9195f — Eugene Blikh 5 days ago
mcpsrv: a bad commit-log cursor is a miss, not a fault
dc918296 — Eugene Blikh 5 days ago
web: link issue ids to the tracker that owns them
4038ec2b — Eugene Blikh 5 days ago
mcpsrv: answer what is ready across every tracker
2c8903fd — Eugene Blikh 5 days ago
browse: report an unparseable start hash as a missing ref
c978521e — Eugene Blikh 5 days ago
remoteapi: gofmt the integration test
57adcc0a — Eugene Blikh 5 days ago
doltsrht: serve /mcp on the web listener
dba72f59 — Eugene Blikh 5 days ago
mcpsrv: list the memories a tracker holds
b6a01558 — Eugene Blikh 5 days ago
web: drop the author from a memory's revision line
043b0fd7 — Eugene Blikh 5 days ago
web: answer what is ready across every tracker
e4bc9229 — Eugene Blikh 5 days ago
mcpsrv: add the beads tools
0190aab3 — Eugene Blikh 5 days ago
web: register the views in one explicit list
231b7764 — Eugene Blikh 5 days ago
web: give bd memories their own view
7a77409c — Eugene Blikh 5 days ago
mcpsrv: add the generic browse tools
3b06523c — Eugene Blikh 5 days ago
web: offer the bd command for the issue on screen
e6125fce — Eugene Blikh 5 days ago
db: list every database a viewer may see
64592988 — Eugene Blikh 5 days ago
web: show how fresh a beads view is

handleView now reads the head commit of the rendered ref onto the envelope
(Head *browse.CommitInfo), and the beads and milestones headers carry a
shared beadsHead partial: <branch> · last commit <relative> · <short hash>,
the hash linking to the commit page and the exact stamp in the title.

The read is decoration on top of an answer: a database with no commits, or
a Log that fails, renders the page without the line rather than 500ing.

The relative time is a new ago func rather than chrome's reltime — it is
past-facing (clock skew reads as "just now", never "in 3 minutes") and
reads a package clock a test can pin.
dcdc9790 — Eugene Blikh 5 days ago
mcpsrv: serve a stateless read-only MCP surface
fe616c89 — Eugene Blikh 5 days ago
beads: add a one-column stream layout beside the board

?layout=stream renders the same filtered set, the same buckets and the same
cards as one column of sections instead of four lanes side by side. It is a
layout of the Beads view and not a fifth tab: filters, the ready toggle, the
search box and ?issue= behave exactly as they do on the board.

A column read top to bottom can afford one sort per section, because each
section answers a different question: Rolling by started_at desc (what was
picked up last is what is being worked on), Lined Up ready-first then priority
then oldest, Stalled by blocker count (one blocker away is nearer than five),
Past Stand by closed_at desc. started_at and closed_at join the card model as
sort keys and are not displayed; a row missing one sorts last, because an unset
timestamp is not a very old one.

Past Stand opens collapsed in a <details> — the largest and least actionable
section, closed without a line of JavaScript. The sections are derived from the
finished lanes rather than bucketed again, so the section counts cannot drift
from the marquee, and the lanes keep the board order the board renders.

The Board/Stream toggle rebuilds the current query with layout replaced, via a
new withQuery template func, so every active filter survives the switch.
aff72682 — Eugene Blikh 6 days ago
docs: spec the MCP surface and the second round of beads views
7d799ed0 — Eugene Blikh 6 days ago
beads: drop the Bead/Beads prefix from the moved types
Next