Skip to content

feat(webui,cli): proposals approval UI for evolution gate#1614

Merged
nextlevelshit merged 2 commits into
mainfrom
1613-proposals-approval-ui
Apr 30, 2026
Merged

feat(webui,cli): proposals approval UI for evolution gate#1614
nextlevelshit merged 2 commits into
mainfrom
1613-proposals-approval-ui

Conversation

@nextlevelshit
Copy link
Copy Markdown
Collaborator

Summary

  • Adds /proposals webui (list + detail with diff render, approve/reject POST routes)
  • Adds wave proposals list|show|approve|reject CLI subcommand
  • Wires internal/proposals/approve.go to atomically flip pipeline_version.active on approval
  • CSRF-gated POST routes; Tailwind templates, no JS framework

Related to #1613

Changes

  • internal/webui/handlers_proposals.go (+341), routes.go, embed.go — webui handlers + route mount
  • internal/webui/templates/proposals/{list,detail}.html + layout.html — UI templates
  • cmd/wave/commands/proposals.go (+319) + main.go — CLI subcommand
  • internal/proposals/approve.go (+110) — DecideProposal + active version flip
  • specs/1613-proposals-approval-ui/{spec,plan,tasks}.md — planning docs
  • Tests: handlers_proposals_test.go (+266), proposals_test.go (+267)

Test Plan

  • go test ./internal/webui/... ./cmd/wave/commands/... ./internal/proposals/...
  • Manual: synthetic proposal row → list → approve → pipeline_version active flips → wave run <pipeline> uses new version
  • Reviewer verify CSRF behavior on POST routes

nextlevelshit and others added 2 commits April 30, 2026 11:22
Add human-approval gate for evolution proposals via webui /proposals
(list/detail/approve/reject) and CLI `wave proposals` (list/show/approve/
reject). Approve calls EvolutionStore.DecideProposal then
CreatePipelineVersion(active=true) using sha256 of post-diff yaml; reject
only marks the proposal decided. Diff render uses escaped <pre> with
class spans, no new chroma dep. Webui reuses per-session CSRF middleware.
@nextlevelshit nextlevelshit force-pushed the 1613-proposals-approval-ui branch from ea80856 to 14f067e Compare April 30, 2026 09:23
@nextlevelshit nextlevelshit merged commit 71a8db8 into main Apr 30, 2026
12 checks passed
@nextlevelshit nextlevelshit deleted the 1613-proposals-approval-ui branch April 30, 2026 09:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant