Merge teacher composer height alignment
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# Task: Align teacher composer height and add file attachments
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260929-teacher-composer-files-4d46a1a9
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260929-teacher-composer-files-4d46a1a9-teacher-composer-files
|
||||
- Worktree: /Users/chillishark/Makelore 麦洛/.codex-worktrees/makelore/20260929-merge-composer-actions-23414dc2
|
||||
- Base commit: 72218e0c79018a79e81cfb28eabb91cfae8f7d8b
|
||||
- Owner: codex
|
||||
- Status: Ready for Integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Align the teacher input box height with the operation Agent composer, including multiline sizing. The user explicitly cancelled the initially requested plus/file-attachment feature; do not add it.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Preserve microphone/send/stop, hidden model details, shortcuts, draft/history, streaming and keyboard/IME behavior. Keep the teacher's visual colors. No API/backend/attachment changes. The latest user follow-up authorizes updating the running temporary trial with this completed change; main merge and remote push remain outside scope.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Teacher composer now uses the same 42px minimum textarea, one-to-six row growth, 32px control row and classroom bottom spacing as the operation composer. Matching bottom border width keeps the complete input boxes equal in height. Teacher color and 13px input font remain; desktop/mobile line heights match the operation textarea.
|
||||
- Retained microphone/send and 32px stop controls, keyboard/IME behavior, hidden model details and existing data flow. Added no plus button, file picker, attachment handling or backend contract, as explicitly cancelled by the user. README describes the resulting layout.
|
||||
|
||||
## Verification
|
||||
|
||||
- 91 relevant unit tests across coding-teacher-ui, teacher-composer-voice and teacher-conversation-panel passed. Standard typecheck, scoped ESLint, production build:vite and git diff --check passed; logs /tmp/teacher-composer-height-{typecheck,unit,lint,build,electron}.log.
|
||||
- Two existing real-component Chrome browser scenarios now compare TeacherChatPanel against CodingComposer at 319px and 508px, with empty/one/three/six/eight-line input. Textarea and surface heights plus bottom edges match within 1px, growth stops at six rows with internal scrolling, and there is no horizontal overflow. Microphone/send-only UI and stored-model send behavior remain verified. Latest narrow/wide empty/eight-line screenshots visually reviewed by the test agent.
|
||||
- Existing Electron draft/retry scenario passed with actual side-by-side surfaces equal in height and bottom position, no model/file controls, and both drafts retained after retry. Used an isolated mocked Host API and a temporary generated-entry show/focus guard, restored in finally; no running user application or real model calls were involved.
|
||||
- Initial Electron size assertion ran while opening the teacher had selected the existing Work tab and hidden the operation composer; corrected the scenario to select Operation Chat before measuring. Independent review caught inherited desktop font sizing; preserving the original 13px font exposed a 12px three-line difference in browser tests, fixed by matching the desktop 20px line height, then reran successfully. A fixture-only Fast Refresh lint warning was fixed by exporting its test component.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Source change `66cad87` is committed on this feature branch and now applied to the running temporary trial. Main-branch integration remains pending; no merge or remote push was requested in this follow-up.
|
||||
|
||||
## Project Context Loaded
|
||||
|
||||
- Task ID 20260929-teacher-composer-files-4d46a1a9; feature mode, branch/worktree/base as recorded. Reused the clean completed merge checkout after official release; old branch/commits remain. Official start/status confirmed ownership and task reservation.
|
||||
- Read current AGENTS, entry/memory-index/planning-gate and own task record. Positioning, current-state, teacher ADR/decisions, architecture, domain/success criteria and evidence/reflection/commitments were loaded during the immediately preceding integration and verified byte-identical in this base. README and explicit current user instructions govern the approved hidden-picker UI.
|
||||
- Goal: support student project creation with cloud-defined teachers; Main retains execution, billing, frozen requests and project conversations. This is a small presentation correction.
|
||||
- Read-only peer review covered 27 other registered tasks; none missing, no concrete semantic conflict. Child-language has unspecified old scope but no dependency. Current Code navigation work is separate. Preserve existing introduction grouping and streaming.
|
||||
- Diagnosis: teacher textarea has a 60px minimum and fixed two rows, followed by a 68px footer and 8px gap. Operation composer uses a 42px textarea, dynamic one-to-six rows and a 32px footer. Align sizing and classroom bottom spacing, retaining teacher colors and controls.
|
||||
- File support assessment found the operation plus accepts images while teacher references are text-only. User cancelled that addition after clarification; no attachment code was written.
|
||||
- Files: TeacherChatPanel, classroom workspace styles, existing composer browser fixture/spec, README and this record. No cloud or Main contracts change.
|
||||
- Gate: Passed.
|
||||
|
||||
## Plan
|
||||
|
||||
1. Match teacher textarea/footer and classroom bottom spacing to the operation composer.
|
||||
2. Extend existing browser checks to compare both real composer components at narrow/wide widths and with multiline input; run relevant UI/voice regressions, typecheck, lint and build.
|
||||
3. Inspect the resulting screenshots, record evidence and commit the isolated change.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None recorded.
|
||||
|
||||
## Live Update Resume — 2026-09-30
|
||||
|
||||
- User requests updating the running application. Resumed the same task with official start/status; task/feature mode/worktree/branch ownership matches. The established planning context remains applicable; Gate Passed.
|
||||
- Exact target: PID 32583, temporary profile `makelore-trial-tdq_nuah/user-data`; installed `/Applications/Makelore.app` is excluded. Main and its legacy teacher API remain unchanged. Source commit to apply: `66cad87`.
|
||||
- Read-only inspection found concurrent sidebar and teacher prompt color updates. Final combined candidate `sidebar-icon-top-33d87a81/source-with-text-colors` preserves both. Its renderer entry is `index-CKAsiRqM.js`; stage only the two product-file deltas from this task on that combined source. Wait for the other publication to finish and recheck actual served/loaded assets before switching.
|
||||
- Plan: independently compile the compatible staged renderer; publish with baseline checks and private state preservation, refresh only when generation and inputs are idle, then verify height/control state and preserved conversation/drafts/navigation. Keep rollback index/assets and merge metadata fields without overwriting peer fields.
|
||||
|
||||
### Live Update Outcome
|
||||
|
||||
- Updated the existing temporary application in place. PID 32583/Main launcher/profile stayed unchanged; renderer loaded `index-CEjIKC5e.js` from the existing served directory. Staged compatibility source: `/var/folders/mx/ltbgwsks5_n8zllj69p_wbcw0000gn/T/makelore-trial-tdq_nuah/teacher-composer-height-4d46a1a9/source`. Only TeacherChatPanel and classroom-workspace.css differ from the latest combined sidebar/color source; independent SHA review confirmed all other product files identical.
|
||||
- Pinned pnpm 10.33.4 typecheck, scoped ESLint and production build passed. Product behavior tests are the 91 unit tests and browser/Electron checks documented above; this deployment additionally measured the actual running application.
|
||||
- Before switching, checked the exact served index hash, process/profile, inactive window, empty visible textareas, in-memory drafts, attachments and generation. A short DOM input freeze closed the check/refresh input race. Kept a Main-memory private snapshot and original index/manifest backups, restored the selected conversation, exact selected teacher, teacher panel, original Work tab, drafts and scroll positions. Did not replace localStorage. Finally removed input freeze, released the lifecycle lease and restored background throttling; no window focus change.
|
||||
- Live verification: teacher and operation composer surfaces both 102px high, with bottom coordinates both 901px. Teacher textarea rows=1; only microphone and send controls. Route/account/selected conversation/teacher text/all persisted teacher drafts/in-memory coding drafts/visible input/tab/panel visibility/window focus were preserved. All 13 non-runtime-prompt history files in the established history set retained their hashes. Virtualized message DOM count changed after refresh, while its visible message suffix matched and durable history remained unchanged.
|
||||
- Preserved top-row sidebar icons and alignment, grouped introductions, and transparent colored semibold teacher shortcuts. launch.json and guidance-preview.json now identify the actual loaded/next asset and source, new route stylesheet and task-specific composer-height metadata while retaining peer fields. Verification and build-source records are stored in the temporary stage. Main process, installed application, main branch and remote were not changed.
|
||||
- An optional post-verification background screenshot capture timed out after normal background throttling was restored. It is not used as evidence; live DOM dimensions, control checks, source screenshots from the earlier implementation, and durable-state verification establish the result.
|
||||
- Updater includes conditional index/metadata rollback and state restoration on failure; no rollback was needed. Retained temporary backups for review. No further product changes or promotion candidates.
|
||||
Reference in New Issue
Block a user