Flight Log

Release log for OASIS Missions

Back
Current Version: v1.53.4

v1.53.4

April 2026
  • Removed retired course-category paths, filters, progress listeners, and editor fields so active course categories are Books and Codex videos only.
  • Kept Codex video module playback and local-file support intact while dropping retired category compatibility.

v1.53.1

April 2026
  • Shared split persistence now skips deleting chapter docs that were absent from the writer's previous snapshot, preventing Book Reader Book Ops saves from purging Codex module docs.

v1.53.0

April 2026
  • Normal Book modules now support KaTeX math in plain reading text plus Mermaid diagram snippets in the Book admin workflow.
  • Academic Books is removed from the active course categories; legacy academic type inputs now normalize into Books.
  • Shared library-store imports and dependent page cache markers now stay aligned with this release so hosted pages do not reuse stale course-category logic.

v1.52.8

April 2026
  • Narrow cleanup release markers to the surfaces that actually changed and avoid version churn on untouched calendar and recall-notes pages.

v1.52.7

April 2026
  • Removed dead homepage and reader helpers, trimmed internal-only Book helper exports, and deleted historical branch plan docs.

v1.52.6

April 2026
  • Removed dead shared-helper exports, redundant domain-routing aliases, and unused analytics cache state.

v1.52.5

April 2026
  • Removed dead homepage preview, Guided Builder, and red launch config code paths; deleted obsolete completed trackers.

v1.52.4

April 2026
  • Preserve recoverable Book Ops Gemini spacing drafts across unrelated Book Ops saves.
  • Add tested draft conflict handling and document browser-local recovery behavior.

v1.52.3

April 2026
  • Replaced the Book Reader admin dock notice with a stacked glass toast rail that keeps save controls clear while surfacing cross-panel status updates.
  • Made Gemini action buttons report missing API keys through the shared notification path instead of dead-clicking when keys are not configured.

v1.52.2

April 2026
  • Added conflict-safe recovery for Book Ops Gemini spacing drafts so changed modules are skipped instead of overwritten.
  • Added a per-course Book Ops Gemini spacing tab lock with refresh cleanup to prevent duplicate long-running runs.

v1.52.1

April 2026
  • Added a generated book PDF asset manifest and shared resolver so hosted reader/admin PDF URLs recover from filename casing and trailing-space differences.
  • Prevent the service worker from caching Firebase app-shell HTML as a PDF response.

v1.52.0

April 2026
  • Book Reader Gemini settings now support up to five browser-local API keys and retry saved fallback keys after model fallbacks.

v1.51.0

April 2026
  • Added a Calendar-linked Recall Notes page for reviewing saved written recall responses with course, month, and search filters.

v1.50.28

April 2026
  • Narrows the zero-module split guard so already-broken Codex missions do not block unrelated cleanup publishes.
  • Marks intentional admin deletes of existing non-book split missions so delete publishes can proceed while stale-snapshot removals remain blocked.

v1.50.27

April 2026
  • Keeps the homepage admin editor from accepting partial split snapshots while a save is in flight, preventing new Codex modules from being replaced by transient zero-module views.
  • Blocks Codex split publishes when a mission has zero modules, so a mission row cannot be saved without its module docs.

v1.50.26

April 2026
  • Protects live Codex split module rows from stale homepage publishes that would otherwise delete them when an editor snapshot is missing modules.
  • Extends the split-model delete guard to full saves as well as differential saves so module URLs remain in Firestore after later homepage publishes.

v1.50.25

April 2026
  • Makes Gemini paragraph-spacing page-block recovery tolerate pageText response variants and preserve original page blocks when recovery returns empty text.

v1.50.24

April 2026
  • Adds module and Book Ops audit-dot completion overrides with undo controls, plus Gemini glossary run reporting and spacing readiness fixes.

v1.50.23

April 2026
  • Replaced book reader Tailwind arbitrary and legacy utility classes with canonical equivalents and rebuilt generated CSS.

v1.50.22

April 2026
  • Fixed Tailwind class diagnostics around homepage modals and workbench status sizing.

v1.50.21

April 2026
  • Book Reader admin glossary drafting now uses Save Module as the single publish action for Gemini glossary JSON and current-page glossary edits.
  • Removed the separate Apply AI JSON and Save Page Meanings buttons so glossary saves no longer leave an applied-but-unsaved state.

v1.50.20

April 2026
  • Book Reader admin readiness dots now open the matching module and focus the relevant source, text, format, glossary, prompt, perspective, or media control.
  • Completed readiness dots now jump to the review area for that saved content so admins can inspect what is already done.

v1.50.19

April 2026
  • Book Reader admins can scan module readiness dots for source, text, formatting, glossary, prompts, perspective, and media directly in the module navigator.
  • The Audit panel now filters incomplete modules and lets admins hide unneeded readiness checks across all modules, with those choices saved across refreshes.

v1.50.18

April 2026
  • Book Reader admin Gemini tools now default to Gemini 3 Flash, use task-specific fallback orders, and retry unavailable models when the API reports them as missing.
  • The Book Reader admin save dock now shows the active Gemini run and fallback state while AI work is in progress.

v1.50.17

April 2026
  • Added a Link Assets Folder / Browse Assets flow beside the homepage mission source field so admins can link the repo public or assets folder once, then pick the mission file and have the matching assets/... path filled automatically.
  • The homepage asset picker now explains the two-step flow more clearly by distinguishing the initial folder-link dialog from the later file picker, while still validating Book and Academic mission picks as PDFs before applying the URL.
  • Fixed the release helper and release-log markup so the current-release docs no longer leak literal placeholder tokens from the scripted replacement path.

v1.50.16

April 2026
  • Fixed homepage admin mission shell syncing so Book and Academic source/PDF URL fields no longer overwrite the selected mission with stale form state or restored draft values from another editing session.
  • PDF shell syncing now only persists intentional source/PDF edits, while preserving the current setup mode and module-range flag instead of forcing partial PDF shell state back into the mission.
  • Refreshed the changed-surface homepage marker chain for index.html, main.js, the homepage analytics release label, public/sw.js, package.json, README.md, the release log, AGENTS baseline, and the wiki home baseline so hosted caching stays aligned.

v1.50.15

April 2026
  • Homepage admins can now click the docked rocket itself to toggle rocket-based row reveal on or off, instead of hunting for a separate Mission Control setting.
  • The rocket reveal preference is now shared through oasisMeta/courseLibraryMeta as homepage UI policy, so the chosen row-reveal mode persists across browsers; when it is off, learners no longer see the rocket and row actions use the normal reveal path.
  • Refreshed the changed-surface homepage marker chain for index.html, index.css, main.js, course-library-store.js, the homepage analytics release label, public/sw.js, package.json, repo docs, and the synced wiki docs so hosted caching and shared-meta handling stay aligned.

v1.50.14

April 2026
  • Fixed homepage admin shell syncing so the course tone field no longer overwrites a saved visualToneColor just because the control is displaying the computed default book color.
  • Homepage admin draft restore now marks the tone control as intentional user state again, so restored drafts still save the expected course color override instead of silently dropping it on the next sync.
  • Refreshed the changed-surface homepage marker chain for index.html, main.js, the homepage analytics release label, public/sw.js, package.json, and repo docs so hosted caching stays aligned.

v1.50.13

April 2026
  • Fixed the hosted Book Reader release-marker chain so the updated book-reader.js entrypoint now imports the current book-gemini-ai-client.js helper version instead of the older cached v1.50.8 query tag.
  • Refreshed the changed-surface Book Reader markers for book-reader.html, book-reader.js, the Book Reader analytics release label, public/sw.js, package.json, README.md, and AGENTS.md so the hosted cache chain stays aligned.
  • Added a small Gemini client regression check to keep the intended fallback model ordering and grouping visible in tests.

v1.50.12

April 2026
  • Book Reader continuous scroll now lets text pages collapse to their natural content height, removing the long blank gaps between short text pages while keeping page mapping intact.
  • Reduced Book Reader continuous-scroll overhead by skipping the unused equal-height measurement pass, throttling scroll-time page-chip syncing, and avoiding hidden rail refresh work during page updates.
  • Book Reader Gemini settings now keep saved keys hidden after reload, avoid browser password-manager update prompts, and show explicit Key Saved plus This Session/This Device indicators; refreshed the changed-surface release markers for book-reader.html, book-reader.css, book-reader.js, package.json, public/sw.js, repo docs, and the synced wiki docs.

v1.50.11

April 2026
  • Book Ops width and height inputs now keep showing the current module's applied percentages whenever saved-module defaults are mixed instead of blanking the fields.
  • Book Reader text-mode figures now render without the extra frame chrome while keeping the centered image presentation intact.
  • Refreshed the changed-surface markers for book-reader.html, book-reader.css, book-reader.js, package.json, public/sw.js, README.md, AGENTS.md, PROJECT_CONTEXT.md, BOOK_GEMINI_AI_TRACKER.md, this release log, and the synced wiki docs.

v1.50.10

April 2026
  • Book Reader text-mode figures now support module-level default width and height percentages, with optional inline overrides such as {w=58 h=34} on individual image lines.
  • Added Book Ops controls to stage shared text-image sizing defaults across all saved modules or clear those defaults, while keeping the changes local until Save Book Ops publishes them.
  • Updated homepage and Book Reader structure templates/prompts to teach the image sizing syntax, then refreshed changed-surface markers for book-reader.html, book-reader.css, book-reader.js, index.html, main.js, package.json, public/sw.js, README.md, AGENTS.md, PROJECT_CONTEXT.md, BOOK_GEMINI_AI_TRACKER.md, this release log, and the synced wiki docs.

v1.50.9

April 2026
  • Book Reader glossary admin now scopes its AI prompt and JSON workspace to the active module plus the current page, module, or range target instead of keeping one shared payload alive across module switches.
  • Switching modules now clears stale glossary prompt/JSON from the previous module and auto-loads the newly selected module's saved meanings for the active glossary scope when they already exist.
  • Refreshed the changed-surface marker chain for book-reader.html, book-reader.js, the Book Reader analytics release label, package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, BOOK_GEMINI_AI_TRACKER.md, this release log, and the synced wiki baseline.

v1.50.8

April 2026
  • Book Reader Gemini requests now auto-switch to the fallback model chain when the current model fails with quota or rate-limit errors, instead of leaving the admin flow stuck on the failed model.
  • Resolved fallback model changes now persist back into Book Reader admin Gemini settings and immediately refresh the floating save dock selector plus the other shared Gemini controls, so the UI shows the model actually in use.
  • Refreshed the changed-surface marker chain for book-reader.html, book-reader.js, the Book Gemini client import tag, the Book Reader analytics release label, package.json, public/sw.js, README.md, AGENTS.md, BOOK_GEMINI_AI_TRACKER.md, and this release log.

v1.50.7

April 2026
  • Added Gemini 3.1 Flash Lite as an explicit fallback option in the shared Book Reader Gemini model list, while keeping the existing model state mirrored across Book Reader admin Gemini controls.
  • Exposed the active Gemini model directly in the floating Book Reader save dock as a compact pill selector so admins can see and switch models from the current module overlay without opening a separate settings card.
  • Simplified the Book Reader save dock chrome by removing the extra module label in module mode, then refreshed the changed-surface markers for book-reader.html, book-reader.css, book-reader.js, the Book Gemini client import query tag, the Book Reader analytics release label, package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, BOOK_GEMINI_AI_TRACKER.md, and the synced wiki home baseline.

v1.50.6

April 2026
  • Added direct homepage admin book editing on the selected reveal card, including drag-and-drop shelf reordering plus inline title, author, synopsis, and color updates without opening a separate reader admin surface.
  • Replaced the fixed Mission Control publish action with a simplified floating homepage save strip that appears only while admin drafts are dirty, so quick reveal-card edits and Mission Control edits share the same publish affordance.
  • Refreshed the homepage hosted release-marker chain for index.html, main.js, index.css, public/sw.js, package.json, README.md, AGENTS.md, public/documentation.html, and the synced wiki home baseline.

v1.50.5

April 2026
  • Fixed Book admin AI source validation so vocabulary coverage now uses whole-token matching instead of substring matches, matching `##` title headings are promoted to `#`, and very long one-paragraph drafts now raise the stronger dense-block spacing warning.
  • Preserved `videoUrl` during Codex inline admin saves when canonical split chapter docs are rewritten, preventing the alias cleanup path from dropping the module video link.
  • Refreshed the changed-surface hosted markers for book-reader.html, book-reader.js, index.html, main.js, public/sw.js, package.json, README.md, PROJECT_CONTEXT.md, AGENTS.md, BOOK_GEMINI_AI_TRACKER.md, and the synced wiki release/troubleshooting docs, while adding an explicit release-marker alignment checklist so future patches verify HTML query tags, analytics release strings, and related precache entries together.

v1.50.4

April 2026
  • Fixed Book Reader Gemini paragraph-spacing recovery so single-page fallback responses such as pageText are accepted instead of failing with a generic unusable-text error during page-block repair.
  • Added precise recovery diagnostics that name the exact module target, PDF page, and request-vs-parse stage when Gemini paragraph-spacing recovery fails, and surfaced matching Book Ops failure summaries for saved-module runs.
  • Reworked PDF-aligned Gemini recovery to retry in small page chunks first, only dropping to per-page requests for the specific chunk that fails, then refreshed changed-surface markers for book-reader.html, book-reader.js, the Book Reader script query tag, the Book Reader analytics release label, package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, BOOK_GEMINI_AI_TRACKER.md, and the synced wiki baselines.

v1.50.3

April 2026
  • Added Gemini paragraph-spacing repair to the Book Reader `Update with AI` Format tools and to a new Book Ops `Add Spacing with Gemini All` action so admins can stage spacing fixes across one module or an entire mission.
  • Hardened paragraph-spacing repair for dense extracted text, including deterministic spacing recovery and Gemini prompts that can use current-page PDF image or PDF text samples as layout evidence.
  • Preserved or rebuilt --- page dividers during Gemini spacing so text-mode page boundaries stay aligned to the PDF even when a paragraph spans pages, then refreshed changed-surface markers for book-reader.html, book-reader.js, the Book Reader script query tag, the book-admin-ai-tools.js import query tag, the Book Reader analytics release label, package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, BOOK_GEMINI_AI_TRACKER.md, and the synced wiki baselines.

v1.50.2

April 2026
  • Hardened homepage split-library publishing for Codex missions so non-book delete guards use effective mission type, repair can backfill canonical module docs even when only alias rows exist, and verification now fails when an expected canonical split module doc is missing.
  • Kept the homepage sync chip on the final repair or verification result instead of snapping back to SYNC: LIVE, delayed lastPersistedSplitLibrary updates until publish verification succeeds, and removed the unused full-library payload from local publish audit entries.
  • Preserved stable Codex module ids during inline admin saves while still writing canonical split Firestore doc ids through shared helpers, fixed Book Gemini glossary parsing for single entries that include metadata such as confidence, and refreshed release/docs markers for the changed surfaces plus synced wiki baselines.

v1.50.1

April 2026
  • Balanced Book Reader text-mode spread pages so the two visible pages in Book Focus now stretch to the same visible height instead of stepping unevenly across the center gutter.
  • Added a shared text-page height sync pass in the Book Reader runtime so text-page shells are re-equalized after render, page turns, Book Focus layout changes, resize, zoom/font adjustments, and late-loading image or diagram assets.
  • Increased footer breathing room above text page numbers, then refreshed changed-surface markers for book-reader.html, book-reader.css, book-reader.js, the Book Reader analytics release label, package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, and the synced wiki baselines.

v1.50.0

April 2026
  • Expanded Book Reader Gemini glossary drafting so the prompt now prefers a broader beginner-friendly set of medium-difficulty and harder terms while still returning one short contextual meaning per word.
  • Added exact prompt-preview textareas for glossary and author-perspective drafting, plus a new staged Author Perspective workflow that can generate either current-page or current-module interpretation text before Save Module publishes it.
  • Rendered the saved author perspective in the learner glossary rail with page-first fallback to module text, and refreshed the changed-surface markers for book-reader.html, book-reader.js, the Book Reader script query tag, analytics release label, package.json, public/sw.js, README.md, AGENTS.md, PROJECT_CONTEXT.md, BOOK_GEMINI_AI_TRACKER.md, and the synced wiki baselines.

v1.49.11

April 2026
  • Moved the Book Reader admin save control into a centered floating glass dock so module publishing stays reachable while scrolling deep inside the editor.
  • Pinned the Book Reader Basics, Reading, Glossary, and Update with AI tabs under the main rail switch, and changed Book Ops bulk actions so they stage locally until Save Book Ops is clicked instead of publishing immediately.
  • Added Book Ops draft-guarding so staged mission-wide changes are preserved until save, then refreshed changed-surface markers for the Book Reader (book-reader.html, book-reader.css, book-reader.js, the Book Reader asset query tags, and the Book Reader analytics release label) plus shared release/docs markers in package.json, public/sw.js, README.md, AGENTS.md, and PROJECT_CONTEXT.md.

v1.49.10

