Commit Graph

291 Commits

Author SHA1 Message Date
f03e84a62a refactor: remove legacy plural log entries 2026-05-23 02:03:42 +09:00
530027c62b feat: persist spawned pod registry 2026-05-22 23:30:02 +09:00
12a4ba5edf feat: resume pods by name 2026-05-22 22:57:16 +09:00
5955695db8 feat: wire pod metadata lifecycle writes 2026-05-22 22:29:08 +09:00
08dc6b29f8 style: run cargo fmt 2026-05-22 22:03:27 +09:00
ec5b891fec feat: add pod metadata store backend 2026-05-22 22:03:11 +09:00
077efee13b 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
842e7a3c58 update: session-grouping review follow-up
- PickerOutcome::Picked から未使用の session_id を除去(pod-cli が lookup_session_of で再解決)
- picker preview が singular AssistantItem も拾うように
- fs_store layout doc に migration(後方互換なし、旧 flat sessions は破棄)を明記
- TaskStore は Session-lifetime、ScopedFs/Tracker は Pod-process lifetime と用語整理
- Pod::session_id / from_manifest_spawned のコメント補強
2026-05-20 06:29:37 +09:00
e8c16be475 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
a63f076856 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
ac1d8b1c7d update: Session-lifetime/scoped を Pod-lifetime に修正
タスクストア/ファイルトラッカーは compaction を跨いで Pod プロセス寿命まで生きる。
旧 SessionId = Segment の時代の表現を Pod-lifetime に正す。pod_cli の表示も Segment: に。
2026-05-20 05:06:38 +09:00
d5fcbc2125 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
903cfa3060 update: 旧用語コメントの掃除と KNOWN_ISSUES 追記
- 残存していた head_hash / SessionHead 言及コメントを 3 箇所更新
- FsStore::read_entry_count の O(n) 計測コストを KNOWN_ISSUES に登録
2026-05-20 04:53:33 +09:00
9bfbb2fb4c 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
0440d5c6dc Merge: invoke-turn-llmcall-semantics
# Conflicts:
#	crates/pod/src/controller.rs
2026-05-15 22:08:41 +09:00
4c8596db38 update: Paused→Run の interrupt 前処理を Pod::run に内包 2026-05-15 21:51:57 +09:00
49b78612d6 feat: Invoke marker と LlmCall callback を導入し AgentTurn セマンティクスを明確化
- protocol: InvokeKind enum、Event::InvokeStart / LlmCallStart / LlmCallEnd 追加
- llm-worker: Worker.llm_call_count と on_llm_call_start/end callback、turn_count を AgentTurn 数として doc 更新
- session-store: LogEntry::Invoke { ts, trigger } 追加 (replay は marker のみで state 不変)
- pod: run/run_for_notification 開始時に Invoke marker commit、PendingRun::RunForNotification(InvokeKind) で kind を伝搬
- pod ipc: sink + server で Invoke エントリーを Event::InvokeStart として broadcast
- tui: 新 Event 3種を no-op で受理 (UI 設計はチケット範囲外)
2026-05-15 07:04:26 +09:00
4ebc2c96b3 update: Controllerで入力のValidationを行っていた部分をPod側に移す 2026-05-15 05:33:33 +09:00
8e8c0887de update: 親にターン完了を通達する経路の整理 2026-05-15 04:38:53 +09:00
3143353ddc update: エントリの単数化のフォローアップ 2026-05-14 19:42:23 +09:00
f35d99900f update: 書き込みの不要なasyncを削除 2026-05-14 19:16:48 +09:00
904ea6e326 update: SystemItem1本化 2026-05-14 14:36:29 +09:00
e32b210d50 chore: cargo fmt 2026-05-14 03:36:08 +09:00
a02f34437c fix: 実態にそぐわないEvent::Entryを実装した構造を訂正 2026-05-14 03:35:52 +09:00
1ef094f039 refactor: Podのメインループのリファクタリング 2026-05-14 03:27:49 +09:00
d2149d11d3 merge: file-ref-directory 2026-05-13 06:30:45 +09:00
ada2988105 merge: pod-cli-manifest-flags 2026-05-13 06:30:45 +09:00
21a78fb19e refactor: PodControllerの構造のリファクタリング 2026-05-13 06:07:38 +09:00
dff72e291b feat: handle directory file refs 2026-05-13 02:57:58 +09:00
c6a9007b58 feat: organize pod manifest cli flags 2026-05-13 02:57:50 +09:00
d1c7297f87 feat: Languageインストラクションの追加 2026-05-13 02:27:30 +09:00
3c4a34b13b update: fmt + memoryに用いる言語の構成 2026-05-13 01:57:04 +09:00
076cf9af18 fix: compact時にToolCallとOutputの間でCutしてしまう問題 2026-05-13 00:59:02 +09:00
4bdbac6597 refactor: extract shared lint record primitives 2026-05-12 21:56:25 +09:00
5882341b21 feat: add manifest output upload limits 2026-05-12 16:20:15 +09:00
7a76276539 docs(memory): fix knowledge dir path in collect_resident_knowledge doc 2026-05-12 15:07:39 +09:00
668bde46f4 feat(pod): wire knowledge slugs into # completion 2026-05-12 14:45:46 +09:00
eb791f9e80 refactor: extract workflow crate 2026-05-11 22:49:07 +09:00
4d6d5b631c fix: bundle anthropic assistant bursts 2026-05-11 22:22:36 +09:00
da4f4cc954 feat: add memory usage event metrics 2026-05-11 21:29:48 +09:00
646b47b40f fix: remove remaining memory phase wording 2026-05-11 01:57:39 +09:00
4d61d044ec update: memoryシステムの"Phase"表記を撤廃 2026-05-11 01:55:28 +09:00
0b79e0ed65 feat: extract worker サーキットブレーカーを占有量ベースに統一 2026-05-11 01:20:37 +09:00
cac1f4d4fe review: compact-worker-occupancy-cap (set_max_turns 分岐削除) 2026-05-11 00:56:41 +09:00
e664def920 feat: compact worker サーキットブレーカーを占有量ベースに統一 2026-05-11 00:43:16 +09:00
92cee690f8 feat: client-crateの実装 2026-05-10 00:57:50 +09:00
ced26b952e feat: Toolsのシンボリックリンク対応 2026-05-09 04:21:56 +09:00
805be47128 feat: パターンベースのツール権限制御を追加 2026-05-09 03:20:02 +09:00
8ebdd47fbb feat: compactのプログレス表示 2026-05-09 03:11:53 +09:00
6c31264377 update: Workflowディレクトリ修正のフォローアップ 2026-05-08 00:59:08 +09:00
b6b4168503 feat: Workflowの読み取り位置変更の実装 2026-05-08 00:15:50 +09:00
1ed45032be feat: TUIのmarkdown対応 2026-05-05 18:30:25 +09:00
85fe1a094c update: Agent skills実装のレビュー・対応 2026-05-05 13:54:02 +09:00
98018972aa feat: agent skillsの互換実装 2026-05-05 13:16:10 +09:00
5b1324a630 fix: Reasoningの永続化のスキーマのミスを修正 2026-05-05 12:30:29 +09:00
94bb8804f4 update: Reasoningコンテキスト管理のレビュー・対応 2026-05-04 23:05:08 +09:00
30023349b9 feat: Reasoningのコンテキスト管理の対応 2026-05-04 21:31:44 +09:00
eb9bd84b05 feat: Task表示のレビュー・修正 2026-05-04 17:28:39 +09:00
17a7744da1 feat: TUI上に進行中のTaskを表示する実装 2026-05-04 17:06:02 +09:00
3266ddb2d4 feat: Pos処理の非同期化・Busy状態の削除 2026-05-04 15:52:27 +09:00
344dca6ffa Merge branch 'llm-worker-transient-retry' into develop 2026-05-04 13:16:26 +09:00
09e465d583 feat: Podのステータス同期の修正 2026-05-04 12:55:29 +09:00
4eb73fa552 feat: Podのステータスを厳密にし、同期漏れを防ぐ 2026-05-04 12:55:11 +09:00
c2caaa21a0 feat(llm-worker): HTTP transient エラーへのリトライを追加
`transport.rs` の HTTP 送信〜ステータスチェック区間に指数バックオフ
+ フルジッターのリトライループを追加する。SSE 読み出し開始後 (
`bytes_stream()` 以降) のエラーは従来どおりそのまま流す。

