integration: landing + ai-structured-outputs + l1-workspace (Phase 1 internal-only) #190
Reference in New Issue
Block a user
Delete Branch "feat/three-feature-integration"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closing in favor of the three individual PRs (#187 landing, #188 AI, #189 L1), all now merged to main per the agreed land-individually plan. This integration branch served its purpose as the combined PR-env smoke test (which surfaced the /home routing regression now fixed in #189). No code from this branch is lost — every commit landed via the three feature PRs.
For engineer + l1_tech roles, check_seat_available is called at each mutation point. Returns 402 Payment Required with structured detail {code: 'seat_limit_exceeded', role, current, limit, upgrade_url} when seats are full. Grandfathering: existing over-seated accounts keep existing users; only new mutations are blocked. Also updates AccountInviteCreate and AccountRoleUpdate schemas to accept l1_tech as a valid role value. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>Returns {engineer: SeatCheckResult, l1_tech: SeatCheckResult} for the authenticated engineer's account. Powers the SeatCounterWidget UI in the admin/users + account/users surfaces. Engineer+ access only. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>Per spec §5.6.1, audit rows are written at session terminal events (resolve, escalate, escalate_without_walk). log_audit gains an optional acting_as parameter that propagates the session's acting_as tag ('l1_coverage' for engineer coverers, null for native L1 users). Final code review flagged this as Important — column existed but was never populated. Four new integration tests cover all three paths. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>Pull request closed