@bivy/bivy 0.16.3-staging.2 → 0.16.3-staging.3

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.
@@ -107,6 +107,9 @@ export function codexAppServerRuntime(tier) {
107
107
  interactiveTui: codexCommandAvailable(),
108
108
  nativeSessionDiscovery: true,
109
109
  nativeSessionAdoption: true,
110
+ // `bivy run codex` learns the rollout id from Codex's on-disk store after
111
+ // launch, so an unpinned native terminal can be taken over as chat.
112
+ sessionDiscovery: true,
110
113
  },
111
114
  resumable: true,
112
115
  loadHistory: (sessionId) => loadCodexTranscript(sessionId),
@@ -147,6 +150,7 @@ export function codexIntegration(origin) {
147
150
  interactiveTui: installed,
148
151
  nativeSessionDiscovery: true,
149
152
  nativeSessionAdoption: true,
153
+ sessionDiscovery: true,
150
154
  },
151
155
  nativeSandbox: true,
152
156
  supportTier: "supported",
@@ -19,7 +19,12 @@ export function piCommand() {
19
19
  * that native store rather than only the governed one. */
20
20
  export async function listNativePiSessions() {
21
21
  const { SessionManager } = await import("@earendil-works/pi-coding-agent");
22
- const sessions = await SessionManager.listAll(path.join(piAgentDir(), "sessions"));
22
+ // Do not pass the sessions root here. Pi's default store is split into one
23
+ // encoded subdirectory per cwd, and SessionManager.listAll(customDir) scans
24
+ // only that directory itself. The no-argument form walks those cwd
25
+ // subdirectories under PI_CODING_AGENT_DIR; passing `<agentDir>/sessions`
26
+ // therefore made every normal native TUI session invisible to takeover.
27
+ const sessions = await SessionManager.listAll();
23
28
  return sessions.map((session) => ({
24
29
  id: session.id,
25
30
  path: session.path,
@@ -123,7 +123,10 @@ export function createRunTerminals(deps) {
123
123
  const { autoName: _autoName, ...publicMeta } = t.meta;
124
124
  out.push({ termId: t.id, workspace: t.workspace, createdAt: t.createdAt, lastActivityAt: t.lastActivityAt, pid: terminals.pid(t.id), ...publicMeta, takeoverReady: Boolean(sessionRef) });
125
125
  }
126
- return out;
126
+ // Discovery/name lookup above is asynchronous. A takeover can close a PTY
127
+ // while this list is being assembled; never let that older list resolve
128
+ // afterward and resurrect the closed terminal in the sidebar.
129
+ return out.filter((terminal) => runTerminals.has(terminal.termId));
127
130
  }
128
131
  function broadcastRunTerminalList() {
129
132
  void runTerminalList().then((listed) => deps.broadcast({ type: "terminal.list", terminals: listed })).catch(() => { });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bivy/bivy",
3
- "version": "0.16.3-staging.2",
3
+ "version": "0.16.3-staging.3",
4
4
  "type": "module",
5
5
  "license": "AGPL-3.0-only",
6
6
  "description": "Run coding agents on machines you own. Open-source, self-hostable agent workspace.",