- `is_retryable(&ClientError)`: 408/425/429/500/502/503/504/529 と
  reqwest の connect/timeout のみ true
- `RetryPolicy` (default: base 500ms / cap 10s / max_attempts 4 /
  total_timeout 30s)
- `Retry-After` ヘッダ (秒数) があればバックオフを上書き
- リトライ発火ごとに warn! でステータス・attempt・wait を出す

ref: tickets/llm-worker-transient-retry.md
2026-05-04 12:45:33 +09:00
20097e8296 Merge branch 'tui-system-message-render' into develop 2026-05-04 12:10:17 +09:00
8870af800f feat: システムメッセージをTUIで表示させる 2026-05-04 12:04:09 +09:00
56f9bab7b7 update: Taskツールの説明を更新 2026-05-04 11:32:04 +09:00
5efe0e4910 feat: tuiのトークン集計表示の修正 2026-05-04 00:01:37 +09:00
45ef661651 update: Taskツール群の説明を更新 2026-05-03 22:09:45 +09:00
302a1a7f58 Merge branch 'session-todo-tools' into develop
# Conflicts:
#	tickets/session-todo.md
2026-05-03 21:50:30 +09:00
5fbb9c47dd update: tuiからspawnする際にエラー詳細が落ちていた問題を修正 2026-05-03 21:47:54 +09:00
ada1fe6c63 fix: TaskStore snapshot を JSON ブロック化 + 構造ラウンドトリップテスト追加 2026-05-03 21:33:50 +09:00
fde55c96d4 fix: TaskStore snapshot を compact 後 history の末尾に置いて retained 中の TaskCreate 重複を防ぐ 2026-05-03 21:26:49 +09:00
05c2605aae feat: notify-history-persist実装 2026-05-03 19:27:22 +09:00
d1a9b622d4 feat: セッション内 Task ツール (TaskCreate/List/Get/Update + 履歴 replay + compact 跨ぎ) 2026-05-03 19:03:52 +09:00
30bb096513 Merge branch 'resume-scope-claim' into develop
# Conflicts:
#	TODO.md
2026-05-03 18:59:01 +09:00
eb054b3e88 fix: resume-scope-claim レビュー指摘対応 (deny セマンティクス doc・破損 snapshot の警告ログ) 2026-05-03 18:56:21 +09:00
557d5da391 feat: resume時のscope claimを過去の有効scopeに揃える 2026-05-03 17:12:36 +09:00
3f987e9885 feat: session-metrics完了 2026-05-03 15:56:06 +09:00
a86f69fd8d feat: session-metrics実装 2026-05-03 15:10:43 +09:00
cae18a4339 feat: TUIに他Podからの通知を表示する 2026-05-03 12:45:05 +09:00
97a1c10ef7 update: tuiの文字入力のCtrlブロックを追加 2026-05-03 00:44:38 +09:00
eeb570c71f update: memoryシステム周りのプロンプトの整理 2026-05-03 00:27:10 +09:00
0e7be01807 update: Consolidationの不要なToken上限の削除 2026-05-02 23:48:33 +09:00
c79c54ba9d update: codexのキャッシュ利用が出来てなかった問題 2026-05-02 03:23:44 +09:00
f1d8f42fd5 fix: tuiからのPod作成の挙動を修正・開発時にcargo runでpodを起動する経路を実装 2026-05-02 02:13:30 +09:00
14862fbc37 Merge branch 'workflow-impl' into develop
# Conflicts:
#	crates/pod/src/controller.rs
#	crates/pod/src/pod.rs
2026-05-02 01:47:49 +09:00
2ef397b562 update: workflowの実装修正 2026-05-02 01:38:50 +09:00
ba5b8db9cf feat: dynamic-scopeの実装修正 2026-05-02 01:33:32 +09:00
189ee43a0c feat: dynamic-scopeの実装 2026-05-02 01:26:17 +09:00
6bf1f9a110 fix: SpawnPodの起動経路の問題・を修正 2026-05-02 01:09:57 +09:00
8307ca965c Implement workflow MVP 2026-05-02 00:46:47 +09:00
e97f803104 update: manifestで一部値のzeroの扱いを変更 2026-05-02 00:08:46 +09:00
c4bc994cab fix(llm-worker): openai_responsesのroleの最新の投影を反映 2026-05-01 23:55:26 +09:00
6d84d4df19 chore: dev-depsの整理 2026-05-01 23:50:14 +09:00
6d15d1e2b6 chore: 依存パッケージの集約 2026-05-01 23:35:46 +09:00
ffda357218 Merge branch 'tui-mouse-scroll' into develop 2026-05-01 23:22:58 +09:00
09eb29b0b7 feat: memory P2の修正 2026-05-01 23:22:49 +09:00
0e98d67a5f feat(tui): マウスホイールでスクロールする実装 2026-05-01 23:14:16 +09:00
31eeded4a6 メモリPhase2の実装 2026-05-01 23:00:55 +09:00