browse: read-only doltdb browsing over bare stores
Read-only web-browsing data layer over bare NBS chunk stores, the only
package that reaches into version-fragile dolthub/dolt internals (nbs,
prolly, durable, diff), kept isolated so a module bump re-verifies here.
- open.go: Open/Close per request. Builds the DoltDB from a single
nbs.NewLocalStore via doltdb.DoltDBFromCS instead of doltdb.LoadDoltDB:
LoadDoltDB's GenerationalNBS wrapper panics on Close over our bare
stores in the pinned version (onHeapTableIndex ref count < 0), even on
a plain open-then-close. The single-store path closes cleanly, gives a
fresh manifest per request, and is safe alongside the push writer.
- log.go: Branches (+ DefaultBranch pick), Log with topological walk,
count+start-hash pagination, and commit metadata.
- tables.go: Tables (schema + cheap row count) and Rows via
durable.ProllyMapFromIndex + prolly IterOrdinalRange, rendered through
the tuple descriptors; NULLs, binary/out-of-band values and exotic
encodings degrade to printable placeholders and never panic.
- diff.go: CommitSummary vs first parent (empty root for the initial
commit) with exact added/removed/modified row counts from
diff.StatForTableDelta.
- tests: fixture built the production way (WriteEmptyRepo bare store, CLI
clone/commit/push over a file:// remote); covers branches, log
pagination/topo order, tables/schema, row pagination incl. empty table,
commit summaries across the add/insert/modify chain and the initial
commit, and nonexistent ref/table errors.