feat(webui): /preview/* phase A (build tag, fixtures only) - #1585
Merged
Conversation
Adds a build-tag-gated /preview/* route group rendering five fixture- backed mockup pages ported from docs/scope/mockups/. Default builds ship zero preview footprint; the webui_preview tag activates routes, templates, css, fixtures, and smoke tests. Mirrors the existing features_<name>/_disabled.go pattern. Routes register through FeatureRegistry.addRoutes so the main mux is untouched. Each page renders a sticky PREVIEW banner partial plus the ported HTML; css is served from a tag-gated handler at /preview/static/style.css. Also extracts the strict default-tags zero-flags assertion into its own file gated to !any-feature-tag so the registry contract still holds under default builds without breaking feature-tagged test runs. CI matrix in lint.yml builds, lints, and runs preview smoke tests under both tag modes. Issue #1580 (epic #1565).
This was referenced Apr 29, 2026
nextlevelshit
added a commit
that referenced
this pull request
Apr 30, 2026
…#1609) Cheapest (Haiku) tier produced shallow / lazy outputs on judgment-shaped work — most visibly the test deletion in #1582 and forbidigo-panic patterns in #1585. Real-world signal from Epic #1565 Phase 1 dispatch: Haiku is fine for summary/distill/format steps but not for any persona that scans, judges, plans, implements, or reviews. Promoted to balanced on these steps: - impl-issue: fetch-assess + agent_review (create-pr commenter stays cheap) - impl-issue-core: fetch-assess - audit-tests: scan + agent_review (summarizer report stays cheap) - audit-architecture: scan + agent_review (summarizer report stays cheap) - audit-security: agent_review (summarizer report stays cheap) - ops-bootstrap: commit (craftsman writes scaffolding) - ops-pr-review: diff-analysis + security llm_judge + quality agent_review - plan-research: analyze-topics + research-topics (fetch/post-comment stay cheap) Kept cheapest where the persona is summary-shaped: - summarizer - forge.type-commenter (PR/comment formatting) - forge.type-analyst on fetch-only steps Also adds golangci-lint to flake.nix devShell so the same lint that gates CI runs locally without manual install (CI uses v2.10, nixpkgs ships v2.8 — minor skew, acceptable for now).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/preview/*route group gated behindwebui_previewbuild tagdocs/scope/mockups/tointernal/webui/templates/preview/Related to #1580
Changes
internal/webui/preview.go(//go:build webui_preview) — feature with route registration and template renderinginternal/webui/preview_disabled.go— no-op stub for default buildsinternal/webui/preview_fixtures.go— hard-coded fixture datainternal/webui/preview_test.go— smoke tests asserting 200 OK on every preview routeinternal/webui/templates/preview/*.html— five ported pages +_banner.htmlpartialinternal/webui/static/preview/style.css— preview-only stylesheetinternal/webui/features.go— registers preview feature in registryinternal/webui/features_default_test.go— extracts default-tags zero-flags assertion to its own file gated!any-feature-tag.github/workflows/lint.yml— adds matrix entry building/linting/testing with-tags webui_previewspecs/1580-preview-phase-a/{spec,plan,tasks}.md— speckit planning artifactsTest Plan
go build ./...(default tags) — preview package excludedgo build -tags webui_preview ./...— preview package compilesgo test -tags webui_preview ./internal/webui/...— smoke tests pass with 200 OK on/preview/,/preview/onboard,/preview/work,/preview/work-item,/preview/proposalgo test ./internal/webui/...(default) — registry contract still holds; no preview routes registered