Add a render test for GenerationPlan (planning state vs. plan outline +
building state), covering the previously-untested new component and
improving patch coverage.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- jsonc/sort-keys (CI TS Common): the new i18n keys were appended at the end;
re-sort them into ascending order across all locales via eslint --fix.
- knip (CI Web Style): WorkflowGenPlanNode / WorkflowGenPlanInput are only used
inside debug.ts, so stop exporting them.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
pyrefly rejected flask.stream_with_context called with a generator
(constrained AnyStr overload — "no-matching-overload"), failing the
Python type-check CI. Switch the streaming endpoint to the repo's
established SSE helper compact_generate_response (which wraps
_stream_with_request_context), so it type-checks and still preserves
request context during iteration.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Implements the stage 1–5 program from #38174 (3.1 dropped per request).
Backend (api/)
- New POST /workflow-generate/suggestions: short, workspace-grounded example
instructions generated on the tenant default model; soft-fails to {suggestions: []}.
- New POST /workflow-generate/stream: SSE plan-first generation that emits the
planner result (plan) then the built graph (result), reusing the existing
planner/builder/validate stages — the streamed result provably equals the
blocking /workflow-generate return.
- mode:"auto" on both generate endpoints; a lightweight classifier resolves the
concrete mode before planning and it is echoed back as `mode`.
Frontend (web/)
- Remove the low-value "Ideal output" field from the modal.
- Replace the static example chips with AI-generated, workspace-grounded
suggestions (cached per session per mode, ↻ refresh, silent static fallback).
- Plan-first streaming: show the planner outline as it lands, then the graph
(replaces the guessed phase timer) via an isolated SSE consumer that reuses
the existing cookie-auth/CSRF/abort setup without touching handleStream.
- Review stage: planner metadata header (icon + name), an actionable error panel
(Regenerate / Install tools / affected node), a /refine diff summary, and a
post-apply nudge toward cmd+k /refine.
- Entry & input: ⌘/Ctrl+Enter to generate, autofocus, palette inline capture
(`/create workflow <text>`), an "Auto" submenu option, and last-instruction
resume across opens.
i18n keys added across all 23 locales. New tests cover the suggestions component
(fetch → fallback → refresh), the graph diff util, and the updated /create command.
Refs #38174
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>