diff options
| author | soryu <soryu@soryu.co> | 2026-01-17 06:44:22 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-01-17 06:44:22 +0000 |
| commit | 1850a582a4817210a822ca602163942b034a4dc3 (patch) | |
| tree | 7d93e9f74b44d0fa112c77684cfe04726c284ce1 /makima/frontend/src/lib | |
| parent | f84a7f2d820f6f432be2b1d78d6bf833b5b19380 (diff) | |
| download | soryu-1850a582a4817210a822ca602163942b034a4dc3.tar.gz soryu-1850a582a4817210a822ca602163942b034a4dc3.zip | |
feat(frontend): Add UI for phase transition confirmation requests
When phase_guard is enabled and a supervisor tries to advance the contract
phase, users now see a confirmation modal with:
- Current and proposed next phase visualization
- Phase deliverables checklist (if available)
- Summary of the phase work
- Options to "Approve & Advance" or "Request Changes" with feedback
Components added:
- PhaseConfirmationModal: Full modal dialog for phase confirmations
- PhaseConfirmationInline: Inline variant for task output view
- PhaseConfirmationNotification: Global notification wrapper
- PhaseConfirmationToast: Alternative toast-style notification
Integration:
- Added phase_confirmation message type to TaskOutput renderer
- Extended PendingQuestion API type with phase confirmation data
- Integrated notification into main app layout
The UI uses the existing supervisor question infrastructure (polling via
/api/v1/mesh/questions) and responds with APPROVE or CHANGES_REQUESTED
prefixed feedback.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'makima/frontend/src/lib')
| -rw-r--r-- | makima/frontend/src/lib/api.ts | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/makima/frontend/src/lib/api.ts b/makima/frontend/src/lib/api.ts index 9c56f6b..8b6b59d 100644 --- a/makima/frontend/src/lib/api.ts +++ b/makima/frontend/src/lib/api.ts @@ -1938,6 +1938,19 @@ export interface PendingQuestion { choices: string[]; context: string | null; createdAt: string; + /** Question type - "general" for regular questions, "phase_confirmation" for phase transitions */ + questionType?: "general" | "phase_confirmation"; + /** Phase confirmation specific data (when questionType is "phase_confirmation") */ + phaseConfirmation?: { + currentPhase: ContractPhase; + nextPhase: ContractPhase; + contractName?: string; + summary?: string; + deliverables?: Array<{ + name: string; + completed: boolean; + }>; + }; } export interface AnswerQuestionRequest { |
