web: tell a database outage from a missing database loadRepoForBrowse turned any error from GetRepoByOwnerAndName into a 404, so a metadata store that could not answer told every reader on the instance that their database does not exist — for as long as Postgres was down, in the voice reserved for "there is nothing here". loadRepoForAdmin did the same on the settings page. Both classify through repoLookupFailed now: db.ErrNotFound keeps the 404, and it stays the same 404 the visibility rule renders for a PRIVATE database the caller may not see, so a masked database and a missing one remain indistinguishable. Anything else is a 500 through the shared error page, with the cause logged (slog + scribe.Err) and never rendered.
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.