throughline 0.4.12 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex-sidecar.yml +5 -0
- package/CHANGELOG.md +106 -0
- package/README.ja.md +37 -21
- package/README.md +47 -26
- package/docs/00_overview.md +34 -0
- package/docs/{L1_L2_L3_REDESIGN.md → 01_l1_l2_l3_redesign.md} +3 -3
- package/docs/{THROUGHLINE_CLEAR_AUTO_HANDOFF_PLAN.md → 02_clear_auto_handoff_plan.md} +6 -6
- package/docs/{INHERITANCE_ON_CLEAR_ONLY.md → 03_inheritance_on_clear_only.md} +3 -3
- package/docs/{PUBLIC_RELEASE_PLAN.md → 04_public_release_plan.md} +3 -3
- package/docs/{THROUGHLINE_CODEX_FIRST_ROADMAP.md → 05_codex_first_roadmap.md} +9 -9
- package/docs/{THROUGHLINE_CODEX_TRIM_ROLLBACK_FIX_PLAN.md → 06_codex_trim_rollback_fix_plan.md} +6 -6
- package/docs/{THROUGHLINE_CODEX_TRIM_IMPLEMENTATION_PLAN.md → 07_codex_trim_implementation_plan.md} +10 -10
- package/docs/{THROUGHLINE_CODEX_DUAL_SUPPORT.md → 08_codex_dual_support.md} +8 -8
- package/docs/{throughline-rollback-context-trim-insight.md → 09_rollback_context_trim_insight.md} +5 -5
- package/docs/10_transcript_injection_plan.md +446 -0
- package/docs/{THROUGHLINE_CODEX_MONITOR_IMPLEMENTATION_PLAN.md → 11_codex_monitor_implementation_plan.md} +1 -1
- package/docs/12_desktop_clear_handoff_plan.md +215 -0
- package/docs/adr/0001-claude-primary-codex-adapter.md +22 -0
- package/docs/archive/README.md +3 -3
- package/docs/archive/THROUGHLINE_NEXT_STEPS.md +3 -3
- package/package.json +2 -1
- package/rag/01-hooks/raw/hooks-reference-extract.md +250 -0
- package/rag/01-hooks/raw/session-end-reasons.md +21 -0
- package/rag/02-messages-api/raw/messages-api-extract.md +126 -0
- package/rag/03-settings/raw/sessions-extract.md +64 -0
- package/rag/04-skills/raw/initialUserMessage-investigation.md +101 -0
- package/rag/INDEX.md +164 -0
- package/src/baton.mjs +2 -2
- package/src/db.mjs +2 -2
- package/src/hook-entrypoints.test.mjs +390 -0
- package/src/package-files.test.mjs +1 -0
- package/src/prompt-submit.mjs +132 -5
- package/src/resume-context.mjs +23 -6
- package/src/resume-context.test.mjs +21 -5
- package/src/session-merger.mjs +1 -1
- package/src/session-start.mjs +155 -14
- package/src/spike-transcript-writer.mjs +196 -0
- package/src/spike-transcript-writer.test.mjs +298 -0
- package/src/state-file.mjs +1 -1
- package/src/token-monitor.mjs +1 -1
- package/src/transcript-reader.mjs +71 -0
- package/src/turn-backfill.mjs +131 -0
- package/src/turn-backfill.test.mjs +213 -0
- package/src/turn-processor.mjs +28 -40
- /package/docs/{throughline-codex-trim-rollback-incident-report.md → audit-2026-05/codex-trim-rollback-incident-report.md} +0 -0
package/docs/{THROUGHLINE_CODEX_TRIM_ROLLBACK_FIX_PLAN.md → 06_codex_trim_rollback_fix_plan.md}
RENAMED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
対象インシデント:
|
|
6
6
|
|
|
7
|
-
- [
|
|
7
|
+
- [audit-2026-05/codex-trim-rollback-incident-report.md](audit-2026-05/codex-trim-rollback-incident-report.md)
|
|
8
8
|
- Codex thread: `019dfd6f-640e-7dd3-b163-3f9add39fde7`
|
|
9
9
|
- 報告元プロジェクト: `/home/kite/projects/Spotter`
|
|
10
10
|
|
|
@@ -76,11 +76,11 @@ controlled marker では VS Code restart 後の model-visible 復活も再現し
|
|
|
76
76
|
実装修正後に追従更新が必要な docs:
|
|
77
77
|
|
|
78
78
|
- `CLAUDE.md`
|
|
79
|
-
- `docs/
|
|
80
|
-
- `docs/
|
|
81
|
-
- `docs/
|
|
82
|
-
- `docs/
|
|
83
|
-
- `docs/
|
|
79
|
+
- `docs/05_codex_first_roadmap.md`
|
|
80
|
+
- `docs/07_codex_trim_implementation_plan.md`
|
|
81
|
+
- `docs/09_rollback_context_trim_insight.md`
|
|
82
|
+
- `docs/04_public_release_plan.md`
|
|
83
|
+
- `docs/audit-2026-05/codex-trim-rollback-incident-report.md`
|
|
84
84
|
|
|
85
85
|
## フェーズ 0: 危険な変更処理を止める
|
|
86
86
|
|
package/docs/{THROUGHLINE_CODEX_TRIM_IMPLEMENTATION_PLAN.md → 07_codex_trim_implementation_plan.md}
RENAMED
|
@@ -5,20 +5,20 @@
|
|
|
5
5
|
## この文書の位置づけ
|
|
6
6
|
|
|
7
7
|
この文書は **これまでの統合実装計画と実装履歴** です。
|
|
8
|
-
2026-05-06 以降の次フェーズ実装順、TODO、進捗チェックは [
|
|
8
|
+
2026-05-06 以降の次フェーズ実装順、TODO、進捗チェックは [05_codex_first_roadmap.md](05_codex_first_roadmap.md) を正として扱う。
|
|
9
9
|
|
|
10
10
|
元文書:
|
|
11
11
|
|
|
12
|
-
- [
|
|
13
|
-
- [
|
|
12
|
+
- [08_codex_dual_support.md](08_codex_dual_support.md)
|
|
13
|
+
- [09_rollback_context_trim_insight.md](09_rollback_context_trim_insight.md)
|
|
14
14
|
|
|
15
15
|
関係性:
|
|
16
16
|
|
|
17
17
|
| 文書 | この計画での扱い |
|
|
18
18
|
|---|---|
|
|
19
|
-
| [
|
|
20
|
-
| [
|
|
21
|
-
| [
|
|
19
|
+
| [05_codex_first_roadmap.md](05_codex_first_roadmap.md) | 2026-05-06 以降の次フェーズ計画。Codex primary 実用化を先行し、Codex Rewind 互換を完成させてから Claude 側を詰める |
|
|
20
|
+
| [08_codex_dual_support.md](08_codex_dual_support.md) | Claude / Codex 両対応の architecture brief。主に Phase 1-5 に対応 |
|
|
21
|
+
| [09_rollback_context_trim_insight.md](09_rollback_context_trim_insight.md) | rollback trim の design insight。主に Phase 6-8 に対応 |
|
|
22
22
|
|
|
23
23
|
この計画は両者の合流点であり、Claude contract 固定を先行させる。rollback trim は実測 spike を通るまで本線実装にしない。
|
|
24
24
|
|
|
@@ -45,7 +45,7 @@ rollback trim は最終的な理想に近いが、host primitive の実測が必
|
|
|
45
45
|
- Claude hooks、slash command、transcript parsing、handoff baton、SessionStart resume behavior を Codex 用に置き換えない。
|
|
46
46
|
- Claude-facing field / command / DB semantics を rename しない。
|
|
47
47
|
- Codex 対応は adapter / projection として足す。
|
|
48
|
-
- `thread/rollback` / `thread/inject_items` は live host primitive として実測済み。2026-05-06 incident 後に Codex guarded execute / auto-refresh は一時停止したが、2026-05-08 の controlled rollback model-visible smoke が再現しなかったため、過剰 blocker は解除済み。現在は [
|
|
48
|
+
- `thread/rollback` / `thread/inject_items` は live host primitive として実測済み。2026-05-06 incident 後に Codex guarded execute / auto-refresh は一時停止したが、2026-05-08 の controlled rollback model-visible smoke が再現しなかったため、過剰 blocker は解除済み。現在は [06_codex_trim_rollback_fix_plan.md](06_codex_trim_rollback_fix_plan.md) を優先し、DB memory を必須にする。rollout/app-server turn-count mismatch は診断と app-server count 由来の rollback `numTurns` 補正に使う。Claude `/rewind` 自動化はまだ有効化しない。
|
|
49
49
|
- fallback や silent recovery で失敗を隠さない。互換モードは条件と理由を明示する。
|
|
50
50
|
|
|
51
51
|
## 運用ルール
|
|
@@ -370,7 +370,7 @@ Phase 6 result (2026-05-06):
|
|
|
370
370
|
- `thread/rollback` は persisted thread を直接対象にすると `thread not found` を返す。`thread/resume` で loaded thread にしてから呼ぶ必要がある。
|
|
371
371
|
- 検証 thread `019dfaba-f87e-7f41-a144-d5ca7c6dd7f9` で、1 turn を `thread/rollback { numTurns: 1 }` し、`thread/read includeTurns:true` が 0 turns を返すことを確認した。
|
|
372
372
|
- `thread/inject_items` に raw Responses API item `{ type: "message", role: "developer", content: [{ type: "input_text", text: "..." }] }` を渡し、次の `turn/start` で injected memory が model-visible になることを確認した。marker `TL_PHASE6_INJECT_OK` を正しく返した。
|
|
373
|
-
- その後の Codex primary 実装で、`codex-resume` が描画する active-work developer message も実 Codex host で model-visible になることを確認した。marker `TL_CODEX_VISIBLE_REAL_20260506_C` が `item/agentMessage/delta` に出た。詳細な実測値は [
|
|
373
|
+
- その後の Codex primary 実装で、`codex-resume` が描画する active-work developer message も実 Codex host で model-visible になることを確認した。marker `TL_CODEX_VISIBLE_REAL_20260506_C` が `item/agentMessage/delta` に出た。詳細な実測値は [05_codex_first_roadmap.md](05_codex_first_roadmap.md) の Phase 3 result を正とする。
|
|
374
374
|
- さらに `thread/inject_items` 後にもう一度 `thread/resume` してから `turn/start` を呼ぶ smoke も追加し、実 Codex host で marker `TL_CODEX_RESUME_AFTER_INJECT_REAL_20260506` が `item/agentMessage/delta` に出ることを確認した。
|
|
375
375
|
- Codex host primitive は live app-server 上では実測済み。ただし restart-safe durability は未証明。現在は明示 `--codex-thread-id` または env thread identity と Throughline DB memory が live mutation の最低条件であり、rollout/app-server turn-count mismatch は診断と rollback `numTurns` 補正に使う。durable success は別分類で扱う。2026-05-06 incident 後はいったん Codex Stop hook 後の automatic refresh mutation を blocked としたが、2026-05-08 unblock 後は guarded rollback / inject を試行する。2026-05-09 以降は Codex native auto-compact より先に Throughline refresh を走らせるため、verified usage 75% 以上を既定閾値にする。
|
|
376
376
|
- Claude `/rewind conversation only` は手動 UX として扱う。外部ツールからの自動化 surface は未確認。Claude host の automatic rollback / inject は `manual-only`。
|
|
@@ -451,7 +451,7 @@ Phase 8 partial implementation result (2026-05-06):
|
|
|
451
451
|
- `throughline codex-threads [--json] [--all-projects] [--limit N]` を追加した。これは `~/.codex/session_index.jsonl` と `~/.codex/sessions/**/rollout-*.jsonl` を read-only に読み、現在 project の Codex thread id 候補を表示する。候補を出すだけで、自動 trim の対象 thread として採用しない。
|
|
452
452
|
- `--host codex --codex-thread-id <id>` の計画作成では、明示 thread id と現在 project に一致する rollout JSONL があれば `codex-rollout` を trim source として使う。これにより Throughline DB の `bodies` が 0 件でも、Codex 側の active turns から rollback candidate と memory preview を作れる。
|
|
453
453
|
- `codex-rollout` source は `event_msg:task_started` を turn として扱い、`event_msg:thread_rolled_back` を適用して active turns を再構成する。rollback 済み tail は current memory preview に戻さない。
|
|
454
|
-
- Claude slash command
|
|
454
|
+
- Claude slash command `.claude/commands/tl-trim.md` を追加し、現行 Claude が current-work memo を書いてから `throughline trim --dry-run --host claude --memo-stdin` を呼ぶ dry-run UX にした。
|
|
455
455
|
- `throughline install` / `uninstall` は `/tl-trim` も配布 / 削除する。
|
|
456
456
|
- `throughline doctor --trim --host claude|codex|unknown` を追加し、default keep-recent、automatic rollback / inject 可否、manual procedure を表示する。Codex host では `THROUGHLINE_CODEX_THREAD_ID` / `CODEX_THREAD_ID` の検出結果も表示する。
|
|
457
457
|
- `resume-context` の L2 section を「直近のターン履歴」から「現在進行中の作業履歴 (active work thread)」へ寄せ、読み方の契約を追加した。L2 全体を現在真実とみなすのではなく、古い順の active context として読み、後続行が前の仮説を上書きし得ることを明示する。
|
|
@@ -484,7 +484,7 @@ TODO:
|
|
|
484
484
|
|
|
485
485
|
- [x] README に Claude primary / Codex sidecar / rollback trim の関係を書く。
|
|
486
486
|
- [x] `CLAUDE.md` の実装済みファイル一覧を更新する。
|
|
487
|
-
- [x] `
|
|
487
|
+
- [x] `04_public_release_plan.md` に status を反映する。
|
|
488
488
|
- [x] CHANGELOG を更新する。
|
|
489
489
|
- [x] 推奨 test command を通す。
|
|
490
490
|
- [x] Codex sidecar が無い環境の動作確認を行う。
|
|
@@ -10,12 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
| 文書 | 役割 |
|
|
12
12
|
|---|---|
|
|
13
|
-
| [
|
|
14
|
-
| [
|
|
15
|
-
| [
|
|
16
|
-
| [
|
|
13
|
+
| [05_codex_first_roadmap.md](05_codex_first_roadmap.md) | 2026-05-06 以降の次フェーズ計画。Codex primary 実用化を先行する |
|
|
14
|
+
| [06_codex_trim_rollback_fix_plan.md](06_codex_trim_rollback_fix_plan.md) | 2026-05-06 incident 後の修正計画。2026-05-08 の controlled smoke 後、過剰な Codex trim blocker は解除し、restore-safety / host primitive audit は diagnostics として扱う |
|
|
15
|
+
| [07_codex_trim_implementation_plan.md](07_codex_trim_implementation_plan.md) | この文書と rollback trim の気づきを統合した旧計画と実装履歴。完了済み根拠として参照する |
|
|
16
|
+
| [09_rollback_context_trim_insight.md](09_rollback_context_trim_insight.md) | conversation-only rollback を「model-visible context の delete primitive」と見る設計メモ |
|
|
17
17
|
|
|
18
|
-
この文書は Codex adapter / sidecar integration の方針を定義する。今後の実装順は [
|
|
18
|
+
この文書は Codex adapter / sidecar integration の方針を定義する。今後の実装順は [05_codex_first_roadmap.md](05_codex_first_roadmap.md) を優先する。
|
|
19
19
|
|
|
20
20
|
## 目標
|
|
21
21
|
|
|
@@ -55,7 +55,7 @@ Codex path が Claude internals を parse するのは、それが明示的に a
|
|
|
55
55
|
|
|
56
56
|
## Codex Sidecar Integration
|
|
57
57
|
|
|
58
|
-
この節は `codex-sidecar` integration の設計です。Codex primary の capture / L2 -> L1 backend は [
|
|
58
|
+
この節は `codex-sidecar` integration の設計です。Codex primary の capture / L2 -> L1 backend は [05_codex_first_roadmap.md](05_codex_first_roadmap.md) を優先します。
|
|
59
59
|
|
|
60
60
|
Sidecar 向けには、Throughline が `codex-sidecar` contract に合う plain JSON context block を生成します。
|
|
61
61
|
|
|
@@ -131,7 +131,7 @@ L2 → L1 要約だけです。具体的には [src/haiku-summarizer.mjs](../src
|
|
|
131
131
|
|
|
132
132
|
- Claude primary では、`codex-sidecar diagnostics --project <repo> --preset summarize-l1` が成功する環境では、L2 → L1 要約に `codex-sidecar` を使う。
|
|
133
133
|
- Claude primary では、`codex-sidecar` が disabled / unavailable / diagnostics failure / run failure の環境では、現行の Claude Haiku 要約を維持する。
|
|
134
|
-
- Codex primary では、次フェーズ計画 [
|
|
134
|
+
- Codex primary では、次フェーズ計画 [05_codex_first_roadmap.md](05_codex_first_roadmap.md) に従い、L2 → L1 要約 backend は Codex CLI を本線にする。Codex CLI が使えない場合は silent fallback せず明示 error とする。
|
|
135
135
|
- `/tl` の in-flight memo は [.claude/commands/tl.md](../.claude/commands/tl.md) が現行メイン Claude に書かせる handoff memo であり、subagent ではない。これは Codex sidecar へ移さない。
|
|
136
136
|
|
|
137
137
|
handoff review、continuity check、risk analysis などは現行 `src/` 実装には存在しません。
|
|
@@ -161,7 +161,7 @@ Codex-on-Codex が有効なのは、sidecar に別の境界がある場合だけ
|
|
|
161
161
|
- independent second pass として明示的に要求されている。
|
|
162
162
|
|
|
163
163
|
別の境界がないなら、Throughline は別の Codex に委譲せず、現在の Codex session に handoff を直接 consume させてください。
|
|
164
|
-
Throughline 自体を Codex primary から使う場合は、まず [
|
|
164
|
+
Throughline 自体を Codex primary から使う場合は、まず [05_codex_first_roadmap.md](05_codex_first_roadmap.md) の Codex primary capture / Codex active-work resume renderer / Codex CLI L2→L1 backend を本線にします。`throughline codex-capture` と `throughline codex-resume` が Codex primary の入口であり、`throughline codex-sidecar-diagnostics`、`throughline codex-sidecar-dry-run` などは sidecar を使う review / risk-check / second opinion の診断 surface です。
|
|
165
165
|
|
|
166
166
|
Recommended policy:
|
|
167
167
|
|
package/docs/{throughline-rollback-context-trim-insight.md → 09_rollback_context_trim_insight.md}
RENAMED
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
|
|
9
9
|
| 文書 | 役割 |
|
|
10
10
|
|---|---|
|
|
11
|
-
| [
|
|
12
|
-
| [
|
|
13
|
-
| [
|
|
14
|
-
| [
|
|
11
|
+
| [05_codex_first_roadmap.md](05_codex_first_roadmap.md) | 2026-05-06 以降の次フェーズ計画。Codex primary と Codex Rewind 互換を先行する |
|
|
12
|
+
| [06_codex_trim_rollback_fix_plan.md](06_codex_trim_rollback_fix_plan.md) | 2026-05-06 incident 後の修正計画。2026-05-10 の live token_count 実験後、Codex automatic current-thread mutation は無効化し、通常 `$throughline` は新スレッド handoff に戻す |
|
|
13
|
+
| [07_codex_trim_implementation_plan.md](07_codex_trim_implementation_plan.md) | この気づきと Claude / Codex 両対応計画を統合した旧計画と実装履歴。完了済み根拠として参照する |
|
|
14
|
+
| [08_codex_dual_support.md](08_codex_dual_support.md) | Throughline を Claude primary のまま Codex adapter / sidecar に対応させる architecture brief |
|
|
15
15
|
|
|
16
|
-
この文書は「rollback は欠けていた delete primitive かもしれない」という洞察を残すもの。実装時は、未検証の host primitive を本線仕様にせず、次フェーズ計画 [
|
|
16
|
+
この文書は「rollback は欠けていた delete primitive かもしれない」という洞察を残すもの。実装時は、未検証の host primitive を本線仕様にせず、次フェーズ計画 [05_codex_first_roadmap.md](05_codex_first_roadmap.md) の Codex Rewind 互換 Phase で実測してから本線 UX に進む。
|
|
17
17
|
|
|
18
18
|
2026-05-06 update: Codex app-server の `thread/rollback` / `thread/inject_items` は live host primitive として実測済み。Throughline CLI には明示 `--codex-thread-id` または `THROUGHLINE_CODEX_THREAD_ID` / `CODEX_THREAD_ID` による current-thread identity、rollout/app-server turn count diagnostics、guarded execute が入った。
|
|
19
19
|
|