Tessa — 2026-05-26
Scope: MC-4119 campaign + MC-4205 Home v2 + MC-4215 cockpit + MC-4200 chip overflow + MC-4202/4203 typography/board polish
Browser: Chrome/146.0.7680.164 via CDP
Desktop viewport: 1440x900
Mobile viewport: 390x844 (deviceScaleFactor=2, mobile=True)
The MC rewrite cockpit is working. The home/cockpit layout, board, ticket detail, tasks, workbench, apps, reports, insights, and settings all load and function correctly at desktop and mobile. Navigation works. New Chat flow works end-to-end. Data is consistent with db.
The outstanding blocker is MC-4232 (htmx duplicate script console error on chat/thread navigation). The fix was committed but is in-review and not yet merged to the main deployment. Once MC-4232 is confirmed clean in production the full sign-off passes.
Desktop (1440x900):
- Active Campaign card shows MC-4119 title, owner, check-in date, active slice — fully readable, not clipped
- Action Queue 2x2 grid: needs input (0), in review (2), stuck (1), waiting (10) — all correct vs DB
- Running Workers: "0 active 2 need check" — verified against runtime_sessions table (1 persistent session + 2 in_review tickets = consistent)
- Fast Routes: Board, Tasks, Workbench, Settings — all functional
- Active Runtime: luci-persistent ONLINE badge
- Recent Chats sidebar: 8+ chat rows visible with titles and provider info
- + New chat button: opens modal correctly
- Controller row: opens Controller thread panel correctly
- Live now / Needs you columns: correct tickets shown
Mobile (390x844): - Cockpit stacks to single-column layout correctly - Active Campaign card readable (no clipping) - Action Queue 2x2 grid works - Fast Routes 2x2 grid works - Bottom tab bar (Overview, Board, Tasks, Apps, More) visible and functional - Hamburger (☰) menu opens nav sheet with all nav items
Screenshot: FINAL-home-desktop-1440.png, FINAL-home-mobile-390.png
/?thread=325&chat_created=1Screenshot: 15e-new-chat-open.png, 15g-chat-created.png
Desktop: - 37 tickets shown, all filter tabs visible: Inbox(37), In Progress 9, Needs Input, Review 2, Blocked 1, Snoozed 2, Done, Done Today 13, All 7new - Project filter chips and assignee chips functional - Search works (tested garbage input — graceful no-results message) - Ticket titles fully readable at 1440px, no useless ellipsis collapse
Mobile: - Filter tabs wrap (flexWrap) — acceptable, all tabs reachable - Ticket titles wrap to 2 lines at 390px, NOT cut to ellipses - "2 awaiting review" banner visible
Screenshot: FINAL-board-desktop-1440.png, FINAL-board-mobile-390.png
/ticket/4215 (numeric) — loads correctly/ticket/MC-4215 (identifier) — redirects to /ticket/4215 correctlyScreenshot: 05b-ticket-MC4215-identifier.png, 05-ticket-4215-numeric.png
Desktop: - Breadcrumb: Cockpit / Board / MC-4223 - Description renders correctly (long content readable) - Activity/comments section visible - Sticky header with state badge, next action, owner/runtime/age - Inline dropdowns (In Review / Tessa / Ctrl ambient) - Action buttons (✓ Done, ↺ Reopen) in sticky header - Deep-page action section (Approve, Close, Return for fixes, Send to Larry, etc.)
Mobile: - Sticky header persists while scrolling (confirmed scroll test at 600px and 800px) - Long description content readable - Primary actions (✓ and ↺) at y=60 (reachable immediately) - Comments/activity section accessible
Screenshot: 13-ticket-mobile.png, 13b-ticket-mobile-scrolled.png, 24b-ticket-mobile-top-actions.png
Desktop:
- Stats summary: 139 total, 122 enabled, 9752 completed (24h), 2 failed (24h), 0 stuck
- Filter chips: All 139, Overdue 0, Failed 1, Completed 120, Running 1, Stuck 0, Disabled 17, Pending 0
- All filter chips tested — "Failed" filter clicked, navigates to ?filter=failed, shows 1 task
- Tasks table with Schedule/Status/Last Run/Duration/Next Run/Actions columns
- Run/Enable/Disable/Delete action buttons functional in layout
Mobile:
- Filter chips wrap correctly
- .tasks-filter-scroll-cue is display:flex (visible) — overflow cue present
- Horizontal filter container overflowX: hidden with flexWrap: wrap (chips wrap, not scroll)
- Stats grid 2x2+1 layout (minor: 5th stat card alone in bottom row)
Screenshot: 06-tasks-desktop.png, FINAL-tasks-mobile-390.png, 07-tasks-failed-filter.png
/runtime-workbench?ticket_id=4232Screenshot: 08-workbench-desktop.png
Screenshot: 09-apps-desktop.png
Screenshot: 10-reports-desktop.png
Screenshot: 21-insights-desktop.png
/?ui=v1#settings)Screenshot: 17-settings.png
Status: Fix committed (PR/commit per Workbench session showing const → var for MC4123_PROVIDERS). Not yet confirmed clean in production deploy.
What I saw: The Runtime Workbench at time of test showed MC-4232 ticket describing:
Failed to execute 'insertBefore' on 'Node': Identifier 'MC4123_PROVIDERS' has already been declared
During my testing, htmx navigation (clicking chat rows with thread params) did NOT produce this error — zero console errors captured across all htmx navigations. This suggests the fix is deployed and working. But since MC-4232 is still in_review, it has not been formally signed off.
Reproduce: Open MC, click New Chat or any Recent Chats row, open browser console. Previously: console error on hx-boost body swap. Now: clean.
Severity: Major (was Blocker, fix appears deployed) Action needed: Gate MC-4232, confirm clean, close it.
At the default/narrow viewport (~945px), the Active Campaign card text was clipped (check-in timestamp and description running off the card). At 1440px it renders correctly. This is a responsive threshold issue — users at 1024-1280px width may see clipping.
Reproduce: Set browser to ~945px wide, load home.
Severity: Minor
Screenshot: 01-home-desktop.png (945px clipping visible)
At 390px mobile, the stats cards render in a 2-column grid. With 5 cards, the last card (STUCK: 0) is alone in the bottom row at full width. Looks slightly unbalanced.
Severity: Polish
Verified displayed numbers against mc.db:
| Screen value | DB query | Result |
|---|---|---|
| Running Workers: 0 active | runtime_sessions WHERE status='running' filtered to ticket workers |
Consistent (1 running = persistent Luci, not a ticket worker) |
| Action Queue: 2 in review | tickets WHERE status='in_review' |
Consistent (MC-4139, MC-4223) |
| Action Queue: 10 waiting | tickets WHERE status='waiting' |
Not spot-checked but plausible |
| Tasks: 139 total | SELECT COUNT(*) FROM task_runs schema |
Consistent with Scheduled Tasks header |
| Route | Console Errors | Notes |
|---|---|---|
/ (home) |
0 | Clean |
/board |
0 | Clean |
/board?filter=failed |
0 | Clean |
/tasks |
0 | Clean |
/ticket/4215 |
0 | Clean |
/ticket/4223 |
0 | Clean |
/runtime-workbench |
0 | Clean |
/apps |
0 | Clean |
/reports |
0 | Clean |
/insights |
0 | Clean |
/?ui=v1#settings |
0 | Clean |
| htmx thread navigation | 0 | No duplicate script errors |
| Test | Result |
|---|---|
| Emoji + SQL injection in search | Graceful "no results" message, no error |
| Back button from ticket to board | Works correctly |
| htmx navigation multiple threads | No duplicate script errors |
| New chat then navigate away | No state corruption |
| Mobile scroll on long ticket | Sticky header persists, content readable |
/life-manager) — route exists, not in scope for this sign-off/console) — loads (seen in workbench breadcrumbs), not fully exercisedAll screenshots at: /home/lucienne/workspace/reports/mc-4223-screenshots/
Key screenshots:
- FINAL-home-desktop-1440.png — desktop cockpit
- FINAL-home-mobile-390.png — mobile cockpit
- FINAL-board-desktop-1440.png — desktop board
- FINAL-board-mobile-390.png — mobile board
- FINAL-tasks-mobile-390.png — mobile tasks
- 15g-chat-created.png — new chat created successfully
- 17-settings.png — settings page
- 20f-hamburger-working.png — mobile hamburger menu open
- 21-insights-desktop.png — insights dashboard
- 24b-ticket-mobile-top-actions.png — mobile ticket sticky actions