merge: retain agent refresh in the updated teacher trial

This commit is contained in:
鲨鱼辣椒
2026-09-28 14:09:50 +08:00
14 changed files with 527 additions and 60 deletions

View File

@@ -0,0 +1,56 @@
# Task: Inspect delivered agent refresh behavior
## Identity
- Task ID: 20260928-agent-refresh-a6d109b3
- Mode: Feature
- Branch: codex/20260928-agent-refresh-a6d109b3-agent-refresh
- Worktree: /Users/chillishark/Makelore 麦洛/.codex-worktrees/makelore/20260928-agent-refresh-a6d109b3
- Base commit: b26e25c9ed26bf30f4d0bc03869c223f0fe34386
- Owner: codex
- Status: Ready for Integration
## Scope
- Diagnose delayed delivered-Agent updates, then implement the user-approved manual refresh button beside the topbar Agent list.
- Share refreshed catalog/configuration with the open consultation panel without replacing its topic, draft or published version.
## Intent And Constraints
- User first requested diagnosis and product-language evaluation with no code changes, then explicitly requested implementation.
- Refresh is read-only and independent of proactive check-in eligibility; no model question, paid call, current-topic upgrade, automatic Agent switch or draft clearing.
- Preserve the latest approved hover introductions and simplified consultation panel by fast-forwarding this owned checkout to committed dependency 862477f. Its source task record remains byte-for-byte unchanged. Do not alter peer checkouts or the running trial.
## Project Context Loaded
- Same task/worktree resumed with matching start/status ownership; feature mode and recorded branch/base verified. Prior positioning, integrated state, decision index, teacher ADR, architecture, domain and evidence context remain loaded. Updated hover-intro peer task record reviewed; all eight peer scopes assessed, no conflicting product decisions. Concurrent and Planning Gates Passed.
- Current rules: Main owns cloud access; published Agent identity/configuration comes from the catalog; old topics pin their version. Initial catalog reads, panel-open reads and existing automatic check-ins remain supported.
- Adapt the design skill's compact, accessible loading/error feedback to the existing light UI; no new fonts, theme, or navigation patterns.
- Plan: add shared read-only loader and manual action, preserve drafts/selection/pinned history, verify unit/typecheck/build/layout/Electron behavior and obtain independent review.
## Outcome
- Added a compact Refresh control outside the scrolling Agent strip, with disabled/spinning loading state, three-second success feedback, visible failure feedback and retry. Keyboard labeling and polite status announcements are included.
- Manual refresh immediately reads configuration and catalog through the existing Main API, bypassing proactive five-minute/call-eligibility gates. Concurrent callers share the same request; failed reads retain the prior catalog; obsolete scope/unmounted responses are ignored.
- Topbar and open panel consume the same catalog. Same-ID updates change the version used by new topics without remounting the panel or changing existing topic definitions/versions. Opening or switching a panel still checks through the shared loader.
- Preserved current Agent selection, operation and consultation drafts, pinned history, unread messages, and pending sends. First delivery while an unassigned editor is open keeps that editor/draft stable until the user explicitly selects an Agent or a topic is bound.
- No Main/backend change, production installation, main merge, remote push, live model call, or running-trial restart.
## Verification
- Passed: 67 tests across teacher-companion and coding-teacher-ui, including seven new cases covering busy/composing refresh, duplicate clicks, shared latest versions, old-topic/history/draft/unread preservation, independent config/catalog errors and retry, first delivery, and obsolete project responses.
- Passed: 38 tests across coding-chat-panel and preview-clearance on final product code; 105 relevant unit tests in total.
- Passed: standard typecheck, changed-file ESLint, git diff whitespace check, production Renderer/Main/Preload/utility compilation using pinned pnpm 10.33.4.
- Passed: all 9 existing/extended Chrome layout scenarios, including 520px and 1000px scrolling strips with an always-reachable refresh control. Desktop and narrow screenshots visually reviewed.
- Passed: final-build Electron manual-refresh and proactive-presence scenarios. Manual refresh verifies held/loading state, new/renamed Agent, unchanged old topic/reply, operation and consultation draft preservation, failed refresh retention and retry. Captured API requests prove refresh performs no message/check-in/prompt POST or topic reload.
- Independent review found first-delivery draft remounting; fixed with an explicit unassigned selection and covered by a focused regression. Existing consultation E2E exposed delayed introduction reopening after clicking an Agent; explicit click suppression now preserves closure until genuine outside reentry or keyboard focus. Re-review found no additional actionable issue for either fix.
- Passed on final build: all 3 focused Electron cases (consultation switching/drafts/hover, manual refresh, proactive presence) plus 4 affected scrolling/hover layout cases, 7/7 in 16.9 seconds. No assertion was weakened. A prior unrelated sidebar drag assertion (193px instead of 256px) matched the source task’s documented native-input flake; the final full consultation scenario passed. The proactive fixture was corrected to create its new topic from the actual distributed default definition/version. Final screenshots are under ignored test-results/agent-refresh-verified/.
- check_project_docs passed. Task-aware drift checker reports the unchanged source task record inherited from 862477f as FOREIGN_DOC because it compares all commits to the original b26e25c base. Direct comparison to dependency 862477f is empty; Git blob and working-file hash both equal ffd72a12407ef3d963f49e42afa29549300f9883. No foreign/canonical document was edited, deleted, or adopted; record this checker limitation without weakening its rules.
## Follow-ups
- Current running trial still uses the hover-intro checkout; this implementation is built and verified in the isolated task checkout. Integrate/update that client separately, preserving any active unsent input.
## Promotion Candidates
- Target: canonical classroom interaction/current-state documentation. Proposal: topbar manual refresh immediately synchronizes catalog/configuration with open consultation, preserves drafts/history and old-topic version pinning, and issues only read requests. Evidence: explicit user request, source change, 105 unit tests, layout and Electron checks, independent review. Future impact: operational Agent publication can be checked immediately without waiting for proactive cadence. Semantic conflicts: none. Human confirmation: already supplied for this feature; canonical promotion remains integration-only.

