feat(ui): introduce each teacher with an individual welcome bubble

This commit is contained in:
鲨鱼辣椒
2026-09-29 14:02:50 +08:00
parent e4b99d5e32
commit c82b1a43be
9 changed files with 253 additions and 22 deletions

View File

@@ -122,3 +122,22 @@
- Initial narrow-layout regression exposed an 11px Send shift with two-line text. Reserved action height resolves it without changing dispatch. All 71 focused UI tests, typecheck, changed-file ESLint and final production build pass. All 3 targeted headless layout cases pass at 319px/508px, including clipping, position, click payload and draft preservation; inspected narrow screenshot confirms balanced semantic wrapping and attached emoji.
- Refreshed only the existing trial Renderer (Main remains PID 62668). Preflight found empty textareas, no stop controls and an idle Pi worker; saved current UI state/build backups under `help-long-label-update-20260929/`. Actual loaded `index-CaxXl4aZ.js` contains the full new copy. Current route and authenticated identity preserved, all 11 pre-refresh teacher drafts unchanged, window remains visible/unfocused. Consultation pane closes on page refresh; no extra teacher/operation model request was made to reopen it.
- Temporary inspector closed. No formal-app change, model/cloud configuration publication or remote push. Required doc structure and whitespace checks pass; same inherited five foreign-source doc diagnostics remain from the original integration base. Retain checkout for running trial.
## Follow-up: Introduce Every Delivered Teacher
- User approves the reviewed multi-teacher greeting design and requests it in the temporary application. Resume this owned UI/trial task with exact identity/branch/base verified, own/peer scopes reviewed, and unchanged entry/positioning/architecture context reused. Design skill guidance from the preceding review retained. Gate Passed.
- Replace the single selected-agent welcome presentation for delivered catalogs with individual cloud-configured introductions, pastel speech cards, short staggered entrance, individual dismissal and group “先自己试试”. Receipts belong to account + project + teacher; legacy shared dismissal must not incorrectly suppress other teachers. Existing hover introduction, account-wide chats, version/history/draft behavior and real unread check-ins remain intact.
- Plan: add bounded UI-only receipt state and accessible responsive cards, retain old no-catalog greeting/check-in path and measured native-preview avoidance; cover independent dismissal, new teachers, account/project boundaries, refresh/selection and no model requests; run relevant tests/typecheck/lint/build and headless layout, then safely refresh the existing trial without taking focus. No subagents, cloud publication, formal installation or remote push.
### Multi-Teacher Introduction Outcome And Verification
- Delivered teachers now each have a separate pastel speech card (published description first, welcome message fallback, generic name-only greeting if neither exists), small avatar, explicit open action and individual close. Cards enter at 180ms offsets then remain, with bounded scrolling and reduced-motion support; “先自己试试” dismisses the current group. Opening one teacher consumes only their introduction. Hover still exposes the full description, and the introduction is not injected into chat history or model context.
- Local presentation receipts are keyed by account/project/teacher and survive refresh. Other projects/accounts and newly delivered teachers remain independent. Existing global welcome-dismissed data remains intact for no-catalog compatibility and does not suppress never-introduced catalog teachers. Preserve legacy proactive invitations and their unread acknowledgment, cloud definitions/version binding, normal selection, free input/drafts, billing and operation behavior; no backend/protocol change.
- Unit coverage verifies all-teacher display despite legacy dismissal, individual/remount/project/account boundaries, exact clicked-teacher routing, unpublished/new catalog entries after refresh, no reset of unread receipts and absence of model requests. Focused companion suite passes 39 tests; earlier combined relevant suites pass 119 tests before the four new regressions. Final full `pnpm test`: 263 suites / 2646 tests pass with 3 prior skips; separate pressure stage passes 1/1.
- Typecheck, full lint (0 errors, 8 existing warnings), production build and whitespace checks pass. All 13 headless preview/layout cases pass, including 375/768/1280px multi-card layouts, many-teacher scrolling, reduced motion, individual/all dismissal, exact selection, and measured native preview clearance. Desktop and narrow screenshots inspected. Updated native Electron scenarios parse/list 19 tests; foreground native E2E was not launched.
- Updated only the running trial Renderer to `index-D9hEfyAc.js`, retaining Main PID 62668, bundle/profile/port and prior lazy-load Main assets. Trial snapshot/backups are under `multi-teacher-welcome-20260929/`. Before refresh, verified no active request/worker and that the one nonempty teacher input exactly matched its account/agent persisted draft; backed it up instead of clearing it. All 13 persisted draft values, route and authenticated identity remain unchanged after refresh.
- Actual live DOM now has 2 delivered teacher tabs and 2 matching introduction cards (architecture teacher and Alice); screenshot inspected and cropped without activating the window. Window remains visible/unfocused. Focus monitor observed Codex only, and temporary inspector was closed. No cloud publication, live model question, formal install/restart or remote push; source change is committed locally.
- Required documentation structure passes; inherited drift check still reports only the same five imported task records relative to the original merge base. No foreign task record or canonical document edited. Retain this checkout because the trial runs its build.
- Promotion candidate: canonical classroom interaction/current-state should replace catalog-wide single welcome with project-scoped per-teacher introductory receipts and independent group presentation. Evidence: user's approved design, source/tests and live two-teacher capture. This supersedes the older shared welcome-dismissal UX for delivered catalogs only; legacy/check-in semantics remain compatible. No additional product decision is needed; canonical promotion requires a separate integration gate.