@omg-dev/app 0.1.373 → 0.1.375

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.
@@ -1,9 +1,30 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import { M as n } from "./embedded-DopQDD1s.js";
2
+ import { M as n } from "./embedded-DLiJ_VPF.js";
3
3
  const t = `# Changelog
4
4
 
5
5
  Recent product updates and deployment notes.
6
6
 
7
+ ## August 14, 2026 - Jcode mark matches upstream gray (v0.1.375)
8
+
9
+ - **Jcode's agent icon no longer wears an invented blue tint.** The torus
10
+ geometry was already correct, but the dots still used a cyan/blue gradient.
11
+ Upstream brands the mark monochrome gray (\`#7e7e7e\` on the favicon). The
12
+ icon now matches that palette, cache-busting refreshes warm browsers, and a
13
+ regression test blocks the blue colors from coming back.
14
+
15
+ ## August 14, 2026 - Jcode transcript and resume reliability (v0.1.374)
16
+
17
+ - **Jcode sessions no longer show an empty or nearly empty transcript after a
18
+ long turn.** Jcode keeps the full chat in \`session_*.json\` and sometimes
19
+ rewrites \`*.journal.jsonl\` down to a few recent lines. omg.dev only tailed the
20
+ journal, so opening those sessions looked like the transcript had failed to
21
+ load. The serve path now merges the session snapshot with the live journal and
22
+ serves the combined history through the session index.
23
+ - **Jcode sessions survive a box reboot.** Resume now relaunches the pane against
24
+ the remembered jcode journal id instead of falling through to the Claude path.
25
+ - **A missing transcript file no longer kills the whole server.** The live
26
+ tailer treats a vanished file as empty instead of crashing serve.
27
+
7
28
  ## August 14, 2026 - Combined Claude usage and the real Jcode mark (v0.1.373)
8
29
 
9
30
  - **Claude Auto now shows one combined usage ring.** The new-session composer
@@ -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 { 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-DopQDD1s.js";
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-DLiJ_VPF.js";
5
5
  import { c as me } from "./create-BrnHvSDE.js";
6
6
  /**
7
7
  * @license lucide-react v0.577.0 - ISC
@@ -1,6 +1,6 @@
1
1
  import { jsxs as r, jsx as k, Fragment as ZA } from "react/jsx-runtime";
2
2
  import { useState as L, useRef as S, useEffect as x, useCallback as Y } from "react";
3
- import { z as cA, S as wQ, X as DA, a8 as sQ, m as tQ, a9 as eQ, aa as aQ, E as MQ, ab as hQ, R as NQ, y as cQ } from "./embedded-DopQDD1s.js";
3
+ import { z as cA, S as wQ, X as DA, a8 as sQ, m as tQ, a9 as eQ, aa as aQ, E as MQ, ab as hQ, R as NQ, y as cQ } from "./embedded-DLiJ_VPF.js";
4
4
  /**
5
5
  * @license lucide-react v0.577.0 - ISC
6
6
  *
@@ -1,20 +1,17 @@
1
1
  <svg height="1em" width="1em" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Jcode">
2
2
  <title>Jcode</title>
3
3
  <!-- Official Jcode mark: dot-matrix torus. Geometry sourced from https://jcode.sh/favicon.svg
4
- and matched against assets/app-icons/Jcode.icns in github.com/1jehuang/jcode. -->
4
+ and matched against assets/app-icons/Jcode.icns in github.com/1jehuang/jcode.
5
+ Upstream brand is monochrome gray (#7e7e7e on the favicon; dark + light gray on
6
+ apple-touch-icon / app icon) — not cyan/blue. Do not reintroduce a blue tint. -->
5
7
  <defs>
6
8
  <clipPath id="jcode-squircle">
7
9
  <rect width="512" height="512" rx="96"/>
8
10
  </clipPath>
9
- <linearGradient id="jcode-dots" x1="0.1" y1="0" x2="0.9" y2="1">
10
- <stop offset="0" stop-color="#38BDF8"/>
11
- <stop offset="0.45" stop-color="#2DD4BF"/>
12
- <stop offset="1" stop-color="#2563EB"/>
13
- </linearGradient>
14
11
  </defs>
15
12
  <g clip-path="url(#jcode-squircle)">
16
13
  <rect width="512" height="512" fill="#05070B"/>
17
- <g transform="translate(93.82 64.46) scale(3.6955)" fill="url(#jcode-dots)">
14
+ <g transform="translate(93.82 64.46) scale(3.6955)" fill="#7e7e7e">
18
15
  <circle cx="73.57" cy="14.64" r="3.95"/>
19
16
  <circle cx="79.46" cy="20.54" r="3.94"/>
20
17
  <circle cx="85.36" cy="26.43" r="1.57"/>
@@ -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 { ac as uo } from "./embedded-DopQDD1s.js";
4
+ import { ac as uo } from "./embedded-DLiJ_VPF.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 t, jsx as e, Fragment as G } from "react/jsx-runtime";
2
- import { R as K, f as L, B as d, L as C, P as z, S as w, g as R, h as p, T, i as m, j as F, k as M, l as $, C as _, m as q, X as H, K as U } from "./embedded-DopQDD1s.js";
2
+ import { R as K, f as L, B as d, L as C, P as z, S as w, g as R, h as p, T, i as m, j as F, k as M, l as $, C as _, m as q, X as H, K as U } from "./embedded-DLiJ_VPF.js";
3
3
  import { useState as S } from "react";
4
4
  function j(l) {
5
5
  const i = l.filter((r) => !r.ok);
@@ -10436,7 +10436,7 @@ component stack:${t}` : null
10436
10436
  }
