@agfpd/iapeer 0.4.46 → 0.4.47
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 +1 -1
- package/src/init/index.ts +1 -1
- package/src/launch/invocation.ts +12 -0
- package/src/launch/types.ts +1 -1
- package/src/supervisor/boot.ts +1 -1
- package/src/supervisor/daemon.ts +1 -1
package/package.json
CHANGED
package/src/init/index.ts
CHANGED
|
@@ -130,7 +130,7 @@ export function writeClaudeMcpConfig(cwd: string, personality: string, daemonUrl
|
|
|
130
130
|
* peer has no one to approve it, so the wake stalls. This flag pre-approves the cwd's MCP
|
|
131
131
|
* servers so the dialog never appears (verified live, claude 2.1.183). Set unconditionally.
|
|
132
132
|
* - `"tui": "default"` — pins the CLASSIC renderer so claude never pops its one-time
|
|
133
|
-
* "Try the new fullscreen
|
|
133
|
+
* "Try the new fullscreen-renderer?" upsell modal (a BLOCKING mid-session nag that froze
|
|
134
134
|
* live fleet peers; empirically an explicit tui choice suppresses it — verified live). This
|
|
135
135
|
* is the PREVENTION belt to the supervisor nag-watcher: init keeps the modal from appearing
|
|
136
136
|
* for a new peer at all, the watcher dismisses the class on every peer mid-session. Set ONLY
|
package/src/launch/invocation.ts
CHANGED
|
@@ -67,5 +67,17 @@ export function buildLaunchInvocation(
|
|
|
67
67
|
for (const k of Object.keys(childEnv)) {
|
|
68
68
|
if (k.startsWith('CLAUDE_CODE_') || k === 'CLAUDECODE') delete childEnv[k]
|
|
69
69
|
}
|
|
70
|
+
// В59 — pin claude to the CLASSIC (main-screen) renderer. Two load-bearing effects: (1) the whole
|
|
71
|
+
// supervisor model — pane-log serialize-snapshot, composer-occupancy, the ready-gate flip — assumes
|
|
72
|
+
// claude's DEFAULT no-alt-screen relative-cursor rendering (the daemon census). Pinning it makes that
|
|
73
|
+
// assumption UNCONDITIONAL: no future claude feature, and no mis-accepted mid-session upsell, can
|
|
74
|
+
// silently switch to the alt-screen renderer and corrupt the surface the supervisor reads off. This
|
|
75
|
+
// NEUTRALIZES the consequence of the В40 fullscreen-renderer nag even if a stray keystroke accepts it.
|
|
76
|
+
// (2) It disables the very feature that upsell offers, so the modal has nothing to enable — expected to
|
|
77
|
+
// suppress it at the SOURCE (the root-cause complement to the nag-watcher backstop). Set AFTER the
|
|
78
|
+
// CLAUDE_CODE_* strip above (which would otherwise delete it); claude-only — codex/router runtimes
|
|
79
|
+
// ignore CLAUDE_CODE_*. Safe by construction: claude already renders classic by default (peers boot and
|
|
80
|
+
// attach today), so this pins the current behavior, it does not change it.
|
|
81
|
+
if (spec.runtime === 'claude') childEnv.CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN = '1'
|
|
70
82
|
return { argv, env: childEnv }
|
|
71
83
|
}
|
package/src/launch/types.ts
CHANGED
|
@@ -288,7 +288,7 @@ export interface RuntimeAdapter {
|
|
|
288
288
|
/**
|
|
289
289
|
* MID-SESSION nag/upsell auto-dismiss (livability). Distinct from bootDialogKeys:
|
|
290
290
|
* the boot-driver stops at ready, but claude/codex can pop a ONE-TIME interactive
|
|
291
|
-
* upsell modal AFTER the session is live (e.g. "Try the new fullscreen
|
|
291
|
+
* upsell modal AFTER the session is live (e.g. "Try the new fullscreen-renderer?")
|
|
292
292
|
* that BLOCKS the pty waiting for a keypress no headless peer answers — it froze the
|
|
293
293
|
* live fleet until a human cleared it. A persistent supervisor watcher (daemon.ts)
|
|
294
294
|
* runs THIS off the authoritative model for the whole session and writes the keys.
|
package/src/supervisor/boot.ts
CHANGED
|
@@ -44,7 +44,7 @@ export type NagAction = { kind: 'dismiss'; keys: string[]; bytes: Buffer } | { k
|
|
|
44
44
|
/**
|
|
45
45
|
* MID-SESSION nag/upsell step (livability) — the persistent sibling of nextBootAction. Unlike the
|
|
46
46
|
* boot-driver, which STOPS at ready, the daemon loops this for the WHOLE session: a one-time CC upsell
|
|
47
|
-
* modal (e.g. "Try the new fullscreen
|
|
47
|
+
* modal (e.g. "Try the new fullscreen-renderer?") can pop AFTER the session is live and BLOCK the pty on
|
|
48
48
|
* a keypress no headless peer answers. If the adapter recognizes the (FULL-signature) modal it returns
|
|
49
49
|
* the verified-safe DECLINE keys; the caller writes `action.bytes` to the pty (cooldown-guarded so a
|
|
50
50
|
* cleared modal is never double-answered). An adapter with no nagDismissKeys → always 'none'.
|
package/src/supervisor/daemon.ts
CHANGED
|
@@ -599,7 +599,7 @@ export function runSupervisorDaemon(opts: SupervisorDaemonOptions): void {
|
|
|
599
599
|
|
|
600
600
|
// ── mid-session nag-watcher (livability) ────────────────────────────────────────
|
|
601
601
|
// The boot-driver above STOPS at ready. But claude/codex can pop a ONE-TIME upsell modal
|
|
602
|
-
// MID-SESSION (e.g. "Try the new fullscreen
|
|
602
|
+
// MID-SESSION (e.g. "Try the new fullscreen-renderer?", which appears on the return-to-prompt
|
|
603
603
|
// boundary after a tool result) that BLOCKS the pty on a keypress no headless peer answers — it
|
|
604
604
|
// froze live fleet peers (boris, doc) until a human cleared it by hand. A PERSISTENT watcher answers
|
|
605
605
|
// the curated, verified-safe DECLINE for that class off the SAME authoritative @xterm model, for the
|