m5ssqouj361id9d69agbg0ajmgbf3qpi · 22 rows
| id | issue_id | event_type | actor | old_value | new_value | comment | created_at |
|---|---|---|---|---|---|---|---|
| 019feb55-f7ea-7a60-b82f-87ec2454dee2 | sr-ht-dolt-b08 | created | Eugene Blikh | NULL | 2026-08-10T14:01:47Z | ||
| 019feb60-c771-7850-a79b-1209cd60ad0c | sr-ht-dolt-16t | created | Eugene Blikh | NULL | 2026-08-10T14:13:36Z | ||
| 019ff798-a5e4-7459-8de9-af3bc522f624 | sr-ht-dolt-0qf | created | Eugene Blikh | NULL | 2026-08-12T23:10:04Z | ||
| 019ff798-c0cc-74c6-9cfc-0d6705898e3c | sr-ht-dolt-44n | created | Eugene Blikh | NULL | 2026-08-12T23:10:11Z | ||
| 019ff79a-1117-7acd-8cc4-d0e4ac1f177a | sr-ht-dolt-0qf.1 | created | Eugene Blikh | NULL | 2026-08-12T23:11:37Z | ||
| 019ff79a-2a11-7d27-a52c-70861396e9b9 | sr-ht-dolt-0qf.2 | created | Eugene Blikh | NULL | 2026-08-12T23:11:43Z | ||
| 019ff79a-2ce9-7d81-a3d8-f68732ffee3b | sr-ht-dolt-0qf.3 | created | Eugene Blikh | NULL | 2026-08-12T23:11:44Z | ||
| 019ff79a-2fae-7124-8f23-45dfbded2c88 | sr-ht-dolt-0qf.4 | created | Eugene Blikh | NULL | 2026-08-12T23:11:44Z | ||
| 019ff79a-32e9-7ad5-bcfa-8f6ead1c5b98 | sr-ht-dolt-0qf.5 | created | Eugene Blikh | NULL | 2026-08-12T23:11:45Z | ||
| 019ff79a-35ca-7382-a055-c714bae743d5 | sr-ht-dolt-0qf.6 | created | Eugene Blikh | NULL | 2026-08-12T23:11:46Z | ||
| 019ff79a-38d4-7887-9d25-da09261abd3e | sr-ht-dolt-44n.1 | created | Eugene Blikh | NULL | 2026-08-12T23:11:47Z | ||
| 019ff79a-3bd4-7b10-8064-375cba8dd832 | sr-ht-dolt-44n.2 | created | Eugene Blikh | NULL | 2026-08-12T23:11:48Z | ||
| 019ff79a-3eb7-788f-891c-096df08e7223 | sr-ht-dolt-44n.3 | created | Eugene Blikh | NULL | 2026-08-12T23:11:48Z | ||
| 019ff79a-41a2-79b0-9c45-c45f894f9888 | sr-ht-dolt-44n.4 | created | Eugene Blikh | NULL | 2026-08-12T23:11:49Z | ||
| 019ff79a-4467-7660-8846-ccd7937ef049 | sr-ht-dolt-44n.5 | created | Eugene Blikh | NULL | 2026-08-12T23:11:50Z | ||
| 019ff79a-4738-7478-ad2b-627dc54b5191 | sr-ht-dolt-44n.6 | created | Eugene Blikh | NULL | 2026-08-12T23:11:50Z | ||
| 019ff79a-49d3-7995-93c1-3b596f058e6c | sr-ht-dolt-0qf.7 | created | Eugene Blikh | NULL | 2026-08-12T23:11:51Z | ||
| 019ff79d-be4b-77a5-a065-7db5ca4a0fd5 | sr-ht-dolt-0qf.1 | status_changed | Eugene Blikh | {"id":"sr-ht-dolt-0qf.1","title":"Extract the beads projection into a root beads/ package","description":"web/beads.go holds the one reading of the beads schema (fingerprint, lane bucketing, ready rule, status categories, dependency walk, event humanizer, filter model, row helpers) where a second consumer cannot reach it. Move it to a root beads/ package depending on browse/ and the stdlib only; web/beads.go and web/milestones.go keep their View implementations. Prerequisite of the MCP beads tools, of the cross-database ready page and of cross-database links.","design":"docs/DESIGN.mcp.md §8. Pure move plus export renames — web/beads_test.go and web/milestones_test.go move with it. A behaviour change smuggled into this commit makes the refactor unreviewable.","acceptance_criteria":"go test ./... green with the suites relocated; no behaviour diff in the rendered board (same fixtures, same output); beads/ imports neither net/http nor core.","status":"open","priority":1,"issue_type":"task","owner":"bigbes@gmail.com","created_at":"2026-08-12T20:11:37Z","created_by":"Eugene Blikh","updated_at":"2026-08-12T20:11:37Z"} | {"status":"in_progress"} | NULL | 2026-08-12T23:15:38Z |
| 019ff79d-dcfa-706d-9547-15adba5b8a1d | sr-ht-dolt-44n.3 | status_changed | Eugene Blikh | {"id":"sr-ht-dolt-44n.3","title":"browse: TableHash and the memory revision walk","description":"A memory row is (key, value) with no timestamp, so a two-month-old note is indistinguishable from one written this morning. Recover the date from history: add browse.TableHash (root.GetTable then Table.HashOf — O(1), reads no rows) to browse/ and both BrowseSession seams, then walk the log newest-first, skipping every commit whose config table hash is unchanged and reading rows only at the boundaries, to attribute each kv.memory key to the commit that last changed it.","design":"docs/DESIGN.views.md ch.2.1. Bound the walk at 500 commits (the most active tracker on this instance had 225 after three weeks, measured 2026-08-12 via dolt_log); an unresolved key renders \"older than the last 500 commits\" rather than a date the walk cannot support. The commit message is a claim; the table hash is the fact.","acceptance_criteria":"Fixture history where a key is written, changed, then left alone for several commits resolves to the changing commit; the not-found-within-walk arm is covered.","status":"open","priority":2,"issue_type":"task","owner":"bigbes@gmail.com","created_at":"2026-08-12T20:11:49Z","created_by":"Eugene Blikh","updated_at":"2026-08-12T20:11:49Z"} | {"status":"in_progress"} | NULL | 2026-08-12T23:15:45Z |
| 019ff79f-25ae-7036-9bcd-66793937ac23 | sr-ht-dolt-0qf.2 | status_changed | Eugene Blikh | {"id":"sr-ht-dolt-0qf.2","title":"authn: the tokens.sr.ht bearer plane and core.GrantRead","description":"/mcp is bearer-only, and this service has no bearer plane today: cookie, meta PAT over HTTP Basic, and the dolt keypair JWT on gRPC. Add ParseBearer plus a plane over sr-ht-ecore/bearer (working tokens issued by tokens.sr.ht, ClientID tokens.sr.ht, gated on the new core.GrantRead = \"dolt:read\") and a meta-PAT arm over the existing decode path, gated by authn.TokenGrantsAllow at core.AccessRO. A token that fails verification is a refusal, never a downgrade to anonymous.","design":"docs/DESIGN.mcp.md §4. sr-ht-ecore/bearer + /grants are already reachable (sr-ht-ecore is a direct dependency); cov.sr.ht authn/instance.go is the donor, including the consumer-side InstanceValidator seam. [tokens.sr.ht]origin absent means no such daemon: working tokens refused, meta PATs and anonymity still work.","acceptance_criteria":"Table-driven classification tests with no network: working token with/without dolt:read, meta PAT, garbage, absent header (anonymous), expired.","status":"open","priority":1,"issue_type":"task","owner":"bigbes@gmail.com","created_at":"2026-08-12T20:11:44Z","created_by":"Eugene Blikh","updated_at":"2026-08-12T20:11:44Z"} | {"status":"in_progress"} | NULL | 2026-08-12T23:17:10Z |
| 019ff7a0-6d25-70d6-afde-3b1f71aa6d9d | sr-ht-dolt-44n.3 | closed | Eugene Blikh | browse.TableHash landed in 97e0f8a (root.GetTable + Table.HashOf: covers schema, rows and secondary indexes, cheaper than GetRowDataHash). The revision walk itself, and adding TableHash to the BrowseSession seams, belong to the Memory view and are specified in docs/DESIGN.views.md ch.2.1 — tracked on sr-ht-dolt-b08. | NULL | 2026-08-12T23:18:33Z | |
| 019ff7a0-8706-7c9e-9c11-d2bb6d66b5b4 | sr-ht-dolt-b08 | updated | Eugene Blikh | {"id":"sr-ht-dolt-b08","title":"Memory view: surface bd memories kept in the config table","description":"`bd remember` stores agent memories in the beads `config` table as ordinary\nkey/value rows: the key is `kv.memory.\u003cslug\u003e`, the value is the memory text.\nToday they are reachable only through the generic table browser, mixed in with\nthe tracker's tuning knobs (`compact_*`, `issue_prefix`, ...), and every memory\nis squeezed into a single table cell — which is unreadable for the multi-line\nhandoff notes that make up most of them.\n\nGive them their own view, registered the same way Beads and Milestones are: a\nseparate `View` implementation whose tab appears next to them for any beads DB.\n","design":"Shape it on web/milestones.go, which is the smallest existing companion view:\n\n- `web/memory.go`: `memoryView` registered from `init()` via `RegisterView`.\n `Name() == \"memory\"`, `Label() == \"Memory\"`, `Template() == \"memory.html\"`.\n- `Applies`: the beads fingerprint (reuse `(\u0026beadsView{}).Applies`, as\n milestones does) plus a `config` table carrying `key` and `value` columns.\n `Applies` only sees table shapes, never rows, so a beads DB with no memories\n still gets the tab and renders an empty state — same contract milestones has.\n- `Build`: read `config` through `readRowsOptional`, keep rows whose key has the\n `kv.memory.` prefix, strip it for the display slug, sort by slug. Optional\n `?q=` substring filter over slug + text, and `?key=\u003cslug\u003e` for a single-memory\n detail, both parsed from the query values Build already receives.\n- Values are stored as written, so they carry both real newlines and literal\n `\\n` two-character escapes (agents type them into shell strings). Normalise\n both into paragraphs before rendering rather than dumping one blob.\n- `web/templates/memory.html`: same flat todo.sr.ht idiom and inlined\n `\u003cstyle\u003e` block as milestones.html, with the `viewtabs` partial and\n `\"Current\" \"memory\"`.\n- Tests next to `web/milestones_test.go`: fingerprint accept/reject, prefix\n filtering (a `compact_batch_size` row must not show up), escape handling,\n filter and detail modes, empty state.\n","acceptance_criteria":"A beads DB shows a Memory tab beside Beads and Milestones; it lists every kv.memory.* config row as a readable, multi-paragraph entry keyed by its slug; non-memory config rows never appear; a DB with no memories renders an empty state instead of a broken tab.","status":"open","priority":2,"issue_type":"feature","owner":"bigbes@gmail.com","created_at":"2026-08-10T11:01:48Z","created_by":"Eugene Blikh","updated_at":"2026-08-10T11:01:48Z"} | {"notes":"Owns the revision walk (docs/DESIGN.views.md ch.2.1) now that browse.TableHash exists (97e0f8a): add TableHash to web/deps.go BrowseSession (and mcpsrv/ports.go if that seam exists by then), walk the log newest-first skipping commits whose config table hash is unchanged, cap the walk at 500 commits, render 'older than the last 500 commits' when a key does not resolve. browse/ tests are stdlib style, not testify — new browse-side tests live in their own file if any are needed."} | NULL | 2026-08-12T23:18:40Z |