Feat v0.7.10 workflow handoff (#64)
All checks were successful
CI/CD / test-go-pg (push) Successful in 2m54s
CI/CD / test-sqlite (push) Successful in 3m1s
CI/CD / build-and-deploy (push) Successful in 1m47s
CI/CD / e2e-smoke (push) Has been skipped
CI/CD / test-frontend (push) Successful in 6s
CI/CD / detect-changes (push) Successful in 4s
CI/CD / test-runners (push) Has been skipped

Co-authored-by: Jeffrey Smith <jasafpro@gmail.com>
Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit was merged in pull request #64.
This commit is contained in:
2026-04-02 23:16:19 +00:00
committed by xcaliber
parent a9cf71b76d
commit f06c6c954b
17 changed files with 818 additions and 36 deletions

View File

@@ -2,6 +2,46 @@
All notable changes to Armature are documented here.
## v0.7.10 — Workflow Handoff + Assignment UI
Closes the three UX gaps found during v0.7.9: public→team handoff,
team inbox, and manual assignment. Also fixes dead system-admin bypass
in team middleware and enriches assignment API responses.
**Public Stage Handoff**
- `RenderWorkflow()` detects audience mismatch (team/system stage + unauthenticated visitor) and renders "Submitted Successfully" screen with reference ID instead of showing the team-gated form.
**API Response Enrichment**
- `ListByTeam` and `ListMine` handlers enrich assignment records with `workflow_name`, `stage_name`, `sla_breached` by joining instance → workflow → version snapshot. Results cached per-request to avoid repeated DB hits.
- `ListTeamInstances` returns `instanceView` with `workflow_name`, `stage_name`, `age_seconds`, `sla_breached`.
**Team Middleware Fix**
- `RequireTeamAdmin` / `RequireTeamMember` system-admin bypass was dead code (`c.Get("role")` never set by auth middleware). Fixed to resolve `PermSurfaceAdminAccess` via `resolveAndCachePerms`. Variadic `allStores` parameter preserves backward compatibility.
**Team Workflow Inbox**
- Enhanced `AssignmentsTab` in team-admin: "My Active" (claimed) and "Available" (unassigned) sections with claim/unclaim/release/work/complete actions, time-ago display, WS live updates.
- Manual "Assign" button on unassigned rows with team member dropdown. New `POST /api/v1/assignments/:id/assign` endpoint.
**Assignment Notifications**
- Engine calls `notifyAssignment()` on assignment creation — notifies specific user or all team members via notification system.
**SDK Gap Closure**
- Added `workflowAssignments` domain (claim/unclaim/complete/cancel/assign/mine)
- Added `teams.assignments`, `teams.workflowInstances`, `teams.cancelWorkflowInstance`
- Fixed dead `workflows.cancel` route referencing `/channels/`
**E2E Test**
- `ci/e2e-workflow-handoff.sh`: public form → team review → claim → complete. Verifies audience mismatch screen, assignment creation, full lifecycle.
---
## v0.7.9 — Workflow Independence Audit
Workflows proven independent of chat and all optional packages. Critical