April 2026
  • Updated the Book Reader Book Ops saved-module repair button so one mission-wide pass now chains deterministic Repair OCR Spacing, Insert Title Heading, and Fix Chapter Opener cleanup across every module with saved reading text.
  • Kept the bulk repair conservative by skipping empty modules and leaving unchanged readings untouched, while updating the Book Ops copy and status messages to reflect the combined repair instead of only chapter openers.
  • Updated changed-surface markers for this Book Reader admin follow-up (book-reader.html, book-reader.js, the Book Reader script query tag, and the Book Reader analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, AGENTS.md, and BOOK_GEMINI_AI_TRACKER.md.

v1.49.09

April 2026
  • Added a new Book Reader Update with AI PDF sample diagnosis card that asks Gemini to classify extraction problems like OCR spacing, hyphenation, chapter-opener noise, and layout damage without rewriting the module text.
  • Added a deterministic Repair OCR Spacing format action plus an Apply Recommended Fixes flow so Gemini recommendations stage conservative cleanup chains in the existing Format preview instead of directly mutating saved reading content.
  • Updated changed-surface markers for the Book Reader admin AI follow-up (book-reader.html, book-reader.js, the Book Reader script query tag, and the Book Reader analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, and BOOK_GEMINI_AI_TRACKER.md.

v1.49.08

April 2026
  • Fixed the non-book split repair helper so legacy chapters now inherit their effective type from the legacy mission class when the legacy course row omits its own type.
  • This keeps split repair backfills from skipping the fallback videoUrl fill on Codex missions that rely on category-level typing.
  • Updated changed-surface markers for the homepage repair follow-up (index script query tag and main.js analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, and AGENTS.md.

v1.49.07

April 2026
  • Homepage admin no longer silently invents replacement Codex modules when a mission has zero shared split rows.
  • Non-book missions with zero shared modules now stay visibly broken in Mission Control until the operator repairs shared rows or adds modules intentionally.
  • Updated the split warning copy so browser-only draft missions are labeled Local Only instead of reading like unexplained Firestore disappearance.
  • Updated changed-surface markers for the homepage no-recovery patch (index script query tag and main.js analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, AGENTS.md, the investigation tracker, and the synced wiki home page.

v1.49.06

April 2026
  • Added a homepage admin Persistence Provenance panel so Mission Control now shows whether the selected mission or module is coming from shared split Firestore, the legacy shared library, or only the current browser draft.
  • Surfaced split doc identifiers, doc paths, updatedAt, updatedByEmail, and updatedReason for the selected mission and module whenever split provenance is available.
  • Recorded a small browser-local publish audit snapshot after each successful homepage publish and rendered the latest audit entries directly inside the same admin panel.
  • Hardened Codex inline admin saves so module writes now canonicalize the split chapter id and delete any alias doc left behind after save.
  • Updated changed-surface markers for the homepage provenance patch (index script query tag and main.js analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, AGENTS.md, and the active investigation tracker.

v1.49.05

April 2026
  • Added a homepage admin Verify Published Data action for Codex missions so the current editor state can be compared against live split Firestore on demand.
  • Homepage publish now also runs the same read-after-write verification automatically after save and records the result in a dedicated verification panel inside Mission Control.
  • Verification checks the live split source, mission resource URL, module counts, and core module fields such as title, summary, video URL, timing fields, and academic module PDF URL.
  • Updated changed-surface markers for the homepage verification patch (index script query tag and main.js analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, and the active investigation tracker.

v1.49.04

April 2026
  • Added a homepage admin Repair Shared Modules action that backfills missing canonical Codex split module docs from the shared library into oasisCourseChapters.
  • Kept the repair conservative by only adding missing split chapter docs, leaving already-published split module rows untouched.
  • Reported repair outcomes back to the operator, including restored module counts, split missions that had no legacy source to backfill, and whether the current browser still has a local admin draft layered on top of Firestore.
  • Updated changed-surface markers for the homepage repair patch (index script query tag and main.js analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, and the active investigation tracker.

v1.49.03

April 2026
  • Added a dedicated homepage admin warning card for Codex missions that compares the selected mission against the last shared split snapshot loaded from Firestore.
  • Surfaced immediate error or mismatch states when shared split storage has zero published module docs, when the editor is showing local-only module ids, or when Firestore still has module ids missing from the current editor view.
  • Included recovered local-draft context directly inside that warning so admins can see when this browser is showing locally restored mission state layered on top of Firestore.
  • Updated changed-surface markers for the homepage admin warning patch (index script query tag and main.js analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, AGENTS.md, and the active investigation tracker.

v1.49.02

April 2026
  • Added a split publish safety guard in the shared library store so homepage saves no longer delete existing Codex chapter docs just because the current homepage snapshot is incomplete.
  • Blocked homepage publish when the current split snapshot would drop already-known non-book module ids or remove an existing non-book mission while the repair guard is active.
  • Captured this repair checkpoint in the active video-link persistence tracker so the next implementation steps can proceed in a controlled order instead of restoring data before the destructive publish path is closed.
  • Updated changed-surface markers for the homepage and shared library store (index script query tag, main.js analytics release label, and course-library-store.js) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, and the release log current-version marker.

v1.49.01

April 2026
  • Added a dedicated Book Reader Fix Chapter Opener format action so synced title pages can be repaired into chapter/title headings with merged split drop caps before publishing.
  • Adjusted the Book Reader admin save flow so Save Module now publishes a staged format preview when it still matches the current reading draft source, and reset the Update with AI workspace correctly when switching modules.
  • Added a new Book Ops Fix Chapter Openers bulk action that runs the same repair pass across all saved modules with reading text, skipping unchanged or empty modules and reporting the final counts.
  • Updated changed-surface markers for this Book Reader cleanup patch (book-reader.html, book-reader.js, the Book Reader script query tag, and the Book Reader analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, AGENTS.md, PROJECT_CONTEXT.md, BOOK_GEMINI_AI_TRACKER.md, and the synced wiki baselines.

v1.49.00

April 2026
  • Added a new admin-only Split PDF card inside Book Reader Update with AI so the current PDF-backed module range can be replaced with chapter-based modules in one click.
  • The split flow checks PDF bookmarks first, falls back to Gemini page-preview detection when bookmarks are missing, and sets each created module title from the detected chapter title.
  • Kept the current module anchored as the first split module while creating the remaining modules directly below it with matching PDF settings, fresh IDs, and page-scoped glossary terms moved to the page ranges they belong to.
  • Updated changed-surface markers for the Book Reader chapter-splitting release (book-reader.html, book-reader.js, the Book Reader script query tag, and the Book Reader analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, AGENTS.md, PROJECT_CONTEXT.md, BOOK_GEMINI_AI_TRACKER.md, and the synced wiki baselines.

v1.48.00

April 2026
  • Added a new admin-only Update with AI tab in the Book Reader so higher-level AI authoring work now lives in one shared workspace without removing the older Gemini panels from Basics and Glossary.
  • Shipped staged deterministic cleanup tools for Book reading drafts, including text cleanup, paragraph-spacing recovery, structure-marker normalization, and title-heading insertion, with explicit preview-before-replace behavior.
  • Added conservative Gemini structure actions for title, subtopics, and section headings, plus a centralized Draft card that reuses the existing module-draft and glossary-draft flows through shared staged state instead of duplicating apply logic.
  • Added a review-only validation card that checks reading structure and source coverage against the current reading draft and optional PDF page/range context, powered by the new shared book-admin-ai-tools.js helper and focused helper regression tests.
  • Updated changed-surface markers for the Book Reader admin AI workflow (book-reader.html, book-reader.css, book-reader.js, the Book Reader asset query tags, and the Book Reader analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, AGENTS.md, PROJECT_CONTEXT.md, BOOK_GEMINI_AI_TRACKER.md, and the synced wiki baselines.

v1.47.01

April 2026
  • Fixed Book Reader Gemini glossary paste validation so admins can paste more of the structured JSON shapes Gemini commonly returns instead of being blocked by the earlier page-map-only parser.
  • Accepted page-scoped glossary payloads wrapped as page arrays, page entries with page plus term/meaning fields, nested entries/terms/glossary collections, and the original page-keyed object format.
  • Added focused parser coverage for those pasted glossary JSON variants so the shared Book Gemini client keeps rejecting real errors like out-of-range pages while allowing valid structured Gemini output.
  • Updated changed-surface markers for the Book Reader Gemini path (book-reader.js, the Book Reader script query tag, the Book Gemini client import query tag, and the Book Reader analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, AGENTS.md, and the release log current-version marker.

v1.47.00

April 2026
  • Added local Book Reader Gemini settings for admins so API keys stay in browser session/device storage and never enter published HTML, Firestore mission data, or committed config files.
  • Shipped reviewed Gemini authoring flows for the Book Reader admin surface: glossary JSON generation for current page/module/custom ranges, stronger JSON review/apply states, and module draft generation for summary, prompts, and glossary additions.
  • Added a constrained learner-side Assist flow for selected text, the current page, or the current module, while keeping output local to the browser session and blocking the feature in Red Pill mode so mastery, recall, and gates are not auto-completed.
  • Added the shared Book Gemini REST client plus focused regression coverage for structured JSON extraction, empty/invalid response handling, and page-scoped glossary range validation.
  • Updated changed-surface markers for the Book Reader (book-reader.js, book-reader.css, the Book Reader asset query strings, and the Book Reader analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, and the release log current-version marker.

v1.46.07

April 2026
  • Added a dedicated Book Focus mode in the Book Reader header so learners can expand the reading surface full-screen and hide the side rails during immersive reading.
  • Added a Page | Spread toggle inside Book Focus text mode so wide screens can switch between one-page reading and a two-page spread instead of always forcing the spread layout.
  • Keeps focus-mode navigation state-aware by leaving PDF view single-page, closing focus before the admin workspace opens, and matching page-turn behavior to the active focus layout.
  • Synced this Book Reader release on top of the v1.46.06 PR #10 hardening so the focus-mode update lands with the split-model chapter alias and publish-ID scope fixes already on GitHub.
  • Updated changed-surface markers for the Book Reader (book-reader.css, book-reader.js, the Book Reader asset query strings, and the Book Reader analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, and AGENTS.md.

v1.46.06

April 2026
  • Addressed PR #10 CodeRabbit/Copilot follow-ups by preserving raw split-model chapter doc IDs during normalization and selecting canonical chapter rows by alias-depth precedence so legacy-prefixed aliases cannot shadow current chapter data.
  • Narrowed split-model cleanup guardrails to chapter-level presence checks per mission and aligned homepage publish validation with nested-ID repair using the same course-scoped canonical chapter-ID keys.
  • Updated changed-surface markers for the homepage and shared library store (index script query tag and main.js analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, and the release log current-version marker.

v1.46.05

April 2026
  • Scoped homepage publish ID validation so module IDs are enforced per mission, which allows common module IDs such as chapter-2 to be reused safely across different missions.
  • Normalized split-model chapter IDs against course prefixes and added a persistence guard so diff cleanup does not delete chapter docs under still-active missions when legacy-prefixed alias IDs drift.
  • Updated changed-surface markers for the homepage and shared library store (index script query tag, main.js analytics release label, and course-library-store.js) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, and the release log current-version marker.

v1.46.04

April 2026
  • Split Book Reader review tools into a dedicated Highlights tab so all highlight types can be reviewed in one place with quick filters and jump-back-to-text behavior.
  • Added a separate Analytics tab in the Thinking rail and removed the old always-visible learner analytics block from the bottom of the panel.
  • Kept Notes focused on writing and anchored notes while leaving Core Idea review in the existing Concept Bank and moving full highlight review into its own pane.
  • Updated changed-surface markers for the Book Reader (book-reader.css, book-reader.js, the Book Reader asset query strings, and the Book Reader analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, and the synced wiki baselines.

v1.46.03

April 2026
  • Hardened Book Reader highlight persistence so adding or removing a highlight no longer depends on a debounce window finishing before a refresh.
  • Queued follow-up reader progress writes instead of dropping them while another save is in flight, which keeps later highlight edits from being overwritten by stale Firestore state.
  • Added a same-tab Book Reader progress snapshot and refresh flush path so the latest highlight changes can recover cleanly when the browser refreshes before the cloud write completes.
  • Updated changed-surface markers for the Book Reader (book-reader.js, the Book Reader asset query string, and the Book Reader analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, and the synced wiki baselines.

v1.46.02

April 2026
  • Added a compact current-page header chip beside the Book Reader Text | PDF toggle so learners can move one page at a time with the mouse wheel directly on the chip.
  • Changed the chip click behavior from a dropdown picker into direct page-number entry, so clicking the header control opens a minimal inline field for jumping straight to a page inside the current module.
  • Polished the header proportions by removing the extra separator, fixing the duplicate chip-state visibility bug, tightening the control cluster, and softening the far-right progress chip so the main reading controls stay visually balanced.
  • Updated changed-surface markers for the Book Reader (book-reader.css, book-reader.js, the Book Reader asset query strings, and the Book Reader analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, and the synced wiki baselines.

v1.46.01

April 2026
  • Simplified Book Reader S search into a direct find-in-book dock so the search shell stays compact while matches jump inline inside the reading page.
  • Moved search orientation into the left module navigator with per-module hit counts and match-type chips, while keeping arrow-key navigation moving through global hits across the current book.
  • Fixed the live search focus-steal so typing letter by letter keeps the caret inside the search input instead of dropping focus during inline jumps or cross-module rerenders.
  • Updated changed-surface markers for the Book Reader (book-reader.css, book-reader.js, the Book Reader asset query strings, and the Book Reader analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, and the synced wiki baselines.

v1.46.00

April 2026
  • Added a Book Reader keyboard search overlay on S that searches the current book's available module titles, paginated reading text, glossary entries, questions, and reflection prompts.
  • Search selections now jump across modules to the right result target, opening the matching reading page or the glossary/prompts rail and briefly flashing the matched item for orientation.
  • Moved the text-mode next-page side control off the right scrollbar gutter so the native scrollbar stays hoverable and clickable instead of stealing the click into a page turn.
  • Updated changed-surface markers for the Book Reader (book-reader.css, book-reader.js, and the Book Reader analytics release label) plus refreshed shared release/docs markers in package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, and the synced wiki baselines.

v1.45.03

April 2026
  • Preserved dirty homepage admin drafts while the live shared-library watcher keeps receiving cloud updates, so unsaved shelf edits like visual-tone color changes stop snapping back before publish.
  • Stopped homepage video disc title chips from breaking words mid-letter, so wrapped labels now stay readable and only wrap at normal word boundaries.
  • Updated changed-surface markers for the homepage (index.css and main.js) and refreshed shared release/docs markers in package.json, public/sw.js, README.md, AGENTS.md, and the synced wiki baseline.

v1.45.01

April 2026
  • Moved the embedded <style> blocks out of the shipped Login, Flight Log, Question Analysis, Book Reader, Academic Reader, Codex Reader, Completed Missions, and Learning Calendar pages into matching standalone files under public/css/.
  • Updated those pages to load versioned page-specific stylesheet links so future styling changes can ship without editing large inline HTML style blocks.
  • Added the new extracted stylesheet assets to the service-worker precache list and refreshed shared release markers in package.json, public/sw.js, README.md, PROJECT_CONTEXT.md, AGENTS.md, and the synced wiki docs in .wiki-live.
  • Clarified the AGENTS-driven docs-sync workflow so .wiki-live stays updated and is committed separately from the main repo when wiki files change.

v1.45.00

April 2026
  • Rolled up the Book Reader UI refresh stream previously landed on this branch as v1.44.08 through v1.44.15 under unified release v1.45.00.
  • Shipped the refreshed reader shell: simplified chrome, full-height scroll region, book-like text pages, in-page numbering, navigator-based zoom/status controls, and hover side arrows for both text and PDF page stepping.
  • Hardened runtime polish with smoother text-mode page turns, page-bounded glossary popups, reading-order glossary focus, and clearer theme-light navigator contrast.
  • Polished Reader Controls with a wider text-size pull range, dot-reset behavior, multi-direction drag feedback, and stronger panel/header stacking so the tuning dots stay visible around nearby rails and header chrome.
  • Tightened the Book glossary bridge so lookup cards hide immediately instead of lingering after the underlying context changes.
  • Addressed PR review follow-ups by preserving reader accessibility for single-page modules, guarding unsaved page-meanings edits on view-mode switches, aligning glossary-focus matching with normalized rendered text, filtering hover lookups to mouse pointers, and cleaning the branch workflow doc suffix/template wording.
  • Updated changed-surface markers (book-reader and book-vocab-bridge script query tags plus Book Reader analytics release label) and shared release/docs markers (package.json, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, and wiki baselines in .wiki-live).

v1.44.15

April 2026
  • Reduced text-mode lag by throttling hover glossary work to animation frames and reusing the active lookup card when the hovered term has not changed.
  • Cached glossary reading-order snapshots from rendered pagination so next/previous page clicks stop rebuilding that work on every turn.
  • Kept inline glossary popups constrained to the active visible page and switched text-mode zoom to layout-safe scaling so empty overscroll space no longer opens below the page.

v1.44.14

April 2026
  • Simplified Book Reader chrome by removing the extra outer frame and leaving the visible rounded containers to the scroll region and the book page itself.
  • Moved zoom controls and page status into the module navigator so the top reader strip stays quieter while still exposing the same controls.
  • Added bottom-center in-page numbering for text mode and tuned the footer spacing/size so page numbers sit clearly below the text.

v1.44.13

April 2026
  • Added side page arrows inside the Book Reader surface for both text mode and PDF mode so modules can move forward/back without old bottom buttons.
  • Refined the arrows into hover-reveal edge controls that stay fixed while page content scrolls instead of creating a permanent three-column layout.
  • Kept the edge navigation state-aware by disabling it on the first/last page and hiding the overlay when a module only has one page.

v1.44.12

April 2026
  • Applied the Book Reader zoom controls to text mode as well, so text pages now scale with the same percentage controls used in PDF mode.
  • Restyled Book Reader text mode into framed page sheets instead of a flat article column, keeping pagination while making each visible page feel closer to a printed book.
  • Softened the text-mode ink color, justified the reading copy, and increased the inner page padding so the text pages feel less harsh and more book-like.

v1.44.11

April 2026
  • Made Book Reader stretch to a full-height workspace instead of feeling boxed into a shorter central panel.
  • Added custom scrollbars for the reading surface and side rails so the new layout remains readable and consistent across the mission workspace.
  • Tightened the scroll-region sizing so reading, navigator, and right rail all hold their own scrolling area more reliably.

v1.44.10

April 2026
  • Turned the Book Reader gate progress strip into a compact checklist popup in the header so the reading surface keeps more vertical space.
  • Tightened the header layout and preserved the same recall/summary/time checklist data in a cleaner disclosure pattern.
  • Reduced persistent chrome around the progress state so the reading pane feels less crowded during learner runtime.

v1.44.09

April 2026
  • Refined the learner glossary rail so current-page and current-module entries follow reading order more closely instead of feeling arbitrarily listed.
  • Added glossary term focus behavior that can jump to and mark the matching term in the reading page when learners use the glossary rail.
  • Improved glossary pane flow between page-level and module-level meanings without changing the shared glossary data model.

v1.44.08

April 2026
  • Simplified the Book Reader glossary rail layout so the learner support sidebar carries less extra chrome around glossary content.
  • Kept glossary lists independently scrollable so long term sets remain usable without forcing the entire right rail to grow awkwardly.
  • Clarified the learner glossary pane structure around current-page versus module-level meanings ahead of later glossary ordering and focus work.

v1.44.07

April 2026
  • Strengthened Book Reader highlight visibility so tagged passages show a deeper wash, a taller fill, and a firmer underline on the reading canvas.
  • Adjusted the four highlight tags to use clearer separated colors in Book Reader: teal for core, amber for confusing, rose for question, and blue for insight.
  • Tuned the light-theme and book-light highlight colors specifically for the paper background so highlights stop blending into the page.
  • Updated changed-surface markers (book-reader script query tag and reader analytics release label) plus shared release/docs markers (package.json, service-worker cache key/version, README current release line, documentation current version, and AGENTS baseline).

v1.44.01

April 2026
  • Fixed the homepage admin Unlock Waits sweep so one run clears one-week mission waits reliably instead of sometimes needing repeated clicks.
  • Changed the sweep to inspect both the current courseAccessCooldownsByCourse map and the legacy courseAccessCooldownsByMission map before deciding whether a learner record still has active waits.
  • Switched the Firestore write to explicitly delete both wait-lock map fields during the admin full-scan pass, which avoids merged nested keys surviving the sweep on mixed older/newer courseUserState documents.
  • Updated changed-surface markers (index script query tag and homepage analytics release label) plus shared release/docs markers (package.json, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, and PROJECT_CONTEXT operator notes).

v1.44.00

April 2026
  • Rolled up the PR #7 review-driven commits previously landed as CodeRabbit low-risk runtime and docs fixes, CodeRabbit higher-risk persistence and rehydration fixes, and Copilot review fixes.
  • Hardened the shared Book and Academic PDF runtime so pdf_only chapter source types round-trip correctly, pinned Text mode stays sticky, unsafe PDF schemes are rejected, and OCR script retries can recover after a failed first load.
  • Improved Academic Reader persistence by explicitly deleting legacy annotation fields on save, storing extra highlight anchor context, and using those hints to re-anchor repeated PDF quotes more reliably during highlight restore.
  • Tightened the remaining review hardening with safe DOM-based PDF status messages, click-accurate Academic PDF lookup copy, and a service-worker bypass for cdn.jsdelivr.net PDF/OCR runtime assets.
  • Updated changed-surface markers (book-reader and academic-reader script query tags plus reader analytics release labels) and shared release/docs markers (package.json, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, PROJECT_CONTEXT PDF/persistence notes, and the PR7 review tracker final status).

v1.43.23

April 2026
  • Refreshed the Book Reader module navigator to follow the Codex Reader structure more closely while preserving the existing inline admin actions and synthetic Book Ops row.
  • Changed Book Reader module numbering to Roman numerals and added a mission-wide Navigator Count Start toggle in Book Ops, so admins can start the navigator at either 0 or I.
  • Stored that numbering preference on the shared Book mission model and preserved it through homepage/admin normalization, which keeps later saves from dropping the setting.
  • Added bulk Enable Drop Cap All and Disable Drop Cap All actions in Book Ops so the first-paragraph drop-cap treatment can be applied across every saved module at once.
  • Kept those bulk actions on the same shared Firestore-compatible library persistence path as other Book Ops actions, with unsaved-draft blocking and confirmation safeguards intact.
  • Updated changed-surface markers (index and book-reader script query tags plus homepage and Book Reader analytics release labels) and shared release/docs markers (package.json, service-worker cache key/version, README current release line, documentation current version, PROJECT_CONTEXT ownership note, and AGENTS baseline).

v1.43.22

April 2026
  • Added a synthetic admin-only Book Ops card above the Book Reader module navigator, so mission-wide tools now live inside the reader without becoming a real learner module.
  • Kept the Book Ops UI minimal: summary chips show module count, page span, synced text coverage, and glossary coverage before any bulk action runs.
  • Added saved-data bulk actions for books: Validate Ranges, Sync Missing Text, Sync All Text, Clear Page Glossary, Clear Module Glossary, and Clear All Glossary.
  • Scoped those actions to the same shared Book library persistence path already used by inline module edits, so mission-wide updates stay Firestore-compatible instead of inventing a separate storage path.
  • Blocked book-wide actions whenever unsaved module drafts or unsaved page-meanings JSON are present, which prevents stale right-rail module edits from silently overwriting a later bulk change.
  • Updated changed-surface markers (book-reader script query tag and Book Reader analytics release label) plus shared release/docs markers (package.json, service-worker cache key/version, README current release line, PROJECT_CONTEXT Book Reader ownership note, and AGENTS baseline).

v1.43.21

April 2026
  • Added Book Reader Sync Text From PDF in the Reading admin tab so a module can pull text directly from its saved PDF URL instead of only from a local upload.
  • Scoped the sync to the current module’s saved pageStart-pageEnd range, so PDF-backed modules now mirror only their own pages in text mode instead of reimporting the whole book.
  • Kept exact page alignment by writing the extracted text with the existing --- divider contract, which preserves one text page per one PDF page when switching between Text and PDF.
  • Reused the same PDF URL candidate fallback logic as the runtime reader so text sync can recover from normalized asset paths and minor filename variants in the same way PDF view already does.
  • Hardened the sync flow to fail clearly when the module range exceeds the actual PDF page count, instead of silently clamping and breaking page parity.
  • Updated changed-surface markers (book-reader script query tag and Book Reader analytics release label) plus shared release/docs markers (package.json, service-worker cache key/version, README current release line, PROJECT_CONTEXT reader-admin ownership note, and AGENTS baseline).

v1.43.20

April 2026
  • Added inline Book Reader module splitting so a PDF-backed module seeded to one broad page range can now be split directly from the currently visible PDF page.
  • Placed the new Split At Current Page control inside Book Reader admin Basics, with a live chip that shows the exact PDF page the split will use.
  • Made the split flow create the next module directly below the current one, shorten the current module range, and select the new module immediately for quick rename and follow-up editing.
  • Moved page-scoped glossary entries with the pages they belong to during the split, including any unsaved current-page glossary JSON already open in the editor.
  • Added navigator page-range labels so each Book module now shows its Pages X-Y span without opening module admin.
  • Updated changed-surface markers (book-reader script query tag and Book Reader analytics release label) plus shared release/docs markers (package.json, service-worker cache key/version, README current release line, PROJECT_CONTEXT reader-admin ownership note, and AGENTS baseline).

v1.43.19

April 2026
  • Added a homepage/admin Mission Color control so each mission can override its shelf/reveal hue without flattening the existing gradients, gloss, glow, or border treatment.
  • Stored the color override on the shared course model and reused it across bookshelf spines, disc-style course cards, quick shelf/hyperspace items, and expanded reveal panels.
  • Derived tinted --book-* and --media-* CSS variables from a single chosen mission color, keeping the current visual blends while shifting only the hue.
  • Added an Auto Tone reset so missions can fall back to the existing rotating default palettes without manual cleanup.
  • Updated changed-surface markers (index homepage script query tag) plus shared release/docs markers (package.json, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, and PROJECT_CONTEXT homepage ownership note).

v1.43.18

April 2026
  • Added inline Book module navigator admin actions so modules can now be inserted below a row, renamed, or deleted directly from the navigator.
  • Refactored Book Reader admin into a tabbed Basics | Reading | Glossary layout so metadata, reading content, and glossary authoring no longer overlap in one long editor.
  • Split glossary authoring into whole-module fallback terms versus current-page PDF meanings, and fixed current-page enablement to follow the actual open PDF state instead of only the saved source dropdown.
  • Added AI-assisted glossary tooling for current page, whole module, and custom page ranges: copy a strict AI prompt from rendered PDF text, paste back JSON, and import it into the page-scoped glossary editor.
  • Hardened AI glossary import by requiring actual PDF page numbers in the prompt, while still remapping relative 1..N AI page keys back onto the selected module/range when models ignore the instruction.
  • Updated changed-surface markers (book-reader script query tag and Book Reader analytics release label) plus shared release/docs markers (package.json, service-worker cache key/version, README current release line, PROJECT_CONTEXT reader-admin ownership note, and AGENTS baseline).

v1.43.17

April 2026
  • Simplified homepage Book/Academic admin back to a shell-only PDF flow: `PDF URL`, `Total PDF Pages`, and `Detect Pages`.
  • Moved homepage validation responsibility back to the currently edited mission so unrelated books with older PDF issues no longer block the active edit session.
  • Normalized Book/Academic PDF URLs across homepage admin and reader runtime so `assets\\...`, `public/assets/...`, and same-origin absolute URLs collapse to the deployed `assets/...` path.
  • Added tolerant PDF filename fallback for messy asset names such as files saved with an extra space before `.pdf`, so page detection and reader loading can still recover.
  • Updated `Detect Pages` to auto-seed an untouched Module 1 to `1-totalPages`, which makes a new PDF-backed mission immediately usable before ranges are refined in reader admin.
  • Updated changed-surface markers (`index`, `book-reader`, and `academic-reader` script tags plus homepage analytics release) and shared release/docs markers (`package.json`, service-worker cache key/version, README current release line, PROJECT_CONTEXT ownership note, AGENTS baseline, and continuation tracker status).

v1.43.16

April 2026
  • Completed Book onboarding continuation Phase 5 on homepage admin with a `PDF Publish Readiness` panel inside `PDF Mission Setup`.
  • Added shared PDF readiness analysis for Book/Academic missions so Mission Control now summarizes total pages, module count, and page-scoped glossary coverage before publish.
  • Hardened homepage publish validation by reusing the same PDF checks for missing PDF URL, missing total pages under strict mode, invalid ranges, overlap, out-of-bounds pages, and malformed page-scoped glossary JSON.
  • Kept glossary coverage gaps compatibility-safe by surfacing them as readiness warnings instead of blocking publish unless the stored page-scoped glossary JSON is invalid.
  • Completed the guided-admin cleanup by keeping raw PDF overrides and pack tools behind `Advanced`, and ran `npm run check:js` plus `npm run build` before release sync.
  • Updated changed-surface markers (`index` script query tag and homepage analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, PROJECT_CONTEXT ownership note, and continuation tracker status).

v1.43.12

April 2026
  • Completed Book onboarding workflow Phase 5 by shipping authoring quality-of-life tools in the Book Reader admin page-meanings editor.
  • Added adjacent-page clone actions (`Clone -> Prev` / `Clone -> Next`) so admins can quickly seed nearby PDF pages without repetitive manual JSON entry.
  • Added glossary pack import/export actions (`Import Pack` / `Export Pack`) for page-scoped meanings JSON workflows, including replace confirmation and downloadable module pack output.
  • Added unsaved-change safety for page-meanings authoring with navigation/reload confirmation prompts and `beforeunload` warnings when edits would be lost.
  • Updated changed-surface markers (`book-reader` script query tag and reader analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key/version, README current release line, documentation current version, and onboarding phase tracker status).

v1.43.11

April 2026
  • Completed Book onboarding workflow Phase 4 by hardening runtime glossary lookup integration for page-scoped meanings in the shared Book bridge.
  • Changed page-scoped JSON parsing to fail closed when malformed so invalid JSON no longer falls through into unsafe line parsing paths.
  • Added legacy fallback support for `Page N | word: meaning` glossary lines in bridge vocabulary parsing while preserving plain line-mode `word: meaning` behavior.
  • Added page-context change guards on chapter/page navigation (canvas page dataset observer + chapter sync reset) so lookup cards clear/rebind to the correct page context.
  • Updated changed-surface markers (`book-vocab-bridge` script query tag in Book Reader) plus shared release/docs markers (`package.json`, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, and onboarding plan phase status).

v1.43.10

April 2026
  • Completed Book onboarding workflow Phase 3 by adding a page-aware `Current PDF Page Meanings (JSON)` editor in Book Reader admin mode (Prompts section).
  • Added `Load Page`, `Validate JSON`, and `Save Page Meanings` actions bound to the currently visible PDF page so glossary authoring can happen directly beside active reading context.
  • Implemented inline JSON validation feedback with line/column parse hints and explicit field-level errors for missing words/definitions before save.
  • Saved per-page meanings through existing module save pipeline by merging current page terms into chapter `vocabulary` page-scoped JSON, preserving Firestore compatibility and legacy glossary behavior.
  • Updated changed-surface markers (`book-reader` script query tag and reader analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, and stale markdown plan/context docs).

v1.43.9

April 2026
  • Completed Book onboarding workflow Phase 2 on homepage admin by adding the `PDF Mission Setup` block (PDF URL, total-page detect/entry, strict module-range toggle, range load/apply actions, and status feedback).
  • Wired homepage admin sync, guided builder defaults, publish validation, and local draft persistence for course-level PDF onboarding fields (`pdfUrl`, `pdfTotalPages`, `pdfModuleRangesEnabled`) and chapter PDF range aliases.
  • Removed hard-coded default mission reseeding from homepage library bootstrap paths and added legacy seed cleanup guards so demo missions no longer repopulate shelves when cloud payloads are empty/invalid.
  • Updated changed-surface markers (`index` script query tag and homepage analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, and stale markdown plan/context docs).

v1.43.8

April 2026
  • Started Book onboarding workflow Phase 1 with a shared data-contract helper module (book-onboarding-contract.js) for PDF setup normalization and validation.
  • Added normalized course-level onboarding fields (pdfUrl, pdfTotalPages, pdfModuleRangesEnabled) and chapter-level range aliases (pdfPageStart/pdfPageEnd) while preserving existing pageStart/pageEnd compatibility.
  • Added publish-time module range checks (overlap + out-of-bounds) when PDF range enforcement is enabled for Book/Academic missions.
  • Updated homepage vocabulary parsing to accept validated page-scoped glossary JSON input for onboarding/admin authoring flows.
  • Updated changed-surface markers (index, book-reader, and academic-reader script query tags plus analytics release labels) and shared release/docs markers (package.json, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, and PROJECT_CONTEXT + onboarding plan updates).

v1.43.7

April 2026
  • Hardened Book glossary parsing by removing noisy `invalid glossary JSON payload` warnings for non-JSON vocabulary content.
  • When page-scoped glossary JSON parsing fails or yields no page maps, the reader now falls back safely to line-based `word: definition` parsing instead of treating it as an invalid terminal state.
  • Kept existing page-scoped JSON glossary behavior intact when valid JSON is provided.
  • Updated changed-surface marker (`book-vocab-bridge` script query tag in Book Reader page) plus shared release/docs markers (`package.json`, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, and PDF_TWO_MODE_READER_PLAN.md patch notes).

v1.43.6

April 2026
  • Fixed Book PDF pagination visibility so only one PDF page is visible at a time, restoring expected `Prev Page`/`Next Page` behavior.
  • Added Book reader PDF zoom controls (`-`, reset %, `+`) and persisted zoom preference (`uiPrefs.pdfZoomPercent`) for per-user continuity.
  • Fixed zoom runtime regressions: corrected `preservePageIndex` reference error, hardened PDF-mode rerender checks, and reduced zoom lag via shared runtime PDF document reuse.
  • Updated changed-surface markers (`book-reader` script query tag and `book-reader` analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, PROJECT_CONTEXT ownership note, and PDF_TWO_MODE_READER_PLAN.md patch notes).

v1.43.5

April 2026
  • Switched PDF glossary lookup in Book and Academic readers from hover-triggered to click-triggered behavior for more stable word targeting.
  • Preserved text-mode glossary hover behavior while gating PDF glossary interactions to click events only.
  • Added PDF lookup dismissal guards (outside click + Escape) so meanings clear predictably without sticky/stray hover artifacts.
  • Updated changed-surface markers (`book-reader`, `book-vocab-bridge`, and `academic-reader` script query tags plus reader analytics release labels) and shared release/docs markers (`package.json`, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, PROJECT_CONTEXT reader lookup notes, and PDF_TWO_MODE_READER_PLAN.md patch notes).

v1.43.4

April 2026
  • Completed two-mode reader Phase 6 by finalizing QA notes and release/doc synchronization for the full Text+PDF rollout stream.
  • Verified automated JS validation after the OCR fallback rollout: npm run check:js passed across all entry surfaces.
  • Finalized plan tracker closure with explicit manual test guidance for scanned-PDF OCR flow (enable OCR, create highlight/note, refresh/reopen persistence check).
  • No new runtime feature changes in this phase; this release records verification and merge-readiness notes for phases 0 through 6.
  • Updated shared release/docs markers (package.json, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, and Phase 6 status in PDF_TWO_MODE_READER_PLAN.md).

v1.43.3

April 2026
  • Completed two-mode reader Phase 5 with on-demand OCR fallback controls for PDF pages that have no extractable text layer.
  • Extended shared PDF runtime (`pdf-reader-runtime`) to run OCR via `tesseract.js`, inject OCR text tokens, and support reopen-safe auto-OCR for pages referenced by saved OCR-derived highlights.
  • Marked OCR-origin highlights with `anchorType: pdfRect` and surfaced `[OCR]` in Book/Academic note-target labels to signal lower anchor precision versus native text-layer highlights.
  • Added Book and Academic OCR panel styling and wired OCR-aware selection anchor detection in both readers while preserving existing text-mode and native PDF-text behavior.
  • Updated changed-surface markers (`book-reader`, `book-vocab-bridge`, and `academic-reader` script query tags plus reader analytics release labels) and shared release/docs markers (`package.json`, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, PROJECT_CONTEXT runtime notes, and PDF phase plan status).

v1.43.2

April 2026
  • Completed two-mode reader Phase 4 by persisting PDF highlights/anchored notes in progress docs and restoring them reliably on refresh/reopen.
  • Added Book reader PDF highlight rehydration and PDF-aware highlight metadata (`pdfPage`, `anchorType`) while preserving text-mode annotation compatibility.
  • Added Academic reader progress-backed PDF interaction persistence using chapter-row fields (`pdfHighlights`, `pdfAnchoredNotes`) with restart-safe reset behavior.
  • Hardened Book and Academic PDF hover lookup hit-testing by prioritizing rectangle-based text-layer token detection to reduce right-offset word drift.
  • Updated changed-surface markers (`book-reader`, `book-vocab-bridge`, and `academic-reader` script query tags plus analytics release labels) and shared release/docs markers (`package.json`, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, and PDF phase plan status).

v1.43.1

April 2026
  • Completed two-mode reader Phase 3 by adding Academic PDF text-layer interactions: selection-tag highlights, anchored note rail, and glossary-based hover lookup in PDF mode.
  • Extended Academic module support/admin surfaces with glossary fields (`vocabulary`) so hover meanings can be authored and displayed in both plain and page-scoped JSON glossary formats.
  • Hardened shared PDF runtime loading (`pdf-reader-runtime`) with multi-strategy fallbacks (URL variant retries, non-range/no-stream mode, and fetched-byte loading) for fragile external PDF hosts.
  • Added `public/assets/books/animalFarm.pdf` as a local/stable mission PDF asset for Book reader testing when external hosts fail.
  • Updated changed-surface markers (`academic-reader` and `book-reader` script query tags plus analytics release labels) and shared release/docs markers (`package.json`, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, and PROJECT_CONTEXT ownership/persistence notes).

v1.43.00

April 2026
  • Added dual reader modes (`Text` and `PDF`) for both Book and Academic reader surfaces.
  • Introduced shared PDF runtime helper `public/js/pdf-reader-runtime.js` (PDF.js module loading, chapter page-range resolution, rendered page/text-layer composition, and stale-render guards).
  • Added URL-safe mode persistence (`?view=text|pdf`) plus reader toggle controls and chapter-level default mode resolution from `sourceType`/`pdfUrl` metadata.
  • Extended in-reader admin chapter editors with source controls (`Reader Source`, `Module PDF URL`) while preserving compatibility with existing `resourceUrl` and text-first chapter data.
  • Updated changed-surface markers (`book-reader` and `academic-reader` script query tags plus analytics release labels) and shared release/docs markers (`package.json`, service-worker cache key/version, README current release line, documentation current version, AGENTS baseline, and PROJECT_CONTEXT ownership/persistence notes).

v1.42.00

April 2026
  • Promoted the Firestore read-reduction branch as a minor release rollup (`v1.41.1` through `v1.41.8`) under unified version `v1.42.00`.
  • Includes hidden-tab listener pause/resume controls, stale-resume refresh guards, and reduced realtime listener fan-out across homepage, Learning Calendar, and Completed Missions.
  • Preserves the operator guidance and validation checklist added during continuation Phase 3 for ongoing monitoring and QA.
  • Refreshed shared release/docs markers (`package.json`, service-worker cache key/version, README current release line, documentation current version, and AGENTS baseline) for the branch merge release.

v1.41.7

April 2026
  • Completed Firestore read-reduction continuation Phase 2 with conservative stale-data refresh guards after long hidden-tab periods.
  • Added hidden-duration thresholds and refresh cooldown gates so resume-time refreshes only run when tabs were backgrounded long enough to risk stale snapshots.
  • Triggered targeted one-time refresh lanes on resume (`library`/`history` for Completed Missions, `library`/`history`/`userState` for Learning Calendar, and learner library refresh on homepage after longer hidden intervals).
  • Updated changed-surface markers (`index`, `learning-calendar`, and `completed-courses` script query tags plus analytics release labels) and shared release/docs markers (`package.json`, service-worker cache key, README current release line, documentation current version, and AGENTS baseline).

v1.41.6

April 2026
  • Started Firestore read-reduction continuation with Phase 1 hidden-tab listener suspension on learner-heavy surfaces.
  • Added visibility-aware pause/resume behavior for Completed Missions progress listeners, Learning Calendar queue/video listeners, and homepage learner recall queue listener.
  • Kept live behavior intact while the tab is visible and resumed listeners automatically on focus to minimize learner-facing disruption.
  • Added `FIRESTORE_READ_REDUCTION_CONTINUATION_PLAN.md` and refreshed changed-surface release markers plus shared cache/docs markers for this phase commit.

v1.41.5

April 2026
  • Completed Firestore read-reduction Phase 5 final release sync and verification pass.
  • Marked the phased Firestore read-reduction roadmap complete and captured the merge-ready summary for phases 1 through 5.
  • Refreshed shared release markers (`package.json`, service-worker cache key, README current release line, documentation current version, AGENTS baseline, and phase tracker status) without changing runtime behavior.
  • Validation check (`npm run check:js`) passed for the finalized rollout branch state.

v1.41.4

April 2026
  • Completed Firestore read-reduction Phase 4 by gating the admin `Unlock Waits` action as an explicit manual global sweep.
  • Removed the duplicate pre-scan read pass; `Unlock Waits` now performs a single learner-wide scan that both detects and clears active one-week mission wait locks.
  • Added in-flight and short cooldown guards plus busy-state feedback on the admin button to reduce accidental repeated all-learner scans.
  • Updated changed-surface markers (`index` homepage script query tag and homepage analytics release label) and shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, AGENTS baseline, PROJECT_CONTEXT operator notes, and Firestore read-reduction plan phase status).

v1.41.3

April 2026
  • Completed Firestore read-reduction Phase 3 by reducing Learning Calendar and Completed Missions live-listener fan-out for lower-churn data lanes.
  • Replaced live completion-history listeners with one-time fetch hydration on both pages, and replaced Learning Calendar course-user-state live watch with one-time fetch hydration.
  • Kept higher-value real-time feeds active for queue/progress lanes so due-task and completion changes still stream live where they matter most.
  • Updated changed-surface markers (learning-calendar and completed-courses script query tags plus analytics release labels) and shared release/docs markers (package.json, service-worker cache key, README current release, documentation current version, AGENTS baseline, and Firestore read-reduction plan phase status).

v1.41.2

April 2026
  • Completed Firestore read-reduction Phase 2 by adding a shared cache-first one-time library bootstrap path in course-library-store for learner sessions.
  • Switched non-admin surfaces to the bootstrap path (homepage, Book, Codex, Learning Calendar, Completed Missions, and Question Analysis) while keeping admin sessions on live Firestore library watchers.
  • Kept split-model + legacy fallback compatibility and preserved shared policy/meta hydration through bootstrap metadata, with graceful cache fallback when a fresh fetch is unavailable.
  • Updated changed-surface markers (homepage + reader + planner script query tags and analytics release labels) plus shared release/docs markers (package.json, service-worker cache key, README current release, documentation current version, AGENTS baseline, and Firestore read-reduction plan phase status).

v1.41.1

April 2026
  • Started Firestore read-reduction rollout with Phase 1 duplicate-listener removal on the Book reader page.
  • Removed the second Firestore library subscription from book-vocab-bridge; it now consumes library snapshots broadcast by book-reader.
  • Kept existing vocabulary hover behavior while reducing same-page concurrent listener load for book sessions.
  • Updated changed-surface markers (book-reader page script query tags and reader analytics release label) plus shared release/docs markers (package.json, service-worker cache key, README current release, documentation current version, AGENTS baseline, and Firestore read-reduction plan phase status).

v1.40.72

April 2026
  • Unified learner `Forget Mission` behavior across homepage shelf removal, Learning Calendar, and Completed Missions so each flow performs the same hard reset scope.
  • Expanded calendar/completed forget cleanup to include homepage `courseUserState` pruning (Hyperspace + Hangar shelf ids, cooldown map, Hyperspace rules, and restart flags) plus local artifact cleanup parity.
  • Hardened course-user-state prune matching by canonicalized course-id token equivalence, fixing cases where forgetting from calendar/completed left missions pinned in Hangar/Hyperspace.
  • Updated changed-surface markers (`learning-calendar` and `completed-courses` script query tags plus analytics release labels) and shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, AGENTS baseline, and PROJECT_CONTEXT persistence notes) for this patch release.

v1.40.71

April 2026
  • Updated learner shelf removal confirmation to replace Keep Mission with Forget Mission while preserving Remove For 1 Week.
  • Added homepage full-forget mission flow that deletes learner progress/history docs and prunes mission traces from homepage user state for the current learner.
  • Added course-scoped local artifact cleanup during forget flow, including recall completion hints, Codex shortcut notes, local video fallback snapshots, and local IndexedDB mission blobs where present.
  • Updated changed-surface markers (`index` script query tag and homepage analytics release tag) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, AGENTS baseline, and PROJECT_CONTEXT persistence notes) for this patch release.

v1.40.70

April 2026
  • Simplified the Learning Calendar selected-day detail area into three top tabs: Plan, Completed, and Tasks.
  • Replaced boxed/pill tab controls with plain text tabs separated by thin lines to reduce visual clutter.
  • Kept tab behavior and panel content straightforward: one active tab, one visible panel, and no extra nested tab/button variants.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, AGENTS baseline, and markdown tracker progress log) for this patch release.

v1.40.69

April 2026
  • Refined Learning Calendar completion visuals so `Recall Completed` and `Course/Module Completed` are no longer color-identical.
  • Kept module/course completion badges green, introduced a distinct recall-completion cyan tone, and applied the same distinction in selected-day completion task status chips.
  • Split same-course mixed completions into separate month-day completion chips (for example, one recall chip and one module chip for the same course on the same day) with independent counts.
  • Increased visible day completion chips from 2 to 3 before overflow so mixed per-course completion patterns remain visible without opening detail panels.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, AGENTS baseline, and markdown tracker progress log) for this patch release.

v1.40.68

April 2026
  • Completed Learning Calendar learning-science Step 3 by introducing `UNBLA` (Utility-Optimized Next Best Learning Action) scoring for actionable tasks.
  • Added transparent priority weighting for urgency, forgetting risk, retention gain, and effort cost, then ranked actionable module/recall/transfer tasks each render cycle.
  • Replaced day-plan primary CTA behavior with a single `Next Best Action` route, including score and dominant driver context in the action note.
  • Expanded bottom `How This Is Calculated` to show ASRS + UNBLA formulas, live UNBLA top score/driver, and scientific rationale for action selection.
  • Step 2 (`MTCP`) remains intentionally deferred by request and is documented as not active in code.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, AGENTS baseline, and markdown tracker baselines) for this patch release.

v1.40.67

April 2026
  • Started Learning Calendar learning-science Step 1 with ASRS-style adaptive spaced retrieval scheduling in shared learning-scheduler logic.
  • Added ASRS memory-state fields (`asrsStability`, `asrsDifficulty`, `asrsRetrievability`, quality, interval) on Codex recall queue/outcome persistence.
  • Added a mandatory bottom `How This Is Calculated` panel in Learning Calendar with live ASRS metrics, formula summary, and science rationale for transparency.
  • Removed superseded tracker/plan markdown files and added `CALENDAR_LEARNING_SCIENCE_TRACKER.md` for the new phased implementation stream.
  • Updated changed-surface markers (`codex-reader` and `learning-calendar` script query tags plus analytics release labels) and shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.66

April 2026
  • Completed calendar production hardening Step 4 validation pass across sync reliability guardrails.
  • Validated watcher error behavior retains last-known-good data while still surfacing partial-sync diagnostics.
  • Validated no-user hydration fallbacks and diagnostics wheel lifecycle hardening paths, plus full `npm run check:js` syntax pass.
  • Validation-focused release: no additional runtime feature changes beyond prior hardening steps.

v1.40.65

April 2026
  • Completed calendar production hardening Step 3 by moving diagnostics wheel handling off the global window scope and into diagnostics-lane lifecycle binding.
  • Replaced global wheel interception with a diagnostics-row scoped listener so non-diagnostics page scrolling is unaffected.
  • Added safe rebind logic that detaches any prior diagnostics wheel listener before attaching a new one, preventing duplicate handler buildup in remount-style flows.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.64

April 2026
  • Completed calendar production hardening Step 2 by adding deterministic no-user hydration fallbacks for startup watcher paths.
  • Fixed early-return gaps in queue and user-state sync startup so hydration completes cleanly even when `userId` is temporarily unavailable.
  • Aligned no-user queue/video/user-state fallbacks to recompute and re-render immediately, preventing status from getting stuck in `Syncing learning schedule...`.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.63

April 2026
  • Started calendar production hardening Step 1 by preserving last-known-good sync data during watcher error callbacks.
  • Removed error-path state-clearing resets for library/queue/history/video/user-state so temporary sync failures no longer collapse calendar content to empty.
  • Kept `Partial` diagnostics behavior intact and updated error row-count reporting to reflect retained in-memory data.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.62

April 2026
  • Completed Learning Calendar UI refactor Phase 6 with final responsive and accessibility polish while preserving existing planning/recall behavior.
  • Refined mobile spacing/typography in calendar status, day-plan, and task-list areas to reduce crowding and improve scan clarity on smaller screens.
  • Hardened overflow handling for dense status/task metadata using multiline wrap and safer word breaks, and added reduced-motion fallback to minimize animation jitter.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.61

April 2026
  • Completed Learning Calendar UI refactor Phase 5 by reducing visual density in the selected-day task area and completion rows.
  • Shifted heavy card framing toward lighter separators/left accent rails, tighter spacing rhythm, and cleaner metadata presentation.
  • Kept all day-plan actions, recall/module task controls, and selected-day workflow behavior unchanged.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.60

April 2026
  • Completed Learning Calendar UI refactor Phase 4 by compacting sync diagnostics into a default summary line and making source-level detail cards optional.
  • Added a `Show Diagnostics` / `Hide Diagnostics` toggle so diagnostics details are collapsed by default and expanded only when needed.
  • Added compact diagnostics summary text (`healthy`, `syncing`, `partial`, plus issue labels) while preserving the same source health logic and status colors in expanded view.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.59

April 2026
  • Completed Learning Calendar UI refactor Phase 3 by consolidating mode context, compact summary, and schedule sync messaging into one status strip directly above diagnostics.
  • Reduced duplicated status wording by keeping mode context in the summary line and trimming repeated mode text from lower status messaging.
  • Kept all existing planning/recall behavior, task filtering semantics, and sync health logic unchanged while improving scan speed in the calendar header region.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.58

April 2026
  • Completed Learning Calendar UI refactor Phase 2 readability work while keeping the same planning, recall, and routing behavior.
  • Improved text readability across dense day-detail regions (plan, completion rows, and task metadata) by increasing size/line-height and reducing all-caps overload in descriptive lines.
  • Refined status messaging into compact bullet-separated summaries so sync and selected-day state is easier to scan without repeated pipe-heavy blocks.
  • Upgraded diagnostics interaction: horizontal hidden-scroll lane, inline hover details inside cards, and stronger mouse-wheel-to-horizontal scrolling over diagnostics cards.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.57

April 2026
  • Started Learning Calendar UI refactor Phase 1 (layout flattening) to reduce visual nesting without changing any planning, recall, or sync behavior.
  • Flattened right-side day-detail density by replacing multiple inner card boxes with lighter separator-based sections for plan steps, completion entries, and task rows.
  • Reduced box-heavy framing across high-density areas (task list, completion list, and diagnostics chips) using subtle line accents and spacing-first hierarchy.
  • Kept existing actions and flows unchanged, including all day-plan CTAs, module/recall routes, and sync diagnostics semantics.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.56

April 2026
  • Added a compact Learning Calendar sync diagnostics row under status with source-level cards for Library, Reading Queue, History, Progress, and User State.
  • Each source card now shows live sync health (Syncing, Healthy, Partial), record/course signal counts, and last successful update time to improve partial-sync debugging trust.
  • Wired diagnostics to every sync watcher success/error path so indicators stay accurate as snapshots hydrate, recover, or fail.
  • Updated selected-day behavior for completed modules so the day-plan/action cards prefer Review Debrief instead of continuing to show Start Module for modules already completed on that day.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.55

April 2026
  • Refined Learning Calendar Recall Quality into a GitHub-style weekly contribution grid with month labels, weekday rail, compact square activity cells, and a clearer Less-to-More legend.
  • Added an optional Isometric view toggle (`Show Iso` / `Hide Iso`) for the recall-quality voxel graph, with persisted visibility preference in browser storage.
  • Moved the full `Recall Quality (Last 28 Days)` panel below the main calendar/day-plan section so planning tasks appear first and quality analytics appear as a focused follow-up block.
  • Kept day selection linked across both visualizations: clicking either heatmap cells or isometric tiles still opens that date in the calendar/day task pane.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.54

April 2026
  • Added a new Recall Quality panel in Learning Calendar with a 28-day confidence heatmap that highlights daily recall quality bands and log volume.
  • Added Current streak and Best streak indicators so learners can quickly track recall consistency momentum.
  • Added confidence-mix and average-confidence summaries tied to current course focus, and made each heatmap day jump directly to that date in the calendar view.
  • Kept the visualization scoped to logged recall confidence events so quality metrics reflect actual completion outcomes rather than projected tasks.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.53

April 2026
  • Added explicit confidence selection for delayed recall completion in Codex readers so learners log Low, Medium, or High confidence with each recall completion.
  • Updated delayed-recall quick-complete handling to block completion until confidence is selected, and persist that confidence into learning-science outcome/queue data for adaptive scheduling.
  • Extended Learning Calendar task hydration to carry recall confidence from queue/outcome state and display confidence chips in recall/transfer task cards and day-plan details.
  • Added confidence distribution metrics in calendar compact/day summaries (H/M/L) so recall quality is visible alongside due counts and planning state.
  • Updated changed-surface markers (`codex-reader` and `learning-calendar` script query tags plus analytics release labels) and shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.52

April 2026
  • Added an adaptive missed-recall rescheduler in Learning Calendar that rebalances overdue recall/transfer tasks into a catch-up runway instead of stacking everything immediately.
  • Applied stage-aware and overdue-aware prioritization with daily and per-course caps so recovery remains scientifically sensible while avoiding overload spikes.
  • Updated recall task cards/day-plan labels with recovery context (Recovery state and adaptive meta) so learners can distinguish catch-up items from regular due items.
  • Added calendar status messaging that surfaces adaptive catch-up shifts and planning horizon visibility when overdue recalls are redistributed.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.51

April 2026
  • Added a compact selected-day Today Plan card in Learning Calendar to show ordered module/recall/transfer steps before the detailed task list.
  • Introduced per-task effort estimates and total day load estimates so recall/module workload is easier to plan at a glance.
  • Added clear day-level guidance with a primary action button (for example, Start Recall) when tasks are actionable, plus explicit locked/planned status when they are not yet available.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.50

April 2026
  • Added Learning Calendar task-view mode controls with Actionable and Actionable + Projected options for quick planning context switches.
  • Scoped month-cell badges, selected-day task cards, compact summary counts, forecast recall chips, and status messaging to the selected task-view mode so visible numbers always match what the learner is seeing.
  • Persisted the selected task-view mode and synced it to URL state (`taskView`) to keep navigation/share behavior consistent across refreshes.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.49

April 2026
  • Hardened Learning Calendar queue hydration to dedupe by review key using freshness-aware row selection, preventing first-hit stale rows from winning.
  • Fixed recall completion-hint storage handling by consistently reading from session hints and clearing both session/local residues during forget resets.
  • Added legacy compatibility read for user-state cooldown aliases (`courseAccessCooldownsByMission`) so lock visibility remains accurate for older learner documents.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.48

April 2026
  • Fixed a Hyperspace resume regression where some in-progress Red Pill missions could be marked completed too early and pruned from Hyperspace.
  • Hardened homepage completion detection to compare cleared progress against the mission's actual module count from the shared library, instead of only counting currently-saved progress rows.
  • Kept Red-mode completed missions pinned when an active Hyperspace rule exists, preventing accidental rule/shelf cleanup while the learner should still continue in Hyperspace.
  • Updated changed-surface markers (`index` script query tags and `main.js` analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.47

April 2026
  • Updated Codex Reader cadence quick-access in the header to be icon-only, removing the visible cadence text chip while preserving the same one-click open/edit behavior.
  • Kept cadence state discoverable through the icon hover text and accessible labels, including current pace details when cadence is active.
  • Refined the cadence icon control wording so the dock stays cleaner while still exposing setup intent and current pacing for keyboard/screen-reader usage.
  • Updated changed-surface markers (`codex-reader` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.46

April 2026
  • Replaced generic Learning Calendar day-level Done chips with compact course-aware completion badges so each completion marker shows which mission it belongs to.
  • Added a focused Completed On This Day card in the selected-day panel that lists the completed module/course entries with course name, module label/title, and completion time.
  • Fixed selected-day rendering so completion details still appear even when there are no module/recall/transfer tasks for that date.
  • Polished completion-row visual spacing and readability in the right-side day panel without changing the overall Interstellar calendar theme.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.45

April 2026
  • Added a minimal in-context Forget action in Learning Calendar’s completed-course strip that only appears when one course is focused, keeping the top UI clean while enabling direct reset.
  • Added a Forget Mission action in Completed Missions cards to reset a finished course from that archive surface as well.
  • Wired both forget flows to delete learner course traces across completion history and progress docs (reading/video), clearing associated recall scheduling so the course behaves as never taken for that learner.
  • Added local recall-completion hint cleanup for forgotten courses to prevent stale completed-state carryover during queue hydration.
  • Updated changed-surface markers (`learning-calendar` and `completed-courses` script query tags plus analytics release labels) and shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.44

April 2026
  • Refined Learning Calendar header framing with codex-style spacing and panel treatment while keeping the same mission-theme visual language.
  • Added completed-course navigation chips that show real completed course names and let learners focus the calendar to one selected mission at a time.
  • Applied focus-aware fading in month cells and task cards so non-selected course items stay visible but clearly de-emphasized.
  • Hardened completed-course nav data sourcing so courses still appear even when completion-history rows have no active nextDueAtMs value.
  • Fixed completed-course chip hover clipping by adding vertical breathing room in the scroll row.
  • Updated changed-surface markers (`learning-calendar` script query tag and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.43

April 2026
  • Simplified Learning Calendar top chrome into a compact header with just Learning Calendar and a single Back To Missions action.
  • Removed the redundant KPI summary-card strip and replaced it with a compact single-line schedule summary above the month grid.
  • Moved recall forecast into a cleaner collapsible panel below the main two-column layout, reducing repeated high-density blocks while preserving forecast detail on demand.
  • Flattened panel hierarchy and spacing in the Learning Calendar surface to reduce visual clutter without changing scheduling/recall logic.
  • Updated changed-surface markers (`learning-calendar` script query tags and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.42

April 2026
  • Fixed recall completion sync so post-redirect calendar/home surfaces no longer keep stale actionable Recall/Start Recall cards after Log Recall Complete succeeds.
  • Added source-aware recall return routing from readers: after Done, recall launched from calendar returns to Learning Calendar and recall launched from daily queue returns to Home.
  • Hardened recall queue dedupe in homepage and Learning Calendar by preferring freshest queue rows (attempt/time/stage/status) and filtering stale duplicates.
  • Added short-lived session completion hints to bridge Firestore propagation lag, ensuring immediate completed-state rendering right after redirect.
  • Updated changed-surface markers (`index`, `learning-calendar`, and `codex-reader` script query tags and analytics release labels) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.41

April 2026
  • Added reliable module-level spaced-recall seeding for completed Codex modules with no quiz checkpoints, plus legacy backfill so already-completed modules appear in recall scheduling.
  • Added delayed-recall completion support for no-checkpoint module recalls in Codex via a direct Log Recall Complete action in the recall banner.
  • Expanded Learning Calendar recall planning to show projected future recall stages (using shared learning-science interval policy assumptions) and surfaced a total planned recall-stage count.
  • Removed calendar Watch tasks so learner planning now focuses on Module, Recall, and Transfer actions without long-video rewatch prompts.
  • Updated changed-surface markers (`codex-reader` and `learning-calendar` script query tags and analytics release labels) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, documentation current version, and markdown baselines) for this patch release.

v1.40.40

April 2026
  • Redesigned the Codex inspector-pane post-video completion area to be far easier to read, with larger typography, wider spacing, and cleaner hierarchy across challenge and completion sections.
  • Reworked module completion checklist rows into roomy status cards with clearer READY/PENDING badges and separated detail lines to remove the congested look from the previous layout.
  • Simplified right-pane completion copy so the action state is immediately understandable when no coding exercise is configured for a module.
  • Updated changed-surface markers (`codex-reader` script query tags, reader release comment, and analytics release label) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, and markdown baselines) for this patch release.

v1.40.39

April 2026
  • Improved homepage media mission title readability by keeping disc title tags compact by default but expanding them on hover/focus to reveal longer names.
  • Updated opened mission reveal cards to show fuller media mission titles directly in the disc tag without requiring hover interaction.
  • Kept the existing Interstellar-inspired disc rack visual direction unchanged while tuning only title visibility behavior.
  • Updated changed surface styling (`public/css/index.css`) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, and markdown baselines) for this patch release.

v1.40.38

April 2026
  • Added multi-module Red Pill cadence setup in Codex readers so learners can choose pacing like 3 modules every 1 day or 3 modules every 1 week.
  • Extended shared chapter unlock scheduling to support grouped unlock windows via modulesPerInterval, including grouped unlock timing and cadence label formatting.
  • Fixed Learning Calendar day chips to show scheduled module numbers instead of raw module-task counts, and ensured grouped cadence values are normalized when read from persisted cadence sources.
  • Synchronized reader cadence apply/dismiss actions into shared courseUserState.hyperspaceRulesByCourse[*].chapterCadence so calendar scheduling reflects the latest learner-selected cadence instead of stale rule values.
  • Updated changed-surface markers (`codex-reader` and `learning-calendar` script query tags plus analytics release labels) and shared release/docs markers (`package.json`, service-worker cache key, README current release, and markdown baselines) for this patch release.

v1.40.37

April 2026
  • Added admin controls to hide/unhide entire row categories inside each mission class (for example a full "Category 2" row), with row-level eye toggles shown in the homepage mission stacks.
  • Updated learner visibility gating so missions under hidden row categories are filtered out for learners while remaining visible to admins with a clear \"Row hidden\" status badge for quick restore.
  • Refined login success transition to a cleaner airlock walkthrough: short approach while doors open, then a direct enter-through-door push to home without the previous bright core effect.
  • Updated changed-surface markers (`index`/`main` and `login` script query tags plus analytics release tags) and shared release/docs markers (`package.json`, service-worker cache key, README current release, and markdown baselines) for this patch release.

v1.40.36

April 2026
  • Replaced brittle timestamp-based "add thinking break at end of all modules" behavior with a module-level post-video thinking-duration configuration that works even when modules have different clip lengths.
  • Added learner runtime flow to trigger the standard thinking-break calm timer and recall-capture notes screen immediately after a module video completes, then continue the normal post-video checkpoint/challenge sequence.
  • Persisted module-end thinking duration in chapter normalization/save flows and retained synthetic module-end break completion ids so repeat completion handling is stable across reloads.
  • Updated changed-surface markers (`codex-reader` script query tags and analytics release tag) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, and markdown baselines) for this patch release.

v1.40.35

April 2026
  • Added admin-only module-row actions in the Codex left sidebar: simple pencil icon for inline module title edit and simple trash icon for module delete.
  • Wired sidebar actions to cloud persistence flows so title edits patch the target module and deletes reindex/persist the remaining module order for the mission.
  • Refined module action affordances to larger icon-only controls (no boxes), keeping just the two one-line SVG icons requested for the admin module list.
  • Updated changed-surface markers (`codex-reader` script query tags and analytics release tag) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, and markdown baselines) for this patch release.

v1.40.34

April 2026
  • Added a Codex admin inspector action to split one long module into multiple modules at thinking-break boundaries, with cloud save that rewrites chapter ordering in the mission.
  • Added module-clip HUD rendering in Codex video playback (`elapsed / clip duration` + clip progress fill) and start-boundary clamping so split modules behave like short standalone segments.
  • Updated changed-surface markers (`codex-reader` script query tags and analytics release tag) plus shared release/docs markers (`package.json`, service-worker cache key, README current release, and markdown baselines) for this patch release.

v1.40.33

April 2026
  • Updated Codex local-video restore flow to persist `FileSystemFileHandle` references and reopen the same mission video on subsequent course loads without forcing manual re-selection.
  • Added permission-aware handle reconnect behavior on local-video picker interaction, plus resilient blob fallback paths for browsers or environments where persistent handle restore is unavailable.
  • Refreshed changed reader surface markers (`codex-reader` script query tags and analytics release tags) and shared release/docs markers (`package.json`, service-worker cache key, README current release, and markdown baselines) for this patch release.

v1.40.32

April 2026
  • Added a Firebase CLI wrapper script (`scripts/firebase-cli.mjs`) that strips proxy-related environment variables before invoking Firebase commands, preventing JSON-parse deploy failures caused by proxy-injected HTML/error responses.
  • Updated deploy scripts to run through that wrapper and redirected Firebase CLI configstore writes to a repo-local config home so deploys no longer fail on machine-level config permission errors.
  • Updated shared release/docs markers (`package.json`, service-worker cache version, README current release line, documentation current version, and markdown baselines) for this patch release.

v1.40.31

March 2026
  • Fixed local-video startup flow in Codex readers so selecting a local file immediately arms playback intent and starts reliably without getting stuck behind the startup gate.
  • Updated Codex local-file handling to render/play the selected video before awaiting IndexedDB blob-cache persistence, preventing delayed or failed startup on larger files.
  • Updated changed-surface markers (`codex-reader` script query tags and analytics release labels) plus shared release/docs markers (`package.json`, service-worker cache version, README current release line, and markdown baselines) for this patch release.

v1.40.30

March 2026
  • Removed the UTF-8 BOM prefix from `package.json`, restoring strict JSON compatibility for tools that reject BOM-prefixed descriptors.
  • Resolved Tailwind CSS IntelliSense project-loading parse failures caused by the unexpected BOM byte at the start of the package descriptor file.
  • Updated shared release/docs markers (`package.json`, service-worker cache version, README current release line, and markdown baseline docs) for this patch release.

v1.40.29

March 2026
  • Reworked the Codex top header actions into an icon-only navigator dock to reduce text clutter while keeping core controls instantly accessible.
  • Replaced generic icon-font usage in that header strip with custom SVG mission glyphs for lock state, runtime, debrief, shortcuts, reset options, and return-to-missions actions.
  • Refined icon sizing and hover behavior so only the hovered glyph scales and glows, while separator partition lines stay fixed for cleaner motion.
  • Updated changed-surface and shared release markers (`codex-reader` assets, package version, service-worker cache key, and markdown/docs baselines) for this patch release.

v1.40.28

March 2026
  • Redesigned the Codex module navigator as a cleaner low-clutter pane with thin separators, subtle hover motion, and state-first edge indicators.
  • Restored module subtopic visibility under the active module while keeping module rows simple, and tuned module/subtopic text to remain fully readable (no clipped titles).
  • Updated navigator state semantics so completed modules use green indicators, upcoming locked modules use a lighter subtle line treatment, and module numbers render as Roman numerals.
  • Removed the workspace-kicker copy block ("Timeline Workspace") and refreshed changed-surface/shared release markers, service-worker cache version, and markdown/docs baselines for this patch release.

v1.40.27

March 2026
  • Cleaned mojibake/garbled text artifacts in Academic reader, Codex reader, homepage search metadata rendering, and related UI comments/labels.
  • Replaced corrupted transfer-prompt and mission-meta separators with plain ASCII-safe text for consistent rendering across environments.
  • Updated release-marker workflow docs to avoid blanket per-page query/version rewrites and to scope marker updates to changed surfaces plus shared cache/docs markers.
  • Updated package version, service-worker cache version, changed-surface script query tags, and markdown/docs baselines for this patch release.

v1.40.26

March 2026
  • Added learner keyboard shortcuts for faster study flow in Codex readers, including note, editor focus, run, and playback toggles with typing-safe guards.
  • Introduced a header keyboard-help icon with a compact shortcuts popover on Codex pages for discoverable controls.
  • Added Codex quick-note capture panel (shortcut-opened, module-scoped local autosave) to reduce context switching during coding missions.
  • Updated release markers, script/cache query tags, service-worker cache version, analytics release labels, and markdown/docs baselines for this patch release.

v1.40.25

March 2026
  • Added a subtle active-search cinematic veil (tint + light blur) behind the global search shell to improve focus without overpowering mission content.
  • Tuned the veil intensity after feedback by reducing blur strength and dark-overlay density for a cleaner, less heavy visual pass.
  • Refined search-result jump behavior so selected missions scroll smoothly and land lower in the viewport, reducing clipped-above-the-fold starts.
  • Updated release markers, script/cache query tags, service-worker cache version, analytics release labels, and markdown/docs baselines for this patch release.

v1.40.24

March 2026
  • Simplified the floating global search to a clean single-bar shell with a search icon and subtle animated perimeter light.
  • Restyled live recommendations as low-clutter line-partition rows (no card boxes), with tuned left inset spacing and softer active highlight.
  • Adjusted search bar geometry (narrower width, slightly taller shell, lowered vertical placement) for both desktop and mobile.
  • Backfilled missing `v1.40.x` release notes in this Flight Log and refreshed release markers/docs baselines for this patch release.

v1.40.23

March 2026
  • Fixed hosted shelf-rocket regressions by pausing mission-stack rerenders while travel is in flight, then flushing a deferred render after landing/cancel paths finish.
  • Added fallback row waypoint synthesis when hidden-row card bounds resolve to zero-width in hosted layout timing, so route traversal still gets valid card targets.
  • Hardened service-worker network failure behavior with intro-audio offline fallback and analytics/tag-manager network-only bypass so fetch rejections do not destabilize runtime.
  • Updated release markers, script/cache query tags, service-worker cache version, analytics release labels, and markdown/docs baselines for this patch release.

v1.40.22

March 2026
  • Added keyboard-first global mission search (`S`) with ranked matching across mission title, author, class metadata, and chapter keyword fields.
  • Improved phone search usability with safe-area aware card sizing, larger mobile input readability, and a dedicated close control inside the floating shell.
  • Hardened mobile result interactions by enabling touch-optimized scrolling/tap targets and supporting on-screen keyboard submit behavior.
  • Made mission jump more reliable on phones by using keyboard-aware selection delay plus follow-up scroll retries after row expansion.
  • Updated release markers, script/cache query tags, service-worker cache version, analytics release labels, and markdown/docs baselines for this patch release.

v1.40.21

March 2026
  • Introduced keyboard-first global mission search overlay (`S`) with ranking across mission title, author, class metadata, and chapter keywords.
  • Added arrow-key navigation and Enter-to-launch behavior so learners can jump directly to the best mission match without manual shelf scanning.
  • Kept mission jump flow compatible with row stacks by expanding the needed row and scrolling focus to the matched mission card.
  • Added the initial release markers/docs sync for this patch baseline.

v1.40.20

March 2026
  • Locked page scrolling while the shelf rocket is in flight so the travel path stays visually anchored during `Reveal Next Row` and collapse runs.
  • Preserved the right scrollbar gutter during travel lock to prevent viewport-width shifts that could nudge the fixed rocket away from its dock base.
  • Applied safe unlock handling across landing, cancellation, and token-mismatch exits so scroll state restores reliably after each rocket pass.
  • Updated release markers, script/cache query tags, service-worker cache version, analytics labels, and markdown/docs baselines for this patch release.

v1.40.19

March 2026
  • Moved shelf exploration to a single shared rocket dock anchored at the viewport right-bottom corner, outside mission-class sections.
  • Preserved existing row reveal/collapse route behavior while making every launch originate from the fixed dock (chatbot-style position) before traveling to the active class row.
  • Added dock ignition/glow feedback on launch and tuned landing offsets so the rocket parks directly on its base when idle.
  • Updated release markers, script/cache query tags, service-worker cache version, analytics labels, and markdown/docs baselines for this patch release.

v1.40.18

March 2026
  • Changed row expansion timing so hidden rows open progressively during rocket traversal instead of popping open instantly.
  • Synced row opening with rocket approach waypoints, preserving one-by-one mission reveal while making the shelf expansion feel physically staged.
  • Removed the vertical route-guide lines from expansion mode and shifted travel ambience to softer glow/streak motion for a cleaner cinematic pass.
  • Updated release markers, script/cache query tags, service-worker cache version, analytics labels, and markdown/docs baselines for this patch release.

v1.40.17

March 2026
  • Replaced right-lane-only rocket travel with route-based shelf traversal so the rocket now explores across each newly opened row.
  • Switched row expansion reveal to per-course sequencing: missions unlock one-by-one as the rocket reaches each course waypoint.
  • Expanded the travel overlay to full shelf width while keeping the right dock, then tuned streak/plume/shockwave motion for stronger Interstellar-style propulsion feedback.
  • Updated release markers, script/cache query tags, service-worker cache version, analytics labels, and markdown/docs baselines for this patch release.

v1.40.16

March 2026
  • Reworked mission-class shelves into category-aware row stacks so missions can be grouped by row category inside each class instead of only fixed grid slices.
  • Added admin row-category authoring (`Row Category (Inside Class)`) with inline existing-category presets so missions can be assigned to shared rows without retyping labels.
  • Refined shelf spacing and row-label treatment (top-right, subtle, and bolder) to strengthen the physical Interstellar bookshelf presentation.
  • Updated release markers, script/cache query tags, service-worker cache version, analytics labels, and markdown/docs baselines for this patch release.

v1.40.15

March 2026
  • Fixed learner mission-state syncing so completed Codex/reading missions are pruned from Hyperspace instead of lingering as active cards.
  • Cleared stale Hyperspace run metadata for completed missions by removing obsolete rule and restart flags from per-user `courseUserState` snapshots.
  • Updated Completed Missions progress parsing to support both reading progress shapes (`chapterProgress` and `chapters`), restoring Codex mission visibility in the archive.
  • Refreshed release markers, script/cache query tags, service-worker cache version, analytics labels, and docs for this patch release.

v1.40.14

March 2026
  • Added the Completed Missions archive rollout with live mission listing, mission-type/recall filters, and rich review panels for finished courses.
  • Backfilled immutable completion-history snapshots from existing progress docs and surfaced a per-mission timeline for run-by-run visibility.
  • Added completed-page retake launch actions that start cleanly from module one using explicit restart and launch policy parameters.
  • Corrected phased step versioning to incrementing order and refreshed release markers, script/cache version tags, analytics labels, and docs for this release.

v1.40.13

March 2026
  • Backfilled completion-history timeline rendering so finished missions show clearer run-by-run mission progress chronology.
  • Improved completed-missions detail flow to surface richer historical context for learner review and follow-up retakes.
  • Carried phased rollout step alignment forward in release markers and docs.

v1.40.12

March 2026
  • Expanded Completed Missions filter controls and review-panel coverage for faster mission archive triage.
  • Strengthened filter/sort cohesion so learners can isolate mission type and recall urgency without losing context.
  • Aligned phased release notes/docs references for the step-2 rollout slice.

v1.40.11

March 2026
  • Laid the Completed Missions archive foundation with dedicated page shell, mission summary framing, and baseline review interactions.
  • Prepared the initial data wiring paths for completion-centric archive rendering.
  • Established phased release scaffolding so later archive steps could land incrementally without flow regressions.

v1.40.10

March 2026
  • Fixed Codex `Mark Complete` readiness regression by restoring shared string normalization used by checkpoint and thinking-break summaries.
  • Changed thinking-break completion gating to require only breaks inside the active +60 second trigger window (or active break), so skipped-outside-window breaks no longer block completion.
  • Improved completion checklist messaging to show when configured breaks are outside the required trigger window instead of reporting false pending locks.
  • Refreshed release markers, script/cache version tags, analytics labels, and markdown/docs baselines for this patch release.

v1.40.9

March 2026
  • Enforced explicit learner click-to-start playback in Codex readers so module videos no longer auto-play on first launch or refresh.
  • Reworked startup playback gating to prevent black-screen regressions while still holding playback until learner intent is confirmed.
  • Hardened Codex admin edit visibility by mounting inspector controls early and preserving admin tooling when downstream learner-pane rendering fails.
  • Refreshed release markers, cache/query version tags, analytics release labels, and markdown/docs baselines for this patch release.

v1.40.8

March 2026
  • Reinforced Codex admin inspector resilience so editing controls remain visible even when downstream chapter render paths fail.
  • Improved recovery behavior in admin workflows to reduce dead-end states after runtime render exceptions.
  • Refreshed release markers and docs references for this patch line.

v1.40.7

March 2026
  • Hardened learner recall queue integrity and self-heal wiring across Codex reader, homepage queue views, and learning-calendar surfaces.
  • Upgraded learning-calendar planning clarity with explicit overdue/7-day/30-day recall forecasting plus per-task stage visibility.
  • Added stricter completion-readiness checklists for Codex learners, including stronger reflection requirements and clearer lock feedback.
  • Introduced reusable sci-fi mission certificates with shape variants (Starship, Endurance Ring, Wormhole Grid), on-screen previews, and one-click PNG download.
  • Expanded automated QA coverage with completion-scheduling/day-boundary tests and refreshed release markers, cache keys, analytics tags, and docs.

v1.40.6

March 2026
  • Expanded production QA coverage for recall/completion behavior with broader edge-case scenario checks.
  • Improved pre-release validation confidence for learner completion states across Book/Codex flows.
  • Synced test-focused release markers/docs for this patch increment.

v1.40.5

March 2026
  • Added mission completion certificate generation with downloadable PNG export for learner celebration/share artifacts.
  • Integrated certificate rendering into post-completion flow without disrupting existing completion gating.
  • Updated release markers/docs for the certificate rollout slice.

v1.40.4

March 2026
  • Hardened mission completion gating and learner-facing completion summaries for stronger readiness signaling.
  • Reduced false-positive completion states by tightening prerequisite evaluation before mission clear actions.
  • Synced release markers/docs for this completion-readiness patch.

v1.40.3

March 2026
  • Improved learning-calendar recall planning clarity with stronger due-window cues and cleaner scheduling summaries.
  • Refined calendar task visibility so learners can prioritize overdue vs. upcoming recall actions faster.
  • Updated release markers/docs for this planning clarity patch.

v1.40.2

March 2026
  • Wired recall-state self-heal paths across reader, homepage, and planning surfaces to reduce stale/missing queue artifacts.
  • Improved cross-surface consistency when recall items are created/updated from different mission runtimes.
  • Refreshed release markers/docs for this interoperability patch.

v1.40.1

March 2026
  • Hardened recall queue integrity normalization and test coverage to prevent malformed learner recall state merges.
  • Strengthened recall data guardrails around edge-case progress payloads and shape drift.
  • Updated release markers/docs for this stabilization patch.

v1.40.0

March 2026
  • Started the phased course production-readiness rollout with explicit execution planning for recall, completion, and QA hardening milestones.
  • Defined staged implementation order to ship reliability upgrades incrementally without destabilizing learner runtime.
  • Introduced initial release markers/docs for the `v1.40.x` production-readiness stream.

v1.39.9

March 2026
  • Completed the phased Codex admin redesign by introducing the 3-pane shell (Navigator, Timeline Workspace, Inspector) and tightening module navigation readability.
  • Added progressive inspector tabs plus Advanced drawers to keep everyday editing focused while preserving prompt/JSON batch power tools.
  • Reworked admin status surfaces with concise chip copy, tooltip context, and inline field-level validation for faster error recovery.
  • Improved editing smoothness with focus-preserving rerenders and unobtrusive save feedback, then added keyboard/accessibility polish (`Ctrl/Cmd+S`, Alt tab shortcuts, tabpanel semantics, and contrast tweaks).
  • Refreshed release markers, script version query params, analytics release tags, service-worker cache key, package version, and project docs for this release.

v1.39.0

March 2026
  • Added Mission Control JSON module import for Codex missions, so each pasted `title` + `link` entry is converted into a new Module automatically.
  • Expanded admin module-link tooling to support both mission types with tolerant key parsing (`title`/`name`, `link`/`url`/`videoUrl`) and direct chapter generation in the selected mission.
  • Updated video mission playback to honor per-module `videoUrl` when present, including player re-init on module switches across different links and safer fallback module timing for link-only imports.
  • Refreshed validation, analytics/version markers, service-worker cache key, and surfaced docs for this release.

v1.38.44

March 2026
  • Fixed Book Reader header/DOM mismatch by restoring `course-heading`, `chapter-heading`, and `theme-toggle` elements expected by `book-reader.js` bindings.
  • Restored live header metadata updates for chapter count and active module title without changing learner/admin gating logic.
  • Brought back the explicit header theme button so standard theme switching remains available alongside title-selection theme gesture behavior.
  • Updated surfaced release markers and docs for this patch release.

v1.38.43

March 2026
  • Hardened Codex forward-seek guard so rapid jumps must satisfy at least 80% in-video checkpoint completion in the skipped range (answered or skipped both count).
  • Added learner feedback when seek is blocked, including range coverage and explicit instruction that older unattempted checkpoints in the module will now appear.
  • Constrained thinking-break activation to the checkpoint timestamp through +60 seconds, preventing stacked retroactive thinking-break popups after large seeks.
  • Refreshed surfaced release markers (entrypoint query params, analytics tags, service-worker cache key, and package version) for this patch release.

v1.38.42

March 2026
  • Added a configurable skip-unlock timer for Codex module-end checks, with a default lock of 5 minutes before learners can skip.
  • Enforced learner skip gating in runtime so module-end check skips remain disabled until the configured timer expires, while admin preview behavior stays unrestricted.
  • Extended Codex admin module-end question editing and JSON/import normalization to store and preserve per-question skip unlock timing safely.
  • Refreshed release markers (entrypoint query params, analytics tags, service worker cache key, and package version) for this patch release.

v1.38.41

March 2026
  • Moved the three Book Reader typography pull strings from the header strip into the Module Navigator area for a cleaner reading header.
  • Removed the old Module Navigator unlock-helper sentence and centered the string stack so tuning controls sit neatly in the navigator block.
  • Repositioned the Recall/Summary/Time progress gate chip back to the header right status rail while keeping reader controls in the left navigator.
  • Expanded word spacing range from 20 to 40 so readers can apply stronger spacing for accessibility and comfort.

v1.38.40

March 2026
  • Switched Book Reader theme changing to a subtle title gesture: highlighting the full book name now toggles theme, removing the dedicated theme button from the header rail.
  • Hardened full-title selection detection so both left-to-right and right-to-left drag highlights trigger reliably, including slight overshoot selections that still cover the full title.
  • Restored full three-theme cycling (`dark` -> `light` -> `book-light`) for title-based toggles so Book Light remains accessible in the new interaction.
  • Added pointer-end selection handling with browser fallback and a short debounce window to prevent accidental double toggles from duplicate input-end events.

v1.38.39

March 2026
  • Reworked Book Reader text tuning controls into a cinematic three-string pull interaction with stacked colored strings and draggable dots.
  • Removed visible Font/Line/Word labels and box containers so only the string controls remain in the header, keeping controls minimal beside the book title.
  • Added over-pull behavior: strings can be dragged well beyond normal limits, then snap cleanly back to the nearest max/min boundary on release.
  • Kept theme toggle and progress gate inline with the same compact header control strip, and refreshed release/cache markers for this patch.

v1.38.38

March 2026
  • Allowed Book Reader admins to open any module directly from Module Navigator without learner unlock gating, so editor navigation is never blocked by prior-module completion rules.
  • Cleaned Book Reader header controls into icon-first status/actions: focus state icon, admin editor mode icon, and icon-only Back control for less visual clutter.
  • Removed the unnecessary `Final module reached` header lock tag while preserving lock-status messaging when upcoming modules are still gated.
  • Updated Book Reader version markers, analytics release tag, service-worker cache key, and docs for this patch release.

v1.38.37

March 2026
  • Fixed Book Reader glossary JSON parsing to accept page-key fragment payloads such as `"2": { ... }` by safely wrapping and parsing object-like fragments before validation.
  • Sanitized glossary hover lookup terms/definitions so raw JSON punctuation no longer leaks into tooltips (removed wrapping quotes and trailing commas from displayed tokens).
  • Ignored JSON container markers (like `{`, `}`, and page wrapper rows) during fallback glossary map construction so hover lookup resolves only real word-definition pairs.
  • Updated Book Reader bundle/version markers and service-worker cache key to ensure glossary parsing fixes load on refreshed hosted sessions.

v1.38.36

March 2026
  • Extended Book Reader glossary editing to support simple page-keyed JSON mappings (`{"1":{"word":"meaning"}}`) while preserving legacy `word: meaning` line mode.
  • Added stronger glossary validation and admin feedback so malformed JSON is rejected before module save/prompt copy, preventing silent lookup failures.
  • Improved hover vocabulary lookup reliability by syncing chapter/page context more aggressively and adding fallback map construction from rendered glossary rows when upstream data is delayed.
  • Added an inline hover meaning popup near the cursor in reading text and kept the right-rail Word Lookup panel in sync for the same matched term.
  • Updated Book Reader version markers and service-worker cache key to force fresh bundle fetches after glossary-hover fixes.

v1.38.34

March 2026
  • Added Book Reader admin PDF import in module editing mode so admins can upload a PDF and extract page text directly into Reading Text without leaving the reader.
  • Mapped imported PDF content to reader pagination by joining extracted pages with `---` separators, so each original PDF page becomes one rendered reading page.
  • Added safe import-button fallback messaging when the PDF import handler is not yet available in a stale browser bundle, preventing a hard runtime crash.
  • Updated Book Reader script query tags and analytics release markers to force newer asset fetches after service-worker/cache drift.

v1.38.33

March 2026
  • Added cinematic mission-signature identity surfacing for logged-in users and polished Book Reader admin workspace behavior so module navigator and reading panel stay visible while the editor gets more usable width.
  • Added an admin-only close (`x`) control for the Recall Checkpoint modal in Book Reader so admins can dismiss forced recall prompts during editing/review sessions.
  • Split Book Reader module content into in-reader pages with Prev/Next navigation and page status indicators, replacing the single long-scroll reading surface.
  • Scoped auto recall-modal triggering to the final reading page and preserved canonical reading HTML persistence so highlights/notes remain stable across paginated rendering.

v1.38.23

March 2026
  • Completed learning-science learner analytics using persisted progress records: 7-day retention, 30-day retention, overdue load, and transfer score on the homepage recall queue.
  • Added shared admin recall-science defaults in Global Mission Mode settings with spacing presets and daily recall caps, persisted through `oasisMeta/courseLibraryMeta` and preserved across full library publishes.
  • Wired Codex delayed-review interval selection to shared learning-science policy defaults and hardened Codex handling of meta-only library snapshots to avoid unnecessary payload processing.
  • Ran final hardening checks and refreshed surfaced release markers, analytics release tags, cache-busting query params, and service-worker cache key for this release.

v1.38.9

March 2026
  • Scoped strict Red Pill forward-seek blocking in Codex to restart-locked modules only, so normal Red launches can move ahead while restart runs stay guarded.
  • Fixed Red launch intro completion to prevent end-of-audio tail replay; once the intro finishes naturally, mission launch proceeds immediately.
  • Kept unskippable intro behavior during playback while avoiding auto-resume at the natural end boundary.
  • Refreshed surfaced release markers, analytics release tags, cache-busting query params, and service-worker cache key for this patch release.

v1.38.8

March 2026
  • Added one-week mission lock guard parity in Book and Codex readers so launch and in-reader refresh/resume paths re-check courseUserState cooldown locks.
  • Added pageshow lock re-validation across Book and Codex readers to close browser back/restore loopholes that could reopen locked missions after shelf removal.
  • Hardened reader launch constraints to enforce Red Pill due-date expiry checks before loading course content.
  • Improved homepage shelf-removal lock sync handling with explicit user warning when immediate cloud lock persistence fails after mission removal.
  • Refreshed surfaced release markers, cache-busting query tags, analytics release strings, and the service-worker cache key for the patch.

v1.38.1

March 2026
  • Removed the native browser title tooltip from shelf mission cards so pinned and docked missions no longer trigger the default hover popup.
  • Kept the mission-card accessibility labels intact so screen readers still announce the same open and remove actions after the UI cleanup.
  • Updated surfaced release markers, cache-busting query tags, analytics release strings, and the service-worker cache key for the patch.

v1.38.0

March 2026
  • Persisted local-video file selections for Codex mission flows in browser IndexedDB so required local videos survive refresh/restart on the same device.
  • Added boot-time restore of local-video files for both readers so chapters/modules configured for device-local video reopen with their prior selected file when available.
  • Hardened progress recovery by merging local fallback snapshots with Firestore progress on boot to avoid losing newer local progress after offline gaps or interrupted saves.

v1.37.1

March 2026
  • Merged local video fallback progress snapshots with Firestore progress on boot to preserve the most complete resume state after refreshes, crashes, or network gaps.
  • Added deterministic merge logic for segment watch timing, checkpoints, reflections, question results, and chapter unlock timing so local snapshots no longer overwrite newer cloud records.
  • Updated release markers and cache-busting strings across readers, homepage, login, analytics tags, and service worker cache name for the same patch.

v1.37.0

March 2026
  • Added a persistent Mission Control draft-scope badge that clearly marks unsaved admin edits as browser-local drafts until Save Star Chart publishes them.
  • Introduced a dedicated local draft-cache discard action so admins can explicitly clear recovered draft snapshots and reset to the latest synced library.
  • Replaced the logout warning confirm with a three-path admin decision flow: Save and Logout, Discard Local Draft and Logout, or Cancel.

v1.36.4

March 2026
  • Locked Debrief module navigation to saved completed modules only, so clicking or deep-linking into unfinished modules no longer exposes their prompt sets.
  • Added a Debrief fallback that redirects to the nearest completed module, or shows a clear locked-empty state when no modules are completed yet.
  • Fixed debrief progress loading to read from the active reader progress collection, so completion gating and official results match the saved mission record.

v1.36.5

March 2026
  • Moved Global Pill Mode defaults into the shared `oasisMeta/courseLibraryMeta` document so homepage admin changes now publish across browsers and users instead of staying stuck in one local profile.
  • Kept normal library publishes and meta-only library snapshots compatible with the shared pill policy so saving courses or categories no longer wipes the global Red/Blue defaults.
  • Changed browser `localStorage` pill settings into a cache/bootstrap layer only, so sessions converge on the shared published policy once Firestore metadata loads.

v1.36.3

March 2026
  • Fixed Codex Recall Capture voice recording finalization so stopping after the calm timer now saves the finished clip instead of incorrectly falling through to `No audio captured.`
  • Persisted Thinking Space voice-note metadata alongside saved recall notes in Codex progress so those references survive for future Debrief review.
  • Added a dedicated Recall Capture section in Codex Debrief that shows saved note text and same-device playback when the local voice-note clip is still available in the browser.

v1.36.2

March 2026
  • Removed the Red Pill launch skip control so the intro overlay now stays a single `Entering Hyperspace...` status surface instead of offering a separate bypass action.
  • Simplified the launch intro flow by dropping escape, tap-to-start, and skip-side messaging that no longer matched the intended Red Pill experience.
  • Kept the intro resilient when browser autoplay is blocked by falling through to launch instead of exposing alternate overlay controls.

v1.36.1

March 2026
  • Locked the login docking screen to the viewport so the page no longer grows a stray document scrollbar around the cinematic stage.
  • Stabilized learner mission-card hover behavior by keeping unchanged shelf and mission-strip HTML in place instead of rebuilding those DOM nodes on no-op renders.
  • Added a learner-state snapshot no-op guard so duplicate Firestore updates no longer retrigger hover animations or restart the mission shelf motion pattern.

v1.36.0

March 2026
  • Added homepage admin visibility controls for full mission classes so Books and Codex videos can be hidden from learners the same way individual missions can.
  • Kept hidden mission classes and hidden missions visible to admins with clear status treatment so Mission Control can still inspect, edit, and unhide them quickly.
  • Hardened homepage visibility persistence so hide toggles survive local draft restore, refresh, and publish flow timing instead of reverting when only visibility changed.

v1.35.1

March 2026
  • Polished Codex Thinking Space calm mode into a full-screen cinematic stage with a deep-space backdrop and softened overlay treatment.
  • Upgraded the calm countdown presentation to oversized faded `VT323` numerals and added a subtle Einstein quote footer for reflective focus.
  • Refreshed surfaced release markers and cache-busting version tags across entry pages, JS analytics tags, and the service-worker cache key.

v1.35.0

March 2026
  • Added Codex Thinking Space interruptions that pause video at authored timestamps, run a calm countdown, then open recall capture for text notes or local voice recording.
  • Added Codex admin inline controls to author Thinking Breaks without JSON: add at current playhead, edit time and duration, reorder, delete, and seek directly from the editor cards.
  • Extended the admin preview timeline with Thinking Break markers and wired chapter save flow so `thinkingBreaks` persist with module content in Firestore.

v1.34.1

March 2026
  • Increased Module-End Check prompt readability by expanding the right-panel question block with larger text and a taller viewport.
  • Fixed coding checkpoint submit flow so advancing to the next check no longer carries over previous code in the editor.
  • When a check provides `starterCode`, it now seeds immediately for that check; when starter code is absent, prior code is cleared to avoid stale submissions.

v1.34.0

March 2026
  • Narrowed active Codex coding runtime execution to `python` and `javascript` for new/admin-authored coding modules, reducing mixed-runtime failures and simplifying validation.
  • Added backward-compatible handling for legacy unsupported coding modules (`java`, `cpp`, `c`) so learners now get explicit guidance plus a manual completion path instead of a broken run flow.
  • Removed duplicate Codex test-case feedback UI and cleaned unused legacy reader helpers so judge feedback now stays in one consistent panel.

v1.33.3

March 2026
  • Restored the learner pill labels back to `Red Pill` and `Blue Pill` across the homepage and related shelf copy after the short-lived terminology retheme.
  • Added clear locked-module feedback for scheduled chapter unlocks so Book and Codex readers now tell learners exactly when the next module opens instead of silently blocking the click.
  • Cleaned shipped UI text that was rendering with corrupted mojibake symbols across readers, admin helpers, and the release log itself.

v1.33.2

March 2026
  • Fixed the admin `Unlock waits` action so it now scans and clears one-week mission wait locks across learner `courseUserState` documents in Firestore instead of only checking the signed-in browser state.
  • Repaired the learner-state snapshot field naming so course cooldowns and Hyperspace rules consistently use the canonical `...ByCourse` keys while still reading older saved `...ByMission` aliases.
  • Updated the admin confirmation and empty-state copy so the wait-lock tool now accurately describes that it affects learner accounts rather than only the current browser install.

v1.33.1

March 2026
  • Fixed Codex inline admin saves that were failing Firestore validation when coding test cases carried `undefined` nested fields.
  • Canonicalized Codex chapter ids on admin save so polluted prefixed ids no longer keep stacking into broken chapter document paths.
  • Updated the split-library chapter alias filter so older repeated-prefix chapter docs are ignored once a less-prefixed chapter record exists.

v1.33.0

March 2026
  • Rethemed the product language around the Interstellar-inspired mission vocabulary across the homepage, readers, admin surfaces, and Debrief.
  • Kept `Hyperspace` as the focused high-pressure lane after testing `Wormhole`, while preserving the new mission/module naming and the Hangar, Ranger Mode, and Station Mode terminology.
  • Renamed the documentation surface to `Flight Log` and aligned the main learner-facing labels so the product theme now reads consistently without changing the underlying course/progress model.

v1.32.0

March 2026
  • Added a compact `Today in Hyperspace` mission strip directly under the Hyperspace header so learners see the single most urgent pinned mission without opening a separate planner page.
  • The strip prioritizes restart-pending, expired, due-today, and due-tomorrow runs, then shows one clear `Continue` or `Start` action tied to the existing Hyperspace launch flow.
  • Included lightweight context for active runs such as due timing, pinned-mission counts, and the next scheduled unlock when the mission uses staged module release timing.

v1.31.0

March 2026
  • Moved learner homepage state out of browser-local storage and into a per-user Firestore `courseUserState` document so shelf pins, one-week locks, Hyperspace rules, and restart flags now travel with the signed-in account.
  • Added migration logic that carries forward the existing local shelf and Hyperspace state into Firestore on first load, then clears the old browser cache after the cloud save succeeds.
  • Made mission launch wait for the user-state save before navigating and added owner-only Firestore rules for the new learner-state document.

v1.30.2

March 2026
  • Fixed homepage chapter deletion persistence in the split Firestore course library so removing a chapter and publishing no longer lets the old chapter reappear after refresh.
  • Preserved logical chapter ids when rebuilding the homepage library from Firestore chapter docs, which keeps chapter-save diffs aligned with the actual stored documents.
  • Added cleanup for stale chapter documents left behind by the earlier id mismatch so the next publish can remove ghost chapter records from the chapter collection.

v1.30.1

March 2026
  • Fixed homepage publish validation so duplicated nested ids inside video checkpoints, concept checks, in-video questions, post-chapter questions, and exercises are now auto-repaired before validation and save.
  • This prevents older duplicated draft data from blocking `Save Library` with duplicate-id errors when the underlying issue is only stale nested item ids rather than duplicated courses or chapters.
  • The repair path only touches duplicated nested item ids and leaves course ids and chapter ids unchanged.

v1.30.0

March 2026
  • Rebuilt Debrief around the official saved learner record plus a separate local practice surface, so the page now clearly splits saved mission performance from unlimited review retries.
  • Added a top official summary card with mission accuracy, first-try correct count, and needs-review count, plus per-lesson score rows in the module navigator for faster scanning.
  • Each question card now shows attempts used, first-try status, hint usage, official score, and last completion time, and lesson filters now cover timed, post-module, low-score, missed-first-try, and unpassed views.

v1.29.0

March 2026
  • Added one official question scoring model for objective prompts only: first-try correct answers score highest, later attempts progressively lower the score, hint usage applies a penalty, and never-passed objective questions score zero.
  • Codex readers now save a root questionAccuracySummary into learner progress, including the official 1-100 mission accuracy, passed counts, first-try counts, and the band labels Excellent Accuracy, Strong Accuracy, Developing, and Needs Review.
  • Updated Debrief to load and show that official mission summary while keeping open-ended video checkpoints and other reflection prompts visible as practice and review items instead of counting them as fake accuracy.

v1.28.0

March 2026
  • Added a shared question-results-ledger.js module so Codex readers write learner question outcomes into one normalized progress shape instead of scattering attempt state across temporary UI-only runtime objects.
  • Codex and Academic now persist graded-question attempts, completion state, pass/fail outcomes, first-try correctness, hint usage, and related metadata into learner progress, so that history survives refreshes and can drive later Debrief scoring.
  • Timed checkpoints now mirror their saved checkpoint progress into the same ledger format, and the service worker precaches that helper so the site is ready for the next step: a real attempt-aware Debrief accuracy score.

v1.27.1

March 2026
  • Added a temporary admin-only `Unlock Waits` rail control on the homepage so admins can clear the local one-week course wait locks without touching the rest of the learner flow.
  • That override immediately removes active Hyperspace/Storage re-entry cooldowns for the current browser install, so affected courses can be opened again right away for testing or temporary support.
  • Kept the implementation intentionally simple and local-only instead of building a full long-term admin learner management system, which makes it easy to remove later.

v1.27.0

March 2026
  • Reworked Codex graded question flow so single-choice concept checks no longer auto-submit on option click; learners now select an answer, press `Submit Answer`, and use an explicit `Try Again` path before the next attempt.
  • Added richer learning feedback for Codex checkpoints with shuffled single-choice options, visible attempt state, optional hints, explanations, option-level feedback, and support for stricter `maxAttempts` question metadata in the reader/admin draft pipeline.
  • Upgraded Academic chapter exercises so correct answers lock in, missed questions require deliberate retry instead of guess-spamming, MCQs reshuffle on retry, and the exercise panel can show attempt, hint, and explanation feedback per question.

v1.26.0

March 2026
  • Added full local homepage library draft autosave and restore for admins, while keeping `Save Library` as the explicit cloud publish step instead of auto-publishing editor changes.
  • Added a pre-publish validation pass that blocks saves on duplicate ids, missing required video URLs, invalid timecodes or page ranges, invalid current JSON editor fields, and broken Codex in-video question structures, with an inline error summary on the admin panel.
  • Added duplicate actions for the selected course, chapter, question list, video checkpoints, academic exercises, and Codex exercises, and started extracting shared admin editor helpers into a new `course-editor-utils.js` module so future editor work does not keep inflating `main.js`.

v1.25.0

March 2026
  • Added a bulk course import flow to the homepage Course Workbench so admins can bring in course drafts from JSON, CSV, or outline text instead of building everything field by field.
  • Changed the importer to preview first and apply second, showing per-course chapter counts, multi-course imports, duplicate-id cleanup notes, and other parsing warnings before anything is added to the local draft library.
  • Normalized imported data into the existing course model with fallback course-type handling, so imported content lands cleanly in the current admin workflow and still waits for an explicit `Save Library` publish.

v1.24.1

March 2026
  • Scoped homepage library publishing to changed category, course, and chapter docs instead of flattening and rewriting the entire split-model library on every admin save.
  • Kept explicit delete handling for removed courses and chapters, while still updating affected sibling order docs so add, delete, and reorder flows continue to publish correctly.
  • Tracked the last split-model snapshot on the homepage so normal admin saves can diff against the previous cloud state, while initial seed and legacy-to-split migration behavior stay intact.

v1.24.0

March 2026
  • Added a dedicated Debrief page for Codex modules so learners can reopen earlier prompts in order, grouped by in-video questions, post-module questions, and support prompts, without affecting progress.
  • Redesigned that review surface into a cleaner minimal layout with a compact module list, lighter question cards, and unlimited local retry flow instead of the heavier dashboard-style presentation.
  • Split admin editing paths so the mission-card pencil keeps opening the homepage editor on the same page while the selected-mission Edit Mission button opens the actual reader/editor surface.

v1.23.1

March 2026
  • Fixed the homepage admin `Edit Mission` button so it opens the actual reader for the selected course instead of only scrolling the homepage editor into view.
  • Book and Codex courses now land directly inside their in-reader admin editing surfaces when launched from that CTA, which matches where module editing already lives.
  • Learner launch flow, pill choice behavior, and normal course access rules remain unchanged.

v1.23.0

March 2026
  • Added a dedicated Storage rules modal so clicking the `Storage` shelf heading explains that Blue mode is the free-form lane with no Hyperspace-style pressure.
  • Clarified inside the modal that Storage allows reverse/replay, lets learners choose any stored course whenever they want, and keeps study flow simple and open-ended.
  • Matched the Storage rules interaction to the existing Hyperspace rules pattern, including click, keyboard, outside-dismiss, and `Escape` close behavior.

v1.22.0

March 2026
  • Changed the selected-mission admin CTA so admins jump straight into editing instead of seeing learner launch behavior or red/blue pill choice on the homepage reveal card.
  • Added animated inline removal prompts for Hyperspace and Storage, locked learner re-entry to removed courses for one week after confirmation, showed that temporary lock state on course cards, and let the popup dismiss cleanly when clicking elsewhere.
  • Kept the shipped `tesseract.png` branding across the site while tightening the homepage admin/course-shelf interaction flow.

v1.21.0

March 2026
  • Added per-course chapter frequency scheduling so admins can unlock course content on a configurable `days` or `weeks` cadence instead of exposing the full sequence immediately.
  • Updated Book and Codex readers to anchor that cadence to each learner's actual course start date, and surfaced pacing previews on the selected-mission card showing the next unlock and when the full course becomes available.
  • Fixed the homepage admin save button so it reliably returns from `Saving...` after a completed publish, and added a `Back To Missions` action on the Codex episode-clear overlay when the next episode is still time-locked.

v1.20.0

March 2026
  • Rebuilt login as a cinematic docking surface with a fixed-RPM station ring, an inner craft ring that spins up under press-and-hold input, and large ambient hover telemetry for the target rotation.
  • Changed docking clearance so credentials only appear after the inner ring achieves stable co-rotation and the rotating claws phase-align with the outer capture ports, matching the intended Interstellar-style latch behavior more closely.
  • Kept the underlying Firebase email/password sign-in, safe `next=` redirect handling, and authenticated role resolution intact while moving the visual interaction into the docking sequence itself.

v1.19.0

March 2026
  • Replaced the hardcoded per-user login chooser with a direct email/password form so authentication now behaves like a standard account sign-in flow.
  • Kept safe `next=` redirect handling in place after sign-in, so readers and the homepage still return to the originally requested destination.
  • Continued resolving known OASIS roles from the authenticated email, so existing admin gating still works without the dedicated role buttons.

v1.18.15

March 2026
  • Added a new muted `Storage` shelf below the course library so blue-pill launches have their own persistent home instead of sharing Hyperspace.
  • Stored blue-selected courses locally in that shelf and made those shelf cards reopen directly in blue mode without re-prompting.
  • Kept Hyperspace red behavior authoritative, so moving a course into Hyperspace clears any duplicate blue-shelf copy instead of leaving both shelves out of sync.

v1.18.14

March 2026
  • Added a local Codex workspace panel with notes, file-tree context, and optional folder-backed saves so chapter notes and challenge files can be organized on the learner's laptop.
  • Hid routine progress-saved header status noise during normal autosaves, while still surfacing real save failures when they happen.
  • Hardened Hyperspace restart mode so episode and full-course restarts overwrite saved progress correctly, lock forward navigation, and prevent forward scrub jumps until the restarted episode is cleared again.

v1.18.13

March 2026
  • Stopped locked Codex episode challenge starters and descriptions from leaking into pre-video practice mode before the video is complete.
  • Kept episode challenge test cases and judge details hidden during practice mode, while preserving normal coding scratch access during playback.
  • Updated `Reset` in Codex practice mode so it restores a neutral scratch starter instead of the hidden end-of-video challenge boilerplate.

v1.18.12

March 2026
  • Stopped Codex course videos from autoplaying on entry, so the player now loads paused at the first available frame or saved resume point instead of immediately starting.
  • Delayed Red-pill no-pause enforcement until the learner explicitly starts playback, which preserves the restriction without fighting the initial paused state.
  • Kept replay and normal post-start playback behavior unchanged, so manual play still arms the restriction and restarts continue to work as expected.

v1.18.10

March 2026
  • Moved Codex chapter-end questions out of the full-screen concept-check overlay and into the right-side workbench panel beside the code editor.
  • Kept chapter-end coding checkpoints tied to Monaco while rendering MCQ and text-response inputs inline in that right-side panel instead of blocking the whole screen.
  • Forced end-of-video question triggers onto the chapter-end side-panel path even when those checkpoints arrive through the timed-question playback pipeline.

v1.18.9

March 2026
  • Fixed Hyperspace removal/re-add flow so taking a course out of Hyperspace marks it for a clean Red-pill restart instead of letting the previous run silently resume.
  • Red-pill launches now pass a one-time restart flag through the homepage launch route, so the first relaunch after removal is explicitly treated as a fresh run.
  • Book and Codex readers now honor that restart flag by ignoring stored progress for that launch and immediately saving a fresh baseline back to Firestore.

v1.18.8

March 2026
  • Expanded Codex admin preview with a dedicated timeline under the video so timed and chapter-end question markers are visible across the episode.
  • Made timeline marker clicks jump to the exact question, open the matching editable admin question card, and keep the selected preview marker/card highlighted together.
  • Moved code-check preview actions into an editor-side dock after `Open Editor`, and added an admin-only overlay dismiss button so admins can cancel preview questions without getting stuck in the modal.

v1.18.7

March 2026
  • Fixed Codex episode restart flow so native/local video now restarts from the real chapter start offset instead of snapping back to `0` for offset segments.
  • Added visible learner progress-sync status feedback in Codex so save/load failures are surfaced in the header instead of only appearing in the console.
  • Repaired the documentation page header structure and routed back link, and cleaned several shipped UI labels/separators that were rendering with corrupted characters.

v1.18.6

March 2026
  • Enabled timed Codex concept-check triggers during admin preview so admins can validate in-video question rendering on the same playback path learners use.
  • Kept admin playback free from the stricter learner-only pill locks by continuing to exempt no-back, no-pause, and max-rate restrictions while still allowing question-gating QA.
  • Fixed local `/public/...` service-worker registration and precache URL resolution so local testing stops 404ing `sw.js` and caches the correct page paths outside Firebase Hosting.

v1.18.5

March 2026
  • Stored completed Codex timed and chapter-end check IDs inside each learner chapter-progress row so refreshing or rejoining the same episode no longer asks already-cleared questions again.
  • Rehydrated saved question completions when the active chapter loads, while pruning stale IDs that no longer match the current saved question payload.
  • Updated episode/course restart flows to intentionally clear persisted completed-check history so replaying a lesson can re-run its question sequence from the beginning.

v1.18.4

March 2026
  • Fixed Codex Monaco startup so the editor now owns its AMD loader lifecycle instead of colliding with ambient `define`/`require` globals during Python language-module loads.
  • Removed the static Monaco loader tag from Codex Reader and switched to a guarded runtime loader path so `define is not a function` console crashes stop breaking editor boot.
  • Updated the Codex YouTube player bootstrap to start from an iframe source that already includes `enablejsapi` and `origin`, reducing local embed-origin `postMessage` failures while keeping the same playback gating flow.

v1.18.3

March 2026
  • Fixed Codex chapter normalization so legacy `postQuestions` payloads now hydrate as `postChapterQuestions` instead of being treated like timed in-video checks.
  • Updated both the homepage library normalizer and Codex Reader runtime loader so older chapter docs keep their chapter-end question flow after the split-model migration.
  • Preserved current `inVideoQuestions` behavior so modern timed checkpoints continue to render independently from chapter-end review sequences.

v1.18.2

March 2026
  • Fixed Codex Reader question-state refresh so same-chapter library snapshots no longer clear completed timed checks or interrupt an active concept-check overlay.
  • Preserved pending chapter-end question queues across rerenders so end-of-video sequences continue instead of restarting in the middle of playback.
  • Added stable question-source signatures so Codex only resets runtime check state when the active chapter or its saved question payload actually changes.

v1.18.1

March 2026
  • Fixed Codex Reader chapter-end question publishing so inline admin saves now persist the split-model chapter metadata required by the Firestore library loader.
  • Allowed signed-in learners to read and write only their own reader progress documents so progress saves stop failing on Firestore permissions.
  • Updated Codex end-of-video question preview so chapter-end checks can run in admin mode and the concept-check overlay appears full-screen and scrolls into view when triggered.

v1.18.0

March 2026
  • Moved reader-owned module title, summary, subtopics, timing, checkpoints, and prompt editing out of the homepage admin editor and into reader admin mode.
  • Moved academic chapter title, summary, subtopics, PDF source, exercise JSON, content-block JSON, and prompt editing into Academic Reader admin mode with inline validation and AI prompt helpers.
  • Kept homepage admin focused on the course shell plus chapter add/delete for reader-managed Book and Codex course types so homepage saves no longer overwrite reader-owned chapter fields.

v1.17.0

March 2026
  • Moved book chapter title, summary, reading text, glossary, page range, and chapter-end prompt editing out of the homepage admin editor and into Book Reader admin mode.
  • Added inline Book Reader admin tools for chapter drafting, save status, structure snippets, validation, and AI prompt copying while editing the active chapter.
  • Added reader-side chapter support panels for end questions, brainstorm prompts, and glossary terms while keeping legacy rich-content chapters safe until admins intentionally save text-mode reading content.

v1.16.0

March 2026
  • Removed the Codex in-video-question editor from the homepage admin panel so question authoring lives inside Codex Reader admin mode.
  • Kept homepage Codex setup focused on bootstrap fields while preserving reader-managed timed and chapter-end questions during homepage saves.
  • Updated Codex chapter normalization so `postChapterQuestions` stays separate from `inVideoQuestions` instead of being collapsed into the same field.

v1.15.0

March 2026
  • Expanded the Codex admin builder so AI prompt generation now uses separate MCQ, text, and coding counts instead of a single freeform type field.
  • Added chapter-end JSON insertion and separate draft/save handling for `postChapterQuestions` alongside timed in-video checkpoints.
  • Updated Codex playback so saved chapter-end question sets run in sequence after the video finishes before the chapter challenge panel takes over.

v1.14.0

March 2026
  • Replaced reader-header local-video controls with admin-configured metadata flags for local playback (`localVideoRequired`).
  • Codex Reader now shows a large in-player local-file picker only when a module is explicitly marked as local-video based.
  • Codex Reader now shows a large in-player local-file picker per chapter and keeps challenge gating tied to local video selection/completion.

v1.13.0

March 2026
  • Added local-video override controls in Codex Reader so users can load laptop-stored .mp4 files per module.
  • Kept timed checkpoints and concept-question gating intact while playing selected local files through native video playback.
  • Added clear/reset controls and local status chips to switch back to configured YouTube/URL sources without editing library metadata.

v1.12.0

March 2026
  • Expanded Codex admin AI prompt controls with question-count, question-type, and topic-focus fields.
  • Updated AI context prompt generation to enforce exact question count and allowed type constraints.
  • Added Google Drive `/file/d/.../view` video-link warnings in admin editors and before library save to reduce non-playable uploads.

v1.11.1

March 2026
  • Removed the hyperspace session-time expiry lock for all users; due-date lock behavior remains active.
  • Fixed Codex role gating so only ADMIN can access in-reader editing controls.
  • Improved course-name legibility on shelf cards by lifting disc label layering and tuning spine/tag typography.

v1.11.0

March 2026
  • Made Hyperspace launches reopen pinned missions directly in Red mode without showing the pill chooser again.
  • Added resume-first behavior for Hyperspace courses so readers reopen at prior chapter/segment progress and video playhead state.
  • Removed the "allotted session time has expired" hyperspace lock for admin users while keeping learner constraints unchanged.

v1.10.0

March 2026
  • Simplified Codex reader controls by removing custom seek-bar/chapter-button clutter and keeping core playback + timed-question flow.
  • Moved Red/Blue pill mode editing to a single admin control in the left sidebar and made it global for all courses.
  • Applied global pill policy at launch so Red can enforce no-rewind/no-pause/speed-cap/question-gating while Blue stays flexible.

v1.9.0

March 2026
  • Refined Codex admin editing into a video-first flow with the preview at top and editing controls consolidated on the right.
  • Synced right-panel current playhead time while scrubbing and prefilled timed-question input with the live timestamp.
  • Added quick JSON insertion at the current playhead so one or many timed questions can be added instantly.

v1.8.0

March 2026
  • Added Codex in-video code checkpoints that run directly in Monaco, with optional `language`, `starterCode`, and `answerContains` metadata support.
  • Enabled `Run Code` for checkpoint and scratch flows even when a chapter has no formal exercise test-case block.
  • Kept the Codex editor writable at all times (removed read-only/view-only toggles) and refreshed release/cache markers to `v1.8.0`.

v1.7.0

March 2026
  • Removed Guided Builder entry points, modal wizard, and related styling so Admin Course Editor is the single authoring flow.
  • Removed Codex concept-check JSON controls and prompt tooling; coding videos now rely on chapter in-video questions only.
  • Hid Subtopics, Questions, and Brainstorming chapter fields for Coding Videos in admin mode and normalized those values to empty on sync/save.

v1.6.1

March 2026
  • Restricted sidebar admin actions so non-admin learners only see Logout in the left rail.
  • Added admin hide/unhide controls for courses and persisted visibility using the `isHidden` course flag.
  • Kept hidden courses available to admins while filtering them from learner-facing shelves and selection paths.

v1.6.0

March 2026
  • Enabled extensionless course URLs so routes open as `/`, `/login`, `/documentation`, and `/-reader` paths without `.html` suffixes.
  • Added canonical client-side redirects from legacy `.html` routes (including `/index.html`) to clean path equivalents.
  • Enabled Firebase Hosting `cleanUrls` for server-side support of extensionless paths and direct deep-link loads.
  • Updated script/query release markers, analytics release tags, and service-worker cache key for `v1.6.0` rollout.

v1.5.2

March 2026
  • Set canonical course routing origin to `https://courses.oasisquests.tech` in domain routing utilities.
  • Added `courses.oasisquests.tech` and `oasisquests.tech` host variants to login-safe return URL allowlists.
  • Updated script/query release markers, analytics release tags, and service-worker cache key for `v1.5.2` rollout.

v1.5.0

March 2026
  • Added a guided step-by-step admin course builder for books, videos, academic tracks, and coding tracks.
  • Added AI prompt-copy actions across admin creation surfaces so external AI tools can be given the expected format directly.
  • Added validate-before-save actions and inline status feedback for AI-generated book, video, academic, and codex content inputs.

v1.4.3

March 2026
  • Fixed Red Pill hyperspace persistence for Academic Books and Coding Videos during initial app boot.
  • Delayed hyperspace shelf and rule cleanup until the synced library has fully hydrated, preventing valid pins from being wiped.
  • Standardized release markers and HTML cache-busting tags to `v1.4.3` across the app.

v1.4.2

March 2026
  • Merged dual sidebars into a single unified left rail with subtle moon-gravity floating icons.
  • Refined icon button shapes to match project aesthetic (rounded corners).
  • Squashed previous optimization commits into a clean v1.4.1 release.

v1.4.1

March 2026
  • Renamed main application entrypoint from `index.js` to `main.js`. Updated all HTML file imports.
  • Extracted large inline CSS block from `index.html` into external `css/index.css` for browser caching.
  • Added `preconnect` hints for Google Fonts to speed up font loading on first visit.
  • Added `defer` attribute to `domain-routing.js` to eliminate render-blocking script loads.
  • Introduced a Service Worker (`sw.js`) with cache-first strategy for all static assets - near-instant repeat page loads. Firebase and Firestore data always bypassed.
  • Added `scheduleRenderAll()` debounce helper to batch rapid admin form DOM rebuilds into one per animation frame, reducing unnecessary CPU work.

v1.4.0

March 2026
  • Added Red/Blue pill course launch flow with an immersive mode-selection dialog.
  • Introduced Red Pill Hyperspace run constraints with forward-only modules, anti-rewind guard, and a timed window.
  • Renamed shelf presentation to Hyperspace and added hidden `matrix` keyword toggle for drag/drop enablement.
  • Set drag-and-drop to disabled by default with no visible drag affordances while inactive.

v1.3.0

March 2026

v1.2.1

March 2026

v1.2.0

March 2026

v1.1.3

March 2026

v1.1.2

March 2026

v1.1.1

March 2026

v1.1.0

March 2026

v1.0.0

March 2026