Verify merged navigation and align legacy return assertions
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
- Worktree: /Users/chillishark/Makelore 麦洛/.codex-worktrees/makelore/20260930-code-nav-merge-2f867bc4
|
- Worktree: /Users/chillishark/Makelore 麦洛/.codex-worktrees/makelore/20260930-code-nav-merge-2f867bc4
|
||||||
- Base commit: 7bce156edab454636c122013d52923f20b08c317
|
- Base commit: 7bce156edab454636c122013d52923f20b08c317
|
||||||
- Owner: codex
|
- Owner: codex
|
||||||
- Status: Planning
|
- Status: Ready for Integration
|
||||||
|
|
||||||
## Scope
|
## Scope
|
||||||
|
|
||||||
@@ -20,15 +20,15 @@
|
|||||||
|
|
||||||
## Outcome
|
## Outcome
|
||||||
|
|
||||||
- Not completed.
|
- Source d1bf54b merged without conflicts as ae2ee5d onto main 7bce156. Recent teacher introduction, shortcut and composer-height changes remain intact. Independent review found only separate README/CSS sections overlap; product behavior matches the verified source. Final main fast-forward and approved cleanup follow below.
|
||||||
|
|
||||||
## Verification
|
## Verification
|
||||||
|
|
||||||
- Not run.
|
- Standard typecheck, 44 focused unit tests across four files, scoped ESLint, production Vite build and diff check passed. All four Electron navigation scenarios passed across initial run/recheck. One old scenario still expected the removed Code label/duplicate title logo and 8px text-button padding; updated only those assertions to the accepted icon-only 32px topbar and existing brand, then rechecked successfully. No product change was required. Logs: /tmp/code-nav-merge-{unit,peek,types,lint,build,e2e,e2e-recheck}.log.
|
||||||
|
|
||||||
## Follow-ups
|
## Follow-ups
|
||||||
|
|
||||||
- None recorded.
|
- Complete the user-authorized main fast-forward and bounded cleanup; keep both branches/commits and the live temporary app.
|
||||||
|
|
||||||
## Promotion Candidates
|
## Promotion Candidates
|
||||||
|
|
||||||
@@ -46,3 +46,10 @@
|
|||||||
1. Merge source in this isolated checkout and preserve main's recent teacher/composer changes.
|
1. Merge source in this isolated checkout and preserve main's recent teacher/composer changes.
|
||||||
2. Run relevant unit tests, typecheck, lint, production compile and navigation E2E on the combined tree.
|
2. Run relevant unit tests, typecheck, lint, production compile and navigation E2E on the combined tree.
|
||||||
3. Commit the merge outcome, fast-forward local main after a clean/unchanged check, then retire eligible task worktrees or use narrowly scoped legacy cleanup when app archive/official retire cannot represent the source checkout. Keep branch/commit recovery and trial runtime paths intact.
|
3. Commit the merge outcome, fast-forward local main after a clean/unchanged check, then retire eligible task worktrees or use narrowly scoped legacy cleanup when app archive/official retire cannot represent the source checkout. Keep branch/commit recovery and trial runtime paths intact.
|
||||||
|
|
||||||
|
## Documentation And Cleanup Review
|
||||||
|
|
||||||
|
- Task-aware drift initially reported the unchanged source task record imported by the merge. Confirmed exact byte identity with d1bf54b, then used official same-task adoption for this user-authorized known source: soft-reset only the private merge HEAD while preserving index/worktree, register the staged source record, restore the identical merge commit. No source document, product tree, merge parents, shared history or user file changed. Final drift check passes.
|
||||||
|
- App artifact list is empty; archive_worktree cannot address these unattached legacy/skill checkouts. Source task registry is ready_for_integration but its old top-level document Status remained Planning despite committed final verification. Its managed flag is false because it reused a previous checkout; official retire is therefore unavailable. Preserve the source record unchanged and use the user's explicit cleanup authorization for this known clean completed legacy checkout: official non-force release and exact-path Git worktree removal after main ancestry verification. Do not edit registry flags or imply a successful retire.
|
||||||
|
- Source cleanup path: /Users/chillishark/Makelore 麦洛/.codex-worktrees/makelore/20260929-empty-work-merge-39c633d0; branch codex/20260929-code-back-entry-33d87a81-code-back-entry; HEAD d1bf54b. Merge checkout will use official retire after its ready record is committed and main contains it.
|
||||||
|
- Independent dependency audit: trial Main 32583 and children run from the temporary source; no live file or working-directory dependency points to either target. Trial bundle/candidate and primary dependency symlinks do not point to targets. Ignored contents are generated dist, dist-electron, reports/test-results and a node_modules symlink to primary. No secrets/user projects/trial profile are removed; unrelated worktrees remain untouched.
|
||||||
|
|||||||
@@ -355,8 +355,9 @@ test.describe('Makelore module navigation without setup flow', () => {
|
|||||||
await expect(page.getByTestId('coding-project-starter')).toHaveCount(0);
|
await expect(page.getByTestId('coding-project-starter')).toHaveCount(0);
|
||||||
await expect(page.getByTestId('coding-existing-projects')).toHaveCount(0);
|
await expect(page.getByTestId('coding-existing-projects')).toHaveCount(0);
|
||||||
await expect(page.getByText('一念成光,万物可创。')).toHaveCount(0);
|
await expect(page.getByText('一念成光,万物可创。')).toHaveCount(0);
|
||||||
await expect(page.getByRole('img', { name: 'Makelore logo' })).toBeVisible();
|
await expect(page.getByRole('img', { name: 'Makelore logo' })).toHaveCount(0);
|
||||||
await expect(page.getByTestId('sidebar-module-switcher-trigger')).toContainText('编程 Code');
|
await expect(page.getByTestId('sidebar').locator('.classroom-brand')).toBeVisible();
|
||||||
|
await expect(page.getByTestId('sidebar-module-switcher-trigger')).toHaveText('');
|
||||||
await expect(page.getByTestId('sidebar-module-return-icon')).toBeVisible();
|
await expect(page.getByTestId('sidebar-module-return-icon')).toBeVisible();
|
||||||
await expect(page.getByTestId('sidebar-create-project')).toBeVisible();
|
await expect(page.getByTestId('sidebar-create-project')).toBeVisible();
|
||||||
await expect(page.getByTestId('sidebar-nav-publish')).toHaveCount(0);
|
await expect(page.getByTestId('sidebar-nav-publish')).toHaveCount(0);
|
||||||
@@ -377,10 +378,9 @@ test.describe('Makelore module navigation without setup flow', () => {
|
|||||||
await expect(page.getByTestId('sidebar-module-switcher')).toBeVisible();
|
await expect(page.getByTestId('sidebar-module-switcher')).toBeVisible();
|
||||||
const moduleHomeTrigger = page.getByTestId('sidebar-module-switcher-trigger');
|
const moduleHomeTrigger = page.getByTestId('sidebar-module-switcher-trigger');
|
||||||
await expect(moduleHomeTrigger).toHaveAttribute('aria-label', '返回首页');
|
await expect(moduleHomeTrigger).toHaveAttribute('aria-label', '返回首页');
|
||||||
await expect(moduleHomeTrigger).toHaveCSS('padding-top', '8px');
|
await expect(page.getByTestId('classroom-titlebar-navigation')).toBeVisible();
|
||||||
await expect(moduleHomeTrigger).toHaveCSS('padding-right', '8px');
|
await expect(moduleHomeTrigger).toHaveCSS('width', '32px');
|
||||||
await expect(moduleHomeTrigger).toHaveCSS('padding-bottom', '8px');
|
await expect(moduleHomeTrigger).toHaveCSS('height', '32px');
|
||||||
await expect(moduleHomeTrigger).toHaveCSS('padding-left', '8px');
|
|
||||||
await expect(page.getByTestId('sidebar-module-switcher-menu')).toHaveCount(0);
|
await expect(page.getByTestId('sidebar-module-switcher-menu')).toHaveCount(0);
|
||||||
await moduleHomeTrigger.click();
|
await moduleHomeTrigger.click();
|
||||||
await expect(page).toHaveURL(/\/module-select$/);
|
await expect(page).toHaveURL(/\/module-select$/);
|
||||||
|
|||||||
Reference in New Issue
Block a user