Skip to content

Add local Hindi tracing preview and enforced boundaries - #6

Merged
joshpitzalis merged 22 commits into
mainfrom
implement/strokes
Oct 24, 2026
Merged

joshpitzalis merged 22 commits into
mainfrom
implement/strokes

Conversation

@joshpitzalis

@joshpitzalis joshpitzalis commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Summary

Add a local Hindi tracing preview to the Void/React scaffold. A learner can draw separate gestures, reveal ordered reference strokes, clear, and retry. The original development letter is visibly marked review pending.

checked-in lesson → Effect content boundary → React/SVG practice
                                             ├─ local pointer ink
                                             ├─ reveal / clear / retry
                                             └─ interruption recovery
commit + CI → strict types / Effect diagnostics / boundaries / tests / build

Closes #2. Tracks #1 and #3; #3 remains open for human lesson review and device evidence. #4 and #5 remain blocked. Specification: SPEC.md.

Evidence

  • Before: the generated welcome page had no Strokes practice surface; drawing checks failed without live ink.
    After: browser checks exercise visible live ink, separate gestures, Clear/Retry, Reveal, secondary pointers, cancellation, capture loss, blur, release outside, and resize recovery/alignment.
  • Invalid lesson content is rejected before practice; a rendering check verifies the separate lesson-unavailable message without handwriting feedback or drawing controls.
  • Phone and desktop layout checks include a square pad; phone-size drawing and keyboard reset/focus are covered in Chromium.
  • pnpm check, pnpm test, and pnpm build pass locally with real pre-commit hooks. The fence probes intentionally invalid types, floating Effects, forbidden imports, and browser globals in domain code. CI repeats frozen installation and check/test/build.
  • The delegated visual direction is recorded in PRODUCT.md, DESIGN.md, its sidecar, and the surface contract. Phone and desktop screenshots received a separate Impeccable review. The one detector pass reported only provisional-token documentation advisories; the design documentation now records the actual values.

Remaining gates

  • The original ल development template still needs a competent Hindi writer or teacher to review its shape, pen lifts, directions, headline, and teaching order. No pedagogical validity is claimed.
  • This preview does not check strokes or complete a checked exercise. The specification requires Trace, reveal, and retry one reviewed Hindi letter #3's review gate before Check each stroke and complete the letter #4 starts.
  • Finger/stylus calibration, actual iPhone Safari and Android Chrome checks, and deployment remain unverified. Browser emulation does not establish real-device success.
  • The separate lesson-catalog/progress specification is outside this PR. Attempts stay in memory; there are no uploads, accounts, stored progress, or cloud data resources.

Merge Danger

Door: two-way

No stored learner data or migrations. Reverting removes the local preview and scaffold.

Blast Radius: practice

Introduces the toolchain, local drawing page, hooks, and CI. This draft remains an incomplete implementation of the full checked-exercise specification.

@joshpitzalis joshpitzalis changed the title Scaffold Strokes and enforce practice boundaries Add local Hindi tracing preview and enforced boundaries Oct 22, 2026
joshpitzalis and others added 4 commits October 24, 2026 16:42
Move the drawing session and practice UI out of the old practice module so the page composes the header, canvas, feedback, and controls.

Co-authored-by: Cursor <cursoragent@cursor.com>
Record that a finished letter is checked against an authored example, and that a different letter form needs its own trace.

Co-authored-by: Cursor <cursoragent@cursor.com>
The practice slice now uses a singular use-case folder, with domain utils and tracing constants, and the assessment note records the confirmed letter check.

Co-authored-by: Cursor <cursoragent@cursor.com>
@joshpitzalis
joshpitzalis marked this pull request as ready for review October 24, 2026 13:28
@joshpitzalis
joshpitzalis added this pull request to stack #9 October 24, 2026 14:38
Test touch layouts with mobile browser emulation. Run browser tests against the production preview to avoid dev-module startup timeouts.
Let the browser context dispose of the touch session after the test instead of detaching between drawing and the Retry tap.
Linux delivered raw pointer and touch events to Retry without generating its click. Use Chromium's full touch gesture for button activation and remove temporary event diagnostics.
Use the documented Chromium channel instead of the separate headless shell, keeping the standard Retry tap and original reset assertion.
@joshpitzalis
joshpitzalis merged commit 4f90364 into main Oct 24, 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.

Run the local practice shell with enforced boundaries

1 participant