Kanjido · Printing notes

What has shipped.

Changelog

Release history for Kanjido — what shipped, in plain language. Documentation, dependency bumps, build tooling, internal refactors, and style passes are filtered out; the full developer log lives in git history.

0.70.0 (2026-09-17)

Features

  • review: pure review-queue state machine (seed-once, sync completion/requeue)
  • review: reviewAccuracy — attempt-degraded percent from the AttemptLog
  • review: session-events builders (completion + exit) from the AttemptLog; retire exit-events

Bug Fixes

  • review: guard session-events test index reads for noUncheckedIndexedAccess
  • review: ReviewQueueAction as interface (consistent-type-definitions)

0.69.1 (2026-09-17)

Bug Fixes

  • review: seed the review queue once per mount

0.69.0 (2026-09-16)

⚠ BREAKING CHANGES

  • db: SessionKanjiResult no longer accepts isCorrect, overridden, responseTime, or mcqCorrect, and sessionResult no longer has totalPoints/maxPossiblePoints columns. The DDL drop itself rides in Task 13's single hygiene migration, not this commit.

Features

  • db: expand session_result (kind/frame_number/outcome) + draw_capture table + grader version
  • db: session-recording backfill — frame-echo tagging, D2 wipe, outcome backfill, activity heal
  • grader: captureDrawSample mutation + rejection wiring on all three draw surfaces
  • grader: draw duration + input type + rejection capture payload + grader_error telemetry
  • learn: frame echoes carry kind/frame_number/outcome + draw duration
  • review: recorder integration + responseTimeMs + scheduledDueAt threading
  • srs: session-recorder module — outcome model, first-resolution echoes
  • surfaces: completed pages + grid read the outcome model

Bug Fixes

  • db: guard outcome backfill against gap-window new-format rows
  • db: positive dimension discriminator for echo tagging + rating-accurate override comment
  • db: TZ-independent timestamp conversions + typed challenge results read
  • final-review seam fixes — tail-batch tagging guard, timestamptz completion, helper unification (spec v1.0.6)
  • grader: reset input-type capture per frame on the persistent Learn canvas
  • learn: first-attempt batch recording via session-recorder + stale storage clear
  • progress: tick study activity at three server write choke points
  • quiz: SET-not-ADD stage scoring + recorder payloads (accuracy can no longer exceed 100)
  • review: make the due contract type-visible through ReviewFrame
  • srs: late self-override upgrades the stored echo (spec §2 regardless-of-when)

Code Refactoring

  • db: drop legacy session fields (isCorrect/overridden/mcqCorrect) + dead points columns

0.68.0 (2026-09-16)

Features

  • content: publish Chapter 9 Kanjido stories (Patterns & Structures)

0.67.0 (2026-09-11)

Features

  • account: entries-posted, retention, and median-strength rows (spec v1.3)
  • account: footnote apparatus + drop the tautological learn accuracy row (spec v1.4)

Bug Fixes

  • account: true up the Ledger's closed-lessons and challenge accuracy (spec v1.2)

0.66.0 (2026-09-11)

Features

  • landing: lenis smooth scroll at light damping
  • landing: path cursor follows the scroll on hover-less devices

0.65.1 (2026-09-10)

Bug Fixes

  • db: F-2 book-pass stage cuts — 寡 弗 朮 甫 (衷 held for render approval)
  • db: 衷 2038 book cut — F-2 render approval received

0.65.0 (2026-09-10)

⚠ BREAKING CHANGES

  • db: drop legacy progressive_strokes column and type

Features

  • db: drop legacy progressive_strokes column and type

0.64.0 (2026-09-10)

Features

  • db: reveal_stages + grade_slice columns with shape checks

Bug Fixes

  • db: final-review wave — slice prefix-range restore + canon leftovers
  • db: introduce drawable kanji stranded in completed Learn lessons
  • db: reclassify 3 missed glyph_from_strokes primitives + split progressive_strokes
  • db: repair audited stage boundaries — tree class + 撃/案 + stroke counts
  • learn: batch-test continue walks the full frame list, not end + 1

0.63.1 (2026-09-07)

Bug Fixes

  • signin: nudge toward the spam folder after sending a magic link

0.63.0 (2026-09-04)

