@cocorograph/hub-agent 0.8.82 → 0.8.83

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 (2) hide show
  1. package/package.json +1 -1
  2. package/src/tmux.mjs +7 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocorograph/hub-agent",
3
- "version": "0.8.82",
3
+ "version": "0.8.83",
4
4
  "description": "Hub Hosted Cockpit のローカル常駐 agent。Hub と outbound WSS で接続し、ローカルの Claude / Codex チャットと tmux セッションを中継する。",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
package/src/tmux.mjs CHANGED
@@ -23,7 +23,7 @@ import { expandTilde, hubProjectsBase, prepareChatWorkspace } from "./chat-works
23
23
  export { expandTilde, isUnderHubProjectsBase, projectInstructionDir } from "./chat-workspace.mjs"
24
24
  import { detectSessionState, getSessionCwd } from "./state.mjs"
25
25
  import { shouldLaunchPaneCli } from "./pane-cli-flag.mjs"
26
- import { baseSessionName, sessionNameFor } from "./session-names.mjs"
26
+ import { baseSessionName, cliKindForSessionName, sessionNameFor } from "./session-names.mjs"
27
27
  import { boundSessionId, getSessionUsages, isFreshUnboundBind, jsonlContextForCwd } from "./usage.mjs"
28
28
  import { quotePosixShellArg, requireCodexBinary } from "./codex-binary.mjs"
29
29
 
@@ -676,12 +676,16 @@ export async function listSessions(opts = {}) {
676
676
  // tmux 上の bind 台帳が無いため、これが無いと cold-start (session.state snapshot 未取得)
677
677
  // の poll 応答で cwd の別アクティビティ jsonl を「最新」と取り違える cross-activity 汚染が
678
678
  // 起き得る (2026-07 発覚。TUI 版は本行の boundSessions 解決で既に根治済みだった)。
679
- const boundValue = opts.boundSessions?.get(s.name)
679
+ // Codex 行には Claude の bind / live ID 由来の使用率を載せない。
680
+ // 代表会話の値は送信側の readRowChatState に委ねる。
681
+ const allowClaudeUsage = cliKindForSessionName(s.name) !== "codex"
682
+ const boundValue = allowClaudeUsage ? opts.boundSessions?.get(s.name) : null
680
683
  const freshUnbound = isFreshUnboundBind(boundValue)
681
- const boundId =
684
+ const boundId = allowClaudeUsage ? (
682
685
  boundSessionId(opts.boundSessions, s.name) ||
683
686
  (cwd && opts.claudeBridge?.liveSessionIdForCwd?.(cwd)) ||
684
687
  null
688
+ ) : null
685
689
  // cwd だけでは同じリポジトリで並走する別 Claude / subagent / 過去会話を区別できない。
686
690
  // bound ID が無い状態で statusLine/jsonl の「cwd 最新値」を使うと、再起動後や未オープンの
687
691
  // tmux セッションへ別会話の 98〜100% が混入する。実際に値の帰属先を示せる bound session