tailii-host 0.5.0 → 0.7.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.
Files changed (123) hide show
  1. package/dist/approval/hook.js +11 -1
  2. package/dist/approval/hook.js.map +1 -1
  3. package/dist/backend/herdr.d.ts +60 -6
  4. package/dist/backend/herdr.js +180 -27
  5. package/dist/backend/herdr.js.map +1 -1
  6. package/dist/backend/sessionBackend.d.ts +22 -3
  7. package/dist/backend/sessionBackend.js +11 -2
  8. package/dist/backend/sessionBackend.js.map +1 -1
  9. package/dist/backend/tmux.d.ts +197 -3
  10. package/dist/backend/tmux.js +565 -16
  11. package/dist/backend/tmux.js.map +1 -1
  12. package/dist/chat/chatTailController.d.ts +4 -2
  13. package/dist/chat/chatTailController.js +19 -33
  14. package/dist/chat/chatTailController.js.map +1 -1
  15. package/dist/chat/imageService.d.ts +9 -1
  16. package/dist/chat/imageService.js +39 -0
  17. package/dist/chat/imageService.js.map +1 -1
  18. package/dist/chat/subagentTailer.d.ts +10 -0
  19. package/dist/chat/subagentTailer.js +234 -51
  20. package/dist/chat/subagentTailer.js.map +1 -1
  21. package/dist/chat/subagentTranscript.js +51 -5
  22. package/dist/chat/subagentTranscript.js.map +1 -1
  23. package/dist/chat/transcriptTailer.d.ts +53 -1
  24. package/dist/chat/transcriptTailer.js +313 -2
  25. package/dist/chat/transcriptTailer.js.map +1 -1
  26. package/dist/codex/codexAppServer.d.ts +54 -9
  27. package/dist/codex/codexAppServer.js +495 -76
  28. package/dist/codex/codexAppServer.js.map +1 -1
  29. package/dist/codex/codexNativeTurnController.d.ts +22 -1
  30. package/dist/codex/codexNativeTurnController.js +76 -11
  31. package/dist/codex/codexNativeTurnController.js.map +1 -1
  32. package/dist/codex/codexRolloutTailer.d.ts +3 -0
  33. package/dist/codex/codexRolloutTailer.js +85 -13
  34. package/dist/codex/codexRolloutTailer.js.map +1 -1
  35. package/dist/codex/codexSessionStore.js +54 -16
  36. package/dist/codex/codexSessionStore.js.map +1 -1
  37. package/dist/codex/codexSubagentTracker.d.ts +13 -0
  38. package/dist/codex/codexSubagentTracker.js +55 -1
  39. package/dist/codex/codexSubagentTracker.js.map +1 -1
  40. package/dist/codex/codexSystemNotice.d.ts +18 -0
  41. package/dist/codex/codexSystemNotice.js +212 -0
  42. package/dist/codex/codexSystemNotice.js.map +1 -0
  43. package/dist/commands/launch.js +50 -13
  44. package/dist/commands/launch.js.map +1 -1
  45. package/dist/engine/context.d.ts +32 -1
  46. package/dist/engine/context.js +39 -3
  47. package/dist/engine/context.js.map +1 -1
  48. package/dist/engine/engine.d.ts +5 -1
  49. package/dist/engine/engine.js +87 -4
  50. package/dist/engine/engine.js.map +1 -1
  51. package/dist/engine/handlers/accountUsage.d.ts +17 -0
  52. package/dist/engine/handlers/accountUsage.js +40 -6
  53. package/dist/engine/handlers/accountUsage.js.map +1 -1
  54. package/dist/engine/handlers/codex.js +37 -0
  55. package/dist/engine/handlers/codex.js.map +1 -1
  56. package/dist/engine/handlers/core.js +14 -1
  57. package/dist/engine/handlers/core.js.map +1 -1
  58. package/dist/engine/handlers/mode.js +105 -1
  59. package/dist/engine/handlers/mode.js.map +1 -1
  60. package/dist/engine/handlers/session.js +17 -33
  61. package/dist/engine/handlers/session.js.map +1 -1
  62. package/dist/engine/handlers/usage.js +4 -1
  63. package/dist/engine/handlers/usage.js.map +1 -1
  64. package/dist/engine/handlers/workspace.js +22 -1
  65. package/dist/engine/handlers/workspace.js.map +1 -1
  66. package/dist/hub/effortDialog.d.ts +15 -0
  67. package/dist/hub/effortDialog.js +60 -16
  68. package/dist/hub/effortDialog.js.map +1 -1
  69. package/dist/hub/engineRelaySocket.d.ts +7 -0
  70. package/dist/hub/engineRelaySocket.js +7 -1
  71. package/dist/hub/engineRelaySocket.js.map +1 -1
  72. package/dist/hub/hubDaemon.js +30 -5
  73. package/dist/hub/hubDaemon.js.map +1 -1
  74. package/dist/hub/hubProtocol.d.ts +10 -0
  75. package/dist/hub/hubProtocol.js +19 -2
  76. package/dist/hub/hubProtocol.js.map +1 -1
  77. package/dist/hub/panePreviewPump.d.ts +27 -0
  78. package/dist/hub/panePreviewPump.js +62 -1
  79. package/dist/hub/panePreviewPump.js.map +1 -1
  80. package/dist/hub/sessionHub.d.ts +125 -4
  81. package/dist/hub/sessionHub.js +413 -48
  82. package/dist/hub/sessionHub.js.map +1 -1
  83. package/dist/protocol/decode.js +84 -15
  84. package/dist/protocol/decode.js.map +1 -1
  85. package/dist/protocol/encode.js +2 -0
  86. package/dist/protocol/encode.js.map +1 -1
  87. package/dist/protocol/messages.d.ts +87 -1
  88. package/dist/services/accountIdentity.js +3 -1
  89. package/dist/services/accountIdentity.js.map +1 -1
  90. package/dist/services/fileService.d.ts +15 -0
  91. package/dist/services/fileService.js +176 -14
  92. package/dist/services/fileService.js.map +1 -1
  93. package/dist/services/officialApps.d.ts +21 -1
  94. package/dist/services/officialApps.js +201 -53
  95. package/dist/services/officialApps.js.map +1 -1
  96. package/dist/services/planUsageFetcher.d.ts +35 -3
  97. package/dist/services/planUsageFetcher.js +34 -6
  98. package/dist/services/planUsageFetcher.js.map +1 -1
  99. package/dist/services/previewServer.js +15 -6
  100. package/dist/services/previewServer.js.map +1 -1
  101. package/dist/sessions/claudeSessionStore.js +30 -0
  102. package/dist/sessions/claudeSessionStore.js.map +1 -1
  103. package/dist/sessions/heartbeat.d.ts +7 -1
  104. package/dist/sessions/heartbeat.js +3 -1
  105. package/dist/sessions/heartbeat.js.map +1 -1
  106. package/dist/sessions/sessionSearch.js +23 -5
  107. package/dist/sessions/sessionSearch.js.map +1 -1
  108. package/dist/sessions/transcriptPath.d.ts +3 -0
  109. package/dist/sessions/transcriptPath.js +15 -0
  110. package/dist/sessions/transcriptPath.js.map +1 -0
  111. package/dist/shared/clientBuild.d.ts +26 -0
  112. package/dist/shared/clientBuild.js +89 -0
  113. package/dist/shared/clientBuild.js.map +1 -0
  114. package/dist/shared/crossSession.d.ts +15 -0
  115. package/dist/shared/crossSession.js +75 -0
  116. package/dist/shared/crossSession.js.map +1 -0
  117. package/dist/shared/harnessReminder.d.ts +32 -0
  118. package/dist/shared/harnessReminder.js +124 -0
  119. package/dist/shared/harnessReminder.js.map +1 -0
  120. package/dist/shared/systemNotice.d.ts +30 -0
  121. package/dist/shared/systemNotice.js +209 -0
  122. package/dist/shared/systemNotice.js.map +1 -0
  123. package/package.json +3 -3
