feat: add Workbench learning path navigation #203

Merged
CoderLambert merged 12 commits from product/177-learning-path-navigation into main 2026-09-14 18:11:56 +08:00
CoderLambert commented 2026-09-14 16:41:50 +08:00 (Migrated from github.com)

Issue

Implements #177. Writer lane does not merge/close; Product Integration Gate owns merge/closure.

Execution base

Initial writer base: main@ba8c7d5d557bfb81f89722b7fe71241a8ff66f1f.
After #180 advanced main, this branch was refreshed by a normal merge from main@10a77aedaa8cebdd258c18a400e0a776f6e63443 (no rebase/squash/force push/history rewrite).
Current head: 1c9f44c90179e004bca8833ae47738003d9208e5.

Implemented

  • derive chapter boundaries/positions from existing demo registry order + existing checkpoint terminal mapping; no second lesson-order truth
  • expose current Chapter NN · position/size in Workbench navigation
  • add direct previous / next / chapter checkpoint actions through the existing onSelectUnit path
  • make ChapterCheckpoint 下一步 navigate to the next chapter's first learning unit through existing handleSelectDemo -> selectDemo URL semantics
  • preserve Chapter 09/10/12 Real Integration Lab rendering and boundaries
  • preserve Inspector open/tab/width persistence across learning-path navigation
  • add keyboard/focus coverage for path controls

Scope

  • src/workbench/**
  • minimal Scope Drift B composition wiring in src/App.jsx + src/components/ChapterCheckpoint.jsx, explicitly recorded on #177
  • focused unit test + Workbench E2E
  • minimal existing browser-suite ownership registration for the new Workbench E2E, explicitly recorded as Scope Drift B on #177

No registry rewrite, new ordering truth, URL/persistence contract change, global CSS, AI/Assessment/learning-actions/source-locator change, package change, workflow change, required-check identity change, timeout/retry expansion, or weakened assertion.

Validation — exact current head

  • React Learning Verify / verify: SUCCESS — run 34829697682
  • Workbench Integration Verify / verify: SUCCESS — run 34829697794
  • Workbench State URL Verify: SUCCESS — run 34829697626
  • PR has no unresolved review threads
  • current diff vs main@10a77aedaa8cebdd258c18a400e0a776f6e63443 is ahead-only (behind_by=0)

Acceptance criteria were also checked independently from CI.

## Issue Implements #177. Writer lane does not merge/close; Product Integration Gate owns merge/closure. ## Execution base Initial writer base: `main@ba8c7d5d557bfb81f89722b7fe71241a8ff66f1f`. After #180 advanced main, this branch was refreshed by a normal merge from `main@10a77aedaa8cebdd258c18a400e0a776f6e63443` (no rebase/squash/force push/history rewrite). Current head: `1c9f44c90179e004bca8833ae47738003d9208e5`. ## Implemented - derive chapter boundaries/positions from existing demo registry order + existing checkpoint terminal mapping; no second lesson-order truth - expose current `Chapter NN · position/size` in Workbench navigation - add direct previous / next / chapter checkpoint actions through the existing `onSelectUnit` path - make ChapterCheckpoint `下一步` navigate to the next chapter's first learning unit through existing `handleSelectDemo -> selectDemo` URL semantics - preserve Chapter 09/10/12 Real Integration Lab rendering and boundaries - preserve Inspector open/tab/width persistence across learning-path navigation - add keyboard/focus coverage for path controls ## Scope - `src/workbench/**` - minimal Scope Drift B composition wiring in `src/App.jsx` + `src/components/ChapterCheckpoint.jsx`, explicitly recorded on #177 - focused unit test + Workbench E2E - minimal existing browser-suite ownership registration for the new Workbench E2E, explicitly recorded as Scope Drift B on #177 No registry rewrite, new ordering truth, URL/persistence contract change, global CSS, AI/Assessment/learning-actions/source-locator change, package change, workflow change, required-check identity change, timeout/retry expansion, or weakened assertion. ## Validation — exact current head - `React Learning Verify / verify`: SUCCESS — run `34829697682` - `Workbench Integration Verify / verify`: SUCCESS — run `34829697794` - `Workbench State URL Verify`: SUCCESS — run `34829697626` - PR has no unresolved review threads - current diff vs `main@10a77aedaa8cebdd258c18a400e0a776f6e63443` is ahead-only (`behind_by=0`) Acceptance criteria were also checked independently from CI.
Sign in to join this conversation.