beads: report a clipped read from every projection
mcpsrv: name the cursor a commit-log miss was asked about
browse: say which cells are actually NULL
mcpsrv: a bad commit-log cursor is a miss, not a fault
web: link issue ids to the tracker that owns them
mcpsrv: answer what is ready across every tracker
browse: report an unparseable start hash as a missing ref
remoteapi: gofmt the integration test
doltsrht: serve /mcp on the web listener
mcpsrv: list the memories a tracker holds
web: drop the author from a memory's revision line
web: answer what is ready across every tracker
mcpsrv: add the beads tools
web: register the views in one explicit list
web: give bd memories their own view
mcpsrv: add the generic browse tools
web: offer the bd command for the issue on screen
db: list every database a viewer may see
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.
mcpsrv: serve a stateless read-only MCP surface