@@ -19,6 +19,9 @@ export const DEFAULT_MODE_TIMING = {
19
19
  setInitialTimeoutMs: 10_000,
20
20
  setChangePollMs: 150,
21
21
  setChangeTimeoutMs: 1_500,
22
+ // 実測 2.1.263: C-c から書き戻しまで 1.5s 未満。TUI 再描画の遅れを見て 2.5s まで待つ。
23
+ cancelDetectPollMs: 300,
24
+ cancelDetectTimeoutMs: 2_500,
22
25
  };
23
26
  /**
24
27
  * chat オープン/再オープン時、そのセッションに未回答の設問があれば question_prompt を再送する。
@@ -36,19 +39,27 @@ export async function emitPendingQuestion(ctx, session) {
36
39
  questions: pending.questions,
37
40
  });
38
41
  }
42
+ /**
43
+ * 前面から外れた処理中会話を背景購読へ降格する(`subscribeConversation` の前会話処理と
44
+ * `session_idle_hint` で共用)。engine 本体の閉包(LRU 上限・冪等購読・猶予タイマー取消を集約)に
45
+ * 委ねる。呼び手は先に `activeChatSession.name` を更新しておく(閉包は前面会話に対しては何もしない)。
46
+ */
47
+ export function demoteToBackgroundSubscription(ctx, session) {
48
+ ctx.watchBackgroundSession(session);
49
+ }
39
50
  export function subscribeConversation(ctx, session, newerThanMs) {
40
51
  const previous = ctx.activeChatSession.name;
52
+ // 前会話の降格より先に前面を更新する(背景購読の閉包は前面会話には何もしないため)。
53
+ ctx.activeChatSession.name = session;
41
54
  if (previous !== null && previous !== session) {
42
55
  if (ctx.processingSessions.has(previous)) {
43
- ctx.backgroundChatSessions.add(previous);
44
- ctx.hubLink.send({ type: "conversation_subscribe", session: previous, preview: false });
56
+ demoteToBackgroundSubscription(ctx, previous);
45
57
  }
46
58
  else {
47
59
  ctx.backgroundChatSessions.delete(previous);
48
60
  ctx.hubLink.send({ type: "conversation_unsubscribe", session: previous });
49
61
  }
50
62
  }
51
- ctx.activeChatSession.name = session;
52
63
  ctx.backgroundChatSessions.delete(session);
53
64
  ctx.hubLink.send({ type: "conversation_subscribe", session,
54
65
  ...(newerThanMs !== undefined
@@ -160,6 +171,31 @@ export async function officialAppRuntimeContext(ctx, session, provider) {
160
171
  },
161
172
  };
162
173
  }
174
+ /**
175
+ * メタデータ由来の SessionInfo(launcher 成功直後など、list を引かずに 1 件だけ応答する経路用)。
176
+ *
177
+ * backend はメタが読めた場合は常に明示する(backend 欄未記録のメタ = tmux launcher 由来 =
178
+ * tmux)。iOS は `session_list_response` の各行で backend 欄が無い行を「host 未申告」として
179
+ * 既知の観測値を保持するため、reattach の resume 再起動応答が欄なしだと herdr 会話のバッジが
180
+ * tmux に見えたまま固定される(2026-09-06 実機で発症)。逆に、メタ自体が読めない
181
+ * (不在・一時的な読取失敗 = 種別不明)ときは tmux と断定せず欄を省く: 断定すると iOS が
182
+ * 「申告あり」として既知の herdr を巻き戻す。launcher が権威記録した解決後 cwd
183
+ * (deleted-worktree-resume の repo ルート振替を含む)を優先し、未記録なら呼び出し側の cwd を使う。
184
+ */
185
+ export function sessionInfoFromMeta(store, name, fallbackCwd) {
186
+ const meta = store?.get(name) ?? null;
187
+ const agent = meta?.agent;
188
+ const providerSessionId = meta?.providerSessionId ?? (agent !== "codex" ? meta?.claudeSessionId : undefined);
189
+ return {
190
+ name,
191
+ cwd: meta?.cwd ?? fallbackCwd,
192
+ alive: true,
193
+ ...(meta !== null ? { backend: meta.backend ?? "tmux" } : {}),
194
+ ...(meta?.claudeSessionId !== undefined ? { claudeSessionId: meta.claudeSessionId } : {}),
195
+ ...(agent !== undefined ? { agent } : {}),
196
+ ...(providerSessionId !== undefined ? { providerSessionId } : {}),
197
+ };
198
+ }
163
199
  /** session_list_response を書き出す(optional cursor / host 採用名は null なら省略)。 */
164
200
  export function writeSessionListResponse(writer, v, id, sessions, nextCursor, adoptedName = null, worktree = null) {
165
201
  writer.write({
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/engine/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/engine/context.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ import { type AccountIdentityProvider } from "../services/accountIdentity.js";
13
13
  import { type HostVersionsProvider } from "../services/hostVersions.js";
14
14
  import { type PlanUsageProvider } from "../services/planUsageFetcher.js";
15
15
  import { SessionListService } from "../sessions/sessionListService.js";
16
- import { SessionMetadataStore } from "../sessions/sessionMetadataStore.js";
16
+ import { SessionMetadataStore, type SessionMeta } from "../sessions/sessionMetadataStore.js";
17
17
  import { OfficialAppsService } from "../services/officialApps.js";
18
18
  import { TranscriptTailer } from "../chat/transcriptTailer.js";
19
19
  import { type SessionBackend, type SessionBackendKind } from "../backend/sessionBackend.js";
@@ -96,8 +96,12 @@ export interface RunEngineOptions {
96
96
  accountIdentity?: AccountIdentityProvider;
97
97
  /** slash_list のユーザーレベル探索ルート(既定は os.homedir())。 */
98
98
  homeDir?: string;
99
+ /** iOS クライアントの最新ビルド番号の記録先(テスト注入用。既定 ~/.tailii/host/client-build.json)。 */
100
+ clientBuildRecordPath?: string;
99
101
  /** mode_get/mode_set の待機間隔(テストは短縮値を注入する)。 */
100
102
  modeTiming?: Partial<ModeTiming>;
103
+ /** 会話の claude transcript パス解決(prompt-cancelled の照合用。テスト注入用)。 */
104
+ transcriptPathFor?: (meta: SessionMeta) => string | null;
101
105
  /** 起動時 package version と現在の package version を比較する stale 判定(テスト注入用)。 */
102
106
  staleDistGuard?: StaleDistGuard | null;
103
107
  /**
@@ -38,12 +38,14 @@ import { decodeControlMessage, PROTOCOL_MAX_SUPPORTED, PROTOCOL_V1, } from "../p
38
38
  import { ownTranscriptActivityProvider } from "../sessions/sessionActivityProvider.js";
39
39
  import { SessionListService } from "../sessions/sessionListService.js";
40
40
  import { SessionMetadataStore } from "../sessions/sessionMetadataStore.js";
41
+ import { claudeTranscriptPathFor } from "../sessions/transcriptPath.js";
41
42
  import { OfficialAppsService } from "../services/officialApps.js";
42
43
  import { HISTORY_DONE_STREAM_ID, TranscriptTailer } from "../chat/transcriptTailer.js";
43
44
  import { makeSessionBackend, resolveSessionBackendKind, writeSessionBackendKind, } from "../backend/sessionBackend.js";
44
45
  import { herdrInstalled } from "../backend/herdr.js";
45
46
  import { createStaleDistGuard, isStaleDist, readPackageVersion } from "../shared/version.js";
46
47
  import { readRecentUpdateError, resolveInstallState } from "../commands/selfUpdate.js";
48
+ import { clientBuildRecordPath as defaultClientBuildRecordPath, readLatestClientBuild } from "../shared/clientBuild.js";
47
49
  import { resolveHostDisplayName } from "../shared/hostDisplayName.js";
48
50
  import { DEFAULT_MODE_TIMING, engineDiag, } from "./context.js";
49
51
  import { ENGINE_HANDLERS } from "./handlers/index.js";
@@ -151,7 +153,12 @@ export async function runEngineCommand(args) {
151
153
  });
152
154
  // per-session: agentType=codex のセッション用に codex launcher / resume launcher を用意する。
153
155
  // codex は resume 未対応のため既定コマンドで新規起動する(新しい rollout を tail)。
154
- const codexAppServer = new CodexAppServerManager();
156
+ const codexAppServer = new CodexAppServerManager({
157
+ // 版ずれ診断・履歴スナップショットの fallback 理由を engine 経路でも残す(hub は hub.log)。
158
+ log: (message) => {
159
+ process.stderr.write(`[tailii-host engine] ${message}\n`);
160
+ },
161
+ });
155
162
  const codexLauncher = makeSessionLauncher({
156
163
  store,
157
164
  agent: "codex",
@@ -208,7 +215,7 @@ export async function runEngineCommand(args) {
208
215
  * 橋渡しし、応答を `output` へ NDJSON 行で書く。EOF(input end)で正常終了する。
209
216
  */
210
217
  export async function runEngine(options) {
211
- const { sessionManager, backendKind = () => "tmux", backendWriter = writeSessionBackendKind, herdrInstalledProbe = herdrInstalled, imageService = null, transcriptTailer = null, transcriptPath = null, launcher = null, codexLauncher = null, sessionListService = null, metadataStore = null, resumeLauncher = null, codexResumeLauncher = null, claudeSessionStore = null, codexSessionStore = null, agent = "claude", codexAppServer = null, officialApps = new OfficialAppsService(), codexTurnController: injectedCodexTurnController = null, maxVersion = PROTOCOL_MAX_SUPPORTED, planUsage = () => fetchPlanUsage(), claudeModelList = () => fetchClaudeModelList(), codexAccountUsage: injectedCodexAccountUsage = undefined, hostVersions = fetchHostVersions, accountIdentity = fetchAccountIdentities, homeDir = os.homedir(), modeTiming = {}, staleDistGuard = createStaleDistGuard(), hostDisplayName = resolveHostDisplayName() ?? null, onStaleDist = undefined, hubLink: injectedHubLink = undefined, codexHubRpcTimeoutMs = 15_000, heartbeatDir = defaultHeartbeatDir(), } = options;
218
+ const { sessionManager, backendKind = () => "tmux", backendWriter = writeSessionBackendKind, herdrInstalledProbe = herdrInstalled, imageService = null, transcriptTailer = null, transcriptPath = null, launcher = null, codexLauncher = null, sessionListService = null, metadataStore = null, resumeLauncher = null, codexResumeLauncher = null, claudeSessionStore = null, codexSessionStore = null, agent = "claude", codexAppServer = null, officialApps = new OfficialAppsService(), codexTurnController: injectedCodexTurnController = null, maxVersion = PROTOCOL_MAX_SUPPORTED, planUsage = () => fetchPlanUsage(), claudeModelList = () => fetchClaudeModelList(), codexAccountUsage: injectedCodexAccountUsage = undefined, hostVersions = fetchHostVersions, accountIdentity = fetchAccountIdentities, homeDir = os.homedir(), clientBuildRecordPath = defaultClientBuildRecordPath(), modeTiming = {}, transcriptPathFor = claudeTranscriptPathFor, staleDistGuard = createStaleDistGuard(), hostDisplayName = resolveHostDisplayName() ?? null, onStaleDist = undefined, hubLink: injectedHubLink = undefined, codexHubRpcTimeoutMs = 15_000, heartbeatDir = defaultHeartbeatDir(), } = options;
212
219
  // 既定の Codex 使用量フェッチャは共有 App Server 経由(未接続・停止中は null を返す)。
213
220
  // 分割代入の中では codexAppServer をまだ参照できないため、確定後にここで束ねる。
214
221
  const codexAccountUsage = injectedCodexAccountUsage ?? (() => fetchCodexAccountUsage(codexAppServer));
@@ -250,6 +257,8 @@ export async function runEngine(options) {
250
257
  // serverSeq=0 は transcript/rollout の履歴 backfill。完了マーカー前に Hub 世代が
251
258
  // 変わった場合は時刻境界を使わず全履歴を再開し、古い未配送行を落とさない。
252
259
  const historyBackfillSessions = new Set();
260
+ /** retire された前面会話。次の処理中通知(claude が実際に動いた証拠)で 1 回だけ前面購読を張り直す。 */
261
+ const pendingForegroundResubscribe = new Set();
253
262
  const backgroundUnwatchTimers = new Map();
254
263
  const unwatchBackgroundSession = (session) => {
255
264
  const timer = backgroundUnwatchTimers.get(session);
@@ -269,7 +278,8 @@ export async function runEngine(options) {
269
278
  backgroundUnwatchTimers.delete(session);
270
279
  if (activeChatSession.name === session)
271
280
  return;
272
- if (!backgroundChatSessions.has(session) && backgroundChatSessions.size >= 16) {
281
+ const alreadyWatching = backgroundChatSessions.has(session);
282
+ if (!alreadyWatching && backgroundChatSessions.size >= 16) {
273
283
  const oldest = backgroundChatSessions.values().next().value;
274
284
  if (oldest !== undefined)
275
285
  unwatchBackgroundSession(oldest);
@@ -277,12 +287,24 @@ export async function runEngine(options) {
277
287
  backgroundChatSessions.add(session);
278
288
  if (!subscribe)
279
289
  return;
290
+ // 処理中会話の hook(PreToolUse / PostToolUse)ごとに session_processing(active) が届くが、Hub の
291
+ // 購読は 1 回で足りる(unwatch 猶予中の再 active も購読は生きている)。購読済みで再送すると Hub は
292
+ // 「既存購読者の afterSeq 回収」を行い、背景中は afterSeq が床値で止まるため replay buffer を
293
+ // 外れた途端に全履歴 backfill になる — ツール呼び出しのたびに全履歴が iOS へ再送される嵐
294
+ // (実測 2026-09-07: 1 会話で毎分 70 回超の tail 再起動、249 行 × 回数の再送)。
295
+ if (alreadyWatching)
296
+ return;
297
+ // Hub 世代内の seq が無い(retire 後の再購読等)場合は、最終転送時刻を境界にして全履歴再生を避ける
298
+ // (再接続の backfill と同じ規則: 転送遅延ぶん 5 秒重ねる)。
299
+ const forwardedAtMs = lastForwardedAtMs.get(session);
280
300
  hubLink.send({
281
301
  type: "conversation_subscribe",
282
302
  session,
283
303
  ...(newerThanMs !== undefined
284
304
  ? { newerThanMs }
285
- : lastServerSeq.has(session) ? { afterSeq: lastServerSeq.get(session) } : {}),
305
+ : lastServerSeq.has(session)
306
+ ? { afterSeq: lastServerSeq.get(session) }
307
+ : forwardedAtMs !== undefined ? { newerThanMs: Math.max(0, forwardedAtMs - 5_000) } : {}),
286
308
  preview: false,
287
309
  });
288
310
  };
@@ -309,6 +331,9 @@ export async function runEngine(options) {
309
331
  // updateError は managed のときだけ載せる(unmanaged では self-update が動かず提示先も無い。
310
332
  // dev 機に残った last-update.json が hello を環境依存にするのも防ぐ)。
311
333
  const updateError = installState.managed ? readRecentUpdateError(helloVersion ?? null) : undefined;
334
+ // このホストへ接続した最も新しいアプリビルド(過去の hello で記録)。アプリは自分の
335
+ // CFBundleVersion と比較して「より新しいビルドがある」を判定する(host-auto-update)。
336
+ const latestClientBuild = readLatestClientBuild(clientBuildRecordPath);
312
337
  writer.write({
313
338
  type: "channel_hello",
314
339
  v: PROTOCOL_V1,
@@ -318,6 +343,7 @@ export async function runEngine(options) {
318
343
  ...(hostDisplayName !== null ? { hostName: hostDisplayName } : {}),
319
344
  managed: installState.managed,
320
345
  ...(updateError !== undefined ? { updateError } : {}),
346
+ ...(latestClientBuild !== null ? { latestClientBuild } : {}),
321
347
  });
322
348
  // ---- 1.5 画像 pending を drain し image_available を送出 ----
323
349
  if (imageService !== null) {
@@ -369,6 +395,19 @@ export async function runEngine(options) {
369
395
  if (message.state === "active") {
370
396
  processingSessions.set(message.session, now);
371
397
  watchBackgroundSession(message.session);
398
+ // retire された前面会話が再び処理中になった(同じ pane で claude が再起動した)→ 前面購読を
399
+ // 1 回だけ張り直す(境界は最終転送時刻 − 5 秒)。開いたまま無音になるのを防ぐ。
400
+ if (activeChatSession.name === message.session && pendingForegroundResubscribe.delete(message.session)) {
401
+ // 履歴 backfill の途中で retire された会話は境界を付けない(切れた履歴を取り直す。
402
+ // 再接続の requiresFullBackfill と同じ規則)。
403
+ const forwardedAtMs = historyBackfillSessions.has(message.session)
404
+ ? undefined : lastForwardedAtMs.get(message.session);
405
+ hubLink.send({
406
+ type: "conversation_subscribe", session: message.session,
407
+ ...(forwardedAtMs !== undefined ? { newerThanMs: Math.max(0, forwardedAtMs - 5_000) } : {}),
408
+ preview: true,
409
+ });
410
+ }
372
411
  }
373
412
  else {
374
413
  processingSessions.delete(message.session);
@@ -402,6 +441,9 @@ export async function runEngine(options) {
402
441
  };
403
442
  codexTurnController = new CodexNativeTurnController({
404
443
  appServer: codexAppServer,
444
+ log: (message) => {
445
+ process.stderr.write(`[tailii-host engine] ${message}\n`);
446
+ },
405
447
  onProcessing: (session, processingState) => {
406
448
  hubLink.send({
407
449
  type: "session_processing",
@@ -515,6 +557,41 @@ export async function runEngine(options) {
515
557
  }
516
558
  return;
517
559
  }
560
+ if (message.type === "conversation_retired") {
561
+ // Hub 側で actor が retire(kill / demote / reclaim)され、この engine の購読も消えた。背景購読の
562
+ // 台帳から外し、次の session_processing(active) で再購読できるようにする(背景購読は冪等化して
563
+ // おり、台帳に残ったままだと再送しない)。seq / floor も Hub 世代内の値なので捨てる。
564
+ const timer = backgroundUnwatchTimers.get(message.session);
565
+ if (timer !== undefined)
566
+ clearTimeout(timer);
567
+ backgroundUnwatchTimers.delete(message.session);
568
+ backgroundChatSessions.delete(message.session);
569
+ lastServerSeq.delete(message.session);
570
+ backgroundReplayFloors.delete(message.session);
571
+ // historyBackfillSessions は消さない: 履歴 backfill 途中で retire された会話は「次に世代が変わったら
572
+ // 全履歴を再送する」旗として残す(消すと切れた履歴が二度と配送されない)。
573
+ // retire は処理完了(done)を broadcast しないため、読みモデルの処理中も自分で落として iOS へ
574
+ // 通知する(開いている会話の停止ボタン / 一覧の処理中表示が永久に残らないように)。
575
+ if (processingSessions.delete(message.session)) {
576
+ try {
577
+ writer.write({
578
+ type: "session_processing_state", v: state.negotiatedVersion,
579
+ session: message.session, active: false,
580
+ });
581
+ }
582
+ catch (error) {
583
+ process.stderr.write(`[tailii-host engine] session_processing_state 書込失敗: ${String(error)}\n`);
584
+ }
585
+ }
586
+ // 前面会話でも、ここでは購読を張り直さない: 即時の再購読は Hub に actor を作り直し、heartbeat を
587
+ // 蘇生(chat-open bump)させ、死んだ pane への preview pump / tail を再起動する → 次の tick で
588
+ // 再び retire(kill / reclaim)→ 再購読… の無限ループになる(tick が retire を設けた理由そのもの)。
589
+ // 代わりに「次の処理中通知(hook = claude が実際に動いている)で 1 回だけ張り直す」と記録する
590
+ // (同じ pane で claude が再起動した場合の復帰。死んだ agent は hook を出さないのでループしない)。
591
+ if (activeChatSession.name === message.session)
592
+ pendingForegroundResubscribe.add(message.session);
593
+ return;
594
+ }
518
595
  if (message.type === "conversation_liveness") {
519
596
  // live-pill Phase 2: 一覧 watch 中のみ「稼働中ピルを外して一覧を取り直せ」を送る。
520
597
  // 前面会話の例外は要らない(チャット面は自身の生存を別経路で知る)。
@@ -613,6 +690,9 @@ export async function runEngine(options) {
613
690
  backgroundReplayFloors.clear();
614
691
  historyBackfillSessions.clear();
615
692
  }
693
+ // 再接続の購読ループ(下)が前面会話も張り直すので、retire 起因の張り直し予約は世代の変化に
694
+ // 関わらず不要になる(残すと hook の active で二重に購読する)。
695
+ pendingForegroundResubscribe.clear();
616
696
  // hello snapshot を権威状態として扱う。切断中に完了した会話をローカル Map に
617
697
  // active のまま残すと、一覧の処理中表示と背景購読が永久に残ってしまう。ただし
618
698
  // processingSessions を送らない旧 Hub は「空」ではなく「snapshot 非対応」なので、
@@ -756,12 +836,15 @@ export async function runEngine(options) {
756
836
  hostVersions,
757
837
  accountIdentity,
758
838
  homeDir,
839
+ clientBuildRecordPath,
759
840
  modeTiming: resolvedModeTiming,
841
+ transcriptPathFor,
760
842
  defaultAgent: agent,
761
843
  activeChatSession,
762
844
  listPreviewWatch,
763
845
  processingSessions,
764
846
  backgroundChatSessions,
847
+ watchBackgroundSession,
765
848
  lastServerSeq,
766
849
  codexAppServer,
767
850
  codexTurnController,
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine/engine.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,24 @@
1
1
  import type { ClaudeAccountUsage, CodexAccountUsage } from "../../protocol/messages.js";
2
+ import { type PlanUsageFailure } from "../../services/planUsageFetcher.js";
2
3
  import type { HandlerRegistry } from "../context.js";
3
4
  /** Claude 側 TTL(ms)。使用量 API は分解能が粗く、2 分で十分新しい。 */
4
5
  export declare const CLAUDE_ACCOUNT_USAGE_TTL_MS = 120000;
5
6
  /** Codex 側 TTL(ms)。App Server 経由なので Claude より短くできる。 */
6
7
  export declare const CODEX_ACCOUNT_USAGE_TTL_MS = 60000;
8
+ /**
9
+ * Claude が `login_required`(候補ゼロ / 全候補 401)で失敗したときだけ使う短い TTL(ms)。
10
+ * `/login` し直しの直後にシートを更新して復旧を見せるため。通信断(unavailable)や Codex の
11
+ * 失敗は従来 TTL のまま(オフライン中に 15s ごとに候補×5s timeout や App Server 起動試行を
12
+ * 繰り返すと、アプリの RPC timeout 12s に対して応答が遅れる)。
13
+ */
14
+ export declare const ACCOUNT_USAGE_FAILURE_TTL_MS = 15000;
7
15
  /** Claude 側の取得失敗時に返す理由文(iOS はこれをそのままカードへ出す)。 */
8
16
  export declare const CLAUDE_ACCOUNT_USAGE_ERROR = "Claude \u306E\u4F7F\u7528\u91CF\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08OAuth \u30C8\u30FC\u30AF\u30F3\u7121\u52B9\u307E\u305F\u306F\u30AA\u30D5\u30E9\u30A4\u30F3\uFF09\u3002";
17
+ /**
18
+ * Claude のログインが切れている(候補ゼロ・全候補 401)ときの理由文。
19
+ * 「トークン無効またはオフライン」の二択を利用者に押し付けず、復旧手順(会話で /login)まで示す。
20
+ */
21
+ export declare const CLAUDE_ACCOUNT_USAGE_LOGIN_REQUIRED = "Claude \u306E\u30ED\u30B0\u30A4\u30F3\u304C\u5207\u308C\u3066\u3044\u307E\u3059\u3002\u4F1A\u8A71\u3067 /login \u3092\u5B9F\u884C\u3057\u3066\u30ED\u30B0\u30A4\u30F3\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
9
22
  /** Codex 側の取得失敗時に返す理由文。 */
10
23
  export declare const CODEX_ACCOUNT_USAGE_ERROR = "Codex \u306E\u4F7F\u7528\u91CF\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08Codex App Server \u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\uFF09\u3002";
11
24
  export interface AccountUsageHandlerOptions {
@@ -13,7 +26,11 @@ export interface AccountUsageHandlerOptions {
13
26
  now?: () => number;
14
27
  claudeTtlMs?: number;
15
28
  codexTtlMs?: number;
29
+ /** 失敗エントリの TTL(既定 ACCOUNT_USAGE_FAILURE_TTL_MS)。 */
30
+ failureTtlMs?: number;
16
31
  }
32
+ /** Claude 側の失敗理由文(分類に応じて出し分け)。 */
33
+ export declare function claudeAccountUsageErrorText(failure: PlanUsageFailure | null): string;
17
34
  /**
18
35
  * account_usage ハンドラを作る。TTL メモを閉包に持つため、テストは独自インスタンスを
19
36
  * 生成して互いに干渉させない(ENGINE_HANDLERS 側は engine プロセス全体で 1 つを共有する)。
@@ -10,14 +10,40 @@
10
10
  // - agent 別 TTL メモを持ち、シートの連打で外部 API を叩かない。TTL 内は前回値を返し、
11
11
  // `fetchedAt` は実際に取得した時刻のまま(最も古い方)を載せる — 表示が「いつの値か」で嘘をつかない。
12
12
  // - 成功だけでなく失敗もキャッシュする(TTL の目的が外部 API の保護なので、失敗連打も止める)。
13
+ import { isPlanUsageFailure } from "../../services/planUsageFetcher.js";
13
14
  /** Claude 側 TTL(ms)。使用量 API は分解能が粗く、2 分で十分新しい。 */
14
15
  export const CLAUDE_ACCOUNT_USAGE_TTL_MS = 120_000;
15
16
  /** Codex 側 TTL(ms)。App Server 経由なので Claude より短くできる。 */
16
17
  export const CODEX_ACCOUNT_USAGE_TTL_MS = 60_000;
18
+ /**
19
+ * Claude が `login_required`(候補ゼロ / 全候補 401)で失敗したときだけ使う短い TTL(ms)。
20
+ * `/login` し直しの直後にシートを更新して復旧を見せるため。通信断(unavailable)や Codex の
21
+ * 失敗は従来 TTL のまま(オフライン中に 15s ごとに候補×5s timeout や App Server 起動試行を
22
+ * 繰り返すと、アプリの RPC timeout 12s に対して応答が遅れる)。
23
+ */
24
+ export const ACCOUNT_USAGE_FAILURE_TTL_MS = 15_000;
17
25
  /** Claude 側の取得失敗時に返す理由文(iOS はこれをそのままカードへ出す)。 */
18
26
  export const CLAUDE_ACCOUNT_USAGE_ERROR = "Claude の使用量を取得できませんでした(OAuth トークン無効またはオフライン)。";
27
+ /**
28
+ * Claude のログインが切れている(候補ゼロ・全候補 401)ときの理由文。
29
+ * 「トークン無効またはオフライン」の二択を利用者に押し付けず、復旧手順(会話で /login)まで示す。
30
+ */
31
+ export const CLAUDE_ACCOUNT_USAGE_LOGIN_REQUIRED = "Claude のログインが切れています。会話で /login を実行してログインし直してください。";
19
32
  /** Codex 側の取得失敗時に返す理由文。 */
20
33
  export const CODEX_ACCOUNT_USAGE_ERROR = "Codex の使用量を取得できませんでした(Codex App Server に接続できません)。";
34
+ /** キャッシュが TTL 内か(`login_required` の失敗エントリだけ短い failureTtlMs で判定する)。 */
35
+ function cacheFresh(entry, nowMs, successTtlMs, failureTtlMs) {
36
+ if (entry === null)
37
+ return false;
38
+ const ttl = entry.value === null && entry.failure === "login_required" ? failureTtlMs : successTtlMs;
39
+ return nowMs - entry.atMs < ttl;
40
+ }
41
+ /** Claude 側の失敗理由文(分類に応じて出し分け)。 */
42
+ export function claudeAccountUsageErrorText(failure) {
43
+ return failure === "login_required"
44
+ ? CLAUDE_ACCOUNT_USAGE_LOGIN_REQUIRED
45
+ : CLAUDE_ACCOUNT_USAGE_ERROR;
46
+ }
21
47
  /**
22
48
  * Claude usage が同じ OAuth token で account 解決を試みた印。
23
49
  * non-enumerable Symbol は JSON に出ず、dropExpiredWindows が加工後のコピーへ明示継承する。
@@ -31,25 +57,33 @@ export function createAccountUsageHandlers(options = {}) {
31
57
  const now = options.now ?? (() => Date.now());
32
58
  const claudeTtlMs = options.claudeTtlMs ?? CLAUDE_ACCOUNT_USAGE_TTL_MS;
33
59
  const codexTtlMs = options.codexTtlMs ?? CODEX_ACCOUNT_USAGE_TTL_MS;
60
+ const failureTtlMs = options.failureTtlMs ?? ACCOUNT_USAGE_FAILURE_TTL_MS;
34
61
  let claudeCache = null;
35
62
  let codexCache = null;
36
63
  async function loadClaude(ctx) {
37
64
  const at = now();
38
- if (claudeCache !== null && at - claudeCache.atMs < claudeTtlMs)
65
+ if (cacheFresh(claudeCache, at, claudeTtlMs, failureTtlMs))
39
66
  return claudeCache;
40
67
  let value = null;
68
+ let failure = null;
41
69
  try {
42
- value = toClaudeAccountUsage(await ctx.planUsage());
70
+ const result = await ctx.planUsage();
71
+ if (isPlanUsageFailure(result)) {
72
+ failure = result.failure;
73
+ }
74
+ else {
75
+ value = toClaudeAccountUsage(result);
76
+ }
43
77
  }
44
78
  catch {
45
79
  value = null;
46
80
  }
47
- claudeCache = { atMs: at, value };
81
+ claudeCache = { atMs: at, value, failure };
48
82
  return claudeCache;
49
83
  }
50
84
  async function loadCodex(ctx) {
51
85
  const at = now();
52
- if (codexCache !== null && at - codexCache.atMs < codexTtlMs)
86
+ if (cacheFresh(codexCache, at, codexTtlMs, failureTtlMs))
53
87
  return codexCache;
54
88
  let value = null;
55
89
  try {
@@ -58,7 +92,7 @@ export function createAccountUsageHandlers(options = {}) {
58
92
  catch {
59
93
  value = null;
60
94
  }
61
- codexCache = { atMs: at, value };
95
+ codexCache = { atMs: at, value, failure: null };
62
96
  return codexCache;
63
97
  }
64
98
  /**
@@ -108,7 +142,7 @@ export function createAccountUsageHandlers(options = {}) {
108
142
  id: message.id,
109
143
  ...(claudeValue !== null
110
144
  ? { claude: claudeValue }
111
- : { claudeError: CLAUDE_ACCOUNT_USAGE_ERROR }),
145
+ : { claudeError: claudeAccountUsageErrorText(claude.failure) }),
112
146
  ...(codexValue !== null
113
147
  ? { codex: codexValue }
114
148
  : { codexError: CODEX_ACCOUNT_USAGE_ERROR }),