Features

  • db: curate the 8 manual holdout primitives — coverage complete
  • review: flush-on-exit event builder + handleExit
  • review: quiet step-away exit on the global session
  • wayfinding: account triplet marginalia become trails
  • wayfinding: journey trails on lesson detail + contents
  • wayfinding: promote atlas plate + concordance marginalia to trails
  • wayfinding: Trail running-head primitive

Bug Fixes

  • journey: resync loading skeletons with the Trail-bearing loaded layouts
  • review: claim terminal write path in handleExit to stop double-log
  • wayfinding: account running heads go link-less (spec v1.2)
  • wayfinding: apply maintainer verdicts — merge, root Contents, credit partial sittings

0.62.2 (2026-09-04)

Bug Fixes

  • db: promote bypass-era lessons stuck at not_started
  • journey: locked Review doorway defers its due count (spec v1.9)

0.62.1 (2026-09-03)

Bug Fixes

  • db: heal missing and late started_at from session evidence
  • journey: anchor review CTAs on queue-eligible drawable kanji

0.62.0 (2026-09-03)

Features

  • learn: mid-lesson pause, resume routing, and haul signal
  • progress: promote kanji to introduced at the Learn batch seam

Bug Fixes

  • atlas: render slice glyphs in list cells and concordance anchor

0.61.1 (2026-08-27)

Bug Fixes

  • db: glyph_from_strokes batch 1 — 32 flags, 从 swap, 9 spec repairs
  • practice: grade and display own-SVG primitive slices, keyed by frame

0.61.0 (2026-08-24)

Features

  • journey: count-labeled lesson-free review CTA
  • journey: de-lessoned restoration register with queue-head anchor
  • journey: frames-led walked wing with absorption archive + unconditional review fact
  • journey: frontier-decoupled position prose with honest cursor bridge
  • journey: walked-archive composer with walked-triggered absorption

Bug Fixes

  • journey: partition ahead-wing around walked frontier + final-review cleanups
  • lesson-detail: legend renders the full ink ladder; only specials are roster-scoped

0.60.1 (2026-08-24)

Bug Fixes

  • deps: next 16.3.2 + react 19.2.8 — stop PPR blanking lesson reloads
  • journey: legend shows only categories the roster exercises
  • landing: ascii-safe kanjivg cache tags

0.60.0 (2026-08-24)

Features

  • db: admit own-SVG primitives + host-substitution batch 1
  • db: glyph_from_strokes flag + faithfulness question in host curation
  • render curated stroke slices as display glyphs for approximated primitives

Bug Fixes

  • journey: primitives display unnumbered — PRIMITIVE slot, no decimals
  • journey: study-only scope for unscheduled frames in the lesson roster
  • practice: cap draw-canvas zoom for small primitive slices
  • practice: ledger-voice interim line between session end and completion

0.59.1 (2026-08-18)

Bug Fixes

  • review: gate due-review counts on drawable, matching the queue

0.59.0 (2026-08-17)

Features

  • db: host-substitution batch 0 + drawable consistency audit
  • db: stroke_host + drawable columns on kanji, testable backfill
  • learn: host-sliced grading data for the draw beat
  • practice: path-bounds + grade-slice pure helpers
  • review: schedule the production loop on drawable, not testable

0.58.1 (2026-08-17)

Bug Fixes

  • practice: resolve astral-plane glyph codepoints for stroke rendering
  • practice: stop un-drawable primitives trapping the draw canvas

0.58.0 (2026-08-11)

Features

  • test: vitest foundation — node+jsdom projects, first srs band tests

Bug Fixes

  • app: 404 return link honors the signed-in session
  • journey: review CTAs route to the global queue, walked-wing link ungated

0.57.0 (2026-08-11)

Features

  • practice: completion pending state instead of blank frame at session end

Bug Fixes

  • challenge: pure completion dispatch via results ref + pending state
  • journey: count introduced kanji — dashboard leaves onboarding after Learn
  • journey: stand glyph anchors to the recommended action's next kanji
  • practice: final-review fixes — stroke-host guard, error symmetry, completion guards
  • quiz: completion transition with in-flight guard + pending state

