~bigbes/sr-ht-dolt · parade

main · last commit 5 hours ago · ti41arbu

← Back to the parade

sr-ht-dolt-44n.3 browse: TableHash and the memory revision walk Past Stand

status: closed P2 task
bd reopen sr-ht-dolt-44n.3
Created byEugene Blikh
Ownerbigbes@gmail.com
Created2026-08-12T20:11:49Z
Started2026-08-12T20:15:46Z
Updated2026-08-12T20:18:34Z
Closed2026-08-12T20:18:34Z
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.

Depends on

  • sr-ht-dolt-44n — Beads views, round two: stream, memory, freshness, cross-database parent-child closed

Depended on by

  • sr-ht-dolt-b08 — Memory view: surface bd memories kept in the config table blocks

Unblocks — everything waiting on this, transitively

  • 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

No comments.

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.
  • Eugene Blikh added under epic sr-ht-dolt-44n · 2026-08-12T23:11:48Z
  • Eugene Blikh created the issue · 2026-08-12T23:11:48Z
  • Eugene Blikh sr-ht-dolt-b08 now depends on this · 2026-08-12T23:12:58Z
  • Eugene Blikh changed status to in_progress · 2026-08-12T23:15:45Z
  • Eugene Blikh closed the issue · 2026-08-12T23:18:33Z
    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.
Stored rows — what this pane was built from, as read
issues 1 row
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
dependencies 2 rows
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
events 3 rows
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