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.
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.
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.
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 main2026-10-03 15:21:32 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Stacked on #95. The base is
feat/interactive-generation-coreso this PR shows only the web extraction. Retarget tomainafter #95 merges.Summary
ProgressConsole; keep a thin wrapper with the same preview wording and unchanged CSS/theme tokens.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— passpnpm check— pass; svelte-check reports 0 errors and 0 warningspnpm test— pass; web has 133 passing tests, up from 95pnpm build— same pre-existing failure: web prebuild cannot findapps/web/config.yaml. This is not a passing root build gate.Commit:
c4f1005f—[web] share progress console and SSE framingFollow-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.