Fix approval API endpoints, pending lane animation, and add No Mockups rule
Approval API fix:
- Frontend was calling /api/v1/approvals/{id}/decision (wrong URL)
- Backend registers at /api/v1/release-orchestrator/approvals/{id}/approve
- Updated queueBaseUrl and detailBaseUrl to match actual backend routes
- Changed approve/reject to POST /{id}/approve and /{id}/reject (not /decision)
Pending actions animation:
- Add CSS keyframe animations for pending-lane enter (fade-in) and exit (collapse)
- onTabChange('approvals') now triggers exit animation (250ms) before switching tab
- Pending lane smoothly collapses when user clicks "View all"
AGENTS.md — No Mockups Convention:
- All UI must connect to real backend endpoints
- Never create mock/stub implementations unless explicitly requested
- Error states must be surfaced to user, never silently swallowed
- If backend endpoint doesn't exist, mark task BLOCKED
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -87,6 +87,17 @@ Design and build the StellaOps web user experience that surfaces backend capabil
|
||||
- 4. Coordinate doc updates, tests, and cross-guild communication whenever contracts or workflows change.
|
||||
- 5. Revert to `TODO` if you pause the task without shipping changes; leave notes in commit/PR descriptions for context.
|
||||
|
||||
## No Mockups Convention (MANDATORY)
|
||||
|
||||
All UI components **must** connect to real backend API endpoints. Never use `window.confirm()`, mock data services, or stub implementations unless explicitly requested by the product owner.
|
||||
|
||||
**Rules:**
|
||||
- Every button, form submission, and action handler must call a real API endpoint
|
||||
- If the backend endpoint doesn't exist yet, mark the task `BLOCKED` — do not create a mock
|
||||
- The in-memory mock clients (e.g., `InMemoryApprovalClient`) exist ONLY for `ng serve` without backends, never as production implementations
|
||||
- Error states from API failures must be surfaced to the user (never silently swallow errors)
|
||||
- If an API returns 404/500, show the error in a banner or toast — don't pretend the action succeeded
|
||||
|
||||
## Destructive Action Convention (MANDATORY)
|
||||
|
||||
All destructive actions (delete, revoke, purge, reset) **must** use `<app-confirm-dialog>` — never `window.confirm()` or unguarded inline handlers.
|
||||
|
||||
Reference in New Issue
Block a user