@omg-dev/app 0.1.320 → 0.1.322
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-C5jatafO.js → ChangelogPage-huYDfFlG.js} +48 -1
- package/dist-lib/{SessionFilesPanel-C8VG_Rbo.js → SessionFilesPanel-CGXBiVYf.js} +17 -17
- package/dist-lib/{TermView-D0LCEMBr.js → TermView-hNJrcncd.js} +105 -93
- package/dist-lib/{chat-engine-DgHMD8r7.js → chat-engine-Q1aHGwgu.js} +1 -1
- package/dist-lib/coding-agents-page-ov-7VCjA.js +287 -0
- package/dist-lib/{embedded-DdwkOHs-.js → embedded-DT1Dv8oy.js} +6430 -6409
- package/dist-lib/{highlighted-body-OFNGDK62-AWF1mqgj.js → highlighted-body-OFNGDK62-CGGV-Aaa.js} +1 -1
- package/dist-lib/{index-BydyhpZP.js → index-DBqUC8Rf.js} +1 -1
- package/dist-lib/index.js +1 -1
- package/dist-lib/mermaid-GHXKKRXX-BFE-KhRg.js +4 -0
- package/dist-lib/{resume-session-sheet-otCh6MZx.js → resume-session-sheet-CQffXTp1.js} +1 -1
- package/dist-lib/{session-token-usage-CVXtaUGH.js → session-token-usage-DTSnOIYE.js} +1 -1
- package/dist-lib/{shipped-page-DbyUKRNt.js → shipped-page-M_Ico9Yn.js} +9 -9
- package/dist-lib/{streamdown-response-Cdv4gnNZ.js → streamdown-response-D0MBqPhM.js} +4 -4
- package/dist-lib/styles.css +1 -1
- package/package.json +2 -2
- package/dist-lib/BrowserProfiles-CqaLBzFM.js +0 -650
- package/dist-lib/badge-9CxnDp-1.js +0 -46
- package/dist-lib/clipboard-paste-CENdB6NY.js +0 -17
- package/dist-lib/coding-agents-page-DKccTvM2.js +0 -209
- package/dist-lib/mermaid-GHXKKRXX-gvTkauyO.js +0 -4
|
@@ -1,9 +1,56 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { M as n } from "./embedded-
|
|
2
|
+
import { M as n } from "./embedded-DT1Dv8oy.js";
|
|
3
3
|
const t = `# Changelog
|
|
4
4
|
|
|
5
5
|
Recent product updates and deployment notes.
|
|
6
6
|
|
|
7
|
+
## August 9, 2026 - pi can sign in, and the agents page stops shouting (v0.1.322)
|
|
8
|
+
|
|
9
|
+
- **You can sign in to pi from Settings.** pi shipped with no sign-in at all —
|
|
10
|
+
just an \`ANTHROPIC_API_KEY\` note and two disabled buttons — because it has no
|
|
11
|
+
\`pi login\` command to drive; its login lives inside the interactive TUI. We now
|
|
12
|
+
use pi's own credential library in-process, so three providers connect from the
|
|
13
|
+
same UI as every other agent: **Claude (Pro/Max)** and **ChatGPT (Codex)** by
|
|
14
|
+
OAuth, and **OpenCode Zen** by API key. Credentials are written to pi's own
|
|
15
|
+
\`~/.pi/agent/auth.json\` under pi's lock, so a token refresh happening at the
|
|
16
|
+
same time cannot rotate a refresh token out from under itself.
|
|
17
|
+
- **pi can actually run as the provider you connected.** pi sessions could only
|
|
18
|
+
ever name one provider, so ChatGPT and Zen models would have been unreachable
|
|
19
|
+
even after signing in. Models now carry their provider, and only models whose
|
|
20
|
+
provider is connected are offered.
|
|
21
|
+
- **pi no longer reports "Ready" when nothing is configured.** The check treated
|
|
22
|
+
the existence of \`auth.json\` as proof of sign-in, but pi creates that file as
|
|
23
|
+
\`{}\` on first launch — so every machine that had ever started pi looked
|
|
24
|
+
connected. It now looks inside, and also counts env vars and pinned provider
|
|
25
|
+
keys.
|
|
26
|
+
- **The coding-agents settings page shows the state that matters.** It used to
|
|
27
|
+
print two badges, every check with its resolved binary path, an instructions
|
|
28
|
+
sentence, an install command and a login command — per agent, times seven. A
|
|
29
|
+
working agent now says nothing; a broken one says what is missing, and the
|
|
30
|
+
diagnostics are one tap down.
|
|
31
|
+
- **\`omg setup\` stopped handing out a URL it never checked.** On macOS the
|
|
32
|
+
summary's first line was \`http://omg.local:8766\` whenever \`dns-sd\` existed,
|
|
33
|
+
assuming the mDNS name had been claimed — which setup cannot see, and which
|
|
34
|
+
fails when mDNS is off or the name is already taken on the network. The summary
|
|
35
|
+
now shows only addresses it verified.
|
|
36
|
+
|
|
37
|
+
## August 9, 2026 - The browser tool goes, and macOS installs work in a plain shell (v0.1.321)
|
|
38
|
+
|
|
39
|
+
- **The cloud-browser login profiles are gone.** They did not work reliably
|
|
40
|
+
enough to keep, and they were the most expensive thing left: playwright's
|
|
41
|
+
20MB driver plus a ~150MB Chromium that setup never installed, so a default
|
|
42
|
+
install paid for the feature and still could not run it. Anything like this
|
|
43
|
+
belongs in a plugin system, added on top at runtime, rather than carried by
|
|
44
|
+
every install on the chance someone wants it.
|
|
45
|
+
- **\`omg\` and \`lfg\` work in a plain terminal on macOS.** They were symlinks to a
|
|
46
|
+
\`#!/usr/bin/env bun\` script, and setup deliberately does not edit your shell
|
|
47
|
+
profile there — so both failed with "env: bun: No such file or directory" on
|
|
48
|
+
machines where bun was installed and working. Setup now writes a launcher that
|
|
49
|
+
finds bun the way the npm CLI does.
|
|
50
|
+
- **\`omg setup\` no longer dies claiming bun is missing** when it is installed.
|
|
51
|
+
The check ran one line before the code that adds \`~/.bun/bin\` to \`PATH\`.
|
|
52
|
+
- \`node_modules\` is 66MB to 46MB; nothing in it is larger than 7MB.
|
|
53
|
+
|
|
7
54
|
## August 9, 2026 - Starting an opencode session from a finding works again (v0.1.320)
|
|
8
55
|
|
|
9
56
|
- **"thinkingLevel is not supported for opencode sessions" is fixed.** Replying
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as e, jsxs as i, 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 I } from "react";
|
|
3
3
|
import { createPortal as re } from "react-dom";
|
|
4
|
-
import {
|
|
4
|
+
import { z as oe, E as H, F as se, X as U, H as ie, I as ae, f as y, L as J, J as le, m as de, y as ce, N as L } from "./embedded-DT1Dv8oy.js";
|
|
5
5
|
import { c as me } from "./create-BrnHvSDE.js";
|
|
6
6
|
/**
|
|
7
7
|
* @license lucide-react v0.577.0 - ISC
|
|
@@ -80,7 +80,7 @@ function ke({ tree: n, onNavigate: s }) {
|
|
|
80
80
|
);
|
|
81
81
|
}
|
|
82
82
|
function we({ sid: n, onClose: s }) {
|
|
83
|
-
const [o, c] = m(null), [t, h] = m(null), [k, x] = m(null), [g, j] = m(null), [a,
|
|
83
|
+
const [o, c] = m(null), [t, h] = m(null), [k, x] = m(null), [g, j] = m(null), [a, z] = m(null), [R, $] = m(null), [W, P] = m(!1), [u, w] = m(!1), [S, A] = m(""), [p, f] = m({ kind: "idle" }), [V, E] = m("tree"), M = ye(), b = T(null), X = v((r) => {
|
|
84
84
|
b.current = r;
|
|
85
85
|
}, []), F = T(null);
|
|
86
86
|
C(() => {
|
|
@@ -98,18 +98,18 @@ function we({ sid: n, onClose: s }) {
|
|
|
98
98
|
window.removeEventListener("keydown", r), document.body.style.overflow = d;
|
|
99
99
|
};
|
|
100
100
|
}, [s]);
|
|
101
|
-
const
|
|
101
|
+
const D = v(
|
|
102
102
|
(r) => {
|
|
103
|
-
t && (E("file"), r !== F.current && (F.current = r, j(r), w(!1), f({ kind: "idle" }),
|
|
103
|
+
t && (E("file"), r !== F.current && (F.current = r, j(r), w(!1), f({ kind: "idle" }), A(""), b.current = null, z(null), $(null), P(!0), _(
|
|
104
104
|
`/api/sessions/${n}/file?path=${encodeURIComponent(`${t.root}/${r}`)}`
|
|
105
105
|
).then((d) => {
|
|
106
|
-
|
|
106
|
+
z(d.file), b.current = d.file.contents;
|
|
107
107
|
}).catch((d) => $(d instanceof Error ? d.message : String(d))).finally(() => P(!1))));
|
|
108
108
|
},
|
|
109
109
|
[n, t]
|
|
110
|
-
),
|
|
111
|
-
c(r), F.current = null, j(null),
|
|
112
|
-
}, []),
|
|
110
|
+
), O = v((r) => {
|
|
111
|
+
c(r), F.current = null, j(null), z(null), w(!1), E("tree");
|
|
112
|
+
}, []), K = v(() => E("tree"), []), Y = q(
|
|
113
113
|
() => a ? { ...a, contents: b.current ?? a.contents } : null,
|
|
114
114
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- `editing` is the
|
|
115
115
|
// intended trigger; draftRef is a ref and deliberately not reactive.
|
|
@@ -120,7 +120,7 @@ function we({ sid: n, onClose: s }) {
|
|
|
120
120
|
displayPath: r,
|
|
121
121
|
original: a.contents,
|
|
122
122
|
edited: b.current,
|
|
123
|
-
note:
|
|
123
|
+
note: S
|
|
124
124
|
});
|
|
125
125
|
if (!d.ok) {
|
|
126
126
|
f({
|
|
@@ -149,7 +149,7 @@ function we({ sid: n, onClose: s }) {
|
|
|
149
149
|
} catch (l) {
|
|
150
150
|
f({ kind: "error", message: l instanceof Error ? l.message : String(l) });
|
|
151
151
|
}
|
|
152
|
-
}, [n, a, g,
|
|
152
|
+
}, [n, a, g, S]), Q = !!g && V === "file", B = p.kind === "sent" || p.kind === "error" ? "banner" : u ? "editor" : "content", Z = /* @__PURE__ */ e(
|
|
153
153
|
"div",
|
|
154
154
|
{
|
|
155
155
|
role: "dialog",
|
|
@@ -171,13 +171,13 @@ function we({ sid: n, onClose: s }) {
|
|
|
171
171
|
/* @__PURE__ */ e(se, { className: "size-4 shrink-0 text-[var(--primary)]" }),
|
|
172
172
|
/* @__PURE__ */ i("div", { className: "min-w-0 flex-1", children: [
|
|
173
173
|
/* @__PURE__ */ e("div", { className: "text-sm font-semibold text-foreground", children: "Files" }),
|
|
174
|
-
t ? /* @__PURE__ */ e(ke, { tree: t, onNavigate:
|
|
174
|
+
t ? /* @__PURE__ */ e(ke, { tree: t, onNavigate: O }) : null
|
|
175
175
|
] }),
|
|
176
176
|
t != null && t.parent ? /* @__PURE__ */ i(
|
|
177
177
|
"button",
|
|
178
178
|
{
|
|
179
179
|
type: "button",
|
|
180
|
-
onClick: () =>
|
|
180
|
+
onClick: () => O(t.parent),
|
|
181
181
|
className: "flex min-h-9 shrink-0 items-center gap-1.5 rounded-lg border border-border px-2.5 text-[12px] text-muted-foreground transition-colors hover:bg-muted hover:text-foreground md:min-h-0 md:px-2 md:py-1 md:text-[11px]",
|
|
182
182
|
children: [
|
|
183
183
|
/* @__PURE__ */ e(pe, { className: "size-3.5 md:size-3" }),
|
|
@@ -208,7 +208,7 @@ function we({ sid: n, onClose: s }) {
|
|
|
208
208
|
paths: t.paths,
|
|
209
209
|
gitStatus: t.gitStatus,
|
|
210
210
|
selectedPath: g,
|
|
211
|
-
onSelectFile:
|
|
211
|
+
onSelectFile: D
|
|
212
212
|
}
|
|
213
213
|
) }) : /* @__PURE__ */ e(N, { label: "Listing files…" }) })
|
|
214
214
|
] }),
|
|
@@ -225,7 +225,7 @@ function we({ sid: n, onClose: s }) {
|
|
|
225
225
|
"button",
|
|
226
226
|
{
|
|
227
227
|
type: "button",
|
|
228
|
-
onClick:
|
|
228
|
+
onClick: K,
|
|
229
229
|
"aria-label": "Back to file tree",
|
|
230
230
|
className: "flex size-9 shrink-0 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-muted hover:text-foreground md:hidden",
|
|
231
231
|
children: /* @__PURE__ */ e(ie, { className: "size-5" })
|
|
@@ -272,7 +272,7 @@ function we({ sid: n, onClose: s }) {
|
|
|
272
272
|
R ? /* @__PURE__ */ i("div", { className: "px-3 py-2 text-[12px] text-[var(--destructive)]", children: [
|
|
273
273
|
"Could not open: ",
|
|
274
274
|
R
|
|
275
|
-
] }) : W || !a ? /* @__PURE__ */ e(N, { label: "Opening…" }) : a.binary ? /* @__PURE__ */ e("div", { className: "px-3 py-3 text-[12px] text-muted-foreground", children: "Binary file — not shown." }) : /* @__PURE__ */ e(I, { fallback: /* @__PURE__ */ e(N, { label: u ? "Loading editor…" : "Rendering…" }), children: u ? /* @__PURE__ */ e(ve, { file: Y ?? a, themeType:
|
|
275
|
+
] }) : W || !a ? /* @__PURE__ */ e(N, { label: "Opening…" }) : a.binary ? /* @__PURE__ */ e("div", { className: "px-3 py-3 text-[12px] text-muted-foreground", children: "Binary file — not shown." }) : /* @__PURE__ */ e(I, { fallback: /* @__PURE__ */ e(N, { label: u ? "Loading editor…" : "Rendering…" }), children: u ? /* @__PURE__ */ e(ve, { file: Y ?? a, themeType: M, onChange: X }) : /* @__PURE__ */ e(be, { file: a, themeType: M }) }),
|
|
276
276
|
a != null && a.truncated ? /* @__PURE__ */ e("div", { className: "px-3 py-1.5 text-[11px] text-[var(--warning)]", children: "File truncated — only the first megabyte is shown." }) : null
|
|
277
277
|
]
|
|
278
278
|
}
|
|
@@ -288,8 +288,8 @@ function we({ sid: n, onClose: s }) {
|
|
|
288
288
|
/* @__PURE__ */ e(
|
|
289
289
|
"textarea",
|
|
290
290
|
{
|
|
291
|
-
value:
|
|
292
|
-
onChange: (r) =>
|
|
291
|
+
value: S,
|
|
292
|
+
onChange: (r) => A(r.target.value),
|
|
293
293
|
rows: 2,
|
|
294
294
|
placeholder: "Optional: anything else the agent should do alongside this edit",
|
|
295
295
|
className: "w-full resize-none rounded-lg border border-border bg-card px-2.5 py-2 text-[12px] text-foreground outline-none placeholder:text-muted-foreground focus:border-[var(--primary)]/50"
|