Skip to content
Steven Enamakel edited this page Oct 3, 2026 · 3 revisions

Recall and bounded context

A live turn should not receive an unbounded transcript. TinyHiveMind projects a bounded, attributed view from the host log. The host keeps the original rows and their global sequences; the library keeps no second journal.

Project a session

Implement SessionLog::read_before with newest-first pages, an exclusive before cursor, unique sequences, and the requested limit. project_session checks those page rules, filters by conversation and viewer, then returns chronological SessionMessage values. Transcript projection explains audience rules and why hidden asides leave visible redaction rows.

SharingState is a caller-owned watermark for later deltas. prepare_delta uses it to decide whether to send new rows or reinitialize a reader. The host commits the returned state after the corresponding rows are durable.

Keep a small useful account

The pinboard folds authored pin directives from visible rows. read_pinboard walks the host log within its scan bound and applies the same viewer rules as projection. Pins are a compact way to keep a constraint or decision in view; they do not change the source transcript.

read_thread_index gives a bounded index of a desk's threads. It uses the host log and is useful when a seat needs to find a conversation by its opening line. The digest module can fold older desk-visible rows into one bounded account behind a live tail. The host supplies Digester, accepts the result, and persists the account. A digest is a summary, so the original rows remain the source of truth.

The older find, select, search_messages, and search_threads APIs were removed. Application search belongs with the host's storage and authorization rules. Historical examples of those APIs remain in the recall specification. ADR 0027 records the decision.

Clone this wiki locally