10437
10437
  );
10438
10438
  }
10439
- const vP = "20260814";
10439
+ const vP = "20260814b";
10440
10440
  function fo(e) {
10441
10441
  const t = `?v=${vP}`;
10442
10442
  return Vn(e === "codex" || e === "codex-aisdk" ? `/agent-codex.svg${t}` : e === "grok" ? `/agent-grok.svg${t}` : e === "cursor" ? `/agent-cursor.svg${t}` : e === "hermes" ? `/agent-hermes.svg${t}` : e === "opencode" ? `/agent-opencode.svg${t}` : e === "jcode" ? `/agent-jcode.svg${t}` : e === "pi" ? `/agent-pi.svg${t}` : e === "copilot" ? `/agent-copilot.svg${t}` : `/agent-claude.svg${t}`);
@@ -20647,7 +20647,7 @@ const PL = xi(function({
20647
20647
  ] }) : null;
20648
20648
  }), _L = Cs(
20649
20649
  "session-files-panel",
20650
- () => import("./SessionFilesPanel-B1QgbZsZ.js")
20650
+ () => import("./SessionFilesPanel-BqpjIW3A.js")
20651
20651
  );
20652
20652
  function Gp({ className: e, ...t }) {
20653
20653
  return /* @__PURE__ */ a(
@@ -26398,7 +26398,7 @@ async function S8() {
26398
26398
  }
26399
26399
  }
26400
26400
  const X3 = Yl(
26401
- () => import("./streamdown-response-D3wjwyMg.js").then((e) => e.a).then((e) => ({ default: e.StreamdownResponse }))
26401
+ () => import("./streamdown-response-COI4zxm8.js").then((e) => e.a).then((e) => ({ default: e.StreamdownResponse }))
26402
26402
  );
26403
26403
  function Vi({ className: e, from: t, ...n }) {
26404
26404
  return /* @__PURE__ */ a(
@@ -29223,26 +29223,26 @@ function CF({ className: e, isStreaming: t, children: n, ...r }) {
29223
29223
  function EF({ className: e, children: t, ...n }) {
29224
29224
  return /* @__PURE__ */ a(kF, { className: Q("mt-2 text-sm", e), ...n, children: /* @__PURE__ */ a(cc, { className: "ai-live-text max-w-full opacity-90", children: t }) });
29225
29225
  }
29226
- const RF = Yl(() => import("./chat-engine-D71zqPEf.js"));
29226
+ const RF = Yl(() => import("./chat-engine-CGZx2bIz.js"));
29227
29227
  function TF() {
29228
- const e = () => void import("./chat-engine-D71zqPEf.js"), t = globalThis.requestIdleCallback;
29228
+ const e = () => void import("./chat-engine-CGZx2bIz.js"), t = globalThis.requestIdleCallback;
29229
29229
  typeof t == "function" ? t(e, { timeout: 3e3 }) : setTimeout(e, 1500);
29230
29230
  }
29231
29231
  const PS = Cs(
29232
29232
  "TermView",
29233
- () => import("./TermView-3pWIDYGb.js").then((e) => ({ default: e.TermView }))
29234
- ), wv = Cs("ShippedPage", () => import("./shipped-page-D2vcXhFy.js")), MF = Cs(
29233
+ () => import("./TermView-0gCFpa_E.js").then((e) => ({ default: e.TermView }))
29234
+ ), wv = Cs("ShippedPage", () => import("./shipped-page-CPcWgN1J.js")), MF = Cs(
29235
29235
  "SessionTokenUsageDialog",
29236
- () => import("./session-token-usage-C3C4zAdL.js")
29236
+ () => import("./session-token-usage-CTxYM0P6.js")
29237
29237
  ), IF = Cs(
29238
29238
  "CodingAgentsPage",
29239
- () => import("./coding-agents-page-BdOQqKSu.js")
29239
+ () => import("./coding-agents-page-CZR7Uvph.js")
29240
29240
  ), kv = Cs(
29241
29241
  "ResumeSessionSheet",
29242
- () => import("./resume-session-sheet-XeHmyr4K.js")
29242
+ () => import("./resume-session-sheet-B32NFplQ.js")
29243
29243
  ), PF = Cs(
29244
29244
  "ChangelogPage",
29245
- () => import("./ChangelogPage-Cp0tIVZw.js")
29245
+ () => import("./ChangelogPage-CGZP2N8w.js")
29246
29246
  ), Lu = Qn("configured"), _F = {
29247
29247
  claude: "Claude",
29248
29248
  codex: "Codex",
@@ -1,4 +1,4 @@
1
- import { R as c, L as f, A as d } from "./streamdown-response-D3wjwyMg.js";
1
+ import { R as c, L as f, A as d } from "./streamdown-response-COI4zxm8.js";
2
2
  import { useContext as p, useState as L, useEffect as N } from "react";
3
3
  import { jsx as x } from "react/jsx-runtime";
4
4
  var A = ({ code: s, language: e, raw: a, className: o, startLine: m, lineNumbers: u, ...g }) => {
@@ -1,4 +1,4 @@
1
- import { w as T, s as U, h as X, c as Y, v as G, S as J, o as k, l as Q, f as M, m as y } from "./streamdown-response-D3wjwyMg.js";
1
+ import { w as T, s as U, h as X, c as Y, v as G, S as J, o as k, l as Q, f as M, m as y } from "./streamdown-response-COI4zxm8.js";
2
2
  import v from "./katex-jHfnQmlp.js";
3
3
  function Z(t, e) {
4
4
  return B(t, {}) || { type: "root", children: [] };
package/dist-lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { ae as p, af as m, ag as o } from "./embedded-DopQDD1s.js";
3
+ import { ae as p, af as m, ag as o } from "./embedded-DLiJ_VPF.js";
4
4
  export {
5
5
  p as OmgAppSurface,
6
6
  m as OmgSettingsSurface,
@@ -0,0 +1,4 @@
1
+ import { p } from "./streamdown-response-COI4zxm8.js";
2
+ export {
3
+ p as Mermaid
4
+ };
@@ -1,5 +1,5 @@
1
1
  import { jsx as t, jsxs as s, Fragment as N } from "react/jsx-runtime";
2
- import { r as H, n as Q, a as re, o as le, p as oe, q as ie, X, A, f as u, R as B, s as ce, u as de, v as J, T as ue, w as me, x as he, y as pe, L as fe } from "./embedded-DopQDD1s.js";
2
+ import { r as H, n as Q, a as re, o as le, p as oe, q as ie, X, A, f as u, R as B, s as ce, u as de, v as J, T as ue, w as me, x as he, y as pe, L as fe } from "./embedded-DLiJ_VPF.js";
3
3
  import { useState as a, useRef as L, useEffect as v, useCallback as ge } from "react";
4
4
  function we({
5
5
  initial: m,
@@ -1,5 +1,5 @@
1
1
  import { jsx as s, jsxs as n, Fragment as $ } from "react/jsx-runtime";
2
- import { a as C, D as T, b as M, c as D, d as S, G as F, e as L, t as R, L as j, f as z } from "./embedded-DopQDD1s.js";
2
+ import { a as C, D as T, b as M, c as D, d as S, G as F, e as L, t as R, L as j, f as z } from "./embedded-DLiJ_VPF.js";
3
3
  import { useState as g, useCallback as P, useEffect as U } from "react";
4
4
  function u({
5
5
  title: r,
@@ -1,6 +1,6 @@
1
1
  import { jsxs as l, jsx as r, Fragment as me } from "react/jsx-runtime";
2
2
  import { useState as f, useEffect as w, useRef as fe, useContext as $e, useMemo as ze } from "react";
3
- import { z as ve, O as he, Q as Te, U as S, V as ge, W as Se, Y as Pe, Z as je, B as Fe, L as pe, v as J, y as Ye, R as Ge, f as P, T as Be, _ as Ke, k as be, g as Ue, $ as He, a as L, a0 as k, a1 as R, l as _, a2 as W, a3 as Ve, a4 as qe, a5 as Qe, a6 as Xe, P as Je, a7 as We } from "./embedded-DopQDD1s.js";
3
+ import { z as ve, O as he, Q as Te, U as S, V as ge, W as Se, Y as Pe, Z as je, B as Fe, L as pe, v as J, y as Ye, R as Ge, f as P, T as Be, _ as Ke, k as be, g as Ue, $ as He, a as L, a0 as k, a1 as R, l as _, a2 as W, a3 as Ve, a4 as qe, a5 as Qe, a6 as Xe, P as Je, a7 as We } from "./embedded-DLiJ_VPF.js";
4
4
  /**
5
5
  * @license lucide-react v0.577.0 - ISC
6
6
  *
@@ -3,7 +3,7 @@ var Od = (e, t, n) => t in e ? Rd(e, t, { enumerable: !0, configurable: !0, writ
3
3
  var le = (e, t, n) => Od(e, typeof t != "symbol" ? t + "" : t, n);
4
4
  import { jsx as y, jsxs as J, Fragment as _t } from "react/jsx-runtime";
5
5
  import { memo as he, useId as Dd, useTransition as Pd, useMemo as Ee, useRef as Re, useEffect as De, useState as ge, createElement as Xa, isValidElement as Vt, cloneElement as Md, useContext as Pe, createContext as Jt, useCallback as ze, Suspense as wi, lazy as Zu } from "react";
6
- import { ad as Ju, f as eo, a8 as vd, m as Bd, a9 as Fd } from "./embedded-DopQDD1s.js";
6
+ import { ad as Ju, f as eo, a8 as vd, m as Bd, a9 as Fd } from "./embedded-DLiJ_VPF.js";
7
7
  import { createPortal as to } from "react-dom";
8
8
  import { f as Ur, p as Ka, e as Za, g as Ja, h as Jn, s as Mt, z as no, i as ro, j as io, k as Hd, l as es, w as Ud, b as zd, c as $d, m as jd, d as qd } from "./engine-compile-BeZvvx0I.js";
9
9
  import { g as ao } from "./_commonjsHelpers-C6fGbg64.js";
@@ -18959,7 +18959,7 @@ var yc = Jt(!1), kk = () => Pe(yc), Ua = (...e) => nc(Ju(e)), xk = (e, t) => {
18959
18959
  for (; t > 0 && e[t - 1] === `
18960
18960
  `; ) t--;
18961
18961
  return e.slice(0, t);
18962
- }, wk = Zu(() => import("./highlighted-body-OFNGDK62-CJl4-s0X.js").then((e) => ({ default: e.HighlightedCodeBlockBody }))), Lk = ({ code: e, language: t, className: n, children: r, isIncomplete: i = !1, startLine: a, lineNumbers: s, ...u }) => {
18962
+ }, wk = Zu(() => import("./highlighted-body-OFNGDK62-BrELthMh.js").then((e) => ({ default: e.HighlightedCodeBlockBody }))), Lk = ({ code: e, language: t, className: n, children: r, isIncomplete: i = !1, startLine: a, lineNumbers: s, ...u }) => {
18963
18963
  let o = ee(), l = Ee(() => Sk(e), [e]), d = Ee(() => ({ bg: "transparent", fg: "inherit", tokens: l.split(`
18964
18964
  `).map((f) => [{ content: f, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [l]);
18965
18965
  return y(Cc.Provider, { value: { code: e }, children: J(Ik, { isIncomplete: i, language: t, children: [y(Nk, { language: t }), r ? y("div", { className: o("pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end"), children: y("div", { className: o("pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur"), "data-streamdown": "code-block-actions", children: r }) }) : null, y(wi, { fallback: y(Ck, { className: n, language: t, lineNumbers: s, result: d, startLine: a, ...u }), children: y(wk, { className: n, code: l, language: t, lineNumbers: s, raw: d, startLine: a, ...u }) })] }) });
@@ -19301,7 +19301,7 @@ var yc = Jt(!1), kk = () => Pe(yc), Ua = (...e) => nc(Ju(e)), xk = (e, t) => {
19301
19301
  }, Zk = ({ children: e, className: t, showControls: n, showCopy: r = !0, showDownload: i = !0, showFullscreen: a = !0, ...s }) => {
19302
19302
  let u = ee(), o = n && r, l = n && i, d = n && a, f = o || l || d;
19303
19303
  return J("div", { className: u("my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2"), "data-streamdown": "table-wrapper", children: [f ? J("div", { className: u("flex items-center justify-end gap-1"), children: [o ? y(Rc, {}) : null, l ? y(Oc, {}) : null, d ? y(Kk, { showCopy: o, showDownload: l, children: e }) : null] }) : null, y("div", { className: u("border-collapse overflow-x-auto overflow-y-auto rounded-md border border-border bg-background"), children: y("table", { className: u("w-full divide-y divide-border", t), "data-streamdown": "table", ...s, children: e }) })] });
19304
- }, Jk = /startLine=(\d+)/, ex = /\bnoLineNumbers\b/, tx = Zu(() => import("./mermaid-GHXKKRXX-DTev0MHc.js").then((e) => ({ default: e.Mermaid }))), nx = /language-([^\s]+)/;
19304
+ }, Jk = /startLine=(\d+)/, ex = /\bnoLineNumbers\b/, tx = Zu(() => import("./mermaid-GHXKKRXX-CkJMycKw.js").then((e) => ({ default: e.Mermaid }))), nx = /language-([^\s]+)/;
19305
19305
  function Jr(e, t) {
19306
19306
  if (!(e != null && e.position || t != null && t.position)) return !0;
19307
19307
  if (!(e != null && e.position && t != null && t.position)) return !1;
@@ -20814,7 +20814,7 @@ function S6(e) {
20814
20814
  }
20815
20815
  function w6() {
20816
20816
  return Tr || (Tr = Promise.all([
20817
- import("./index-DrZVbrnM.js"),
20817
+ import("./index-BGhjDRbL.js"),
20818
20818
  import("./index-JkCQXUYs.js").then((e) => e.bp)
20819
20819
  ]).then(([e, t]) => {
20820
20820
  Hn = { math: e.math, mermaid: t.mermaid };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omg-dev/app",
3
- "version": "0.1.373",
3
+ "version": "0.1.375",
4
4
  "description": "The full OMG application surface for React hosts.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://omg.dev",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "type": "module",
26
26
  "dependencies": {
27
- "@omg-dev/client": "0.1.373",
27
+ "@omg-dev/client": "0.1.375",
28
28
  "@ai-sdk/react": "^4.0.19",
29
29
  "@base-ui/react": "^1.3.0",
30
30
  "@number-flow/react": "^0.6.2",
@@ -1,4 +0,0 @@
1
- import { p } from "./streamdown-response-D3wjwyMg.js";
2
- export {
3
- p as Mermaid
4
- };