|
32 | 32 | | [docs/THROUGHLINE_CLEAR_AUTO_HANDOFF_PLAN.md](docs/THROUGHLINE_CLEAR_AUTO_HANDOFF_PLAN.md) | **v0.4.0 の現行設計仕様** + 実装 TODO。auto path (`source='clear'`) + baton path (`/tl`) の 2 経路、env `THROUGHLINE_DISABLE_AUTO_HANDOFF` | |
33 | 33 | | [docs/PUBLIC_RELEASE_PLAN.md](docs/PUBLIC_RELEASE_PLAN.md) | 公開配布化プラン(§0 フォールバック禁止ルール、CLI 設計、バージョン別実装ステータス、E2E 検証手順、未完タスク) | |
34 | 34 | | [docs/THROUGHLINE_CODEX_FIRST_ROADMAP.md](docs/THROUGHLINE_CODEX_FIRST_ROADMAP.md) | **次フェーズの実装順 / TODO**。Codex primary 実用化、Codex Rewind 互換、Claude 側 finalization の順で進める | |
35 | | -| [docs/THROUGHLINE_CODEX_TRIM_ROLLBACK_FIX_PLAN.md](docs/THROUGHLINE_CODEX_TRIM_ROLLBACK_FIX_PLAN.md) | Codex rollback / inject incident の調査・修正履歴。controlled user marker の rollback 後 model-visible reproduction は、fresh app-server verify と VS Code reload/reconnect 後 verify の両方で未再現。これを受けて `trim --execute --host codex`、preflight、Codex Stop hook auto-refresh の overbroad blocker は解除済み。`compacted.replacement_history` retention と host primitive audit は診断として残すが、mutation 前拒否には使わない。実 execute は rollout/app-server turn-count guard、Throughline DB injectable memory、post-inject visibility、durable rollout evidence に基づき `execute-sent-live-only` / `execute-unverified` / `execute-durable-verified` を返す | |
| 35 | +| [docs/THROUGHLINE_CODEX_TRIM_ROLLBACK_FIX_PLAN.md](docs/THROUGHLINE_CODEX_TRIM_ROLLBACK_FIX_PLAN.md) | Codex rollback / inject incident の調査・修正履歴。controlled user marker の rollback 後 model-visible reproduction は、fresh app-server verify と VS Code reload/reconnect 後 verify の両方で未再現。これを受けて `trim --execute --host codex`、preflight、Codex Stop hook auto-refresh の overbroad blocker は解除済み。`compacted.replacement_history` retention、host primitive audit、rollout/app-server turn-count mismatch は診断として残すが、mutation 前拒否には使わない。実 execute は Throughline DB injectable memory、app-server turn-count による rollback 数補正、post-inject visibility、durable rollout evidence に基づき `execute-sent-live-only` / `execute-unverified` / `execute-durable-verified` を返す | |
36 | 36 | | [docs/THROUGHLINE_CODEX_TRIM_IMPLEMENTATION_PLAN.md](docs/THROUGHLINE_CODEX_TRIM_IMPLEMENTATION_PLAN.md) | Codex 両対応 + rollback trim の旧統合実装計画と実装履歴。完了済み成果と根拠として参照する | |
37 | 37 | | [docs/THROUGHLINE_CODEX_DUAL_SUPPORT.md](docs/THROUGHLINE_CODEX_DUAL_SUPPORT.md) | Claude / Codex 両対応の architecture brief。Claude path を置き換えず、Codex support を adapter / projection として追加する方針 | |
38 | 38 | | [docs/throughline-rollback-context-trim-insight.md](docs/throughline-rollback-context-trim-insight.md) | rollback を model-visible context の delete primitive と見る設計メモ。次フェーズでは Codex Rewind 互換の根拠として扱う | |
|
53 | 53 | | [src/transcript-reader.mjs](src/transcript-reader.mjs) | transcript JSONL パーサー | |
54 | 54 | | [src/transcript-usage.mjs](src/transcript-usage.mjs) | 最新 assistant の `message.usage` から実測トークン数を抽出、1M context 検出 | |
55 | 55 | | [src/codex-capture.mjs](src/codex-capture.mjs) | Codex rollout JSONL の active turns を Throughline DB の `bodies` に保存する capture adapter。`thread_rolled_back` 適用後の active thread だけを `codex:<thread_id>` session として再構成する | |
56 | | -| [src/codex-rollout-memory.mjs](src/codex-rollout-memory.mjs) | Codex rollout JSONL から active turns / restore-safety diagnostics / trim source を構築する。trim source では現在進行中の in-flight turn と latest rollback 後の未完了 assistant continuation を rollback 候補から除外し、app-server `thread/read` / `thread/resume` の完了済み turn count と合わせる | |
| 56 | +| [src/codex-rollout-memory.mjs](src/codex-rollout-memory.mjs) | Codex rollout JSONL から active turns / restore-safety diagnostics / trim source を構築する。trim source では現在進行中の in-flight turn と latest rollback 後の未完了 assistant continuation を rollback 候補から除外する。実 rollback 直前に app-server `thread/read` / `thread/resume` が同じ turn count を返し、rollout count と差がある場合は app-server 側の差分で rollback 数を補正する | |
57 | 57 | | [src/codex-usage.mjs](src/codex-usage.mjs) | Codex rollout の `event_msg` / `token_count` verified shape から monitor 用 usage sample を抽出する。open turn 中は `input_tokens + output_tokens` を live footprint として返し、`task_complete` 後は verified `input_tokens` のみに戻す。`token_count` が無い rollout では active rollout text の `chars / 4` estimate を `estimated: true` として返す | |
58 | 58 | | [src/codex-auto-refresh.mjs](src/codex-auto-refresh.mjs) | Codex automatic refresh 判定。verified usage が 75% 以上なら rollout source と Throughline DB memory を確認し、guarded rollback + Throughline DB memory inject を送る。estimate usage / estimated context window では実行しない。Codex `UserPromptSubmit` / `PostToolUse` hooks は同じ usage 判定で current-session `$throughline` 指示を注入し、token-monitor には依存しない | |
59 | 59 | | [src/codex-handoff.mjs](src/codex-handoff.mjs) | `HandoffRecord` から Codex-facing `throughline_handoff` v1 JSON block と Codex developer-message 用 active-work context を生成。`source='throughline'` / `trust='local'` / `kind='throughline_handoff'` を固定 | |
|
109 | 109 | | [src/cli/codex-vscode-rollback-smoke.mjs](src/cli/codex-vscode-rollback-smoke.mjs) | `codex-vscode-rollback-smoke` — rollout を read-only で読み、rollback event、rollback 済み user text、rollback 後 user turn、`restoreSafety.status = ok`、`--after-vscode-restart` がそろう場合だけ rollback 非復活 proof として `restartSafe: true` を返す。incident-shaped live run は `restore_safety_risk` として扱う。text output は retained / resurrected counts と risk type summary を出す | |
110 | 110 | | [src/cli/codex-sidecar-diagnostics.mjs](src/cli/codex-sidecar-diagnostics.mjs) | `codex-sidecar-diagnostics` — `codex-sidecar diagnostics --project <repo> --preset <preset>` を実行し、JSON status を返す。failure は explicit `unavailable` | |
111 | 111 | | [src/cli/codex-sidecar-dry-run.mjs](src/cli/codex-sidecar-dry-run.mjs) | `codex-sidecar-dry-run` — `review` / `risk-check` などの sidecar request を Codex App Server へ送らず正規化 JSON として確認する | |
112 | | -| [src/cli/trim.mjs](src/cli/trim.mjs) | `trim --dry-run` / `--preflight` / guarded `--execute`。Codex `--execute` は明示コマンドとして rollback + Throughline DB memory inject を送る。restore-safety diagnostics と host primitive audit は診断であり、実行前 blocker ではない。結果 status は `execute-sent-live-only` / `execute-unverified` / `execute-durable-verified` に分かれ、durable verified には rollout 上の新 rollback marker と active-work memory injection が必要。developer memory inject は item-level で、`thread/inject_items` が turn list を返さない場合は post-inject turn 増加を期待しない | |
| 112 | +| [src/cli/trim.mjs](src/cli/trim.mjs) | `trim --dry-run` / `--preflight` / guarded `--execute`。Codex `--execute` は明示コマンドとして rollback + Throughline DB memory inject を送る。restore-safety diagnostics、host primitive audit、rollout/app-server turn-count mismatch は診断であり、実行前 blocker ではない。結果 status は `execute-sent-live-only` / `execute-unverified` / `execute-durable-verified` に分かれ、durable verified には rollout 上の新 rollback marker と active-work memory injection が必要。developer memory inject は item-level で、`thread/inject_items` が turn list を返さない場合は post-inject turn 増加を期待しない | |
113 | 113 | | [src/token-monitor.mjs](src/token-monitor.mjs) | `monitor` — マルチセッション対応トークンモニター。Claude transcript / Codex rollout の mtime と live usage を state snapshot より優先するため、Stop hook 完了待ちではなく監視中に更新できる。Codex は `~/.codex/sessions/**/rollout-*.jsonl` も直接 discovery するため、Throughline state 未生成の現在 thread も表示できる。Claude / Codex の host を compact 表示し、Codex usage が estimate の場合は `est` / `win?`、Codex open turn では `input_tokens + output_tokens` を token count に overlay する。Codex 表示 ID は `codex:` prefix を外した raw thread id 先頭 8 桁。`--diag` で TTY/columns/env を出力(描画不具合の切り分け用) | |
114 | 114 | | [src/sc-detail.mjs](src/sc-detail.mjs) | `/sc-detail <時刻>` スラッシュコマンド([.claude/commands/sc-detail.md](.claude/commands/sc-detail.md) 経由) | |
115 | 115 |
|
@@ -207,7 +207,7 @@ global install 時は Codex 側も [src/cli/install.mjs](src/cli/install.mjs) |
207 | 207 | - Codex UserPromptSubmit / PostToolUse hooks は token-monitor に依存しない。hook 自身が当該 Codex session の rollout `token_count` を読み、verified 75% 以上なら同じ user turn または tool loop 継続前に `$throughline` workflow 実行指示を `additionalContext` で注入する。これは monitor を起動していないユーザーでも動く current-session trigger であり、モニターの表示値を自動発火の根拠にしない。 |
208 | 208 | - Codex Stop hook は DB capture / L1 summarize に加え、monitor 用 state も書く。`transcriptPath` は Claude transcript 用に残し、Codex rollout path は `rolloutPath` に保存する。monitor は state の `rolloutPath` と、state 未生成でも `~/.codex/sessions/**/rollout-*.jsonl` から直接 discovery した Codex rollout をライブに読み、`token_count` event がある場合は実測 usage として出し、無い場合だけ `estimated: true` の明示 estimate を出す。 |
209 | 209 | - Codex Stop hook 後の automatic refresh mutation は、verified usage が `75%` 以上なら rollback / inject を送る。estimate usage または estimated context window では実行しない。Codex native auto-compact より先に Throughline memory refresh を走らせつつ、70% warning よりは mutation を遅らせる。 |
210 | | -- Codex guarded trim の rollback source は rollout/app-server turn count guard に使うが、注入 memory は Throughline DB の `/tl` contract を正とする。`--session` 未指定時の Codex memory source は現在の `CODEX_THREAD_ID` / `THROUGHLINE_CODEX_THREAD_ID` に対応する `codex:<thread_id>` であり、同じ project の latest session へ fallback しない。古い turn は L1 summaries、直近 20 turn は L2 full bodies、L3 は reference only で、L3 bodies / tool payloads は注入しない。rollout preview を DB memory の代わりとして注入せず、DB memory が無い execute は mutation 前に拒否する。`codex-host-primitive-audit` と restore-safety diagnostics は表示するが、mutation 前 blocker にはしない。`doctor --codex` と `doctor --trim --host codex` はこの inject memory source / contract / L1-L2-L3 counts を表示する。 |
| 210 | +- Codex guarded trim の rollback source は rollout を使って計画するが、実 rollback 直前に app-server `thread/read` / `thread/resume` が同じ turn count を返し、rollout count と差がある場合は app-server 側の差分で `numTurns` を補正する。turn-count mismatch は診断であり mutation 前 blocker ではない。注入 memory は Throughline DB の `/tl` contract を正とする。`--session` 未指定時の Codex memory source は現在の `CODEX_THREAD_ID` / `THROUGHLINE_CODEX_THREAD_ID` に対応する `codex:<thread_id>` であり、同じ project の latest session へ fallback しない。古い turn は L1 summaries、直近 20 turn は L2 full bodies、L3 は reference only で、L3 bodies / tool payloads は注入しない。rollout preview を DB memory の代わりとして注入せず、DB memory が無い execute は mutation 前に拒否する。`codex-host-primitive-audit` と restore-safety diagnostics は表示するが、mutation 前 blocker にはしない。`doctor --codex` と `doctor --trim --host codex` はこの inject memory source / contract / L1-L2-L3 counts を表示する。 |
211 | 211 | - Codex trim の削減量は host tokenizer の厳密実測ではなく、現時点では rollout text の `chars / 4` heuristic estimate として dry-run に表示する。rollback candidate turns が 0 の場合は、削減量も 0 と明示する。 |
212 | 212 | - L2 → L1 要約は現行実装で唯一の subagent 的 external model call。`codex-sidecar` が configured の環境では `summarize-l1` preset を使い、使えない場合は従来通り Claude Haiku 経路を使う。`/tl` の in-flight memo はメイン Claude が slash command 手順で書くため sidecar 移行対象ではない |
213 | 213 | - Claude CLI を実際に呼ぶテスト / smoke は、明示的に必要な場合だけ実行し、モデルは Haiku を使う。他モデルを使う必要がある場合は根拠を残してから実行する |
|
0 commit comments