@omg-dev/app 0.6.68 → 0.6.70
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/dist-lib/{ChangelogPage-DJV1KmfY.js → ChangelogPage-B9OljJUo.js} +15 -1
- package/dist-lib/{SessionFilesPanel-DB16wNdf.js → SessionFilesPanel-BRwIy915.js} +8 -8
- package/dist-lib/{TermView-BisjYRmz.js → TermView-DwfTM9gS.js} +2 -2
- package/dist-lib/{board-page-BV9Gy4uR.js → board-page-DBzQq5FG.js} +27 -37
- package/dist-lib/{chat-engine-Dt44Vh8k.js → chat-engine-DOExtPv_.js} +1 -1
- package/dist-lib/{coding-agents-page-Buv9DVpw.js → coding-agents-page-B8lslb_t.js} +1 -1
- package/dist-lib/{computer-page-ChAILKMS.js → computer-page-DH7IPeY5.js} +2 -2
- package/dist-lib/{embedded-DoqmW6eM.js → embedded-Dw2pU919.js} +9191 -8907
- package/dist-lib/index.js +3 -3
- package/dist-lib/{keyboard-CsIeW7CN.js → keyboard-ezPbUoyA.js} +1 -1
- package/dist-lib/{resume-session-sheet-CHmFuSuI.js → resume-session-sheet-C36cSipC.js} +125 -108
- package/dist-lib/{session-token-usage-DtrR5yfa.js → session-token-usage-C87Aq9tP.js} +1 -1
- package/dist-lib/{shipped-page-B_lXa3qN.js → shipped-page-BiR06zTN.js} +27 -27
- package/dist-lib/{streamdown-response-BlPaSmH7.js → streamdown-response-BnW1dbLR.js} +1 -1
- package/dist-lib/styles.css +1 -1
- package/package.json +3 -2
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { N as n } from "./embedded-Dw2pU919.js";
|
|
3
3
|
const t = `# Changelog
|
|
4
4
|
|
|
5
5
|
Recent product updates and deployment notes.
|
|
6
6
|
|
|
7
|
+
## September 17, 2026 - New sessions pick an agent the Computer can run (v0.6.70)
|
|
8
|
+
|
|
9
|
+
- A new session that names no agent now gets one the Computer can actually run. The box reads its own \`defaultAgent\` setting first, then takes the first visible agent with a connected account (OpenCode counts without one), then the first configured agent. Before this, the box always answered Claude, so the first task from the iOS onboarding on a fresh hosted Computer came back "Not logged in". **Hosted Computers need this release** for the fix to apply. An explicit agent in the request is unchanged.
|
|
10
|
+
- Typing \`#\` in a composer now lists running threads only. Closed and archived sessions no longer appear in the picker.
|
|
11
|
+
|
|
12
|
+
## September 15, 2026 - Live Activities, scheduled runs in the archive, and iOS onboarding (v0.6.69)
|
|
13
|
+
|
|
14
|
+
- iOS Live Activities show the fleet on the Lock Screen and in the Dynamic Island. The box publishes a bounded roster over \`fleet.status\` with each session's agent and state.
|
|
15
|
+
- A running row carries \`startedAt\`, so the phone counts the elapsed time on the device instead of needing a push every second. **This part needs a Computer on this release.** A Computer on an older build sends no start time, and the phone correctly falls back to the word "working" rather than showing a date in 1970.
|
|
16
|
+
- The archive hides scheduled runs by default and orders by archive time, with a control to show them again. This adds resume-cache migration 008.
|
|
17
|
+
- Hosted sessions get an automatic title from managed AI.
|
|
18
|
+
- \`#\` session references moved into \`@omg-dev/protocol\`, so the web and the native composers resolve them the same way.
|
|
19
|
+
- The iOS app has a revamped onboarding that asks what you want before it asks who you are, a Home Screen widget, and per-agent Live Activity rows. The app ships through the App Store and over the air, not in this bundle.
|
|
20
|
+
|
|
7
21
|
## September 12, 2026 - Stable message queues and mobile navigation (v0.6.68)
|
|
8
22
|
|
|
9
23
|
- Queued messages now leave the editable queue one at a time as the agent becomes available. The remaining messages stay visible across reconnects and restarts instead of moving into a hidden agent queue.
|
|
@@ -2,7 +2,7 @@ import { jsx as e, jsxs as o, Fragment as te } from "react/jsx-runtime";
|
|
|
2
2
|
import { memo as ne, useState as c, useRef as E, useCallback as v, useEffect as T, useMemo as q, Suspense as U } from "react";
|
|
3
3
|
import { createPortal as re } from "react-dom";
|
|
4
4
|
import { cn as y } from "cnfast";
|
|
5
|
-
import {
|
|
5
|
+
import { z as oe, a7 as se, a8 as W, a9 as ae, X as I, aa as ie, ab as le, L as H, ac as de, y as ce, m as me, ad as j } from "./embedded-Dw2pU919.js";
|
|
6
6
|
import { c as ue } from "./create-BOwd_pad.js";
|
|
7
7
|
/**
|
|
8
8
|
* @license lucide-react v0.577.0 - ISC
|
|
@@ -74,7 +74,7 @@ function ke({ tree: n, onNavigate: s }) {
|
|
|
74
74
|
);
|
|
75
75
|
}
|
|
76
76
|
function we({ sid: n, onClose: s }) {
|
|
77
|
-
const [l, m] = c(null), [t, h] = c(null), [k, x] = c(null), [g, L] = c(null), [i, C] = c(null), [R, $] = c(null), [J, P] = c(!1), [u, w] = c(!1), [
|
|
77
|
+
const [l, m] = c(null), [t, h] = c(null), [k, x] = c(null), [g, L] = c(null), [i, C] = c(null), [R, $] = c(null), [J, P] = c(!1), [u, w] = c(!1), [z, A] = c(""), [p, f] = c({ kind: "idle" }), [V, S] = c("tree"), B = se(), b = E(null), X = v((r) => {
|
|
78
78
|
b.current = r;
|
|
79
79
|
}, []), F = E(null);
|
|
80
80
|
T(() => {
|
|
@@ -94,7 +94,7 @@ function we({ sid: n, onClose: s }) {
|
|
|
94
94
|
}, [s]);
|
|
95
95
|
const D = v(
|
|
96
96
|
(r) => {
|
|
97
|
-
t && (
|
|
97
|
+
t && (S("file"), r !== F.current && (F.current = r, L(r), w(!1), f({ kind: "idle" }), A(""), b.current = null, C(null), $(null), P(!0), _(
|
|
98
98
|
`/api/sessions/${n}/file?path=${encodeURIComponent(`${t.root}/${r}`)}`
|
|
99
99
|
).then((d) => {
|
|
100
100
|
C(d.file), b.current = d.file.contents;
|
|
@@ -102,8 +102,8 @@ function we({ sid: n, onClose: s }) {
|
|
|
102
102
|
},
|
|
103
103
|
[n, t]
|
|
104
104
|
), M = v((r) => {
|
|
105
|
-
m(r), F.current = null, L(null), C(null), w(!1),
|
|
106
|
-
}, []), K = v(() =>
|
|
105
|
+
m(r), F.current = null, L(null), C(null), w(!1), S("tree");
|
|
106
|
+
}, []), K = v(() => S("tree"), []), Y = q(
|
|
107
107
|
() => i ? { ...i, contents: b.current ?? i.contents } : null,
|
|
108
108
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- `editing` is the
|
|
109
109
|
// intended trigger; draftRef is a ref and deliberately not reactive.
|
|
@@ -114,7 +114,7 @@ function we({ sid: n, onClose: s }) {
|
|
|
114
114
|
displayPath: r,
|
|
115
115
|
original: i.contents,
|
|
116
116
|
edited: b.current,
|
|
117
|
-
note:
|
|
117
|
+
note: z
|
|
118
118
|
});
|
|
119
119
|
if (!d.ok) {
|
|
120
120
|
f({
|
|
@@ -143,7 +143,7 @@ function we({ sid: n, onClose: s }) {
|
|
|
143
143
|
} catch (a) {
|
|
144
144
|
f({ kind: "error", message: a instanceof Error ? a.message : String(a) });
|
|
145
145
|
}
|
|
146
|
-
}, [n, i, g,
|
|
146
|
+
}, [n, i, g, z]), Q = !!g && V === "file", O = p.kind === "sent" || p.kind === "error" ? "banner" : u ? "editor" : "content", Z = /* @__PURE__ */ e(
|
|
147
147
|
"div",
|
|
148
148
|
{
|
|
149
149
|
role: "dialog",
|
|
@@ -282,7 +282,7 @@ function we({ sid: n, onClose: s }) {
|
|
|
282
282
|
/* @__PURE__ */ e(
|
|
283
283
|
"textarea",
|
|
284
284
|
{
|
|
285
|
-
value:
|
|
285
|
+
value: z,
|
|
286
286
|
onChange: (r) => A(r.target.value),
|
|
287
287
|
rows: 2,
|
|
288
288
|
placeholder: "Optional: anything else the agent should do alongside this edit",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as U, jsx as F, Fragment as vA } from "react/jsx-runtime";
|
|
2
2
|
import { useState as L, useRef as R, useEffect as p, useCallback as q } from "react";
|
|
3
|
-
import {
|
|
4
|
-
import { K as jA, C as PA } from "./keyboard-
|
|
3
|
+
import { z as ZA, o as wQ, X as CA, ae as sQ, y as tQ, af as eQ, ag as aQ, a8 as MQ, ah as hQ, R as NQ, m as cQ } from "./embedded-Dw2pU919.js";
|
|
4
|
+
import { K as jA, C as PA } from "./keyboard-ezPbUoyA.js";
|
|
5
5
|
/**
|
|
6
6
|
* @license lucide-react v0.577.0 - ISC
|
|
7
7
|
*
|
|
@@ -1,18 +1,8 @@
|
|
|
1
|
-
import { jsx as i, jsxs as
|
|
1
|
+
import { jsx as i, jsxs as c } from "react/jsx-runtime";
|
|
2
2
|
import { useState as x, useEffect as h, useMemo as b } from "react";
|
|
3
|
-
import { y, F as N,
|
|
3
|
+
import { E as y, F as N, H as w, I as k, L as v, J as I, l as A, j } from "./embedded-Dw2pU919.js";
|
|
4
4
|
import { cn as g } from "cnfast";
|
|
5
|
-
|
|
6
|
-
* @license lucide-react v0.577.0 - ISC
|
|
7
|
-
*
|
|
8
|
-
* This source code is licensed under the ISC license.
|
|
9
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
10
|
-
*/
|
|
11
|
-
const _ = [
|
|
12
|
-
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
13
|
-
["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3", key: "1u773s" }],
|
|
14
|
-
["path", { d: "M12 17h.01", key: "p32p05" }]
|
|
15
|
-
], L = y("circle-question-mark", _), u = {
|
|
5
|
+
const u = {
|
|
16
6
|
"needs-you": "Needs you",
|
|
17
7
|
working: "Working",
|
|
18
8
|
idle: "Idle",
|
|
@@ -45,7 +35,7 @@ function p(t) {
|
|
|
45
35
|
function m(t, o) {
|
|
46
36
|
return o.at - t.at || t.key.localeCompare(o.key);
|
|
47
37
|
}
|
|
48
|
-
function
|
|
38
|
+
function L(t) {
|
|
49
39
|
const o = /* @__PURE__ */ new Map();
|
|
50
40
|
for (const e of t.questions) {
|
|
51
41
|
if (!e.sessionId) continue;
|
|
@@ -56,7 +46,7 @@ function M(t) {
|
|
|
56
46
|
for (const e of t.sessions) {
|
|
57
47
|
const n = e.sessionId;
|
|
58
48
|
if (!n || e.botId) continue;
|
|
59
|
-
const f = o.get(n),
|
|
49
|
+
const f = o.get(n), l = {
|
|
60
50
|
key: `session:${n}`,
|
|
61
51
|
sessionId: n,
|
|
62
52
|
title: B(e),
|
|
@@ -66,7 +56,7 @@ function M(t) {
|
|
|
66
56
|
project: e.project,
|
|
67
57
|
at: e.lastActivityAt ?? e.startedAt ?? 0
|
|
68
58
|
};
|
|
69
|
-
f ? (
|
|
59
|
+
f ? (l.note = p(f.question), d.push(l)) : e.status === "blocked" ? (l.note = C(e), d.push(l)) : e.busy ? (e.last?.text && (l.note = p(e.last.text)), a.push(l)) : (e.last?.text && (l.note = p(e.last.text)), s.push(l));
|
|
70
60
|
}
|
|
71
61
|
const r = t.posts.map((e) => ({
|
|
72
62
|
key: `post:${e.id}`,
|
|
@@ -85,21 +75,21 @@ function M(t) {
|
|
|
85
75
|
{ id: "shipped", label: u.shipped, cards: r.sort(m) }
|
|
86
76
|
];
|
|
87
77
|
}
|
|
88
|
-
const
|
|
78
|
+
const _ = {
|
|
89
79
|
"needs-you": {
|
|
90
|
-
icon:
|
|
80
|
+
icon: I,
|
|
91
81
|
accent: "text-warning",
|
|
92
82
|
count: "bg-warning/15 text-warning",
|
|
93
83
|
empty: "Nothing is waiting on you."
|
|
94
84
|
},
|
|
95
85
|
working: {
|
|
96
|
-
icon:
|
|
86
|
+
icon: v,
|
|
97
87
|
accent: "text-primary",
|
|
98
88
|
count: "bg-primary/10 text-primary",
|
|
99
89
|
empty: "No agent is working right now."
|
|
100
90
|
},
|
|
101
91
|
idle: {
|
|
102
|
-
icon:
|
|
92
|
+
icon: k,
|
|
103
93
|
accent: "text-muted-foreground",
|
|
104
94
|
count: "bg-muted text-muted-foreground",
|
|
105
95
|
empty: "No idle sessions."
|
|
@@ -115,14 +105,14 @@ function S({
|
|
|
115
105
|
card: t,
|
|
116
106
|
onOpen: o
|
|
117
107
|
}) {
|
|
118
|
-
return /* @__PURE__ */
|
|
108
|
+
return /* @__PURE__ */ c(
|
|
119
109
|
"button",
|
|
120
110
|
{
|
|
121
111
|
type: "button",
|
|
122
112
|
onClick: o,
|
|
123
113
|
className: "flex w-full flex-col gap-1.5 rounded-xl border border-border bg-card px-3 py-2.5 text-left shadow-xs transition-colors hover:bg-foreground/[0.03] active:bg-foreground/[0.06]",
|
|
124
114
|
children: [
|
|
125
|
-
/* @__PURE__ */
|
|
115
|
+
/* @__PURE__ */ c("div", { className: "flex items-start gap-2", children: [
|
|
126
116
|
/* @__PURE__ */ i(
|
|
127
117
|
A,
|
|
128
118
|
{
|
|
@@ -134,7 +124,7 @@ function S({
|
|
|
134
124
|
/* @__PURE__ */ i("span", { className: "line-clamp-2 min-w-0 flex-1 text-sm font-medium leading-snug", children: t.title })
|
|
135
125
|
] }),
|
|
136
126
|
t.note ? /* @__PURE__ */ i("p", { className: "line-clamp-2 text-xs leading-snug text-muted-foreground", children: t.note }) : null,
|
|
137
|
-
/* @__PURE__ */
|
|
127
|
+
/* @__PURE__ */ c("div", { className: "flex items-center gap-2 text-[11px] text-muted-foreground/80", children: [
|
|
138
128
|
t.project ? /* @__PURE__ */ i("span", { className: "truncate", children: t.project }) : null,
|
|
139
129
|
/* @__PURE__ */ i("span", { className: "ml-auto shrink-0", children: j(t.at || null) })
|
|
140
130
|
] })
|
|
@@ -142,16 +132,16 @@ function S({
|
|
|
142
132
|
}
|
|
143
133
|
);
|
|
144
134
|
}
|
|
145
|
-
function
|
|
135
|
+
function q({
|
|
146
136
|
columns: t,
|
|
147
137
|
onOpenSession: o,
|
|
148
138
|
onOpenShipped: d
|
|
149
139
|
}) {
|
|
150
140
|
const a = t.reduce((s, r) => s + r.cards.length, 0);
|
|
151
|
-
return /* @__PURE__ */
|
|
152
|
-
/* @__PURE__ */
|
|
141
|
+
return /* @__PURE__ */ c("div", { className: "flex h-full min-h-0 flex-col gap-3 px-3 pb-4 md:px-4", children: [
|
|
142
|
+
/* @__PURE__ */ c("div", { className: "flex items-baseline justify-between gap-3", children: [
|
|
153
143
|
/* @__PURE__ */ i("h1", { className: "text-base font-semibold tracking-tight", children: "Board" }),
|
|
154
|
-
/* @__PURE__ */
|
|
144
|
+
/* @__PURE__ */ c("span", { className: "text-xs text-muted-foreground", children: [
|
|
155
145
|
a,
|
|
156
146
|
" ",
|
|
157
147
|
a === 1 ? "card" : "cards",
|
|
@@ -159,14 +149,14 @@ function O({
|
|
|
159
149
|
] })
|
|
160
150
|
] }),
|
|
161
151
|
/* @__PURE__ */ i("div", { className: "flex min-h-0 flex-1 flex-row snap-x snap-mandatory gap-3 overflow-x-auto overflow-y-hidden pb-2 md:snap-none", children: t.map((s) => {
|
|
162
|
-
const r =
|
|
163
|
-
return /* @__PURE__ */
|
|
152
|
+
const r = _[s.id], e = r.icon;
|
|
153
|
+
return /* @__PURE__ */ c(
|
|
164
154
|
"section",
|
|
165
155
|
{
|
|
166
156
|
"aria-label": s.label,
|
|
167
157
|
className: "flex min-h-0 w-[82vw] max-w-72 shrink-0 snap-start flex-col rounded-2xl bg-muted/40 ring-1 ring-inset ring-border/60 md:w-72",
|
|
168
158
|
children: [
|
|
169
|
-
/* @__PURE__ */
|
|
159
|
+
/* @__PURE__ */ c("header", { className: "flex items-center gap-2 px-3 pt-3 pb-2", children: [
|
|
170
160
|
/* @__PURE__ */ i(
|
|
171
161
|
e,
|
|
172
162
|
{
|
|
@@ -206,25 +196,25 @@ function O({
|
|
|
206
196
|
}) })
|
|
207
197
|
] });
|
|
208
198
|
}
|
|
209
|
-
function
|
|
199
|
+
function T({
|
|
210
200
|
sessions: t,
|
|
211
201
|
onOpenSession: o,
|
|
212
202
|
onOpenShipped: d
|
|
213
203
|
}) {
|
|
214
|
-
const { questions: a } =
|
|
204
|
+
const { questions: a } = y(), [s, r] = x([]);
|
|
215
205
|
h(
|
|
216
|
-
() =>
|
|
206
|
+
() => N((n) => {
|
|
217
207
|
n.ok && r(n.posts);
|
|
218
208
|
}),
|
|
219
209
|
[]
|
|
220
210
|
);
|
|
221
211
|
const e = b(
|
|
222
|
-
() =>
|
|
212
|
+
() => L({ sessions: t, questions: a, posts: s }),
|
|
223
213
|
[t, a, s]
|
|
224
214
|
);
|
|
225
|
-
return /* @__PURE__ */ i(
|
|
215
|
+
return /* @__PURE__ */ i(q, { columns: e, onOpenSession: o, onOpenShipped: d });
|
|
226
216
|
}
|
|
227
217
|
export {
|
|
228
|
-
|
|
229
|
-
|
|
218
|
+
q as BoardView,
|
|
219
|
+
T as default
|
|
230
220
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as ao } from "react/jsx-runtime";
|
|
2
2
|
import { useRef as Dt, useCallback as Lt, useSyncExternalStore as ut, useEffect as so } from "react";
|
|
3
3
|
import { g as io } from "./_commonjsHelpers-C6fGbg64.js";
|
|
4
|
-
import {
|
|
4
|
+
import { ai as uo } from "./embedded-Dw2pU919.js";
|
|
5
5
|
var Ar = "vercel.ai.error", co = Symbol.for(Ar), Ut, Ft, se = class Nr extends (Ft = Error, Ut = co, Ft) {
|
|
6
6
|
/**
|
|
7
7
|
* Creates an AI SDK Error.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs as s, jsx as e, Fragment as U } from "react/jsx-runtime";
|
|
2
|
-
import { R as v, B as u, L as C,
|
|
2
|
+
import { R as v, B as u, L as C, n as A, o as S, M as W, p as j, q as E, s as f, T as O, u as I, v as X, w as D, x as J, y as Q, X as V, K as Y } from "./embedded-Dw2pU919.js";
|
|
3
3
|
import { cn as P } from "cnfast";
|
|
4
4
|
import { useState as T } from "react";
|
|
5
5
|
function B(l) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as ye, jsx as z, Fragment as jt } from "react/jsx-runtime";
|
|
2
2
|
import { useState as Le, useRef as Re, useCallback as xe, useEffect as De } from "react";
|
|
3
|
-
import {
|
|
4
|
-
import { K as zn, C as On } from "./keyboard-
|
|
3
|
+
import { z as rn, a8 as Di, ag as Pn, B as Be, R as Nn, X as Un, L as Bi, aj as Hn } from "./embedded-Dw2pU919.js";
|
|
4
|
+
import { K as zn, C as On } from "./keyboard-ezPbUoyA.js";
|
|
5
5
|
/**
|
|
6
6
|
* @license lucide-react v0.577.0 - ISC
|
|
7
7
|
*
|