Share web progress console and SSE framing #96

Merged
eleith merged 2 commits from feat/interactive-generation-web into main 2026-10-03 15:21:32 +00:00
Owner

Stacked on #95. The base is feat/interactive-generation-core so this PR shows only the web extraction. Retarget to main after #95 merges.

Summary

  • Extract the existing preview presentation into a shared ProgressConsole; keep a thin wrapper with the same preview wording and unchanged CSS/theme tokens.
  • Share rendering types that do not require a job ID, and isolate log element IDs per component instance.
  • Extract database-free SSE framing and headers while preserving existing publish/preview polling, event ordering, cursor handling, and response behavior.
  • Add Node SSR rendering and SSE/job-stream regressions using existing Svelte tooling, without adding a browser testing framework or dependencies.

All new runtime pieces are exercised by existing callers: preview uses the console and both preview/publish use SSE framing. Publish keeps its current screen. No generation endpoint, token streaming, worker execution change, or proxy configuration change is included. Generation-specific events will be defined with their actual endpoint caller.

Verification

Node v26.4.0, pnpm 11.2.2, rerun before commit:

  • pnpm lint — pass
  • pnpm check — pass; svelte-check reports 0 errors and 0 warnings
  • pnpm test — pass; web has 133 passing tests, up from 95
  • Owner manually ran preview/publish, confirmed they still work, and approved the extraction
  • pnpm build — same pre-existing failure: web prebuild cannot find apps/web/config.yaml. This is not a passing root build gate.

Commit: c4f1005f — [web] share progress console and SSE framing

Follow-up

Connect live generation progress and reviewed results to the web UI. Keep provider work in the web process, with accepted work completing after observer detachment and no durable generation jobs. Real-provider and actual-ingress generation verification remain pending until integration.

**Stacked on #95.** The base is `feat/interactive-generation-core` so this PR shows only the web extraction. Retarget to `main` after #95 merges. ## Summary - Extract the existing preview presentation into a shared `ProgressConsole`; keep a thin wrapper with the same preview wording and unchanged CSS/theme tokens. - Share rendering types that do not require a job ID, and isolate log element IDs per component instance. - Extract database-free SSE framing and headers while preserving existing publish/preview polling, event ordering, cursor handling, and response behavior. - Add Node SSR rendering and SSE/job-stream regressions using existing Svelte tooling, without adding a browser testing framework or dependencies. All new runtime pieces are exercised by existing callers: preview uses the console and both preview/publish use SSE framing. Publish keeps its current screen. No generation endpoint, token streaming, worker execution change, or proxy configuration change is included. Generation-specific events will be defined with their actual endpoint caller. ## Verification Node **v26.4.0**, pnpm **11.2.2**, rerun before commit: - `pnpm lint` — pass - `pnpm check` — pass; svelte-check reports 0 errors and 0 warnings - `pnpm test` — pass; web has **133 passing tests**, up from 95 - Owner manually ran preview/publish, confirmed they still work, and approved the extraction - `pnpm build` — **same pre-existing failure**: web prebuild cannot find `apps/web/config.yaml`. This is not a passing root build gate. Commit: `c4f1005f` — `[web] share progress console and SSE framing` ## Follow-up Connect live generation progress and reviewed results to the web UI. Keep provider work in the web process, with accepted work completing after observer detachment and no durable generation jobs. Real-provider and actual-ingress generation verification remain pending until integration.
eleith changed target branch from feat/interactive-generation-core to main 2026-10-03 15:21:24 +00:00
eleith added 2 commits 2026-10-03 15:21:24 +00:00
[web] share progress console and SSE framing
ci/woodpecker/pr/web Pipeline was successful
c4f1005f43
Extract the preview presentation into ProgressConsole with caller-provided wording and request-local rendering types. Preserve preview copy/styles through a thin wrapper and isolate log IDs per component instance.

Share database-free SSE encoding and headers without changing publish/preview job polling, framing, or cursor behavior. Add Node SSR component tests and framing/job-stream regressions using existing Svelte tooling.

Verified on Node v26.4.0 and pnpm 11.2.2: pnpm lint, pnpm check, and pnpm test pass. Web has 133 passing tests, up from 95. The owner manually ran preview/publish and confirmed they still work.

Known baseline failure: pnpm build stops in @luzzle/web prebuild because apps/web/config.yaml is missing. This remains a failing root build gate, not a passing check. No generation endpoint, token output, worker execution, or proxy changes are included.
[web] stream generation progress and validated results
ci/woodpecker/pr/cli Pipeline was successful
ci/woodpecker/pr/core Pipeline was successful
ci/woodpecker/pr/web-db Pipeline was successful
ci/woodpecker/pr/web-jobs Pipeline was successful
ci/woodpecker/pr/web-pieces Pipeline was successful
ci/woodpecker/pr/web-worker Pipeline was successful
ci/woodpecker/pr/web Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
ci/woodpecker/push/cli Pipeline was successful
ci/woodpecker/push/core Pipeline was successful
ci/woodpecker/push/web-db Pipeline was successful
ci/woodpecker/push/web-jobs Pipeline was successful
ci/woodpecker/push/web-pieces Pipeline was successful
459269c055
Handle create and edit requests with explicit form readers and server-owned schemas. Share SSE transport with publish and preview while keeping their producers separate.

Keep accepted generation running through cleanup after disconnect, and keep budgets in code rather than user configuration.
eleith merged commit 459269c055 into main 2026-10-03 15:21:32 +00:00
eleith deleted branch feat/interactive-generation-web 2026-10-03 15:21:32 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: eleith/luzzle#96