Merge grouped teacher introductions into latest main
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.
|
||||
@@ -20,19 +20,22 @@
|
||||
|
||||
## Outcome
|
||||
|
||||
- Not completed.
|
||||
- Combined source 7458c37 with latest fetched remote 1c07f7b. All group visibility/dismissal, legacy compatibility and three-turn behavior retained; remote reasoning/body streaming untouched.
|
||||
- Resolved the single Electron-spec conflict by retaining the stricter remote 8–9px native preview gap assertion. Retained new group lifecycle tests and remote streaming test. No product-code conflict.
|
||||
|
||||
## Verification
|
||||
|
||||
- Not run.
|
||||
- Typecheck, production build and full lint passed (0 errors / 8 existing warnings). 501 related unit tests across 19 files, 22 browser layout/community cases and 5 Electron introduction/streaming/draft cases passed; logs /tmp/teacher-intro-merge-{typecheck,unit,lint,build,browser,electron}.log.
|
||||
- Electron used a temporary generated-entry focus guard; original compiled entry restored. No live trial reload, model call, cloud action or focus change.
|
||||
- Every source product/test file except combined README/Electron spec matches 7458c37 byte-for-byte, including the source task record. Canonical docs match remote 1c07f7b unchanged. Own-doc drift passed before merging; after merging, the checker flags the imported source task record as FOREIGN_DOC because it compares paths against the remote base. Verified that record is the exact immutable source blob, not a cross-task edit; preserved it rather than deleting history to silence the diagnostic.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- None recorded.
|
||||
- Fast-forward validated candidate into the clean local main checkout; remote push is outside this request.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None recorded.
|
||||
- Canonical teacher ADR/domain/current-state should replace per-teacher introduction receipts with a unified account/project group, all-or-none dismissal and conservative legacy reads. User explicitly approved the change; README and source are authoritative for this merge. Canonical integration remains owned by the separate registered integration task.
|
||||
|
||||
|
||||
## Project Context Loaded
|
||||
|
||||
Reference in New Issue
Block a user