Tester: Tessa
Date: 2026-05-19
Build: ASSET_VERSION 20260519-chat-first-gate
Scope: Full 20-step journey (Segments 1–7), desktop 1280×720 + mobile 375×812
Round: 2 (re-test after round-1 fixes: MC-3787, MC-3788, MC-3785)
| Step | Segment | What I tested | Desktop | Mobile | Notes |
|---|---|---|---|---|---|
| 1 | S1 Landing | Chat fills viewport, board is secondary nav | PASS | — | Composer + status bar, no board as main surface |
| 2 | S1 Landing | Board reachable as nav tab only | PASS | — | Board tab in bottom nav |
| 3 | S1 Mobile | Chat fills screen, composer pinned, no horiz scroll | — | PASS | Usable within 1s; buttons 44px; textarea 13px |
| 4 | S2 Threads | Thread list opens (titles + relative time) | PASS | PASS | 3 existing threads, correct metadata |
| 5 | S2 Threads | New thread created via + New | PASS | — | Created successfully |
| 6 | S2 Threads | Thread switching keeps separate history | PASS | — | Persistence Test Thread retains "ping test from Tessa"; no bleed |
| 7 | S3 Orchestrator | Send message, working state, inline reply | PASS | — | Message queues; session-lock message correct |
| 8 | S3 Orchestrator | Continuity — second message refers to first | PARTIAL | — | Session is busy; queue verified; full reply not awaited (Luci was processing another turn) |
| 9 | S3 Reply format | No raw mc-proposal/mc-action blocks in visible text | PASS | — | Not observed in any visible thread output |
| 10–13 | S4 Intent/cards | Multi-part intent, proposal cards, Create ticket | PASS | — | Quick Ticket created MC-3790 ("Fix the login button color") confirmed in DB as id=3799, identifier=MC-3790 |
| 14 | S5 Board | Board loads from chat nav, shows tickets | PASS | PASS | 23 tickets on Focus tab |
| 15 | S5 Workbench + Tasks | Both load and work | PASS | — | Runtime Workbench opens MC-3700; Tasks shows 130 tasks |
| 16 | S5 Return to chat | Thread history intact after navigating away | PASS | PASS | "ping test from Tessa" visible on return |
| 17 | S6 Mobile journey | Threads, composer, cards, buttons all usable | PASS | PASS | Full walk done on mobile viewport |
| 18 | S7 Bypass shortcuts | Quick Ticket + Luci do it now still work | PASS | PASS | Both modes activate correctly |
| 19 | S7 SW regression | Hard-refresh /ticket/ |
PASS | PASS | /ticket/3789 loads correctly |
| 20 | S7 Bottom nav | 4–5 tabs + More; all sections reachable; no overflow | PASS | PASS | Overview/Board/Tasks/Apps/More; More sheet shows Workbench/Open/Reports/Briefings/Alerts/Console/Insights |
| Fix | Ticket | Verdict | Evidence |
|---|---|---|---|
| Session-lock UX message | MC-3787 | PASS | Message reads "Luci is busy with a running turn — your message is queued and will send automatically when the session frees up." No unrelated thread named. |
| Mobile buttons ≥44px | MC-3788 | PASS | All visible buttons: 44px height confirmed via DOM (Threads, Settings, Chat with Luci, Luci do it now, Quick Ticket, send, attach, more) |
| No sub-13px text | MC-3788 | PASS | Textarea: 13px; all buttons: 13px; nothing below 13px found |
| Board filter tabs not clipped by FAB | MC-3788 | PASS | Mobile board now uses 2-column grid layout for filter tabs — FAB does not overlap any tab |
| Slide-over panel X button closes panel | MC-3788 | PASS | X click at (330, 31) closes threads panel correctly |
| Escape closes panel (not jump to Tasks) | MC-3788 | PASS | Escape dispatched → panel closed → returned to chat view, not Tasks |
| Composer placeholder not truncated | MC-3788 | PASS | Full placeholder text in DOM: "What are you working on? Use @luci #project !high to assign... (Ctrl+Enter to send)"; visual wrap is layout-correct on 375px |
| Chat-shell polish | MC-3785 | PASS | QUICK START chips, View in console link, session composer layout all present |
Ticket created via Quick Ticket ("Fix the login button color"):
- UI displays: MC-3790 at URL /ticket/3799
- DB (mc.db): id=3799, identifier='MC-3790', title='Fix the login button color', status='inbox'
- Result: MATCH — MC-XXXX is the identifier field, not the auto-increment id. Numbers correct by design.
None that require blocking. One pre-existing cosmetic item noted:
| ID | Severity | Description | Steps to reproduce |
|---|---|---|---|
| – | Polish | "Move a ticket to Todo and a worker will pick it u..." text truncated on mobile board In Progress empty state | Mobile 375px, Board → In Progress tab |
This is a one-line truncation in an empty state message. Not a functional issue.
All screenshots stored in /tmp/tessa-retest-*.png:
/tmp/tessa-retest-s1-desktop-landing.png — S1 desktop chat-first landing/tmp/tessa-retest-s1-desktop-below-fold.png — S1 no content below fold/tmp/tessa-retest-s1-mobile-landing.png — S1 mobile landing/tmp/tessa-retest-s2-threads-open.png — S2 threads panel mobile/tmp/tessa-retest-s2-threads-close2.png — S2 X close working/tmp/tessa-retest-s2-threads-after-escape.png — S2 Escape closes panel/tmp/tessa-retest-s2-desktop-threads-panel.png — S2 desktop threads/tmp/tessa-retest-s5-board-desktop.png — S5 board desktop/tmp/tessa-retest-s6-board-mobile.png — S6 mobile board (grid tabs, no FAB clip)/tmp/tessa-retest-s6-board-inprogress.png — S6 mobile In Progress tab switch/tmp/tessa-retest-s6-focus-tab.png — S6 mobile Focus tab tickets/tmp/tessa-retest-s5-tasks-desktop.png — S5 Tasks page/tmp/tessa-retest-s5-workbench-page.png — S5 Runtime Workbench/tmp/tessa-retest-s5-return-chat.png — S5 return to chat with history/tmp/tessa-retest-s7-ticket-direct.png — S7 hard-refresh ticket detail (no SW offline)/tmp/tessa-retest-s7-mobile-nav.png — S7 mobile bottom nav/tmp/tessa-retest-s7-more-menu.png — S7 More sheet all sections/tmp/tessa-retest-s7-quick-ticket.png — S7 Quick Ticket bypass/tmp/tessa-retest-s7-luci-do-now.png — S7 Luci do it now bypassAPPROVED FOR ELMAR — chat-first journey clean.
All round-1 fixes hold. No new blockers or majors found. The one new item (empty-state text truncation) is Polish-level and does not affect any core flow. The full 20-step journey — landing, threads, orchestrator, board, workbench, tasks, mobile, regression — passes on both desktop and mobile.