@omg-dev/app 0.6.37 → 0.6.38
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-o5jOjpq1.js → ChangelogPage-bXEhk45x.js} +19 -1
- package/dist-lib/{SessionFilesPanel-gc6OlhAb.js → SessionFilesPanel-BOp2-2Qk.js} +1 -1
- package/dist-lib/{TermView-B4pT1GLA.js → TermView-yUJq4X6a.js} +2 -2
- package/dist-lib/board-page-DSsxqeVL.js +230 -0
- package/dist-lib/{chat-engine-CLclwviQ.js → chat-engine-BpLW78aS.js} +1 -1
- package/dist-lib/{coding-agents-page-CqRvsypB.js → coding-agents-page-Mny8ZCKg.js} +1 -1
- package/dist-lib/{computer-page-CdsyEoC5.js → computer-page-CBgIW1Gu.js} +2 -2
- package/dist-lib/{embedded-DnMfJsXy.js → embedded-CblBLBh9.js} +11835 -11634
- package/dist-lib/index.js +2 -2
- package/dist-lib/{keyboard-Ge7rlYAL.js → keyboard-BI3LBFBT.js} +1 -1
- package/dist-lib/{resume-session-sheet-BWCIOQLq.js → resume-session-sheet-DxGDw7a4.js} +1 -1
- package/dist-lib/{session-token-usage-ClNDJj36.js → session-token-usage-umnfevLI.js} +1 -1
- package/dist-lib/{shipped-page-Ah-e6gVP.js → shipped-page-Cgc62O38.js} +1 -1
- package/dist-lib/{streamdown-response-CU_-ka-J.js → streamdown-response-Ba03vt5J.js} +1 -1
- package/dist-lib/styles.css +1 -1
- package/package.json +2 -2
|
@@ -1,9 +1,27 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { z as n } from "./embedded-
|
|
2
|
+
import { z as n } from "./embedded-CblBLBh9.js";
|
|
3
3
|
const t = `# Changelog
|
|
4
4
|
|
|
5
5
|
Recent product updates and deployment notes.
|
|
6
6
|
|
|
7
|
+
## September 3, 2026 - Board in the desktop workspace (v0.6.38)
|
|
8
|
+
|
|
9
|
+
- **The Board sits in the desktop workspace.** On a wide screen the session
|
|
10
|
+
rail stays on the left with its project selector. The four columns fill the
|
|
11
|
+
stage. The old header pill is gone from this page.
|
|
12
|
+
- **A card opens its session beside the Board.** Click a card and the session
|
|
13
|
+
opens as a column next to the columns. Close it to return to the Board alone.
|
|
14
|
+
Narrow screens still open the session page.
|
|
15
|
+
- **Sidebar faces follow the agent icon switch.** Turn off "Agent icons in the
|
|
16
|
+
sidebar" and the assignee face on each session row is hidden too.
|
|
17
|
+
- **New setting: "Worktree diff badge in chat".** Turn it off to hide the
|
|
18
|
+
floating changes bar above the composer.
|
|
19
|
+
- **Also in this release.** The read-only Board page (every task as a kanban,
|
|
20
|
+
at \`/board\`), box defaults for agent and model with View switches in
|
|
21
|
+
Settings, an agent picker switch that can force the default agent, the agent
|
|
22
|
+
and model switches on the mobile inline composer, and Sign in with Apple and
|
|
23
|
+
Google in the mobile app.
|
|
24
|
+
|
|
7
25
|
## September 3, 2026 - Fold a session group shut (v0.6.37)
|
|
8
26
|
|
|
9
27
|
- **Session rail groups fold.** Every group header carries a chevron: Pinned,
|
|
@@ -2,7 +2,7 @@ import { jsx as e, jsxs as s, Fragment as te } from "react/jsx-runtime";
|
|
|
2
2
|
import { memo as ne, useState as m, useRef as T, useCallback as v, useEffect as C, 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 { f as oe,
|
|
5
|
+
import { f as oe, a4 as W, a5 as se, X as I, a6 as ie, a7 as ae, L as H, a8 as le, y as de, C as ce, a9 as L } from "./embedded-CblBLBh9.js";
|
|
6
6
|
import { c as me } from "./create-CBk9uwJH.js";
|
|
7
7
|
/**
|
|
8
8
|
* @license lucide-react v0.577.0 - ISC
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as r, jsx as k, 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 { f as UA, o as iQ, X as CA,
|
|
4
|
-
import { K as ZA } from "./keyboard-
|
|
3
|
+
import { f as UA, o as iQ, X as CA, aa as wQ, y as sQ, ab as tQ, ac as eQ, a4 as aQ, ad as MQ, R as hQ, C as NQ } from "./embedded-CblBLBh9.js";
|
|
4
|
+
import { K as ZA } from "./keyboard-BI3LBFBT.js";
|
|
5
5
|
/**
|
|
6
6
|
* @license lucide-react v0.577.0 - ISC
|
|
7
7
|
*
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { jsx as i, jsxs as c } from "react/jsx-runtime";
|
|
2
|
+
import { useState as x, useEffect as h, useMemo as b } from "react";
|
|
3
|
+
import { f as y, F as N, O as k, Q as w, a3 as v, L as I, m as A, k as _ } from "./embedded-CblBLBh9.js";
|
|
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 j = [
|
|
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", j), u = {
|
|
16
|
+
"needs-you": "Needs you",
|
|
17
|
+
working: "Working",
|
|
18
|
+
idle: "Idle",
|
|
19
|
+
shipped: "Shipped"
|
|
20
|
+
};
|
|
21
|
+
function B(t) {
|
|
22
|
+
return t.title || t.lastUserText || t.tmuxName || t.project || t.sessionId?.slice(0, 8) || "session";
|
|
23
|
+
}
|
|
24
|
+
function C(t) {
|
|
25
|
+
if (t.statusDetail) return t.statusDetail;
|
|
26
|
+
switch (t.statusReason) {
|
|
27
|
+
case "out_of_credits":
|
|
28
|
+
return "Out of credits";
|
|
29
|
+
case "provider_auth":
|
|
30
|
+
return "Provider needs sign-in";
|
|
31
|
+
case "model_unavailable":
|
|
32
|
+
return "Model unavailable";
|
|
33
|
+
case "provider_error":
|
|
34
|
+
return "Provider error";
|
|
35
|
+
case "restart_recovered":
|
|
36
|
+
return "Recovered after restart";
|
|
37
|
+
default:
|
|
38
|
+
return "Blocked";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function p(t) {
|
|
42
|
+
const o = t.replace(/\s+/g, " ").trim();
|
|
43
|
+
return o.length > 140 ? `${o.slice(0, 139)}…` : o;
|
|
44
|
+
}
|
|
45
|
+
function m(t, o) {
|
|
46
|
+
return o.at - t.at || t.key.localeCompare(o.key);
|
|
47
|
+
}
|
|
48
|
+
function M(t) {
|
|
49
|
+
const o = /* @__PURE__ */ new Map();
|
|
50
|
+
for (const e of t.questions) {
|
|
51
|
+
if (!e.sessionId) continue;
|
|
52
|
+
const n = o.get(e.sessionId);
|
|
53
|
+
(!n || e.createdAt < n.createdAt) && o.set(e.sessionId, e);
|
|
54
|
+
}
|
|
55
|
+
const d = [], a = [], s = [];
|
|
56
|
+
for (const e of t.sessions) {
|
|
57
|
+
const n = e.sessionId;
|
|
58
|
+
if (!n || e.botId) continue;
|
|
59
|
+
const f = o.get(n), l = {
|
|
60
|
+
key: `session:${n}`,
|
|
61
|
+
sessionId: n,
|
|
62
|
+
title: B(e),
|
|
63
|
+
agent: e.agent,
|
|
64
|
+
agentLabel: e.agentLabel,
|
|
65
|
+
claudeAccountId: e.claudeAccountId,
|
|
66
|
+
project: e.project,
|
|
67
|
+
at: e.lastActivityAt ?? e.startedAt ?? 0
|
|
68
|
+
};
|
|
69
|
+
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
|
+
}
|
|
71
|
+
const r = t.posts.map((e) => ({
|
|
72
|
+
key: `post:${e.id}`,
|
|
73
|
+
sessionId: e.sessionId ?? null,
|
|
74
|
+
title: e.title || e.sessionTitle || "Shipped",
|
|
75
|
+
agent: e.agent,
|
|
76
|
+
project: e.project,
|
|
77
|
+
at: e.ts,
|
|
78
|
+
note: e.summary ? p(e.summary) : void 0,
|
|
79
|
+
post: e
|
|
80
|
+
}));
|
|
81
|
+
return [
|
|
82
|
+
{ id: "needs-you", label: u["needs-you"], cards: d.sort(m) },
|
|
83
|
+
{ id: "working", label: u.working, cards: a.sort(m) },
|
|
84
|
+
{ id: "idle", label: u.idle, cards: s.sort(m) },
|
|
85
|
+
{ id: "shipped", label: u.shipped, cards: r.sort(m) }
|
|
86
|
+
];
|
|
87
|
+
}
|
|
88
|
+
const q = {
|
|
89
|
+
"needs-you": {
|
|
90
|
+
icon: L,
|
|
91
|
+
accent: "text-warning",
|
|
92
|
+
count: "bg-warning/15 text-warning",
|
|
93
|
+
empty: "Nothing is waiting on you."
|
|
94
|
+
},
|
|
95
|
+
working: {
|
|
96
|
+
icon: I,
|
|
97
|
+
accent: "text-primary",
|
|
98
|
+
count: "bg-primary/10 text-primary",
|
|
99
|
+
empty: "No agent is working right now."
|
|
100
|
+
},
|
|
101
|
+
idle: {
|
|
102
|
+
icon: v,
|
|
103
|
+
accent: "text-muted-foreground",
|
|
104
|
+
count: "bg-muted text-muted-foreground",
|
|
105
|
+
empty: "No idle sessions."
|
|
106
|
+
},
|
|
107
|
+
shipped: {
|
|
108
|
+
icon: w,
|
|
109
|
+
accent: "text-success",
|
|
110
|
+
count: "bg-success/15 text-success",
|
|
111
|
+
empty: "Nothing shipped yet."
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
function S({
|
|
115
|
+
card: t,
|
|
116
|
+
onOpen: o
|
|
117
|
+
}) {
|
|
118
|
+
return /* @__PURE__ */ c(
|
|
119
|
+
"button",
|
|
120
|
+
{
|
|
121
|
+
type: "button",
|
|
122
|
+
onClick: o,
|
|
123
|
+
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
|
+
children: [
|
|
125
|
+
/* @__PURE__ */ c("div", { className: "flex items-start gap-2", children: [
|
|
126
|
+
/* @__PURE__ */ i(
|
|
127
|
+
A,
|
|
128
|
+
{
|
|
129
|
+
session: t,
|
|
130
|
+
className: "mt-0.5 size-4 shrink-0",
|
|
131
|
+
showAccountNumber: !1
|
|
132
|
+
}
|
|
133
|
+
),
|
|
134
|
+
/* @__PURE__ */ i("span", { className: "line-clamp-2 min-w-0 flex-1 text-sm font-medium leading-snug", children: t.title })
|
|
135
|
+
] }),
|
|
136
|
+
t.note ? /* @__PURE__ */ i("p", { className: "line-clamp-2 text-xs leading-snug text-muted-foreground", children: t.note }) : null,
|
|
137
|
+
/* @__PURE__ */ c("div", { className: "flex items-center gap-2 text-[11px] text-muted-foreground/80", children: [
|
|
138
|
+
t.project ? /* @__PURE__ */ i("span", { className: "truncate", children: t.project }) : null,
|
|
139
|
+
/* @__PURE__ */ i("span", { className: "ml-auto shrink-0", children: _(t.at || null) })
|
|
140
|
+
] })
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
function O({
|
|
146
|
+
columns: t,
|
|
147
|
+
onOpenSession: o,
|
|
148
|
+
onOpenShipped: d
|
|
149
|
+
}) {
|
|
150
|
+
const a = t.reduce((s, r) => s + r.cards.length, 0);
|
|
151
|
+
return /* @__PURE__ */ c("div", { className: "flex h-full min-h-0 flex-col gap-3 px-3 pb-4 md:px-4", children: [
|
|
152
|
+
/* @__PURE__ */ c("div", { className: "flex items-baseline justify-between gap-3", children: [
|
|
153
|
+
/* @__PURE__ */ i("h1", { className: "text-base font-semibold tracking-tight", children: "Board" }),
|
|
154
|
+
/* @__PURE__ */ c("span", { className: "text-xs text-muted-foreground", children: [
|
|
155
|
+
a,
|
|
156
|
+
" ",
|
|
157
|
+
a === 1 ? "card" : "cards",
|
|
158
|
+
" · read only"
|
|
159
|
+
] })
|
|
160
|
+
] }),
|
|
161
|
+
/* @__PURE__ */ i("div", { className: "flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto pb-2 md:flex-row md:overflow-x-auto md:overflow-y-hidden", children: t.map((s) => {
|
|
162
|
+
const r = q[s.id], e = r.icon;
|
|
163
|
+
return /* @__PURE__ */ c(
|
|
164
|
+
"section",
|
|
165
|
+
{
|
|
166
|
+
"aria-label": s.label,
|
|
167
|
+
className: "flex w-full shrink-0 flex-col rounded-2xl bg-muted/40 ring-1 ring-inset ring-border/60 md:w-72 md:min-h-0",
|
|
168
|
+
children: [
|
|
169
|
+
/* @__PURE__ */ c("header", { className: "flex items-center gap-2 px-3 pt-3 pb-2", children: [
|
|
170
|
+
/* @__PURE__ */ i(
|
|
171
|
+
e,
|
|
172
|
+
{
|
|
173
|
+
className: g(
|
|
174
|
+
"size-4 shrink-0",
|
|
175
|
+
r.accent,
|
|
176
|
+
s.id === "working" && s.cards.length ? "animate-spin" : null
|
|
177
|
+
)
|
|
178
|
+
}
|
|
179
|
+
),
|
|
180
|
+
/* @__PURE__ */ i("h2", { className: "text-sm font-semibold", children: s.label }),
|
|
181
|
+
/* @__PURE__ */ i(
|
|
182
|
+
"span",
|
|
183
|
+
{
|
|
184
|
+
className: g(
|
|
185
|
+
"ml-auto rounded-full px-2 py-0.5 text-[11px] font-medium tabular-nums",
|
|
186
|
+
r.count
|
|
187
|
+
),
|
|
188
|
+
children: s.cards.length
|
|
189
|
+
}
|
|
190
|
+
)
|
|
191
|
+
] }),
|
|
192
|
+
/* @__PURE__ */ i("div", { className: "flex flex-col gap-2 px-2 pb-2 md:min-h-0 md:flex-1 md:overflow-y-auto", children: s.cards.length === 0 ? /* @__PURE__ */ i("p", { className: "px-1 py-6 text-center text-xs text-muted-foreground", children: r.empty }) : s.cards.map((n) => /* @__PURE__ */ i(
|
|
193
|
+
S,
|
|
194
|
+
{
|
|
195
|
+
card: n,
|
|
196
|
+
onOpen: () => {
|
|
197
|
+
n.post ? d(n.post) : n.sessionId && o(n.sessionId);
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
n.key
|
|
201
|
+
)) })
|
|
202
|
+
]
|
|
203
|
+
},
|
|
204
|
+
s.id
|
|
205
|
+
);
|
|
206
|
+
}) })
|
|
207
|
+
] });
|
|
208
|
+
}
|
|
209
|
+
function R({
|
|
210
|
+
sessions: t,
|
|
211
|
+
onOpenSession: o,
|
|
212
|
+
onOpenShipped: d
|
|
213
|
+
}) {
|
|
214
|
+
const { questions: a } = N(), [s, r] = x([]);
|
|
215
|
+
h(
|
|
216
|
+
() => k((n) => {
|
|
217
|
+
n.ok && r(n.posts);
|
|
218
|
+
}),
|
|
219
|
+
[]
|
|
220
|
+
);
|
|
221
|
+
const e = b(
|
|
222
|
+
() => M({ sessions: t, questions: a, posts: s }),
|
|
223
|
+
[t, a, s]
|
|
224
|
+
);
|
|
225
|
+
return /* @__PURE__ */ i(O, { columns: e, onOpenSession: o, onOpenShipped: d });
|
|
226
|
+
}
|
|
227
|
+
export {
|
|
228
|
+
O as BoardView,
|
|
229
|
+
R as default
|
|
230
|
+
};
|
|
@@ -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 { ae as uo } from "./embedded-CblBLBh9.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 O } from "react/jsx-runtime";
|
|
2
|
-
import { R, B as u, L as $, n as A, o as S, M as G, p as j, q as E, s as f, T as P, u as D, v as W, w as T, x as X, y as J, X as Q, K as V } from "./embedded-
|
|
2
|
+
import { R, B as u, L as $, n as A, o as S, M as G, p as j, q as E, s as f, T as P, u as D, v as W, w as T, x as X, y as J, X as Q, K as V } from "./embedded-CblBLBh9.js";
|
|
3
3
|
import { cn as U } from "cnfast";
|
|
4
4
|
import { useState as I } from "react";
|
|
5
5
|
function B(l) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as pe, jsx as J, Fragment as zt } from "react/jsx-runtime";
|
|
2
2
|
import { useState as Ve, useRef as Qe, useCallback as ve, useEffect as Le } from "react";
|
|
3
|
-
import { f as Fn,
|
|
4
|
-
import { K as Rn } from "./keyboard-
|
|
3
|
+
import { f as Fn, a4 as Ai, ac as Mn, B as Ge, R as Tn, X as Qn, L as Xi, af as Ln } from "./embedded-CblBLBh9.js";
|
|
4
|
+
import { K as Rn } from "./keyboard-BI3LBFBT.js";
|
|
5
5
|
/**
|
|
6
6
|
* @license lucide-react v0.577.0 - ISC
|
|
7
7
|
*
|