WIP: Define-artifact: render design artefact in anima-pwa (iframe) + real artefact generation #283

Closed
toasterson wants to merge 0 commits from claude/wi-019f13ae-define-artifact-render-design-artefact-i into main
Owner

Anima work item 019f13ae-b9ee-7b62-b25d-b3e34c479437.

Split from WI 019f0576-2594 (define-side foundation merged in PR #266, main 7225ac9). AC3 of the original — RETARGETED to anima-pwa (Slint anima-desktop is retired; see the desktop-retired note). The PWA has native iframes, so the original "render in iframe" AC is feasible there.

What to build

Render Define-side design artefacts (HTML/CSS/SVG) in an iframe in the anima-pwa work-item view, served from the existing auth-protected /artifacts/{id} endpoint. Plus generate REAL artefacts (the foundation currently writes a hardcoded HTML placeholder).

Current state (foundation)

Merged backend: Artifact domain + repo + migration 038_artifacts, artifact.proto (RunDefinePhase/ListArtifacts/GetArtifact), /artifacts/{id} HTTP serve behind auth middleware, and ArtifactRepo::create is called — BUT pretotype writes a hardcoded HTML placeholder ("Replace this with the actual design artefact"). The original Slint desktop UI work was stripped (desktop retired).

Acceptance criteria

  • anima-pwa renders an artefact in an iframe in the work-item view (auth header threaded to /artifacts/{id})
  • real design artefact generation (not a hardcoded placeholder)
  • ListArtifacts/GetArtifact wired into the PWA grpc-web API + regenerated bindings

Notes

Frontend = anima-pwa (NOT anima-desktop). Backend artifact serving + RPCs already merged. Will need anima-pwa proto bindings regen (npm run generate) for the artifact.proto additions. The define-phase RPCs currently have no scheduler caller — decide whether define-phase execution is user-triggered (RPC/MCP) or auto-dispatched.

Anima work item `019f13ae-b9ee-7b62-b25d-b3e34c479437`. Split from WI 019f0576-2594 (define-side foundation merged in PR #266, main 7225ac9). AC3 of the original — RETARGETED to anima-pwa (Slint anima-desktop is retired; see the desktop-retired note). The PWA has native iframes, so the original "render in iframe" AC is feasible there. ## What to build Render Define-side design artefacts (HTML/CSS/SVG) in an iframe in the anima-pwa work-item view, served from the existing auth-protected `/artifacts/{id}` endpoint. Plus generate REAL artefacts (the foundation currently writes a hardcoded HTML placeholder). ## Current state (foundation) Merged backend: `Artifact` domain + repo + migration 038_artifacts, `artifact.proto` (RunDefinePhase/ListArtifacts/GetArtifact), `/artifacts/{id}` HTTP serve behind auth middleware, and ArtifactRepo::create is called — BUT pretotype writes a hardcoded HTML placeholder ("Replace this with the actual design artefact"). The original Slint desktop UI work was stripped (desktop retired). ## Acceptance criteria - [ ] anima-pwa renders an artefact in an iframe in the work-item view (auth header threaded to /artifacts/{id}) - [ ] real design artefact generation (not a hardcoded placeholder) - [ ] ListArtifacts/GetArtifact wired into the PWA grpc-web API + regenerated bindings ## Notes Frontend = anima-pwa (NOT anima-desktop). Backend artifact serving + RPCs already merged. Will need anima-pwa proto bindings regen (npm run generate) for the artifact.proto additions. The define-phase RPCs currently have no scheduler caller — decide whether define-phase execution is user-triggered (RPC/MCP) or auto-dispatched.
toasterson force-pushed claude/wi-019f13ae-define-artifact-render-design-artefact-i from 8b11022c51 to bb78b48527 2026-07-04 23:04:33 +00:00 Compare
toasterson force-pushed claude/wi-019f13ae-define-artifact-render-design-artefact-i from bb78b48527 to f5066f83d2 2026-07-05 19:03:37 +00:00 Compare
toasterson force-pushed claude/wi-019f13ae-define-artifact-render-design-artefact-i from f5066f83d2 to 52e6435c0f 2026-07-05 23:03:55 +00:00 Compare
toasterson force-pushed claude/wi-019f13ae-define-artifact-render-design-artefact-i from 52e6435c0f to 432f433943 2026-07-06 00:05:28 +00:00 Compare
toasterson force-pushed claude/wi-019f13ae-define-artifact-render-design-artefact-i from 432f433943 to 745f16bcc3 2026-07-06 01:20:27 +00:00 Compare
toasterson force-pushed claude/wi-019f13ae-define-artifact-render-design-artefact-i from 745f16bcc3 to 53d8d8679a 2026-07-06 11:48:10 +00:00 Compare
toasterson force-pushed claude/wi-019f13ae-define-artifact-render-design-artefact-i from 53d8d8679a to b95fb16768 2026-07-06 12:31:04 +00:00 Compare
toasterson force-pushed claude/wi-019f13ae-define-artifact-render-design-artefact-i from b95fb16768 to 3f22af4651 2026-07-06 13:10:22 +00:00 Compare
toasterson force-pushed claude/wi-019f13ae-define-artifact-render-design-artefact-i from 3f22af4651 to c16e0d1ed7 2026-07-06 15:08:40 +00:00 Compare
Author
Owner

Merged at ae5d72d. Closing.

Merged at `ae5d72d`. Closing.
toasterson closed this pull request 2026-07-09 17:54:41 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
toasterson/Anima!283
No description provided.