summaryrefslogtreecommitdiff
path: root/docs/Design.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/Design.md')
-rw-r--r--docs/Design.md12
1 files changed, 12 insertions, 0 deletions
diff --git a/docs/Design.md b/docs/Design.md
index f370b74..b9a05c7 100644
--- a/docs/Design.md
+++ b/docs/Design.md
@@ -96,12 +96,24 @@ content または metadata を部分更新する。`expected_revision` が一致
次の view を持つ。
- `history`: session の時系列ページ。安定 cursor を返す
+- `content`: message contentをUTF-8 byte offsetとbounded limitで分割取得する
- `context`: target の前後メッセージと incoming/outgoing relation を返す。relation depth は 0~2
- `sessions`: session ごとの件数、kind 集計、代表 summary、最終時刻を返す
- `export`: versioned JSONL をページ出力する互換 view
レスポンスは 8 MiB budget を超えない位置でページを区切る。
+`content` viewは既定4096 bytes、最大65536 bytesを返す。offsetは0、末尾、またはUTF-8
+code point境界だけを受理し、limit位置がcode point途中なら直前の境界まで戻す。limitが
+1 code pointより小さい場合だけ、そのcode pointを完全に返して進捗を保証する。各responseの
+`revision`と`total_bytes`を返し、2回目以降の`expected_revision`で途中更新を`CONFLICT`として
+検出する。このviewは永続data、access履歴、revisionを変更しない。message検索に必要な既存の
+in-memory indexは、他のread viewと同様に必要時だけ構築する。
+
+このview追加は既存toolへのadditive schema changeだけである。既存viewのinput、response、
+cursor semanticsと、保存recordおよびsnapshotのformat versionは変更しないため、data migration
+とrebuildは不要であり、旧binaryと新binaryは同じdataを読み込める。
+
### `search_messages`
content、summary、tags を対象に検索する。session、kind、tier、tag、minimum importance で絞り込める。matched fields、score と field 別 score 内訳、任意の前後 context を返す。