rowboat/apps/x
gagan 9453e0d550
feat: render background-task HTML output and open its links externally (#615)
* feat: render background-task index.html output in a sandboxed iframe

The task output pane now prefers bg-tasks/<slug>/index.html when present and
non-empty, rendering it full-bleed via HtmlFileViewer (app://workspace
protocol) so CSS, layout, and scripts render faithfully. Falls back to the
markdown index.md note when there is no HTML artifact. The viewer remounts on
refreshKey so a re-run's updated HTML reloads. The Source/Rendered toggle works
for both formats.

The runner agent is instructed to choose index.md (default, notes) vs a
self-contained index.html (visual/styled output) per run, written via the
existing file-writeText tool. The Copilot background-task skill notes the HTML
option so visual asks are steered toward it.

* fix: open links from HTML report iframes in the system browser

Links inside the sandboxed iframe that renders a background-task/workspace
index.html did nothing on click, unlike the markdown viewer which opens links
in the browser.

Two causes: target="_blank" links were blocked by the sandbox before reaching
the window-open handler, and plain links fire will-frame-navigate (subframe),
which the app did not handle (will-navigate only covers the main frame).

- Add allow-popups to the HtmlFileViewer iframe sandbox so target="_blank"
  reaches setWindowOpenHandler, which routes to shell.openExternal.
- Handle will-frame-navigate in main, routing external subframe navigations to
  the system browser. Scoped to app://workspace frames so third-party note
  embeds (YouTube/Figma/Twitter) keep their internal navigation.
2026-06-11 01:45:10 +05:30
..
apps feat: render background-task HTML output and open its links externally (#615) 2026-06-11 01:45:10 +05:30
packages feat: render background-task HTML output and open its links externally (#615) 2026-06-11 01:45:10 +05:30
patches feat: run code mode on an in-app ACP client with live approvals (#593) 2026-06-05 14:45:08 +05:30
.gitignore chore: ignore test-fixtures dir 2026-05-08 17:04:25 +05:30
ANALYTICS.md Add app version to analytics events 2026-05-29 17:02:01 +05:30
eslint.config.mts ignore renderer eslint 2026-01-16 12:05:33 +05:30
LIVE_NOTE.md Refactor builtin file tools beyond workspace scope 2026-05-25 16:21:51 +05:30
package.json integrate electron forge 2026-01-17 10:28:44 +05:30
pnpm-lock.yaml add pacman maker for Arch Linux packages (#604) 2026-06-10 14:55:15 +05:30
pnpm-workspace.yaml feat: run code mode on an in-app ACP client with live approvals (#593) 2026-06-05 14:45:08 +05:30
tsconfig.base.json bootstrap new electron app 2026-01-16 12:05:33 +05:30