Performance

  • auth: enable better-auth cookieCache for session reads
  • cache: bounded stale/expire profiles for user-progress queries
  • cache: completions stop purging month-cached lesson content
  • infra: pin function region to arn1, co-located with the eu-north-1 database
  • kanjivg: serve loadKanjiData through the cached stroke loader
  • kanjivg: useKanji accepts preloaded stroke data + module-level cache
  • learn: decouple frame advance from the session-result write
  • learn: prefetch the next frame route during study
  • learn: prerenderable shell — session read moved inside Suspense
  • practice: server-render stroke data for review + learn sessions
  • progress: skip no-op promotion update in ensureKanjiProgressTx
  • srs: rebuild review projections set-based instead of per-card loop

0.56.0 (2026-08-01)

Features

  • db: FSRS schema — review_event, dimension-keyed kanji_progress, nullable session lesson
  • db: generate SRS v2 FSRS DDL migration
  • db: SRS v2 pre-launch wipe data-migration
  • srs: add ts-fsrs and FSRS-6 scheduler config
  • srs: Atlas tiers + Plate marginalia read FSRS status/stability
  • srs: Challenge gate on average stability + review-event settling
  • srs: Challenge logs FSRS events; remove mastery-ladder write path
  • srs: dev-seed helpers synthesize FSRS state + review events
  • srs: dimension-keyed ensureKanjiProgress, no FSRS state until first rating
  • srs: global /journey/review route; lift shared review machinery per Zone C
  • srs: global fragile-first review queue with unified daily cap
  • srs: Ledger histogram renders stability bands
  • srs: lesson completion drops Review from the required-paths set
  • srs: logReviewEvents mutation — append-then-rebuild projection
  • srs: mark Learn-doorway intake forecast as deferred (§5.4)
  • srs: rating map and event-replay projection rebuild
  • srs: re-point due/aggregate reads to due column + stability + dimension scope
  • srs: Review logs FSRS events + global (null-lesson) session result
  • srs: stability status bands and retrievability read

Bug Fixes

  • srs: count introduced kanji as due across dashboard/doorway/recommendation surfaces

0.55.0 (2026-07-31)

Features

  • db: add DB-free packet-shaping lib with rollForward slicing
  • db: add lite lesson roster + pre-computed collision notes
  • db: add structural work-weight estimate for unit sizing
  • db: add work-budget unit split + per-unit packet assembly
  • db: emit per-unit two-tier packets with Koohii/roster/budget flags

Bug Fixes

  • db: raise default work-budget 4→14 + wipe stale packets per run

0.54.0 (2026-07-25)

Features

  • eslint: add jsx-a11y lint (warn-first)
  • eslint: add type-checked linting (warn-first) for apps/client

Bug Fixes

  • client: handle promise findings + nullish/require-await; promote to error
  • client: resolve the two errors only-warn was masking

0.53.0 (2026-07-25)

Features

  • content: publish Chapter 7 Kanjido stories (Heart & Mind)
  • content: publish Chapter 8 Kanjido stories (Words & Gates)
  • story-voice: CH6 empirical patterns — clean keyword landing + named-hook lift risk
  • story-voice: CH7 empirical patterns — pin the abstract keyword + synonym-run mechanism
  • story-voice: CH8 empirical patterns — aside closing-mold + abstract-sibling axis + shared-primitive run role

0.52.0 (2026-07-24)

Features

  • content: publish Chapter 5 Kanjido stories (Nature & Craft)
  • content: publish Chapter 6 Kanjido stories (Journeys)
  • story-voice: name the recoverability opener mold + concrete route menu
  • story-voice: prose reads at ~B2; keyword + primitives exempt

Bug Fixes

  • db: reuse-index --check validates the ledger against the committed index

0.51.0 (2026-07-24)

Features

  • content: publish Chapter 4 Kanjido stories (Shelter & Growth)

Bug Fixes

  • atlas: normalize primitive names so concordance matches every frame

0.50.0 (2026-07-23)

Features

  • content: publish Chapter 3 Kanjido stories (Scale & Dimensions)
  • skill: pre-CH4 canon refactors — cap roll-forward completeness + opener shape

0.49.0 (2026-07-23)

