Skip to content

Commit eb6e05d

Browse files
feat: add multi-class artifact viewer (#49)
* feat: add multi-class artifact viewer * docs: add artifact viewer proof captures * fix: bound DOCX artifact conversion * fix: isolate artifact syntax highlighting * fix: bound PDF canvas allocation * fix: harden artifact viewer boundaries * fix: close artifact resource gaps * fix: block artifact CSS requests * fix: allowlist artifact markdown * build: refresh embedded web assets * fix: surface incomplete PDF previews * fix: distinguish capped PDF images * fix: preserve strict PDF worker handling * build: refresh embedded web assets * test: preserve artifact thread context Co-authored-by: Jacqueline Henriksen <[email protected]> * test: deduplicate artifact thread coverage * fix: block navigable artifact data URLs * fix: bound artifact viewer resource use * fix: complete artifact viewer isolation * fix: harden artifact media and PDF previews * fix: make artifact CSP construction structural * fix: stream bounded PDF accessibility text * fix: preserve thread state under artifact viewer * fix: sanitize HTML before document parsing * fix: bound PDF page caches and DOCX routing * fix: make artifact routing authoritative * fix: preserve sanitized-empty Markdown source * fix: expose artifact content to mobile keyboards * refactor: render sanitized HTML in viewer scroll region * fix: strip all HTML preview attributes * docs: avoid unpublished proof asset links --------- Co-authored-by: Peter Steinberger <[email protected]>
1 parent aded4a5 commit eb6e05d

42 files changed

Lines changed: 2188 additions & 240 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
- Unified the web app on one warm "paper & ember" design language: a new espresso dark theme replaces the cool slate look, identity marks share a theme-tied brand gradient, off-palette purple/indigo/blue hardcodes (including workspace-settings buttons and quote blocks) now follow the coral accent, settings surfaces inherit the app font, and scrollbars are visible on the light theme.
66
- Proxied WebSocket upgrades in the Vite dev server so the local app connects to realtime instead of looping on "Reconnecting…".
7+
- Added a bounded read-only artifact pane for code, text, Markdown, PDF, and sandboxed HTML attachments, while keeping DOCX download-only and preserving thread routes when the pane closes. Thanks @jjjhenriksen.
78
- Added an opt-in realtime tail cursor so fresh clients can skip retained history without racing new events, and applied read-receipt visibility before event pagination. Thanks @shakkernerd.
89
- Preserved validated request correlation IDs as optional metadata on durable message and thread-reply events across replay and realtime delivery, and added canary run/case evidence IDs without changing message storage or gateway traffic.
910
- Added an isolated FakeCo small-VM deployment path with idempotent synthetic chat seed data, OpenClaw and ClawRouter SecretRef configuration, correlated health/readiness and metadata-only telemetry, a quoted-reply end-to-end canary, tests, and teardown guidance.

apps/api/internal/webassets/dist/200.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
<link href="/_app/immutable/chunks/ns2AJC_8.js" rel="modulepreload">
1212
<link href="/_app/immutable/chunks/DK3Fl9T5.js" rel="modulepreload">
1313
<link href="/_app/immutable/chunks/BuFlayix.js" rel="modulepreload">
14-
<link href="/_app/immutable/entry/app.BXMOwji-.js" rel="modulepreload">
14+
<link href="/_app/immutable/entry/app.DCrk6Et9.js" rel="modulepreload">
1515
<link href="/_app/immutable/chunks/DYl5dUZ5.js" rel="modulepreload">
1616
<link href="/_app/immutable/chunks/xihTtKlq.js" rel="modulepreload">
17-
<link href="/_app/immutable/nodes/0.DBaKElGJ.js" rel="modulepreload">
17+
<link href="/_app/immutable/nodes/0.CKjRCdoM.js" rel="modulepreload">
1818

19-
<link href="/_app/immutable/assets/0.Bvtws9iA.css" rel="stylesheet">
19+
<link href="/_app/immutable/assets/0.reNmg8Co.css" rel="stylesheet">
2020
</head>
2121
<body>
2222
<div>
@@ -30,7 +30,7 @@
3030

3131
Promise.all([
3232
import("/_app/immutable/entry/start.Dyv7sipE.js"),
33-
import("/_app/immutable/entry/app.BXMOwji-.js")
33+
import("/_app/immutable/entry/app.DCrk6Et9.js")
3434
]).then(([kit, app]) => {
3535
kit.start(app, element);
3636
});

apps/api/internal/webassets/dist/_app/immutable/assets/0.Bvtws9iA.css

Lines changed: 0 additions & 1 deletion
This file was deleted.

apps/api/internal/webassets/dist/_app/immutable/assets/0.reNmg8Co.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/api/internal/webassets/dist/_app/immutable/chunks/B7MFPiNA.js

Lines changed: 72 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/api/internal/webassets/dist/_app/immutable/chunks/BPlU6tGG.js

Lines changed: 0 additions & 72 deletions
This file was deleted.

apps/api/internal/webassets/dist/_app/immutable/chunks/yEO84wcp.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

apps/api/internal/webassets/dist/_app/immutable/entry/app.BXMOwji-.js renamed to apps/api/internal/webassets/dist/_app/immutable/entry/app.DCrk6Et9.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/api/internal/webassets/dist/_app/immutable/nodes/0.DBaKElGJ.js renamed to apps/api/internal/webassets/dist/_app/immutable/nodes/0.CKjRCdoM.js

File renamed without changes.

apps/api/internal/webassets/dist/_app/immutable/nodes/3.BOBxDKYZ.js renamed to apps/api/internal/webassets/dist/_app/immutable/nodes/3.DhbLU1vw.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)