fix: show and dismiss teacher introductions as one group
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# Task: Show and dismiss teacher introductions as one group
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260929-teacher-group-intro-58c4d9a1
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260929-teacher-group-intro-58c4d9a1-teacher-group-intro
|
||||
- Worktree: /Users/chillishark/Makelore 麦洛/.codex-worktrees/makelore/20260929-teacher-group-intro-58c4d9a1
|
||||
- Base commit: a77ddbd6813bb71d490544edfef6e1f35240070f
|
||||
- Owner: codex
|
||||
- Status: Ready for Integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Treat all delivered teacher introduction bubbles as one account/project group: all visible or all dismissed. Opening any teacher, any close button, or three completed operation turns dismisses the group persistently.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- User explicitly approved grouped behavior, not re-showing on every entry. Preserve avatars, individual chat selection, hover descriptions, real unread messages, history/drafts, cloud prompts and billing. No subagents, paid model calls, automatic main merge/push or cloud publication. Background trial update retains its profile and desktop focus.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Replaced individual teacher receipts/round windows with one durable account/project introduction group. All delivered teachers join the visible group; any close/open or three completed operation turns dismisses all. Refresh, added teachers and reentry never reopen a dismissed group.
|
||||
- Preserved hover descriptions, selection, real unread replies, project/account isolation and Main-owned conversations. Both old local key namespaces migrate conservatively: any old dismissed teacher hides the whole group; otherwise deduplicated completed rounds continue. Legacy keys and history remain intact.
|
||||
- Updated the running trial renderer in place (PID 32583) from its existing combined source plus this scoped patch. Main process/profile and empty-work overlay retained; no cloud changes, paid prompts, main merge or push.
|
||||
|
||||
## Verification
|
||||
|
||||
- Typecheck and production build passed in the owned worktree and composite trial stage. Lint: 0 errors, 8 pre-existing warnings.
|
||||
- Focused unit tests: 86 passed (teacher companion, catalog refresh, coding chat panel), including both legacy namespaces, catalog growth, three successful turns, account/project switching and hover/unread preservation.
|
||||
- Browser layout/community regressions: 22 passed at desktop and narrow widths; all teachers present, whole-group dismissal, transparent bubbles and native preview clearance.
|
||||
- Electron regressions: 4 passed across initial run and focused retry. Updated one stale single-bubble geometry assertion to verify the entire group clears the native viewport with at most 9px spare; operation/teacher drafts and keyboard interactions pass. Test-only generated entry prevented native focus; original build entry restored.
|
||||
- Live trial: index-ftMiOLQw.js loaded without activating its window; same route, 14 operation messages, teacher conversation content and empty inputs, original Alice panel restored. Existing presentation keys unchanged, new group migrated to dismissed. Auth refreshed access/expiry/activity/base metadata, same user retained. Temporary snapshot lease released (0 remaining), inspector closed, background throttling restored. Evidence: /tmp/teacher-group-{unit,browser,electron,electron-retry,typecheck,lint,build}.log and trial teacher-group-intro-58c4d9a1/{verification,auth-verification}.json.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Await user authorization for integration/push; this feature branch remains separate.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None recorded.
|
||||
|
||||
## Project Context Loaded
|
||||
|
||||
- Identity/ownership: feature task 20260929-teacher-group-intro-58c4d9a1 at a77ddbd in the recorded branch/worktree; official start/status passed. App worktree tool is unavailable for the non-Git parent; used official skill isolation.
|
||||
- Read entry/memory/planning gates, active record, AGENTS and current intro source/tests. Reused previously loaded positioning, integrated state, decision/teacher ADR, system/domain/success, evidence/reflection/commitment documents after verifying their Git blobs unchanged from e30d357. Read all peer scopes/constraints/promotions; existing peers unchanged except new code-back-entry with undefined scope. No concrete conflict with the narrowly scoped teacher hooks; keep all peers untouched.
|
||||
- Goal/boundaries: cloud-defined identities and descriptions in a Main-owned project creation client; user now supersedes the earlier independent teacher introduction receipts with all-or-none group visibility. Current main/README include latest merged client behavior; canonical docs remain read-only.
|
||||
- Diagnostic evidence: the screenshot omitted Alice because a per-teacher introduced ID was persisted; current code also gives newly delivered teachers independent round windows. Both must become group state. Old local receipts are presentation data, not conversation history.
|
||||
- Compatibility decision: any old per-teacher dismissal means the whole old group is dismissed; otherwise preserve shared operation-round progress. Keep old keys read-only. Newly delivered teachers join a still-visible group but never reopen a dismissed group. Preserve both historical presence key formats used by the trial and integrated main.
|
||||
- Files: use-teacher-companion, introduction group hook, TeacherCompanion, related unit/browser/Electron fixtures, README. Trial Main can remain running; update a renderer build based on its current source to avoid changing unrelated runtime behavior.
|
||||
- Gate: Passed.
|
||||
|
||||
## Plan
|
||||
|
||||
1. Replace per-teacher receipts/counters with one persistent account/project group and conservative legacy reads.
|
||||
2. Adapt close/open and three-round regressions; cover catalog growth, reload/account/project isolation and unchanged hover/unread behavior. Run project checks.
|
||||
3. Update the existing temporary app in the background, preserving live data and source overlays; verify and commit the feature with its task record.
|
||||
Reference in New Issue
Block a user