Skip to content

[codex] Implement E-08 syntax editor#20

Merged
PilHliP211 merged 1 commit into
mainfrom
codex/implement-epic-08
Apr 18, 2026
Merged

[codex] Implement E-08 syntax editor#20
PilHliP211 merged 1 commit into
mainfrom
codex/implement-epic-08

Conversation

@PilHliP211
Copy link
Copy Markdown
Owner

What changed

Implemented E-08 Syntax Editor (Phase 3):

  • Added a lazy-loaded Monaco syntax editor with controlled value handling, read-only mode, Run button wiring, and restricted completion items from content-pack availableFunctions.
  • Added the Phase 3 EditorToggle with Code and read-only Blocks tabs, ARIA tab behavior, keyboard navigation, and fallback after repeated failed attempts.
  • Added temporary /__dev/syntax-editor harness backed by JSON content so the epic has a human-testable npm run dev increment before the real lesson runner exists.
  • Added syntax unlock persistence through progressStore using the existing storage helper instead of direct component-level storage calls.
  • Marked the E-08 story Done When checkboxes complete.

Impact

Phase 3 now has a developer-visible syntax editor surface and automated coverage for the core editor/toggle/unlock behaviors. The harness is documented as temporary and should be folded into the real LessonScreen path when E-11/E-14 wire the product flow.

Validation

  • npm run lint
  • npx tsc --noEmit
  • npm run test — 160 tests passed
  • npm run format:check
  • npm run build
  • npm audit --omit=dev — 0 vulnerabilities
  • Browser smoke: Chrome/Playwright loaded /codequest-platform/__dev/syntax-editor and found .monaco-editor

Notes

npm run build passes with Vite's expected large chunk warning for Monaco. The editor is lazy-loaded into a separate SyntaxEditor chunk instead of the main bundle.

@PilHliP211 PilHliP211 marked this pull request as ready for review April 18, 2026 03:25
@PilHliP211 PilHliP211 merged commit d8ddb20 into main Apr 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant