Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "1.4.0"
".": "1.5.0"
}
63 changes: 63 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,68 @@
# Changelog

## [1.5.0](https://github.com/sebastian-software/offcourse/compare/v1.4.0...v1.5.0) (2026-07-22)

### Features

- add Piccalilli course support ([4657304](https://github.com/sebastian-software/offcourse/commit/4657304f49db88f21d1e1738741a99ec6f993959))
- support Josh Comeau courses via unified sync ([#39](https://github.com/sebastian-software/offcourse/issues/39)) ([97056bd](https://github.com/sebastian-software/offcourse/commit/97056bd96cbdacf39b9633e747b2d92f69bd109f))
- unify course sync state across platforms ([#69](https://github.com/sebastian-software/offcourse/issues/69)) ([1530dee](https://github.com/sebastian-software/offcourse/commit/1530dee9fe660dd983a9cabc3f3c75f4970e1bb4)), closes [#21](https://github.com/sebastian-software/offcourse/issues/21)

### Bug Fixes

- accept duplicate HLS rendition names ([#75](https://github.com/sebastian-software/offcourse/issues/75)) ([c007c8a](https://github.com/sebastian-software/offcourse/commit/c007c8a29f24940e1cd8597ae134e85a6fe9ebef))
- avoid self-merging Loom video as audio ([0377ca5](https://github.com/sebastian-software/offcourse/commit/0377ca5d5ae9c0f6371b10dde3bdf9cfe01466bd)), closes [#95](https://github.com/sebastian-software/offcourse/issues/95)
- clean up shared state follow-ups ([#98](https://github.com/sebastian-software/offcourse/issues/98)) ([4163a98](https://github.com/sebastian-software/offcourse/commit/4163a98aa92351e17fd01a0ca9992fb647d7ed12))
- **deps:** update actions/setup-node action to v7 ([c06aca0](https://github.com/sebastian-software/offcourse/commit/c06aca0ccef43956bc3f575650fd0a609eb99956))
- **deps:** update codecov/codecov-action action to v7 ([8bb0401](https://github.com/sebastian-software/offcourse/commit/8bb0401c85f41b1209261f06498353fdab022b2e))
- **deps:** update commitlint monorepo to v21.2.1 ([d6bb7a3](https://github.com/sebastian-software/offcourse/commit/d6bb7a3d0fd59ff71c2b3db19e327da3115c28ee))
- **deps:** update dependency ast-v8-to-istanbul to v1.0.5 ([0ef0c9c](https://github.com/sebastian-software/offcourse/commit/0ef0c9c72db9d35765cff08f6e7a0671bc7fcf78))
- **deps:** update dependency execa to v10 ([84eed00](https://github.com/sebastian-software/offcourse/commit/84eed009a8e9c4578a9d261895e056f377083b48))
- **deps:** update dependency lint-staged to v17.1.0 ([#76](https://github.com/sebastian-software/offcourse/issues/76)) ([181a7a9](https://github.com/sebastian-software/offcourse/commit/181a7a9145a1c2b4843a3d6d5f07820a524860d3))
- **deps:** update dependency node to v24 ([e83c18a](https://github.com/sebastian-software/offcourse/commit/e83c18a50eeba1e57555b6bbd46483d0b54d4a38))
- **deps:** update pnpm to v11.13.1 ([6b3707e](https://github.com/sebastian-software/offcourse/commit/6b3707e2189ca0635369b19d5d63c3982a78b2b2))
- **deps:** update pnpm to v11.15.0 ([#77](https://github.com/sebastian-software/offcourse/issues/77)) ([818502d](https://github.com/sebastian-software/offcourse/commit/818502d0e6d3527241910be19b40d75733accedd))
- download complete LearningSuite videos ([bf650cc](https://github.com/sebastian-software/offcourse/commit/bf650cc7cfa815bdb02a85ecc0e33a010c795593))
- ensure segment paths are relative in concatSegments function ([#1](https://github.com/sebastian-software/offcourse/issues/1)) ([6dbc09a](https://github.com/sebastian-software/offcourse/commit/6dbc09a849edc196374c05857045a1f1c1f5301d))
- fail incomplete HLS segment downloads ([#44](https://github.com/sebastian-software/offcourse/issues/44)) ([5855339](https://github.com/sebastian-software/offcourse/commit/585533977c68ad27416fc369e74771223c083230))
- fall back to GET when HLS HEAD is rejected ([9a14de1](https://github.com/sebastian-software/offcourse/commit/9a14de1e4b5d00358b704ae4b749631fa998f12f)), closes [#96](https://github.com/sebastian-software/offcourse/issues/96)
- format Renovate configuration ([#46](https://github.com/sebastian-software/offcourse/issues/46)) ([d8abb5d](https://github.com/sebastian-software/offcourse/commit/d8abb5d6cd8612017013828850dc6794c8ead8af))
- handle incomplete Vimeo configs ([1d37011](https://github.com/sebastian-software/offcourse/commit/1d3701193f25435c9df4b04b06a91c1c7c811bf9))
- handle progressive output stream failures ([#48](https://github.com/sebastian-software/offcourse/issues/48)) ([8cdcd6a](https://github.com/sebastian-software/offcourse/commit/8cdcd6afdc5412f3ed2cffa929b3f421f2e9b135))
- handle unsupported Skool sync options ([2d25477](https://github.com/sebastian-software/offcourse/commit/2d25477bf233fcdfce29efaefe989033fe2d3891)), closes [#90](https://github.com/sebastian-software/offcourse/issues/90)
- harden course database migrations ([#63](https://github.com/sebastian-software/offcourse/issues/63)) ([05234c4](https://github.com/sebastian-software/offcourse/commit/05234c48c9af49c0640ce2cde25ee060a283b641))
- harden download failures and timeouts ([a4fc545](https://github.com/sebastian-software/offcourse/commit/a4fc54579f1f24f484046aebb2c6d32548ede352)), closes [#93](https://github.com/sebastian-software/offcourse/issues/93)
- harden downloader HTTP boundaries ([#61](https://github.com/sebastian-software/offcourse/issues/61)) ([a737fdf](https://github.com/sebastian-software/offcourse/commit/a737fdfabb03407a41d8986b656f5ec5fef74bbf))
- harden LearningSuite module scanning ([9945eef](https://github.com/sebastian-software/offcourse/commit/9945eefbc92414c318f7d55237c9b58451662dcb)), closes [#85](https://github.com/sebastian-software/offcourse/issues/85)
- ignore local worktrees in checks ([580ed71](https://github.com/sebastian-software/offcourse/commit/580ed7184d5ecffe77666780f0b5d5723d1ebe85))
- improve scraper diagnostics and title cleanup ([#54](https://github.com/sebastian-software/offcourse/issues/54)) ([b0da40b](https://github.com/sebastian-software/offcourse/commit/b0da40baeb3d73370a29c586a8eef74c50b028cf))
- isolate LearningSuite HLS renditions ([#49](https://github.com/sebastian-software/offcourse/issues/49)) ([8216379](https://github.com/sebastian-software/offcourse/commit/8216379f294ab3055d1eace4d8f416edd157b7a2))
- keep interactive Josh login on current page ([8bff05b](https://github.com/sebastian-software/offcourse/commit/8bff05bae595a5689685076756d8cbdfde726643)), closes [#89](https://github.com/sebastian-software/offcourse/issues/89)
- **loom:** clean up downloads and capture sessions ([#52](https://github.com/sebastian-software/offcourse/issues/52)) ([0857a08](https://github.com/sebastian-software/offcourse/commit/0857a083bed2bfad9109f635de8e9b18fe11fed9))
- make CLI shutdown interruptible ([5990f77](https://github.com/sebastian-software/offcourse/commit/5990f77f1a8abe4077fd251de4f005dfe1038d84))
- normalize Skool URLs before validation ([#50](https://github.com/sebastian-software/offcourse/issues/50)) ([b1b6c6c](https://github.com/sebastian-software/offcourse/commit/b1b6c6c7b70083f2b9a148e09a57b1c256101db5))
- polish Josh Comeau extraction and downloads ([79e38bf](https://github.com/sebastian-software/offcourse/commit/79e38bfd1f1fb2b29a65887b870da1bb44e36cce)), closes [#97](https://github.com/sebastian-software/offcourse/issues/97)
- preserve LearningSuite modules and lessons ([#51](https://github.com/sebastian-software/offcourse/issues/51)) ([56c0ff0](https://github.com/sebastian-software/offcourse/commit/56c0ff044d0c5fe134e91dc36baaa3f2f1dd21fb))
- preserve retry errors during shutdown ([300625c](https://github.com/sebastian-software/offcourse/commit/300625cac3034784e7b704fc8f3cc8bb027f2660)), closes [#86](https://github.com/sebastian-software/offcourse/issues/86)
- preserve signed HLS variant queries ([87bb033](https://github.com/sebastian-software/offcourse/commit/87bb0337ca8d6f0b8ecc34985143e51cd193f96d))
- preserve Vimeo HLS audio and signed URLs ([#53](https://github.com/sebastian-software/offcourse/issues/53)) ([43238db](https://github.com/sebastian-software/offcourse/commit/43238dbe0e175c29e28d48f7af7b0f72f262b377))
- propagate progressive stream failures ([#43](https://github.com/sebastian-software/offcourse/issues/43)) ([c1b53ba](https://github.com/sebastian-software/offcourse/commit/c1b53bafa6d045a51edf3e5e26ec5583c5dc0d5c))
- protect stored session credentials ([#41](https://github.com/sebastian-software/offcourse/issues/41)) ([57ed415](https://github.com/sebastian-software/offcourse/commit/57ed415a2b132019a8dbd8a60116ceb6001f403b))
- publish attachments atomically ([6238a37](https://github.com/sebastian-software/offcourse/commit/6238a376311e3e19df82bcf9d3d3194951c98f12))
- publish ffmpeg output atomically ([#47](https://github.com/sebastian-software/offcourse/issues/47)) ([484acc2](https://github.com/sebastian-software/offcourse/commit/484acc22e1a647addb31933172156911efff8c22))
- redact signed download URLs ([#42](https://github.com/sebastian-software/offcourse/issues/42)) ([5cd3248](https://github.com/sebastian-software/offcourse/commit/5cd3248bc8417da94d5dbc7e710302277cac069a))
- reject unsupported sync options and URLs ([#55](https://github.com/sebastian-software/offcourse/issues/55)) ([b6e2ad9](https://github.com/sebastian-software/offcourse/commit/b6e2ad95b429cb5f3efda13b69b603c0e0e84122))
- report complete source coverage ([#56](https://github.com/sebastian-software/offcourse/issues/56)) ([077a916](https://github.com/sebastian-software/offcourse/commit/077a916af82c9647bf841f3837d565b429c6363f))
- report coverage without provider workaround ([#57](https://github.com/sebastian-software/offcourse/issues/57)) ([92cc64b](https://github.com/sebastian-software/offcourse/commit/92cc64b563aa293134510ea0bbeb6068ce49eaa0))
- resume validated native lessons ([73fb4dd](https://github.com/sebastian-software/offcourse/commit/73fb4dd6dea779d8b8dc68c2ce7c950479a532b5))
- sanitize attachment download paths ([#40](https://github.com/sebastian-software/offcourse/issues/40)) ([b92983b](https://github.com/sebastian-software/offcourse/commit/b92983b10527aabf722350a5e686273cb37cf682))
- stabilize Josh Comeau Vimeo extraction ([4c3c580](https://github.com/sebastian-software/offcourse/commit/4c3c5806ff43a7f33ff60085d8d9ea9b5a59174f))
- stabilize Piccalilli OTP login ([d3e3ac2](https://github.com/sebastian-software/offcourse/commit/d3e3ac25bfdb04830a8f1e97382fd199b66d2e05))
- support LearningSuite login URLs ([65110c9](https://github.com/sebastian-software/offcourse/commit/65110c9afc865c4fe797842d9516c6d981cc5d54))
- update Skool login and course extraction ([87982e1](https://github.com/sebastian-software/offcourse/commit/87982e17a848ef7556b71e163d8f755ff5d7da50))
- validate pending Skool lessons ([3c2d384](https://github.com/sebastian-software/offcourse/commit/3c2d384134fce72d9ef3f12be58a945421380c56))
- wait for Josh Comeau hydration assets ([517d671](https://github.com/sebastian-software/offcourse/commit/517d671429ef8d566630cc4e7bceb133b2e96b1e)), closes [#87](https://github.com/sebastian-software/offcourse/issues/87)

## [1.4.0](https://github.com/sebastian-software/offcourse/compare/v1.3.0...v1.4.0) (2025-12-28)

### Features
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "offcourse",
"version": "1.4.0",
"version": "1.5.0",
"description": "Download online courses for offline access – of course!",
"type": "module",
"bin": {
Expand Down