Commit Graph

65 Commits

Author SHA1 Message Date
534c6f4cac
feat: persist spawned pod registry 2026-05-22 23:30:02 +09:00
0954a4804a
feat: wire pod metadata lifecycle writes 2026-05-22 22:29:08 +09:00
8aca67c97c
style: run cargo fmt 2026-05-22 22:03:27 +09:00
ac3ee5fcbe
feat: live auto-fork の marker 形式を確定(seq 比較 + forked_from 記録)
方針: 末尾 entry-count 比較で検知し、元 Segment は immutable のまま
(terminal marker を書き戻さない)。fork lineage は新 Segment の
SegmentStart.forked_from に前向きに記録するため、log だけから辿れる。
過去 fork と対称で、nested fork も marker 位置の調停が不要。

- session-store ensure_head_or_fork に at_turn_index 引数を追加し
  新 Segment へ forked_from を記録
- pod ensure_segment_head の auto-fork も同様に forked_from を記録
  (at_turn_index = writer の現 turn_count)
- fork_at の doc に「元 Segment を mutate しない」invariant を明記
- test: nested past-fork が祖先を不変に保つ / Pod 並行 writer drift で
  auto-fork し forked_from を記録 / 元 Segment に marker が書かれない
2026-05-20 06:42:09 +09:00
a6cc05f74c
feat: Session(Segment 群の grouping)を導入
- SessionId 型を新設、各 SegmentStart に session_id を持たせる
- compaction / 内部 fork は同 SessionId を継承、fork() は新 Session を発行
- Store API を (SessionId, SegmentId) ベースに、FsStore layout は
  <root>/<session_id>/<segment_id>.jsonl に
- Store::list_sessions / list_segments(session_id) / lookup_session_of を追加
- restore_by_segment shim を session-store に提供(pod-cli --session で使用)
- SegmentState に SegmentLocation (session_id, segment_id) を保持し ArcSwap で更新
- RestoredState に session_id: Option<SessionId> を追加
- Picker は Session 単位に列挙、leaf segment を解決して resume
2026-05-20 06:17:56 +09:00
d7ff25b6a7
update: 残存 Session 識別子の Segment 化(review follow-up)
レビュー指摘の通り、次の session-grouping-introduce で新 SessionId が
入る前に名称衝突を避けるため取り残しを掃除。

- PodError::Session{Empty,ScopeMissing} → Segment{Empty,ScopeMissing}
- ScopeLockError::SessionConflict → SegmentConflict
- Pod.session_state / SegmentState.set_session_id 系
- source_session_id / prev_session_id / ensure_session_head / short_session
- pod_cli の "Session ID:" 表示
- fs_store の sessions ローカル変数
2026-05-20 05:17:49 +09:00
0d7c37f673
update: SessionId / SessionStart / SessionOrigin 等を Segment 系名称へ
- Type/Function/Variantを Segment* 系へ統一
  - SessionId/SessionStart/SessionOrigin/SessionStartState/SessionState/SessionLogSink/SessionLockInfo
  - new_session_id / session_id / create_session* / list_sessions / lookup_session / update_session / find_by_session
  - protocol Event::SessionRotated → SegmentRotated、CompactDone.new_session_id → new_segment_id
- Module: session_log → segment_log / session → segment (file mv 含む)
  pod 側の session_log_sink → segment_log_sink も同様
