peertable 0.8.51 → 0.8.52
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/README.md +1 -1
- package/package.json +1 -1
- package/room/client.mjs +1 -1
- package/skill/scripts/wakeup-bridge.mjs +14 -0
package/README.md
CHANGED
|
@@ -149,7 +149,7 @@ It interviews you, names the members, scaffolds `.team/` (charter + roles, isola
|
|
|
149
149
|
|
|
150
150
|
Working, and used to build itself. First verified end-to-end on 2026-08-08 with a full no-orchestrator loop: two members consulted, claimed, negotiated an interface, shared a discovered pitfall, and shipped a small project with **zero external intervention**. A 2026-08-13 real-seat lifecycle verified in-place model/effort changes and restart recovery. On 2026-08-14, a Grok 4.6 seat joined the room, changed 4.6↔4.5 in the same session, and woke on a direct message in a live acceptance run. On 2026-08-17 the wake-up path was corrected so Grok seats wait for idle, broadcasts keep their body, and a parent without a tmux seat cannot stall the bridge cursor.
|
|
151
151
|
|
|
152
|
-
The current npm release is **peertable 0.8.
|
|
152
|
+
The current npm release is **peertable 0.8.52**.
|
|
153
153
|
|
|
154
154
|
The current product contract is [docs/current-design.md](https://github.com/kitepon/peertable/blob/main/docs/current-design.md). Completed plans and the cumulative decision log are kept under `docs/archive/`; the current document map is [docs/00_overview.md](https://github.com/kitepon/peertable/blob/main/docs/00_overview.md).
|
|
155
155
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "peertable",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.52",
|
|
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.
|
|
17
|
+
const MCP_VERSION = '0.8.52'
|
|
18
18
|
const PKG_ROOT = join(dirname(fileURLToPath(import.meta.url)), '..')
|
|
19
19
|
|
|
20
20
|
const USAGE = `usage:
|
|
@@ -481,6 +481,20 @@ async function wake(seat, msgs) {
|
|
|
481
481
|
error.code = 'SEAT_TUI_GONE'
|
|
482
482
|
throw error
|
|
483
483
|
}
|
|
484
|
+
// **tty が cooked(icanon/echo)のままなら raw -echo へ戻す。** Codex 0.153 はツール実行後に
|
|
485
|
+
// 前面を取り戻しても tty 属性を子 shell の cooked のまま放置することがあり、その状態では
|
|
486
|
+
// 打鍵が行バッファに溜まって生で echo され(`^L` `^[[201~` が画面に残る)、TUI には届かない
|
|
487
|
+
// (実測 2026-09-04: tsumugi。`stty -f <tty> raw -echo` で即座に TUI が復帰した)。
|
|
488
|
+
// agent TUI は raw で動く前提なので、前面が agent である限りこの正規化は無害。
|
|
489
|
+
if (paneTty) {
|
|
490
|
+
const sttyOut = await run('/bin/stty', ['-f', `/dev/${paneTty}`, '-a'], { env: { ...process.env, LC_ALL: 'C' } })
|
|
491
|
+
const lflags = String(sttyOut.stdout ?? '')
|
|
492
|
+
const cooked = /(^|\s)icanon(\s|$)/u.test(lflags) || /(^|\s)echo(\s|$)/u.test(lflags)
|
|
493
|
+
if (cooked) {
|
|
494
|
+
await run('/bin/stty', ['-f', `/dev/${paneTty}`, 'raw', '-echo'], { env: { ...process.env, LC_ALL: 'C' } })
|
|
495
|
+
log(`SEAT_TTY_COOKED: ${seat} の tty が icanon/echo のままだった。raw -echo へ戻した`)
|
|
496
|
+
}
|
|
497
|
+
}
|
|
484
498
|
if (await passKnownCodexDialog(member)) return 'deferred'
|
|
485
499
|
const pane = await run('tmux', tmuxArgv(['capture-pane', '-t', observation.target, '-p'], { socket: observation.socket }))
|
|
486
500
|
const screen = String(pane.stdout ?? '')
|