Features

  • content: publish Chapter 1 Kanjido stories v2 (reuse-aware canon)
  • content: publish Chapter 2 Kanjido stories (Creatures & Characters)
  • database: authoring-prep script — per-lesson P5 drafting packets
  • database: carry per-frame extraction confidence into byFrame (S2)
  • database: reminder-issued-at ledger + index --check guard (S1)
  • skill: canon updates from CH2 Gate-2 — keyword-landing + sense-split + harvest
  • skill: CH1 Gate-2 canon refactor — reminder cap, bind-not-explain, v2 harvest

Bug Fixes

  • database: derive reminder eligibility from byFrame gap, not a re-walk
  • database: lastSeenGap counts the coining frame (S3)

0.48.0 (2026-07-20)

Features

  • database: extraction-prep script dumping Heisig prose + controlled vocabulary
  • database: reuse-index builder with CH1 validation
  • database: whole-book Heisig build-from extraction (2363 frames, 4882 edges)

Bug Fixes

  • database: canonicalize primitive names in reuse index (merge singular/plural + keyword aliases)
  • database: drop the ten-thousand->ten alias (distinct primitives, not a spelling variant)
  • landing: center Path rows so uneven copy length keeps number and title balanced
  • story-voice: correct needle reuse count in the empirical counter-example (28x, not five)

0.47.0 (2026-07-16)

Features

  • landing: Hero enacts production — strokes draw in, then set into type
  • landing: Hero specimen enactment scaffold with static fallback

Bug Fixes

  • landing: show Kanjido's own stories on Hero + Method, not Heisig's

0.46.0 (2026-07-04)

Features

  • content: backfill primitives from Heisig/Kanjido story <i> tags
  • content: publish Chapter 1 Kanjido stories (frames 1-54)
  • content: split kanji.primitives into build-from + primitiveMeanings

Bug Fixes

  • atlas: graceful empty state when a primitive has no consumers yet
  • atlas: read the build-from / reuse-as split, retire ATLAS_PRIMITIVE_SYNONYMS

0.45.4 (2026-07-03)

Bug Fixes

  • landing: update maker identity to @komarca / Giacomo

0.45.3 (2026-06-29)

Bug Fixes

  • landing: even out Plate I composition rule weights
  • landing: give the colophon footer room to breathe
  • landing: quicken the Path rows' once-in-view reveal
  • landing: tidy the Marginalia accordion spacing and marker

0.45.2 (2026-06-29)

Bug Fixes

  • client: serve /privacy + /terms under a public (legal) shell

0.45.1 (2026-06-25)

Bug Fixes

  • client: de-register auth-less scaffolding helpers as server actions
  • client: require admin session inside getKanjiStoryDraft
  • client: validate deleteAccount confirmation email with zod

0.45.0 (2026-06-23)

Features

  • client: capture render errors via PostHog (global-error + boundaries)
  • client: proxy PostHog ingestion through /ingest (CSP-safe)
  • client: upload PostHog source maps in build, keep maps private
  • client: wire PostHog error tracking SDK (errors-only, cookieless)

Bug Fixes

  • client: correct PostHog CLI env var names (POSTHOG_CLI_API_KEY/PROJECT_ID)
  • client: strip source maps on token-less builds, immediate server capture
  • content: block re-publishing archived kanjido story versions

0.44.2 (2026-06-22)

Bug Fixes

  • practice: drop setPointerCapture to stop iOS canvas input freeze

0.44.1 (2026-06-22)

Bug Fixes

  • practice: stop iOS gesture recogniser freezing the draw canvas

0.44.0 (2026-06-22)

Features

  • practice: add incremental stroke undo to the draw canvas

Bug Fixes

  • practice: drop phantom touch strokes that fail a correct drawing

0.43.1 (2026-06-19)

Bug Fixes

  • practice: prevent iOS page-scroll on canvas strokes + bigger canvas
  • review: loading skeletons match production-draw vs light typed-recall

0.43.0 (2026-06-19)

Features

  • atlas,ledger: consume introduced status across surfaces
  • grader: curve-matcher target grader with placeholder threshold
  • learn: focused draw beat with stroke-order reference
  • learn: Surface A draw beat + introduced-stamping (v1.10)
  • lesson-detail: Review doorway light-pass sub-line (v1.7)
  • practice: faint practice-square guides on the empty draw canvas
  • practice: shared draw-canvas primitive (lenient/grading/assessment)
  • progress: add dimension/matchScore/overridden to session history
  • quiz: drop MCQ → typed-recall then draw (v1.3)
  • review: production draw mode + /review/light + WI-F brake (v1.2)

