Repository navigation
Releases: kkucherenkov/course_shelf
Releases · kkucherenkov/course_shelf
Release list
CourseShelf 1.9.1
[1.9.1-release] — 2026-09-25
Bug fixes
- web: Stop two pages from asserting what they never checked (#809) (c2316dc)
- docker: Ignore nested .nuxt and .output in the build context (#806) (311c53e)
- web: Stop admin, search and player from disagreeing with themselves (#804) (3e16a21)
- web: Close three admin/flashcard/404 regressions (#803) (2d87ab6)
Chores
- root: Bump version to 1.9.1 (#813) (d8ec2a1)
- tasks: Close the search-denial and lesson-count entry (#812) (d44bded)
Documentation
CourseShelf 1.9.0
[1.9.0-release] — 2026-09-22
Bug fixes
- backend: Give media streaming its own rate-limit budget (#793) (54641a1)
- backend: Encode the export filename per RFC 6266 instead of 500ing (#791) (d17d691)
- web,backend: Access, session-visibility and entry-point defects (1.9.0 audit) (#788) (2108867)
- web: Stop rendering a failed request as an emptiness (#786) (a3a5e71)
- claude: Make the audit driver honour AUDIT_ALL and drop a dead route (#770) (47d8e64)
- backend: Import nested folders as sections, key them by path (#758) (bcde4a9)
- backend: Verify flashcard cue ownership, backfill media paths (#752) (2b8b139)
- web: Correct material icons, transcript scroll, row breakpoint (#749) (735973f)
- Stop faking progress on the home-page rails (#746) (e27108c)
- specs: Carry filesUpdated on the scan lifecycle channel (#745) (af8297b)
- web: Straighten browse, course-detail and scan-notifier defects (#741) (66ed893)
- specs: Guard codegen against a Dart SDK mismatch, drop a dead flag (#740) (e8f7cb7)
- web: Add a back link from a lesson to its course, and from a course to browse (#717) (3fad6c2)
- specs: Stop the contract gate failing on Unicode name patterns (#721) (412aaf0)
- ui: Course cards consume AppProgressBadge instead of hand-rolled progress (#716) (1d0aaab)
- web: Restore scan-error visibility and fix 4 admin/edit a11y defects (#720) (1fd13e7)
- web: Restore catalogue access for course-level grants (#719) (f7a2677)
- ui: Make the playback-speed menu behave like role="menu" (#718) (e89ae43)
- web: Keep the browse filters put when the language changes (#715) (8edb94e)
CI
- Let a corrected PR title clear its own gate (#768) (64d6b79)
- Always run the smoke job, gate its cost on changed paths (#748) (cde74b1)
- Drop the image-pull step #736 left without a body (#743) (56d7f78)
Chores
- tasks: Close the two release-blocker entries (#794) (466d26e)
- tasks: Close the first two audit-fix entries, record a regen trap (#789) (a8ca299)
- roadmap: Card the deferred summary, close out the v2 entries (#767) (affb8b9)
- ui: Add the missing flashcard Storybook baselines (#764) (545f005)
- roadmap: Recount the v2 counter and fix its recount range (#763) (8c0f103)
- tasks: Close the e2e-gate and reconcile entries (#760) (ae95004)
- tasks: Close the nested-sections entry (#759) (e8b3662)
- tasks: Reconcile entries that outlived their own PRs (#756) (35d4b6a)
- tasks: Close the installer-agent entry (#755) (f195cbb)
- tasks: Close the smoke-gate entry (#750) (c929723)
- tasks: Close the two contract-wave entries (#747) (56f3e33)
- tasks: Close six entries and record the Compose-project rule (#744) (c9d5195)
- Fix ignore-file gaps, a visual-test port clash, and stale NAS docs (#739) (6a872c5)
- web: Drop dead i18n keys and fix two stale comments (#738) (8a92bfa)
- tasks: Close the OTel removal entry (#737) (0a88463)
- Remove OpenTelemetry and the local Grafana stack (#736) (1f1455a)
Documentation
- roadmap: Add E33 — ownership and taxonomy, the 2.0 feature set (#723) (c22cffb)
- adr: Record the five decisions that gate the 2.0 scope (#722) (ec83c77)
Features
- web,ui: Render nav and lesson rows as real links, fix layout traps (#787) (3bfd6d1)
- backend: Stream a lesson or course export as a Markdown ZIP (#766) (c2c161e)
- web: Surface scraper load errors in the admin UI (#765) (a9b6550)
- specs: Widen the scraper inventory response (#761) (172a1b3)
- web: Ship flashcard review UI (E29-F01-S03) (#762) (41bd019)
- deploy: Ship an agent-as-installer in the release bundle (#754) (1c5b4d5)
- specs: Add OpenAPI links for identify-task, transcription, bookmark and grant chains (#742) (055618f)
Refactoring
CourseShelf 1.8.4
CourseShelf 1.8.3
CourseShelf 1.8.2
CourseShelf 1.8.1
CourseShelf 1.8.0
[1.8.0-release] — 2026-09-17
Bug fixes
- web,ui: Five findings from the 1.8.0 pre-release audit (#703) (5fa1b62)
- backend: Four defects from the 1.8.0 pre-release audit (#704) (b85a1e5)
Chores
Documentation
Features
- backend: Quiz generation from a lesson's transcript (local llama.cpp) (#692) (1b6f5d7)
- backend: Flashcard API — CRUD, due queue, grade (#690) (f8182cd)
- backend: Flashcard aggregate and pure SM-2 scheduler (#684) (b044a7d)
Refactoring
CourseShelf 1.7.0
[1.7.0-release] — 2026-09-16
Bug fixes
- web: Collapse no-access home state to one explanation (#670) (118f7b9)
- web: Raise scan panel above bottom nav, drop its duplicate finish toast (#671) (d9ba91c)
- ci: Merge driver dropped entries whose heading has no title (#662) (d7931e7)
- web: Rebuild AdminEditLibrarySheet on AppDialog (#657) (de3c5f2)
- web: Admin library dialogs onto AppDialog, fix post-await i18n crash (#647) (e353722)
CI
- One script for waiting on pull requests (#661) (2435f9e)
- Merge the task stack by entry instead of by hand (#659) (e820e42)
- Stop running the heavy checks on documentation-only changes (#650) (ff18d25)
Chores
Documentation
- roadmap: Mark the identify-task queue done (#678) (7c796b8)
- claude: Add pass C to the audit, and the MCP entry it needs (#656) (0ab9944)
- claude: Record two Storybook regeneration traps (#652) (d855b5f)
- claude: Add the deploy-nas skill (#651) (beb9513)
Features
- ui: Gate font-weight/media-query/token-alias literals (#668) (75f93fe)
- ui,web: Add AppComboBox, replace USelectMenu pickers in course metadata form (#649) (285bb65)
Refactoring
- ui,web: Extend dialect gates to apps/web, drop the override (#677) (1e6c67b)
- web: Remove unreachable /setup and duplicate /libraries page (#674) (ba74cff)
- ui,web: Consume canonical token names; clamp CourseDescription (#663) (477b116)
- web: Unify admin's style dialect with the rest of the product (#660) (57b37ed)
- web: Consolidate admin buttons onto AppButton (#648) (0ee1373)
CourseShelf 1.6.1
[1.6.1-release] — 2026-09-16
Bug fixes
- ui: Accessible avatar-menu button, honest heading level in state components (#636) (a0ec1e4)
- web: Honest recently-added empty state, confirm course grant revoke (#637) (8181245)
- ui: Flush pending note save on unmount instead of dropping it (#634) (8216e1a)
- web,ui: Mobile nav overflow, missing headings, required landmark labels (#629) (417c5cb)
- web,ui: Surface silent error/empty states, restore reset confirm (#628) (51e3b3f)
- web,ui: Honest read-only role chip, working compact density (#627) (4809ec1)
- web: Survive scan-error visibility past completion, honest toast (#626) (67519c1)
- web: Drop dead-end libraries nav link, fix raw admin dashboard key (#625) (1fa0b4e)
- web: Name nav CTAs honestly, filter-aware empty queue, confirm risky admin actions (#611) (a5ef065)
- web: Wire Russian pluralization and stop pipe-message content loss (#610) (b876d20)
- web,ui: Document-level a11y — lang/title, landmarks, degraded auth, accelerators (#615) (916fd93)
- web,ui: Audit regressions — player tap, honest rewatch, confirm policy (#613) (01baa1d)
- web,ui: Honest scan progress, one clock, wired buttons (#612) (3dc04c6)
- backend,web: Admin-gate library registration and its dead-end UI (#614) (0eb8185)
- web,ui,backend: Admin CSP icons, identify queue course name, permissions completeness (#587) (a99a7b8)
- ui,web: Unify course-cover initials and detokenize identity hexes (#584) (a255d14)
- web,ui: Wire dead player-chrome settings, fullscreen, overlay (#585) (e3a1b58)
- ui,web: Surface admin nav and fix nav-shell state bugs (#583) (818b039)
- web: Guard unsaved edits, agree on resume, stop blaming users (#586) (6dd3ee7)
- web: Authenticate session restore with bearer, not cookies (#580) (e34b603)
- specs,backend,web: Course page hero now renders the downloaded poster (#564) (f085ac4)
Chores
Documentation
- claude: Record three audit traps from the fourth run (#635) (17d1874)
- claude: Add the pre-release-audit skill (#608) (52df66f)
- tasks: Move edit-guard's fix to done, note the PR split (#609) (49dbfee)
Tests
CourseShelf 1.6.0
[1.6.0-release] — 2026-09-15
Bug fixes
- web: Centralize library-register HTTP and 409 handling (#553) (b48404a)
- backend: Stop writing to a dead-socket response; fix branch-protection doc (#558) (396a34f)
- specs,backend: Rating null defaults to zero, fix updateCourse docs (#551) (115c969)
- backend: Accept schema.org Product type in JSON-LD extractor (#549) (516dcf7)
CI
- github: Lint PR titles, and stop cliff dropping what it cannot parse (#561) (f8f4e51)
- release: Run whisper-cli inside the built image before publishing (#550) (538ca69)
Chores
Documentation
- tasks: Move thirteen shipped entries out of the active stack (#562) (82e3aef)
- plans: Plan the browser-driven UI audit before 2.0 (#559) (687ad86)
- roadmap: Add E30-F03-S02, the identify queue the editor left out (#548) (3a105cf)