peertable 0.8.26 → 0.8.27

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "peertable",
3
- "version": "0.8.26",
3
+ "version": "0.8.27",
4
4
  "description": "A round table of peer agents. No orchestrator at the head. Turn Claude Code, Codex, and Grok sessions into a team of equal, long-lived peers.",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/room/client.mjs CHANGED
@@ -14,7 +14,7 @@ import { boundedRecent, boundedUnread } from './message-bounds.mjs'
14
14
 
15
15
  // client.mjs 側のハードコード版数。package.json の version と一致していることを
16
16
  // diagnostics の version_consistency が見る(2 つの版数源の drift 検出。決定45)
17
- const MCP_VERSION = '0.8.26'
17
+ const MCP_VERSION = '0.8.27'
18
18
  const PKG_ROOT = join(dirname(fileURLToPath(import.meta.url)), '..')
19
19
 
20
20
  const USAGE = `usage:
@@ -18,7 +18,10 @@ export function keysForCodexPane(screen) {
18
18
  const idleComposer = lines.some(line => /^\s*›(?:\s*$|\s+(?!\d+\.))/u.test(line))
19
19
  && lines.some(line => /gpt-[\w.-]+/iu.test(line) && line.includes('·'))
20
20
  if (busy || idleComposer) return null
21
- const dialogText = tail
21
+ // 長いcommand approvalは質問行が24行より上へ押し出される。現在の選択footerが末尾に
22
+ // 在る時だけ全画面を読み、footerが無い通常画面では古いscrollbackを拾わない。
23
+ const activeDialogFooter = /Press enter to confirm or esc to cancel|enter to submit \| esc to cancel/iu.test(tail)
24
+ const dialogText = activeDialogFooter ? text : tail
22
25
  if (dialogText.includes(MCP_ALLOW_NEEDLE) && dialogText.includes(MCP_ALWAYS_ALLOW)) {
23
26
  return { kind: 'mcp-allow', keys: ['Down', 'Down', 'Enter'] }
24
27
  }
@@ -52,6 +52,16 @@ test('Codexの現在busy/idle composerはscrollbackの古い許可文より優
52
52
  assert.equal(keysForCodexPane([...stale, '› Ask Codex to do anything', 'gpt-5.6-terra high · ~/work'].join('\n')), null)
53
53
  })
54
54
 
55
+ test('Codexの長い承認文は現在footerがあれば24行を越えても検出する', () => {
56
+ const screen = [
57
+ 'Would you like to run the following command?',
58
+ "2. Yes, and don't ask again for commands that start with Get-Process",
59
+ ...Array(28).fill('wrapped command line'),
60
+ 'Press enter to confirm or esc to cancel',
61
+ ].join('\n')
62
+ assert.deepEqual(keysForCodexPane(screen), { kind: 'command-approval', keys: ['Down', 'Enter'] })
63
+ })
64
+
55
65
  test('着座はAiterm dispatch前に独自prompt連続判定を重ねない', () => {
56
66
  const source = readFileSync(new URL('./launch-seat.sh', import.meta.url), 'utf8')
57
67
  const activeBranch = source.slice(