- crate 名 (session-store)、CLI flag (--session)、ResumeWithSession (CLI tied) は据え置き
- session-tests/session_metrics_test 等の Store impl も追従
2026-05-20 05:06:04 +09:00
1d8a490504
update: 旧用語コメントの掃除と KNOWN_ISSUES 追記
- 残存していた head_hash / SessionHead 言及コメントを 3 箇所更新
- FsStore::read_entry_count の O(n) 計測コストを KNOWN_ISSUES に登録
2026-05-20 04:53:33 +09:00
d5dff6d17b
update: entry hash chain と session_head mutex を撤廃
- HashedEntry / EntryHash / compute_hash / build_chain 撤去、JSONL は 1 行 1 LogEntry
- SessionOrigin.at_hash → at_turn_index (TurnEnd 由来) に置換
- Pod 側 SessionHead mutex を ArcSwap<SessionId> + AtomicUsize の SessionState に置換
- ensure_head_or_fork は store の entry count と writer の append tally で判定
- session-store から sha2 / hex 依存、pod から parking_lot 依存を削除
2026-05-20 04:31:37 +09:00
282a857248
update: Paused→Run の interrupt 前処理を Pod::run に内包 2026-05-15 21:51:57 +09:00
7520dcad87
update: 書き込みの不要なasyncを削除 2026-05-14 19:16:48 +09:00
fe9cecb51a
update: SystemItem1本化 2026-05-14 14:36:29 +09:00
63e27b2dee
chore: cargo fmt 2026-05-14 03:36:08 +09:00
0f76142993
refactor: Podのメインループのリファクタリング 2026-05-14 03:27:49 +09:00
86fc889606
feat: add manifest output upload limits 2026-05-12 16:20:15 +09:00
aae36f2b56
update: memoryシステムの"Phase"表記を撤廃 2026-05-11 01:55:28 +09:00
c48b99cfe3
feat: Pos処理の非同期化・Busy状態の削除 2026-05-04 15:52:27 +09:00
0be30052c1
feat: Podのステータスを厳密にし、同期漏れを防ぐ 2026-05-04 12:55:11 +09:00
ac1a672973
feat: システムメッセージをTUIで表示させる 2026-05-04 12:04:09 +09:00
e8045776f2
feat: notify-history-persist実装 2026-05-03 19:27:22 +09:00
ee9c60bec2
Merge branch 'resume-scope-claim' into develop
# Conflicts:
#	TODO.md
2026-05-03 18:59:01 +09:00
c759307e40
feat: resume時のscope claimを過去の有効scopeに揃える 2026-05-03 17:12:36 +09:00
0c10150b02
feat: session-metrics完了 2026-05-03 15:56:06 +09:00
b9635c5002
feat: session-metrics実装 2026-05-03 15:10:43 +09:00
9010a920a4
feat: TUIに他Podからの通知を表示する 2026-05-03 12:45:05 +09:00
4b9b4f1450
update: memoryシステム周りのプロンプトの整理 2026-05-03 00:27:10 +09:00
0d66b397af
feat: dynamic-scopeの実装 2026-05-02 01:26:17 +09:00
00755cf1b8
update: manifestで一部値のzeroの扱いを変更 2026-05-02 00:08:46 +09:00
1e060914ce
feat: memory P2の修正 2026-05-01 23:22:49 +09:00
beb6b686a1
メモリPhase2の実装 2026-05-01 23:00:55 +09:00
c331936455
ファイル参照を与えた際に自動的に読ませる実装 2026-04-30 21:58:10 +09:00
d2ee84775b
cargo fmt 2026-04-29 23:20:25 +09:00
c70b0bdc5d
session-logリファクタのレビュー・修正 2026-04-29 22:55:36 +09:00
27e5074450 pod-registry-rename修正 2026-04-29 21:04:47 +09:00
71434b9d8b scope-lock -> pod-registry 2026-04-29 20:01:32 +09:00
b9575f1534 tuiからセッションを復帰する経路の実装 2026-04-29 19:03:03 +09:00
3c90729156 resumeの実装 2026-04-28 18:52:58 +09:00
092386d98f memory-phase1-extract修正 2026-04-28 13:12:21 +09:00
7d0b639fa4 cargo fmt 2026-04-27 22:51:07 +09:00
915061fd49 home-dirの整理 2026-04-27 21:45:30 +09:00
ee6d2d2100 submitをvec segmentを受け付ける形に変更 2026-04-27 11:03:58 +09:00
79987dd754 podのモジュール分割 2026-04-24 11:48:27 +09:00
539dc604e3 modelsとprovidersをカタログ化 2026-04-24 10:45:03 +09:00
f4d21cd994 protocol拡張の実装 2026-04-21 09:27:58 +09:00
bf072cc4f0 llm-model-config完了 2026-04-20 00:57:27 +09:00
b1e4572823 llm-model-configの実装 2026-04-19 23:32:14 +09:00
ebee0b95ef マニフェストを継承してPodをスポーンさせる 2026-04-19 18:01:47 +09:00
0284b5a76f TUIからPauseする実装 2026-04-19 14:27:53 +09:00
da021103e4 compact: compact worker をツール駆動マルチターンに再設計
段階 4〜9 を一括で実装:
- mark_read_required / add_reference / write_summary + read_file の 4 ツールで
  compact worker を駆動。結果は CompactWorkerContext に集約
- 新セッションの先頭を [summary, ...auto-read, references, ...retained] で構築
- デフォルトリファレンスは tracker.recent_files(5) から
- auto-read は compact_auto_read_budget で総量制限。超過は即エラー
- compact worker 自身は compact_worker_max_input_tokens で累計入力を制限
- 5 セクション要約フォーマットに system prompt を更新
- write_summary 未呼び出し / auto-read 空のときは 1 回追加プロンプトで促す
2026-04-19 09:26:55 +09:00
db2dd8a3c0 compact: retained_turns を retained_tokens に置換
保護単位をターン数からトークン量に変更。compact 時のカット位置は
Pod::split_for_retained() で UsageRecord を逆算ソースとして決定し、
ターン境界ではなくアイテム単位で切る。デフォルトは 8000 トークン。
2026-04-19 08:56:16 +09:00