Bug Fixes

  • practice: live draw-stroke rendering + dev-only grader telemetry
  • progress: trackStudyActivity emitted empty DO UPDATE SET

0.42.0 (2026-06-11)

Features

  • intros: add Ch 12 introduction
  • intros: add L49 introduction
  • intros: add L50 introduction
  • intros: add L51 introduction
  • intros: add L52 introduction
  • intros: add L53 introduction
  • intros: add L54 introduction
  • intros: add L55 introduction
  • intros: add L56 introduction

0.41.0 (2026-06-11)

Features

  • intros: add Ch 11 introduction
  • intros: add L39 introduction
  • intros: add L40 introduction
  • intros: add L41 introduction
  • intros: add L42 introduction
  • intros: add L43 introduction
  • intros: add L44 introduction
  • intros: add L45 introduction
  • intros: add L46 introduction
  • intros: add L47 introduction
  • intros: add L48 introduction

0.40.0 (2026-06-11)

Features

  • intros: add Ch 10 introduction
  • intros: add L29 introduction
  • intros: add L30 introduction
  • intros: add L31 introduction
  • intros: add L32 introduction
  • intros: add L33 introduction
  • intros: add L34 introduction
  • intros: add L35 introduction
  • intros: add L36 introduction
  • intros: add L37 introduction
  • intros: add L38 introduction

0.39.0 (2026-06-11)

Features

  • intros: add Ch 9 introduction
  • intros: add L20 introduction
  • intros: add L21 introduction
  • intros: add L22 introduction
  • intros: add L23 introduction
  • intros: add L24 introduction
  • intros: add L25 introduction
  • intros: add L26 introduction
  • intros: add L27 introduction
  • intros: add L28 introduction

0.38.0 (2026-06-11)

Features

  • intros: add Ch 8 introduction
  • intros: add L17 introduction
  • intros: add L18 introduction
  • intros: add L19 introduction
  • intros: name keyword-to-kanji direction in L5 caveat

0.37.0 (2026-06-05)

Features

  • intros: add Ch 6 introduction
  • intros: add Ch 7 introduction
  • intros: add L14 introduction
  • intros: add L15 introduction
  • intros: add L16 introduction

0.36.0 (2026-06-05)

Features

  • intros: add Ch 5 introduction
  • intros: add L11 introduction
  • intros: add L12 introduction

0.35.0 (2026-06-04)

Features

  • intros: add Ch 4 introduction
  • intros: add L10 introduction
  • intros: add L9 introduction

0.34.0 (2026-06-04)

Features

  • intros: add Ch 3 introduction
  • intros: add L7 introduction
  • intros: add L8 introduction

0.33.0 (2026-06-03)

Features

  • intros: revise Ch 1 introduction
  • intros: revise Ch 2 introduction
  • intros: revise L3 introduction
  • intros: revise L3 introduction
  • intros: revise L4 introduction
  • intros: revise L5 introduction
  • intros: revise L5 introduction
  • intros: revise L6 introduction
  • intros: revise L6 introduction
  • intros: revise L6 introduction

0.32.0 (2026-06-03)

Features

  • intros: author Ch 1 introduction
  • intros: author Ch 2 introduction
  • intros: author L3 introduction
  • intros: author L4 introduction
  • intros: author L5 introduction
  • intros: author L6 introduction

0.31.1 (2026-06-03)

Bug Fixes

  • atlas: apply stroke host-substitution to Plate stroke strip
  • learn: cap stroke-strip ghost to actually-rendered strokes

0.31.0 (2026-06-02)

Features

  • intros: author L13 introduction

Bug Fixes

  • fonts: load italic variant of Source Serif 4
  • intros: revise L1 and L2 prose after 4-lens audit

0.30.0 (2026-06-01)

Features

  • progress: add kanji.testable column with NOT primitive backfill

Bug Fixes

  • progress: bulk-stamp lesson primitives on Learn completion

0.29.0 (2026-06-01)

Features

  • intros: author L1 introduction
  • intros: author L2 introduction