View File

@@ -8,7 +8,7 @@
- Worktree: /Users/chillishark/Makelore 麦洛/.codex-worktrees/makelore-teacher-reply-cleanup
- Base commit: ae0f72d8fa0089f87b41d272da220e1c1397aec8
- Owner: codex
- Status: Ready for Integration
- Status: In progress
## Scope
@@ -60,3 +60,12 @@
- Evidence: explicit user direction in this task, deleted UI/API/state/schema paths, parser/history/model-payload regressions, headless interactive verification.
- Impact/conflict: supersedes prior active component lifecycle and multiple-topic suggestion assumptions; no automatic migration or history deletion, no change to source/version/billing/operational Agent boundaries. Prior feature-task records remain historical evidence.
- Human confirmation: already supplied by this task’s explicit product requirements; canonical promotion must still happen in a serialized integration task.
## Authorized Background Restart Follow-up
- User explicitly requests restarting the application using the latest project state, superseding the earlier no-restart boundary. Keep no cloud publication and no desktop-focus takeover.
- Context gate passed on the same task/worktree/branch. Reread own task, entry/memory, positioning, current-state, teacher ADR/architecture, evidence/reflection/commitment references and all peer task scopes. The accepted product simplification supersedes stale active-component documentation; no canonical edits here.
- Current trial PID 27713 still uses the hover checkout’s Main but its Renderer was independently updated to committed manual-refresh source 4f6bda4. Preserve this existing trial feature by merging that commit into this task; resolve the one consultation-state conflict with shared catalog state and no retired focus state. Do not import the unrelated in-progress Alice policy branch or change main.
- Plan: validate the combined teacher/refresh paths, build the combined source, create an ignored background-launch wrapper, gracefully stop only the exact temporary-app PID and relaunch the same bundle/profile/port; verify loaded build and startup without focus. Installed production application is outside scope.
- Same user-data retains persisted project/history and consultation drafts. Unpackaged authentication and operation drafts are memory-owned; do not claim a restart guarantees persistence of data the product does not save.