Skip to content

Releases: kkucherenkov/course_shelf

CourseShelf 1.9.1

Choose a tag to compare

@github-actions github-actions released this 25 Sep 10:47
d8ec2a1

[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

  • Design a two-layer project template extracted from this repo (#810) (aea6eda)
  • root: Name contributors in the copyright line (#811) (ba193e2)

CourseShelf 1.9.0

Choose a tag to compare

@github-actions github-actions released this 22 Sep 19:29
466d26e

[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

  • Rename quiz.modelFilename to model (#751) (0b1ea9d)
  • tasks: One file per task entry, and drop the merge driver (#724) (1a341fe)

CourseShelf 1.8.4

Choose a tag to compare

@github-actions github-actions released this 18 Sep 08:41
db527f5

[1.8.4-release] — 2026-09-18

Bug fixes

  • web: Give the lesson player sidebar a scroll container (#713) (74f3b84)

Chores

CourseShelf 1.8.3

Choose a tag to compare

@github-actions github-actions released this 18 Sep 04:12
d112db3

[1.8.3-release] — 2026-09-18

Bug fixes

  • web: Tell a lesson without a transcript that it has none (#711) (e748bab)

Chores

CourseShelf 1.8.2

Choose a tag to compare

@github-actions github-actions released this 18 Sep 02:47
930f133

[1.8.2-release] — 2026-09-18

Bug fixes

  • web: Bound the transcript panel so it stops stretching the lesson page (#709) (7da3664)

Chores

CourseShelf 1.8.1

Choose a tag to compare

@github-actions github-actions released this 18 Sep 01:22
ea9f121

[1.8.1-release] — 2026-09-18

Bug fixes

  • ui,web: Player controls, topbar state, and a visual gate that can see (#707) (3d5c371)

Chores

Features

  • backend: Choose the text-generation engine by configuration (#706) (48f37e4)

CourseShelf 1.8.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 01:22
9ebf50f

[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

  • root: Bump version to 1.8.0, archive the shipped task stack (#705) (9ebf50f)

Documentation

  • roadmap: Cancel the learning-paths card (#691) (5bef5a4)

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

  • web: Raise text roles one step on the remaining pages (#689) (747e273)
  • web: Raise text roles one step on admin page chrome (#688) (997545d)
  • web: Raise text roles one step on reader surfaces (#687) (059ca83)
  • ui: Raise text roles one step across packages/ui primitives (#685) (5bdc067)

CourseShelf 1.7.0

Choose a tag to compare

@github-actions github-actions released this 16 Sep 15:16
6bb6fee

[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

  • root: Bump version to 1.7.0, archive the shipped task stack (#679) (6bb6fee)

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

Choose a tag to compare

@github-actions github-actions released this 16 Sep 08:23
21c13ae

[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

  • root: Bump version to 1.6.1, archive the shipped task stack (#638) (21c13ae)

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

  • e2e: Second-user signup no longer expects the library step (#588) (ed3653d)

CourseShelf 1.6.0

Choose a tag to compare

@github-actions github-actions released this 15 Sep 17:18
27409d5

[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)

Features

  • web: Identify-task queue and per-field review (#552) (90b8751)

Other

  • Store Lesson.videoPath library-relative and backfill und transcript language (#560) (bb92da4)