main · last commit
5 hours ago ·
ti41arbu
sr-ht-dolt-44n.3 browse: TableHash and the memory revision walk
Past Stand
bd reopen sr-ht-dolt-44n.3
| Created by | Eugene Blikh |
| Owner | bigbes@gmail.com |
| Created | 2026-08-12T20:11:49Z |
| Started | 2026-08-12T20:15:46Z |
| Updated | 2026-08-12T20:18:34Z |
| Closed | 2026-08-12T20:18:34Z |
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.
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.
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.
sr-ht-dolt-44n
— Beads views, round two: stream, memory, freshness, cross-database
parent-child
closed
sr-ht-dolt-b08
— Memory view: surface bd memories kept in the config table
blocks
sr-ht-dolt-b08
— Memory view: surface bd memories kept in the config table
blocks
closed
sr-ht-dolt-0qf.8
— mcpsrv: list_memories over the shared memory projection
blocks
closed
| id | sr-ht-dolt-44n.3 |
| content_hash | 7ba664f882da02bf0a032cb7e237a7e829cace479e7bd3f7878c7726b24a9887 |
| 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. |
| notes | |
| status | closed |
| priority | 2 |
| issue_type | task |
| assignee | NULL |
| estimated_minutes | NULL |
| created_at | 2026-08-12T20:11:49Z |
| created_by | Eugene Blikh |
| owner | bigbes@gmail.com |
| updated_at | 2026-08-12T20:18:34Z |
| closed_at | 2026-08-12T20:18:34Z |
| closed_by_session | |
| external_ref | NULL |
| spec_id | |
| compaction_level | 0 |
| compacted_at | NULL |
| compacted_at_commit | NULL |
| original_size | NULL |
| sender | |
| ephemeral | 0 |
| wisp_type | |
| pinned | 0 |
| is_template | 0 |
| mol_type | |
| work_type | |
| source_system | |
| metadata | �{} |
| source_repo | |
| close_reason | 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. |
| event_kind | |
| actor | |
| target | |
| payload | |
| await_type | |
| await_id | |
| timeout_ns | 0 |
| waiters | |
| hook_bead | |
| role_bead | |
| agent_state | |
| last_activity | NULL |
| role_type | |
| rig | |
| due_at | NULL |
| defer_until | NULL |
| no_history | 0 |
| started_at | 2026-08-12T20:15:46Z |
| is_blocked | 0 |
| id | bdc826cd-af62-5e04-aaa7-3e0e2a43f929 |
| issue_id | sr-ht-dolt-b08 |
| type | blocks |
| created_at | 2026-08-12T23:12:58Z |
| created_by | Eugene Blikh |
| metadata | �{} |
| thread_id | |
| depends_on_issue_id | sr-ht-dolt-44n.3 |
| depends_on_wisp_id | NULL |
| depends_on_external | NULL |
| id | cc290ff8-a42b-58dc-9525-1ba7656efcd4 |
| issue_id | sr-ht-dolt-44n.3 |
| type | parent-child |
| created_at | 2026-08-12T23:11:48Z |
| created_by | Eugene Blikh |
| metadata | �{} |
| thread_id | |
| depends_on_issue_id | sr-ht-dolt-44n |
| depends_on_wisp_id | NULL |
| depends_on_external | NULL |
| id | 019ff79a-3eb7-788f-891c-096df08e7223 |
| issue_id | sr-ht-dolt-44n.3 |
| event_type | created |
| actor | Eugene Blikh |
| old_value | |
| new_value | |
| comment | NULL |
| created_at | 2026-08-12T23:11:48Z |
| id | 019ff79d-dcfa-706d-9547-15adba5b8a1d |
| issue_id | sr-ht-dolt-44n.3 |
| event_type | status_changed |
| actor | Eugene Blikh |
| old_value | {"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"} |
| new_value | {"status":"in_progress"} |
| comment | NULL |
| created_at | 2026-08-12T23:15:45Z |
| id | 019ff7a0-6d25-70d6-afde-3b1f71aa6d9d |
| issue_id | sr-ht-dolt-44n.3 |
| event_type | closed |
| actor | Eugene Blikh |
| old_value | |
| new_value | 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. |
| comment | NULL |
| created_at | 2026-08-12T23:18:33Z |
No comments.
Close reason