0.28.2 (2026-05-28)

Bug Fixes

  • learn: anchor batches and entry to lesson real-kanji index
  • progress: correct enum cast in completeLessonPathTx
  • progress: fall through to next eligible lesson in dashboard CTA
  • progress: wire startLessonPath into all four entry loaders

0.28.1 (2026-05-27)

Bug Fixes

  • learn: honor kanji.progressive_strokes on the stroke strip

0.28.0 (2026-05-26)

Features

  • actions: add getLessonIntroBlocks + getChapterIntroBlocks queries
  • content: add intros directory + import script + stub content
  • contents: add ChapterIntroReveal client component
  • contents: integrate chapter-intro Reveal into chapter-block
  • db: add intro_block tables + drop dead lesson/chapter columns
  • db: generate migration for intro_block tables and column drops
  • intros: add 6 block-type renderer components + dispatch
  • intros: add pre-Learn pre-roll route + loading skeleton
  • intros: add pre-roll surface composition
  • lesson-detail: route Learn doorway through pre-Learn introduction

0.27.0 (2026-05-26)

Features

  • actions: add getKanjiStoryDraft for admin-toggle preview path
  • actions: version-aware kanji-story mutations + admin guard
  • learn: admin ?version=draft toggle for v2/v3 story preview
  • lib: add isAdmin(userId) helper backed by ADMIN_USER_IDS env
  • schema: add version column + partial unique index to kanji_story

Bug Fixes

  • build: include @madcat/kanjivg in Vercel lambda trace

0.26.1 (2026-05-25)

Bug Fixes

  • build: drop type:module from client package to fix Vercel routes

0.26.0 (2026-05-23)

Features

  • lesson-detail: surface Challenge settling window in doorway

Bug Fixes

  • journey: demote Challenge in next-action when gate not clear
  • journey: route restoration CTA to lesson with oldest due reviews
  • journey: skip Review in next-action when local due count is 0
  • learn: reveal primitive aside below stroke order, not above

0.25.0 (2026-05-22)

Features

  • actions: add getKanjiStories query helper
  • actions: add Kanjido story publish/unpublish/edit mutations
  • content: add pre-backfill *-audit script for kanji_story migration
  • content: one-time backfill from kanji.description into kanji_story
  • db: add kanji_story table for multi-source story refactor

Bug Fixes

  • dev: re-scaffold lesson_progress after resetUserState wipes it

0.24.0 (2026-05-20)

Features

  • actions: add ensureUserScaffolding eager-init helper
  • auth: ensure user scaffolding on user.create via better-auth hook
  • journey: completed CTAs route to lesson detail, not next path
  • seo: include /privacy and /terms in sitemap (F18)

Bug Fixes

  • db: backfill eager-scaffolding rows for existing users
  • progress: cascade-unlock sibling paths on completion + stamp timestamps
  • progress: return null when all four paths complete (F-10)

0.23.1 (2026-05-20)

Bug Fixes

  • infra: pin db-backup workflow to pg_dump 17 binary

0.23.0 (2026-05-20)

Features

  • infra: nightly DB backup to Cloudflare R2 via GitHub Actions

Bug Fixes

  • db: preserve RLS protection across drizzle-kit pushes
  • printing: anchor back-link to the landing colophon

0.22.1 (2026-05-20)

Bug Fixes

  • atlas: render lens tabs immediately, suspend only the weakness strip
  • journey: stop materializing kanji_progress on lesson-detail browse
  • journey: warm locked-lesson FooterSignoff voice + close v1.2 watch-items
  • shell: restore pull-to-refresh on mobile
  • shell: server-render avatar to stop Sign-In flash on reload

Performance

  • atlas: split plate caching + prev/next LIMIT 1 queries
  • journey: consolidate contents-page query to single aggregate
  • journey: parallelize completion mutations + wrap in useTransition
  • journey: split static kanji-corpus counts from per-user mastery cache

0.22.0 (2026-05-19)

Features

  • journey: mobile vertical-framed doorway pattern on lesson-detail

Bug Fixes

  • journey: clip lintel watermark to prevent horizontal scroll on mobile
  • landing: clip hero ghost-glyph to prevent horizontal scroll on mobile

0.21.0 (2026-05-19)

