Found live in round-2 e2e (2026-08-15): a main-chat dashboard build rendered a thumbnail titled with the agent runtime's own control UI, and opening it showed that runtime's broken shell page. Investigation proved the server-side fetch in jarvis/chat/canvas.py used the correct URL and token; the runtime gateway on the current image returns HTTP 200 with its control-UI shell for EVERY document path, including fabricated refs, instead of serving the published document (or a 404).
PR #880 makes persistence fail safe (probe with a nonexistent ref; skip persist and strip embed markers when the gateway fakes success), so customers now get clean text with no canvas. But the approved chat-to-dashboard flow (jarvis-persona#192 + PR #874 thumbnail) stays degraded until a backend-fetchable document route exists.
Expected: a route the bench can fetch a published canvas document from (correct 200/404 semantics).
Options: fix/enable the document route in the runtime image or its config template (check the image pin and gateway routing config in the fleet template), or serve documents via a fleet-agent endpoint reading the container workspace mount.
Repro: curl any documents/ path on a tenant gateway with the agent token; nonexistent ids return 200 with the shell.
Found live in round-2 e2e (2026-08-15): a main-chat dashboard build rendered a thumbnail titled with the agent runtime's own control UI, and opening it showed that runtime's broken shell page. Investigation proved the server-side fetch in jarvis/chat/canvas.py used the correct URL and token; the runtime gateway on the current image returns HTTP 200 with its control-UI shell for EVERY document path, including fabricated refs, instead of serving the published document (or a 404).
PR #880 makes persistence fail safe (probe with a nonexistent ref; skip persist and strip embed markers when the gateway fakes success), so customers now get clean text with no canvas. But the approved chat-to-dashboard flow (jarvis-persona#192 + PR #874 thumbnail) stays degraded until a backend-fetchable document route exists.
Expected: a route the bench can fetch a published canvas document from (correct 200/404 semantics).
Options: fix/enable the document route in the runtime image or its config template (check the image pin and gateway routing config in the fleet template), or serve documents via a fleet-agent endpoint reading the container workspace mount.
Repro: curl any documents/ path on a tenant gateway with the agent token; nonexistent ids return 200 with the shell.