throughline 0.16.6 → 0.16.7
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/CHANGELOG.md +24 -1
- package/README.ja.md +2 -2
- package/README.md +2 -2
- package/package.json +1 -1
- package/src/codex-auto-handoff.test.mjs +19 -1
- package/src/hosts/codex-handoff-state.mjs +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,28 @@ shipped to npm but were not individually tagged on GitHub.
|
|
|
10
10
|
|
|
11
11
|
## [Unreleased]
|
|
12
12
|
|
|
13
|
+
## [0.16.7] — 2026-10-08
|
|
14
|
+
|
|
15
|
+
### 修正
|
|
16
|
+
|
|
17
|
+
- Codex Desktopに同梱のCodexが0.162になると、自動継続が毎回`handoff_prepared_settings_mismatch`で止まっていたのを直す。旧ターンを止め、後継を作って記憶を入れた後、設定の照合で止まり、失敗の画面を出していた。Codex 0.162は、後継の設定を整えた時の記録(`thread_settings_applied`)へ、未指定のservice tierを`"default"`と書く。旧タスクの記録には項目が無いので、製品は「未指定」と「`default`」を別の設定として比べていた。同じ枠として扱う。`fast`などの別の枠は、今までどおり不一致で止める。
|
|
18
|
+
- Linuxの端末(Codex Desktop 26.1002、同梱CLI 0.162.0-alpha.2)の実測。0.16.6は、続けた2回の引き継ぎが2回ともこの理由で止まった。
|
|
19
|
+
- macOSとWindowsのCodex Desktopも、26.1002から同梱CLIが0.162になっている。
|
|
20
|
+
|
|
21
|
+
### 確認した範囲
|
|
22
|
+
|
|
23
|
+
- LinuxのCodex Desktopで、公式の`PreCompact(auto)`を実際に発火させた。0.16.6で止まった2つの引き継ぎを、この直しを当てた版の`auto-handoff resume`でやり直し、2つとも`continued`になった。3つの工程の値は元の指示と一致し、3つ目のタスクが最初のタスクのL3を取得した。圧縮の記録は0件。後継の名前も付いた([実測](https://github.com/kitepon/Throughline/blob/main/evidence/2026-10-08-linux-codex-auto-handoff.md))。
|
|
24
|
+
- 止まった引き継ぎの`resume`が、出来ている後継を使って続きを届ける事(上の2回)。
|
|
25
|
+
|
|
26
|
+
### 変わらない事
|
|
27
|
+
|
|
28
|
+
- 同梱CLIが0.160.1までのCodex Desktopでの動き。schema(v12)。Claude Code・Grok・Cursor。
|
|
29
|
+
|
|
30
|
+
### 確認していない範囲
|
|
31
|
+
|
|
32
|
+
- この版そのものを入れた端末で、hookから始まって人の操作なしで終わる通し。公開の後に、Linux・Windows・macOSの端末で流す。
|
|
33
|
+
- Linuxで、容量の既定の上限まで進んだ長い会話の引き継ぎ。
|
|
34
|
+
|
|
13
35
|
## [0.16.6] — 2026-10-08
|
|
14
36
|
|
|
15
37
|
### 修正
|
|
@@ -2005,7 +2027,8 @@ two attempts, instrument first instead of patching again.
|
|
|
2005
2027
|
|
|
2006
2028
|
---
|
|
2007
2029
|
|
|
2008
|
-
[Unreleased]: https://github.com/kitepon/Throughline/compare/v0.16.
|
|
2030
|
+
[Unreleased]: https://github.com/kitepon/Throughline/compare/v0.16.7...HEAD
|
|
2031
|
+
[0.16.7]: https://github.com/kitepon/Throughline/compare/v0.16.6...v0.16.7
|
|
2009
2032
|
[0.16.6]: https://github.com/kitepon/Throughline/compare/v0.16.5...v0.16.6
|
|
2010
2033
|
[0.16.5]: https://github.com/kitepon/Throughline/compare/v0.16.4...v0.16.5
|
|
2011
2034
|
[0.16.4]: https://github.com/kitepon/Throughline/compare/v0.16.3...v0.16.4
|
package/README.ja.md
CHANGED
|
@@ -27,7 +27,7 @@ throughline auto-handoff status --json
|
|
|
27
27
|
throughline auto-handoff disable
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
既定では無効です。`enable`は必要な`PreCompact(auto)`フックを登録し、そのフックの承認と有効状態を公式APIで確認します。`--project`を省略すると全projectを対象にします。macOS
|
|
30
|
+
既定では無効です。`enable`は必要な`PreCompact(auto)`フックを登録し、そのフックの承認と有効状態を公式APIで確認します。`--project`を省略すると全projectを対象にします。macOS・Windows・LinuxのCodex Desktopで実機確認済みです(Windowsは0.16.6から、Linuxは0.16.7から)。Codex Desktopに同梱のCodexが0.162以上の時は、0.16.7以上が要ります。VS Code・CLIの自動継続は未検証です。
|
|
31
31
|
|
|
32
32
|
自動圧縮の開始前に旧ターンを停止し、同じprojectの新しいタスクへ記憶を注入して表示します。新しいタスクには、前任のタスクの題から`<project名>|<作業の概要>(自動引き継ぎ)`の名前を付けます。元のモデル・推論強度・権限・モードなどが表示後も一致することを確認してから、継続指示を一度だけ送ります。後継でその入力と作業の進捗を観測して完了とします。手動`/compact`は発火対象に含めません。
|
|
33
33
|
|
|
@@ -42,7 +42,7 @@ throughline auto-handoff resume --operation <handoff-id> --json
|
|
|
42
42
|
|
|
43
43
|
原因を解消した後の`resume`は同じ引き継ぎと既知の後継を再利用します。配送後の結果不明は実際の入力・開始を観測した場合だけ回復し、作成結果が不明な後継は再作成しません。従来の手動`$throughline`とcurrent-thread実験の設定は独立しています。
|
|
44
44
|
|
|
45
|
-
[実測と検証範囲](https://github.com/kitepon/Throughline/blob/main/evidence/2026-10-03-codex-auto-continuation.md)
|
|
45
|
+
[実測と検証範囲](https://github.com/kitepon/Throughline/blob/main/evidence/2026-10-03-codex-auto-continuation.md)、[Windowsの実測](https://github.com/kitepon/Throughline/blob/main/evidence/2026-10-08-windows-codex-auto-handoff.md)、[Linuxの実測](https://github.com/kitepon/Throughline/blob/main/evidence/2026-10-08-linux-codex-auto-handoff.md)を参照してください。
|
|
46
46
|
|
|
47
47
|
## Claude Codeの自動継続
|
|
48
48
|
|
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ throughline auto-handoff status --json
|
|
|
26
26
|
throughline auto-handoff disable
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
既定では無効です。`enable`は必要な`PreCompact(auto)`フックを登録し、そのフックの承認と有効状態を公式APIで確認します。`--project`を省略すると全projectを対象にします。macOS
|
|
29
|
+
既定では無効です。`enable`は必要な`PreCompact(auto)`フックを登録し、そのフックの承認と有効状態を公式APIで確認します。`--project`を省略すると全projectを対象にします。macOS・Windows・LinuxのCodex Desktopで実機確認済みです(Windowsは0.16.6から、Linuxは0.16.7から)。Codex Desktopに同梱のCodexが0.162以上の時は、0.16.7以上が要ります。VS Code・CLIの自動継続は未検証です。
|
|
30
30
|
|
|
31
31
|
自動圧縮の開始前に旧ターンを停止し、同じprojectの新しいタスクへ記憶を注入して表示します。新しいタスクには、前任のタスクの題から`<project名>|<作業の概要>(自動引き継ぎ)`の名前を付けます。元のモデル・推論強度・権限・モードなどが表示後も一致することを確認してから、継続指示を一度だけ送ります。後継でその入力と作業の進捗を観測して完了とします。手動`/compact`は発火対象に含めません。
|
|
32
32
|
|
|
@@ -41,7 +41,7 @@ throughline auto-handoff resume --operation <handoff-id> --json
|
|
|
41
41
|
|
|
42
42
|
原因を解消した後の`resume`は同じ引き継ぎと既知の後継を再利用します。配送後の結果不明は実際の入力・開始を観測した場合だけ回復し、作成結果が不明な後継は再作成しません。従来の手動`$throughline`とcurrent-thread実験の設定は独立しています。
|
|
43
43
|
|
|
44
|
-
[実測と検証範囲](https://github.com/kitepon/Throughline/blob/main/evidence/2026-10-03-codex-auto-continuation.md)
|
|
44
|
+
[実測と検証範囲](https://github.com/kitepon/Throughline/blob/main/evidence/2026-10-03-codex-auto-continuation.md)、[Windowsの実測](https://github.com/kitepon/Throughline/blob/main/evidence/2026-10-08-windows-codex-auto-handoff.md)、[Linuxの実測](https://github.com/kitepon/Throughline/blob/main/evidence/2026-10-08-linux-codex-auto-handoff.md)を参照してください。
|
|
45
45
|
|
|
46
46
|
## Claude Codeの自動継続
|
|
47
47
|
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@ import { requestAutoHandoff, updateAutoHandoff, getAutoHandoff, freezeCodexMemor
|
|
|
11
11
|
claimAutoHandoff, continuationInput } from './codex-auto-handoff-store.mjs';
|
|
12
12
|
import { collectAutoHandoffMemory, ensureAutoHandoffSummaries, renderAutoHandoffMemory,
|
|
13
13
|
renderFrozenDetail } from './codex-auto-handoff-memory.mjs';
|
|
14
|
-
import { readCodexHandoffState, settingsMatch, threadStartSettings } from './hosts/codex-handoff-state.mjs';
|
|
14
|
+
import { readCodexHandoffState, settingsMatch, threadStartSettings, resolvePreparedSettings } from './hosts/codex-handoff-state.mjs';
|
|
15
15
|
import { runAutoHandoffWorker, requestCodexAutoHandoff, sourceBoundary,
|
|
16
16
|
autoHandoffTargetName, nameAutoHandoffTarget, findLiveAutoHandoffSuccessor } from './codex-auto-handoff.mjs';
|
|
17
17
|
import { parseAutoHandoffArgs } from './cli/auto-handoff.mjs';
|
|
@@ -407,6 +407,24 @@ test('元turnの停止だけを採用し、配送本文と開始・進捗を相
|
|
|
407
407
|
assert.throws(() => readCodexHandoffState(file, { threadId: 'other' }), /handoff_thread_mismatch/);
|
|
408
408
|
}));
|
|
409
409
|
|
|
410
|
+
test('未指定のservice tierと"default"は同じ設定として扱い、別の枠は不一致にする', () => {
|
|
411
|
+
// rabbitの実測(2026-10-08、Codex 0.162.0-alpha.2): 旧タスクのrolloutにservice_tierは無く、
|
|
412
|
+
// 後継の thread_settings_applied には service_tier:"default" が書かれた。0.160.1 までは後継にも書かれなかった。
|
|
413
|
+
const source = { cwd: '/p', model: 'm', effort: 'high', approvalPolicy: 'never', serviceTier: null,
|
|
414
|
+
collaborationMode: { mode: 'default', settings: { model: 'm', reasoning_effort: 'high', developer_instructions: null } } };
|
|
415
|
+
const expanded = { ...source.collaborationMode, settings: { ...source.collaborationMode.settings, developer_instructions: '# Collaboration Mode: Default' } };
|
|
416
|
+
const prepared = { ...source, serviceTier: 'default', collaborationMode: expanded };
|
|
417
|
+
assert.equal(settingsMatch(source, { ...source, serviceTier: 'default' }), true);
|
|
418
|
+
assert.equal(settingsMatch({ ...source, serviceTier: 'default' }, source), true);
|
|
419
|
+
assert.equal(settingsMatch(source, { ...source, serviceTier: 'fast' }), false);
|
|
420
|
+
assert.equal(settingsMatch({ ...source, serviceTier: 'fast' }, { ...source, serviceTier: 'default' }), false);
|
|
421
|
+
const expected = resolvePreparedSettings(source, prepared);
|
|
422
|
+
assert.deepEqual(expected.collaborationMode, expanded);
|
|
423
|
+
// 表示後のrolloutが "default" でも、準備値(旧タスクの未指定を持つ)と一致する。
|
|
424
|
+
assert.equal(settingsMatch(expected, prepared), true);
|
|
425
|
+
assert.throws(() => resolvePreparedSettings(source, { ...prepared, serviceTier: 'fast' }), /handoff_prepared_settings_mismatch/);
|
|
426
|
+
});
|
|
427
|
+
|
|
410
428
|
test('forkした子の先頭metadataを保持し、継承された親metadataでIDを上書きしない', async () => withDb((db, home) => {
|
|
411
429
|
const file = join(home, 'child-rollout.jsonl');
|
|
412
430
|
const rows = [
|
|
@@ -58,6 +58,8 @@ export function normalizeThreadSettings(native) {
|
|
|
58
58
|
export function settingsMatch(source, target) {
|
|
59
59
|
const a = { ...source }, b = { ...target };
|
|
60
60
|
delete a.sandboxPolicy; delete b.sandboxPolicy;
|
|
61
|
+
// Codex 0.162 は、未指定の service tier を thread_settings_applied へ "default" と書く。未指定(null)と同じ枠。
|
|
62
|
+
a.serviceTier ??= 'default'; b.serviceTier ??= 'default';
|
|
61
63
|
const aCwd = a.cwd, bCwd = b.cwd;
|
|
62
64
|
delete a.cwd; delete b.cwd;
|
|
63
65
|
return sameProjectPath(aCwd, bCwd) && isDeepStrictEqual(a, b);
|