Features

  • landing: add /printing placeholder route
  • landing: add fetch-printing-data build script
  • landing: add printing-rhythm server helper
  • landing: add PrintingRhythm component
  • landing: rewrite FinalCTA colophon as printing receipt

Bug Fixes

  • printing: strip private-repo GitHub links from CHANGELOG render

0.20.0 (2026-05-18)

Features

  • journey: dashboard colophon link to /journey/contents
  • journey: dynamic header subtitle on /journey/contents
  • journey: fidelity loading skeleton for /journey/contents
  • journey: redirect /journey/lessons → /journey/contents
  • journey: scaffold /journey/contents route + components
  • journey: status-ink-weight lesson rows on /journey/contents

Bug Fixes

  • journey: final-review NITs — lesson-row title transition + CLAUDE.md redirect target description
  • journey: move sync format helpers out of 'use server' file

0.18.1 (2026-05-18)

Bug Fixes

  • learn: match learn frame skeleton to v1.4 LOCKED composition
  • practice: add fixed-bottom advance bar to answering skeletons

0.17.3 (2026-05-18)

Bug Fixes

  • learn: skip Surface C on replay; route to lesson detail

0.17.0 (2026-05-16)

Features

  • challenge: gate terminal writes on replay-after-pass
  • practice: add PracticeModeLine primitive
  • practice: add useConcurrentSessionWarning hook
  • practice: render ConcurrentSessionLine on same-browser duplicate sessions
  • practice: render PracticeModeLine on replay of completed paths

0.16.0 (2026-05-16)

Features

  • quiz: gate completeLessonPath on replay via skipPersistence

0.15.5 (2026-05-16)

Bug Fixes

  • atlas: breathe Plate story paragraph spacing
  • atlas: mirror concordance spacing fix into loading skeleton

0.15.4 (2026-05-15)

Bug Fixes

  • atlas: Plate primitive variant + concordance responsive tier-header spacing
  • atlas: primitive concordance — render description markdown + breathe tier rows

0.15.3 (2026-05-15)

Bug Fixes

  • content: redirect Koohii kanji anchors to Atlas, strip dead protocols

0.15.2 (2026-05-15)

Bug Fixes

  • content: strip redundant primitive lead-ins under "On the primitive"

0.15.0 (2026-05-15)

Features

  • journey: path-gating policy enforcement (lesson-detail v1.1 + challenge v1.1)

Bug Fixes

  • content: restore HTML in community stories with sanitize + animate collapse
  • journey: defer updateTag via after() on lesson detail render
  • learn: completed-page grid order + post-Learn next-path
  • progress: SRS idempotency on Learn re-entry

0.14.2 (2026-05-15)

Bug Fixes

  • landing: clip horizontal overflow at landing root

0.14.1 (2026-05-15)

Bug Fixes

  • styles: replace stale white/slate-900 html bg with bg-paper

0.14.0 (2026-05-15)

Features

  • landing: printing in the colophon
  • shell: F-9 — printing notice with folded-corner state

0.13.0 (2026-05-15)

Features

  • actions: F-6 — stable error code on ActionResponse failures

Bug Fixes

  • restoration: F-8 — timezone-agnostic days-away via elapsed timestamp

0.12.0 (2026-05-15)

Features

  • security: per-user rate limiting via Vercel Runtime Cache

Bug Fixes

  • progress: F-7 lesson-status race + F-3 third-bullet atomicity

0.11.0 (2026-05-15)

Features

  • routing: notFound() in Practice Surfaces for genuine 404s
  • seo: per-route metadata for chromed pages

Bug Fixes

  • progress: F-3 — transactional wrapping for hot-path mutations
  • progress: F-4 — ensure progress before reading on lesson-detail loader

Performance

  • atlas: split per-user weakness behind its own Suspense

0.10.0 (2026-05-15)

Features

  • error-handling: paper/ink error boundaries across the app
  • security: add HTTP security headers via next.config.ts

Bug Fixes

  • progress: convert trackStudyActivity + updateStreak to atomic upserts
  • progress: scope dev-mode escapes to local dev, kill hardcoded isReplay
  • security: sanitize markdown renderers that mix raw HTML
  • signin: close hydration mismatch on intent-line localStorage read
← back to colophon