kanarek-v1.0.1
What's Changed
- build(deps): bump astral-sh/setup-uv from 8.2.0 to 8.3.2 by @dependabot[bot] in #24
- build(deps): bump the androidx group in /feedget with 4 updates by @dependabot[bot] in #25
- build(deps-dev): bump @cloudflare/workers-types from 4.20260702.1 to 5.20260708.1 in /feedget/worker by @dependabot[bot] in #27
- build(deps-dev): bump wrangler from 4.107.0 to 4.107.1 in /feedget/worker by @dependabot[bot] in #26
- build(deps-dev): bump wrangler from 4.107.1 to 4.110.0 in /kanarek/worker by @dependabot[bot] in #29
- build(deps-dev): bump typescript from 6.0.3 to 7.0.2 in /kanarek/worker by @dependabot[bot] in #30
- chore(lint): clear MegaLinter Python blockers (ruff/flake8/bandit) by @trvny in #31
- chore(kanarek): ktlint --format pass over all Kotlin sources by @trvny in #32
- kanarek: F-Droid fastlane metadata (en-US) by @trvny in #34
- kanarek: sign release builds, fix release workflow (assembleRelease + tag trigger) by @trvny in #35
- kanarek: launcher home screen + i18n + player seed + save Toast by @trvny in #36
- kanarek: expand default feeds with feedseek sources (+ fix broken wrangler.jsonc) by @trvny in #37
- kanarek: bump targetSdk 35 → 36 (API 36 / Android 16) by @trvny in #38
- kanarek: optional per-source cap for the merged news list by @trvny in #40
- kanarek: group player station list by group-title into collapsible sections by @trvny in #39
- Potential fix for code scanning alert no. 31: DOM text reinterpreted as HTML by @trvny in #41
- Add cache cleanup workflow for pull requests by @trvny in #42
- fix(widget): lekki initialLayout — naprawa „Nie można dodać widżetu” by @trvny in #43
- Potential fix for code scanning alert no. 13: Clear-text logging of sensitive information by @trvny in #45
- fix(kanarek): sync observability sampling config to live (0.1) by @trvny in #46
- security: fix 8 CodeQL findings (worker ReDoS + openweather key-logging) by @trvny in #47
- build(deps-dev): bump @cloudflare/workers-types from 5.20260708.1 to 5.20260715.1 in /kanarek/worker by @dependabot[bot] in #50
- build(deps-dev): bump wrangler from 4.110.0 to 4.111.0 in /kanarek/worker by @dependabot[bot] in #51
- build(deps): bump the kotlin group in /kanarek with 2 updates by @dependabot[bot] in #52
- build(deps): bump com.android.application from 9.2.1 to 9.3.0 in /kanarek by @dependabot[bot] in #53
- build(deps): bump actions/setup-node from 6 to 7 by @dependabot[bot] in #49
- kanarek: clear stale lint baseline by @trvny in #54
- kanarek: station discovery via Radio Browser (~50k stations) by @trvny in #55
- release: name published APK kanarek- by @trvny in #57
- kanarek: channel logos from iptv-org (/logos + tvg-id) by @trvny in #56
- fix(kanarek/reader): feed field no longer eats the whole News screen by @trvny in #58
- fix(kanarek/player): add media3-exoplayer-dash — .mpd seeds crash the player by @trvny in #59
- kanarek: TV video surface, TV/Radio split, re-seedable sample lists by @trvny in #60
- kanarek: in-app News reader page, settings behind a gear by @trvny in #61
- feedseek: JSON Feed 1.1 sidecar for every feed by @trvny in #63
- kanarek/worker: feedsmith parser + JSON Feed read/emit by @trvny in #64
- kanarek: one-window UI (swipe pager + drawer + bottom nav) + review fixes by @trvny in #66
- kanarek: TV/radio kind icons, ICY now-playing, favicon logo fallback by @trvny in #68
- kanarek: Radio/TV/Other as real tabs instead of a mixed filter row by @trvny in #69
- build(deps-dev): bump wrangler from 4.111.0 to 4.112.0 in /kanarek/worker by @dependabot[bot] in #71
- build(deps-dev): bump @cloudflare/workers-types from 5.20260715.1 to 5.20260718.1 in /kanarek/worker by @dependabot[bot] in #72
- kanarek/worker: replace feed pkg + buildAtom() with feedsmith generators by @trvny in #73
- kanarek: infer station kind on import, always attach video surface for non-radio, move widget render off main by @trvny in #75
- kanarek: Google Cast support (play/foss product flavors) by @trvny in #74
- kanarek: parallelize on-device feed fetch (reader stuck spinning) by @trvny in #78
- kanarek: fullscreen TV video + single sample-load button + refreshed sample playlists by @trvny in #79
- kanarek: harden app, widgets, player and Worker by @trvny in #80
- chore(deps-dev): bump wrangler from 4.112.0 to 4.113.0 in /kanarek/worker by @dependabot[bot] in #82
- feat(kanarek): preview articles before opening browser by @trvny in #89
- fix(kanarek): stabilize refresh and localize article age by @trvny in #90
- feat(kanarek): add station favorites and widget controls by @trvny in #91
- feat(kanarek): add clean article reader mode by @trvny in #92
- feat(kanarek): add persistent article state by @trvny in #94
- docs: add scoped Codex instructions by @trvny in #95
- fix(kanarek): bound local caches by @trvny in #96
- feat(kanarek): add storage controls by @trvny in #97
- feat(kanarek): finish news widget 2.0 by @trvny in #98
- feat(kanarek): add local news search by @trvny in #99
- feedseek: add Word of the Day feed by @trvny in #102
- feat(kanarek): save articles offline by @trvny in #101
- feat(kanarek): add news notifications by @trvny in #103
- fix(kanarek): harden player error handling by @trvny in #104
- feat(kanarek): add settings backup and restore by @trvny in #105
- refactor(kanarek): split ReaderScreen components by @trvny in #106
- refactor(kanarek): split PlayerScreen components by @trvny in #107
- fix(kanarek): unify widget refresh scheduling by @trvny in #108
- feat(kanarek): share widget feed synchronization by @trvny in #109
- feat(kanarek): add reader background refresh by @trvny in #110
- feat(kanarek): share reader cache with notifications by @trvny in #112
- kanarek: Robolectric inflation tests for both widget RemoteViews trees by @trvny in #113
- Harden feeds proxy by @trvny in #115
- build(deps): bump sharp from 0.34.5 to 0.35.2 in /kanarek/worker in the npm_and_yarn group across 1 directory by @dependabot[bot] in #117
- Harden Kanarek outbound fetches by @trvny in #118
- kanarek: reconcile schedules when the process starts by @trvny in #120
- kanarek: restore Reader state after recreation by @trvny in #121
- kanarek: restore Player state after recreation by @trvny in #122
- kanarek: reconcile runtime after backup import by @trvny in #123
- kanarek: adapt widget surfaces to day and night mode by @trvny in #124
- kanarek: add app theme preference by @trvny in #125
- kanarek: surface stream metadata in player UI by @trvny in #126
- kanarek: manage screen wake for radio and TV by @trvny in #127
New Contributors
- @dependabot[bot] made their first contribution in #1
- @trvny made their first contribution in #9
- @github-actions[bot] made their first contribution in #12
Full Changelog: https://github.com/trvny/feeds/commits/kanarek-v1.0.1
What's Changed
- Bump actions/upload-pages-artifact from 3 to 5 by @dependabot[bot] in #1
- Bump actions/deploy-pages from 4 to 5 by @dependabot[bot] in #2
- Bump actions/configure-pages from 5 to 6 by @dependabot[bot] in #3
- Bump astral-sh/setup-uv from 8.1.0 to 8.2.0 by @dependabot[bot] in #4
- Bump actions/deploy-pages from 4 to 5 by @dependabot[bot] in #5
- Bump cloudflare/wrangler-action from 3 to 4 by @dependabot[bot] in #6
- Bump actions/configure-pages from 5 to 6 by @dependabot[bot] in #7
- Bump actions/upload-pages-artifact from 3 to 5 by @dependabot[bot] in #8
- Add Makefile targets for the nine new feeds by @trvny in #9
- feat: add combined Cloudflare Atom feed by @trvny in #10
- Bump actions/checkout from 6 to 7 in the actions group by @dependabot[bot] in #11
- Monorepo: feedget/ (apka) + feedseek/ (generatory) by @github-actions[bot] in #12
- chore(deps-dev): bump vitest from 3.2.6 to 4.1.9 in /feedget/worker by @dependabot[bot] in #13
- feedget: Headlines mode — ranked hot-stories view with editable top sources by @trvny in #14
- feedget worker: per-device read-state, subs & pairing on D1 by @trvny in #15
- build(deps): bump gradle-wrapper from 9.6.0 to 9.6.1 in /feedget by @dependabot[bot] in #16
- feat(feedget): background radio/IPTV player + M3U playlists + widget by @trvny in #17
- Feat/worker atom rss export by @trvny in #18
- ci: replace Super-linter with MegaLinter by @trvny in #19
- feedget: bundle merged tv.m3u8 playlist asset by @trvny in #20
- feedget: wire per-stream User-Agent/Referer headers (fixes 11 flagged entries from PR #20) by @trvny in #21
- feedget: preserve userAgent/referrer through the station edit dialog by @trvny in #22
- feedget: rebrand to Kanarek by @trvny in #23
- build(deps): bump astral-sh/setup-uv from 8.2.0 to 8.3.2 by @dependabot[bot] in #24
- build(deps): bump the androidx group in /feedget with 4 updates by @dependabot[bot] in #25
- build(deps-dev): bump @cloudflare/workers-types from 4.20260702.1 to 5.20260708.1 in /feedget/worker by @dependabot[bot] in #27
- build(deps-dev): bump wrangler from 4.107.0 to 4.107.1 in /feedget/worker by @dependabot[bot] in #26
- rename feedget/ -> kanarek/ + finish infra migration by @trvny in #28
- build(deps-dev): bump wrangler from 4.107.1 to 4.110.0 in /kanarek/worker by @dependabot[bot] in #29
- build(deps-dev): bump typescript from 6.0.3 to 7.0.2 in /kanarek/worker by @dependabot[bot] in #30
- chore(lint): clear MegaLinter Python blockers (ruff/flake8/bandit) by @trvny in #31
- chore(kanarek): ktlint --format pass over all Kotlin sources by @trvny in #32
- ci(feeds): zizmor hybrid hardening + MegaLinter auto-fix to artifact by @trvny in #33
- kanarek: F-Droid fastlane metadata (en-US) by @trvny in #34
- kanarek: sign release builds, fix release workflow (assembleRelease + tag trigger) by @trvny in #35
- kanarek: launcher home screen + i18n + player seed + save Toast by @trvny in #36
- kanarek: expand default feeds with feedseek sources (+ fix broken wrangler.jsonc) by @trvny in #37
- kanarek: bump targetSdk 35 → 36 (API 36 / Android 16) by @trvny in #38
- kanarek: optional per-source cap for the merged news list by @trvny in #40
- kanarek: group player station list by group-title into collapsible sections by @trvny in #39
- Potential fix for code scanning alert no. 31: DOM text reinterpreted as HTML by @trvny in #41
- Add cache cleanup workflow for pull requests by @trvny in #42
- fix(widget): lekki initialLayout — naprawa „Nie można dodać widżetu” by @trvny in #43
- feedseek: MRSS media, dc:creator, tag-URI IDs + full MRSS 1.5.1 extension by @trvny in #44
- Potential fix for code scanning alert no. 13: Clear-text logging of sensitive information by @trvny in #45
- fix(kanarek): sync observability sampling config to live (0.1) by @trvny in #46
- security: fix 8 CodeQL findings (worker ReDoS + openweather key-logging) by @trvny in #47
- feedseek: auto-generate subscriptions.opml from the published feed set by @trvny in #48
- build(deps-dev): bump @cloudflare/workers-types from 5.20260708.1 to 5.20260715.1 in /kanarek/worker by @dependabot[bot] in #50
- build(deps-dev): bump wrangler from 4.110.0 to 4.111.0 in /kanarek/worker by @dependabot[bot] in #51
- build(deps): bump the kotlin group in /kanarek with 2 updates by @dependabot[bot] in #52
- build(deps): bump com.android.application from 9.2.1 to 9.3.0 in /kanarek by @dependabot[bot] in #53
- build(deps): bump actions/setup-node from 6 to 7 by @dependabot[bot] in #49
- kanarek: clear stale lint baseline by @trvny in #54
- kanarek: station discovery via Radio Browser (~50k stations) by @trvny in #55
- release: name published APK kanarek- by @trvny in #57
- kanarek: channel logos from iptv-org (/logos + tvg-id) by @trvny in #56
- fix(kanarek/reader): feed field no longer eats the whole News screen by @trvny in #58
- fix(kanarek/player): add media3-exoplayer-dash — .mpd seeds crash the player by @trvny in #59
- kanarek: TV video surface, TV/Radio split, re-seedable sample lists by @trvny in #60
- kanarek: in-app News reader page, settings behind a gear by @trvny in #61
- feeds: fix broken feed icons via favicon override + favicon_proxy by @trvny in #62
- feedseek: JSON Feed 1.1 sidecar for every feed by @trvny in #63
- kanarek/worker: feedsmith parser + JSON Feed read/emit by @trvny in #64
- feat(feedseek): adaptive per-feed STALE detection in validate_feeds by @trvny in #65
- kanarek: one-window UI (swipe pager + drawer + bottom nav) + review fixes by @trvny in #66
- kanarek: TV/radio kind icons, ICY now-playing, favicon logo fallback by @trvny in #68
- feedseek: add multireddit feed (combined, deduped) by @trvny in #67
- kanarek: Radio/TV/Other as real tabs instead of a mixed filter row by @trvny in #69
- build(deps-dev): bump wrangler from 4.111.0 to 4.112.0 in /kanarek/worker by @dependabot[bot] in #71
- build(deps-dev): bump @cloudflare/workers-types from 5.20260715.1 to 5.20260718.1 in /kanarek/worker by @dependabot[bot] in #72
- kanarek/worker: replace feed pkg + buildAtom() with feedsmith generators by @trvny in #73
- kanarek: infer station kind on import, always attach video surface for non-radio, move widget render off main by @trvny in #75
- kanarek: Google Cast support (play/foss product flavors) by @trvny in #74
- feedseek: add AI/SaaS sources to aibridge and saas; sync README feed list by @trvny in #76
- fix(worker): bound stripTags regex to kill polynomial ReDoS by @trvny in #77
- kanarek: parallelize on-device feed fetch (reader stuck spinning) by @trvny in #78
- kanarek: fullscreen TV video + single sample-load button + refreshed sample playlists by @trvny in #79
- kanarek: harden app, widgets, player and Worker by @trvny in #80
- chore(deps-dev): bump wrangler from 4.112.0 to 4.113.0 in /kanarek/worker by @dependabot[bot] in #82
- chore(deps): bump astral-sh/setup-uv from 8.3.2 to 9.0.0 by @dependabot[bot] in #81
- feedseek: harden generation and validation pipeline by @trvny in #84
- feedseek: keep Bible verse publishing when They Said So fails by @trvny in #85
- feedseek: reject legacy feed self-link roots by @trvny in #86
- theysaidso: repair mojibake in quote text by @trvny in #87
- reader: harden refresh, rendering, and cache by @trvny in #88
- feat(kanarek): preview articles before opening browser by @trvny in #89
- fix(kanarek): stabilize refresh and localize article age by @trvny in #90
- feat(kanarek): add station favorites and widget controls by @trvny in #91
- feat(kanarek): add clean article reader mode by @trvny in #92
- feat(feedseek): add active blogs.esa.int mission blogs to the ESA feed by @trvny in #93
- feat(kanarek): add persistent article state by @trvny in #94
- docs: add scoped Codex instructions by @trvny in #95
- fix(kanarek): bound local caches by @trvny in #96
- feat(kanarek): add storage controls by @trvny in #97
- feat(kanarek): finish news widget 2.0 by @trvny in #98
- feat(kanarek): add local news search by @trvny in #99
- feedseek: add geopolitics feed (ISW, RUSI, CSIS, Carnegie) by @trvny in #100
- feedseek: add Word of the Day feed by @trvny in #102
- feat(kanarek): save articles offline by @trvny in #101
- feat(kanarek): add news notifications by @trvny in #103
- fix(kanarek): harden player error handling by @trvny in #104
- feat(kanarek): add settings backup and restore by @trvny in #105
- refactor(kanarek): split ReaderScreen components by @trvny in #106
- refactor(kanarek): split PlayerScreen components by @trvny in #107
- fix(kanarek): unify widget refresh scheduling by @trvny in #108
- feat(kanarek): share widget feed synchronization by @trvny in #109
- feat(kanarek): add reader background refresh by @trvny in #110
- Add combined Medium feed with per-source output quota by @trvny in #111
- feat(kanarek): share reader cache with notifications by @trvny in #112
- kanarek: Robolectric inflation tests for both widget RemoteViews trees by @trvny in #113
- Harden feeds proxy by @trvny in #115
- Adapt Codex auto-fix to feeds by @trvny in #114
- Run feeds checks with fewer jobs by @trvny in #116
- build(deps): bump sharp from 0.34.5 to 0.35.2 in /kanarek/worker in the npm_and_yarn group across 1 directory by @dependabot[bot] in #117
- Harden Kanarek outbound fetches by @trvny in #118
- Deploy Kanarek after Worker CI by @trvny in #119
- kanarek: reconcile schedules when the process starts by @trvny in #120
- kanarek: restore Reader state after recreation by @trvny in #121
- kanarek: restore Player state after recreation by @trvny in #122
- kanarek: reconcile runtime after backup import by @trvny in #123
- kanarek: adapt widget surfaces to day and night mode by @trvny in #124
- kanarek: add app theme preference by @trvny in #125
- kanarek: surface stream metadata in player UI by @trvny in #126
- kanarek: manage screen wake for radio and TV by @trvny in #127
- feedseek: GOG and Samsung Newsroom feeds, plus new sources on five existing feeds by @trvny in #128
- ci: scope Feedseek checks to relevant changes by @trvny in #132
- Add Bing verification tag to feeds page by @trvny in #131
- feedseek: one-liner quote/saying/joke feeds, Agent Client Protocol, README refresh by @trvny in #129
- kanarek: adapt widgets to launcher size by @trvny in #130
- build(kanarek): prepare for AGP 10 build model by @trvny in #133
- fix(reader): bypass proxy for same-origin feeds by @trvny in #134
- ci(pages): deploy direct site changes by @trvny in #135
- feedseek: restore audio, add github and europa feeds by @trvny in #136
- Publish MegaLinter fixes as a dedicated artifact by @trvny in #137
- Bundle MegaLinter fixes with reports by @trvny in #138
- feedseek: add Visual Crossing resources, Spotify and Paint.NET feeds; extend the GitHub and Europa feeds by @trvny in #141
New Contributors
- @dependabot[bot] made their first contribution in #1
- @trvny made their first contribution in #9
- @github-actions[bot] made their first contribution in #12
Full Changelog: https://github.com/trvny/feeds/commits/kanarek-v1.0.1
What's Changed
- Bump actions/upload-pages-artifact from 3 to 5 by @dependabot[bot] in #1
- Bump actions/deploy-pages from 4 to 5 by @dependabot[bot] in #2
- Bump actions/configure-pages from 5 to 6 by @dependabot[bot] in #3
- Bump astral-sh/setup-uv from 8.1.0 to 8.2.0 by @dependabot[bot] in #4
- Bump actions/deploy-pages from 4 to 5 by @dependabot[bot] in #5
- Bump cloudflare/wrangler-action from 3 to 4 by @dependabot[bot] in #6
- Bump actions/configure-pages from 5 to 6 by @dependabot[bot] in #7
- Bump actions/upload-pages-artifact from 3 to 5 by @dependabot[bot] in #8
- Add Makefile targets for the nine new feeds by @trvny in #9
- feat: add combined Cloudflare Atom feed by @trvny in #10
- Bump actions/checkout from 6 to 7 in the actions group by @dependabot[bot] in #11
- Monorepo: feedget/ (apka) + feedseek/ (generatory) by @github-actions[bot] in #12
- chore(deps-dev): bump vitest from 3.2.6 to 4.1.9 in /feedget/worker by @dependabot[bot] in #13
- feedget: Headlines mode — ranked hot-stories view with editable top sources by @trvny in #14
- feedget worker: per-device read-state, subs & pairing on D1 by @trvny in #15
- build(deps): bump gradle-wrapper from 9.6.0 to 9.6.1 in /feedget by @dependabot[bot] in #16
- feat(feedget): background radio/IPTV player + M3U playlists + widget by @trvny in #17
- Feat/worker atom rss export by @trvny in #18
- ci: replace Super-linter with MegaLinter by @trvny in #19
- feedget: bundle merged tv.m3u8 playlist asset by @trvny in #20
- feedget: wire per-stream User-Agent/Referer headers (fixes 11 flagged entries from PR #20) by @trvny in #21
- feedget: preserve userAgent/referrer through the station edit dialog by @trvny in #22
- feedget: rebrand to Kanarek by @trvny in #23
- build(deps): bump astral-sh/setup-uv from 8.2.0 to 8.3.2 by @dependabot[bot] in #24
- build(deps): bump the androidx group in /feedget with 4 updates by @dependabot[bot] in #25
- build(deps-dev): bump @cloudflare/workers-types from 4.20260702.1 to 5.20260708.1 in /feedget/worker by @dependabot[bot] in #27
- build(deps-dev): bump wrangler from 4.107.0 to 4.107.1 in /feedget/worker by @dependabot[bot] in #26
- rename feedget/ -> kanarek/ + finish infra migration by @trvny in #28
- build(deps-dev): bump wrangler from 4.107.1 to 4.110.0 in /kanarek/worker by @dependabot[bot] in #29
- build(deps-dev): bump typescript from 6.0.3 to 7.0.2 in /kanarek/worker by @dependabot[bot] in #30
- chore(lint): clear MegaLinter Python blockers (ruff/flake8/bandit) by @trvny in #31
- chore(kanarek): ktlint --format pass over all Kotlin sources by @trvny in #32
- ci(feeds): zizmor hybrid hardening + MegaLinter auto-fix to artifact by @trvny in #33
- kanarek: F-Droid fastlane metadata (en-US) by @trvny in #34
- kanarek: sign release builds, fix release workflow (assembleRelease + tag trigger) by @trvny in #35
- kanarek: launcher home screen + i18n + player seed + save Toast by @trvny in #36
- kanarek: expand default feeds with feedseek sources (+ fix broken wrangler.jsonc) by @trvny in #37
- kanarek: bump targetSdk 35 → 36 (API 36 / Android 16) by @trvny in #38
- kanarek: optional per-source cap for the merged news list by @trvny in #40
- kanarek: group player station list by group-title into collapsible sections by @trvny in #39
- Potential fix for code scanning alert no. 31: DOM text reinterpreted as HTML by @trvny in #41
- Add cache cleanup workflow for pull requests by @trvny in #42
- fix(widget): lekki initialLayout — naprawa „Nie można dodać widżetu” by @trvny in #43
- feedseek: MRSS media, dc:creator, tag-URI IDs + full MRSS 1.5.1 extension by @trvny in #44
- Potential fix for code scanning alert no. 13: Clear-text logging of sensitive information by @trvny in #45
- fix(kanarek): sync observability sampling config to live (0.1) by @trvny in #46
- security: fix 8 CodeQL findings (worker ReDoS + openweather key-logging) by @trvny in #47
- feedseek: auto-generate subscriptions.opml from the published feed set by @trvny in #48
- build(deps-dev): bump @cloudflare/workers-types from 5.20260708.1 to 5.20260715.1 in /kanarek/worker by @dependabot[bot] in #50
- build(deps-dev): bump wrangler from 4.110.0 to 4.111.0 in /kanarek/worker by @dependabot[bot] in #51
- build(deps): bump the kotlin group in /kanarek with 2 updates by @dependabot[bot] in #52
- build(deps): bump com.android.application from 9.2.1 to 9.3.0 in /kanarek by @dependabot[bot] in #53
- build(deps): bump actions/setup-node from 6 to 7 by @dependabot[bot] in #49
- kanarek: clear stale lint baseline by @trvny in #54
- kanarek: station discovery via Radio Browser (~50k stations) by @trvny in #55
- release: name published APK kanarek- by @trvny in #57
- kanarek: channel logos from iptv-org (/logos + tvg-id) by @trvny in #56
- fix(kanarek/reader): feed field no longer eats the whole News screen by @trvny in #58
- fix(kanarek/player): add media3-exoplayer-dash — .mpd seeds crash the player by @trvny in #59
- kanarek: TV video surface, TV/Radio split, re-seedable sample lists by @trvny in #60
- kanarek: in-app News reader page, settings behind a gear by @trvny in #61
- feeds: fix broken feed icons via favicon override + favicon_proxy by @trvny in #62
- feedseek: JSON Feed 1.1 sidecar for every feed by @trvny in #63
- kanarek/worker: feedsmith parser + JSON Feed read/emit by @trvny in #64
- feat(feedseek): adaptive per-feed STALE detection in validate_feeds by @trvny in #65
- kanarek: one-window UI (swipe pager + drawer + bottom nav) + review fixes by @trvny in #66
- kanarek: TV/radio kind icons, ICY now-playing, favicon logo fallback by @trvny in #68
- feedseek: add multireddit feed (combined, deduped) by @trvny in #67
- kanarek: Radio/TV/Other as real tabs instead of a mixed filter row by @trvny in #69
- build(deps-dev): bump wrangler from 4.111.0 to 4.112.0 in /kanarek/worker by @dependabot[bot] in #71
- build(deps-dev): bump @cloudflare/workers-types from 5.20260715.1 to 5.20260718.1 in /kanarek/worker by @dependabot[bot] in #72
- kanarek/worker: replace feed pkg + buildAtom() with feedsmith generators by @trvny in #73
- kanarek: infer station kind on import, always attach video surface for non-radio, move widget render off main by @trvny in #75
- kanarek: Google Cast support (play/foss product flavors) by @trvny in #74
- feedseek: add AI/SaaS sources to aibridge and saas; sync README feed list by @trvny in #76
- fix(worker): bound stripTags regex to kill polynomial ReDoS by @trvny in #77
- kanarek: parallelize on-device feed fetch (reader stuck spinning) by @trvny in #78
- kanarek: fullscreen TV video + single sample-load button + refreshed sample playlists by @trvny in #79
- kanarek: harden app, widgets, player and Worker by @trvny in #80
- chore(deps-dev): bump wrangler from 4.112.0 to 4.113.0 in /kanarek/worker by @dependabot[bot] in #82
- chore(deps): bump astral-sh/setup-uv from 8.3.2 to 9.0.0 by @dependabot[bot] in #81
- feedseek: harden generation and validation pipeline by @trvny in #84
- feedseek: keep Bible verse publishing when They Said So fails by @trvny in #85
- feedseek: reject legacy feed self-link roots by @trvny in #86
- theysaidso: repair mojibake in quote text by @trvny in #87
- reader: harden refresh, rendering, and cache by @trvny in #88
- feat(kanarek): preview articles before opening browser by @trvny in #89
- fix(kanarek): stabilize refresh and localize article age by @trvny in #90
- feat(kanarek): add station favorites and widget controls by @trvny in #91
- feat(kanarek): add clean article reader mode by @trvny in #92
- feat(feedseek): add active blogs.esa.int mission blogs to the ESA feed by @trvny in #93
- feat(kanarek): add persistent article state by @trvny in #94
- docs: add scoped Codex instructions by @trvny in #95
- fix(kanarek): bound local caches by @trvny in #96
- feat(kanarek): add storage controls by @trvny in #97
- feat(kanarek): finish news widget 2.0 by @trvny in #98
- feat(kanarek): add local news search by @trvny in #99
- feedseek: add geopolitics feed (ISW, RUSI, CSIS, Carnegie) by @trvny in #100
- feedseek: add Word of the Day feed by @trvny in #102
- feat(kanarek): save articles offline by @trvny in #101
- feat(kanarek): add news notifications by @trvny in #103
- fix(kanarek): harden player error handling by @trvny in #104
- feat(kanarek): add settings backup and restore by @trvny in #105
- refactor(kanarek): split ReaderScreen components by @trvny in #106
- refactor(kanarek): split PlayerScreen components by @trvny in #107
- fix(kanarek): unify widget refresh scheduling by @trvny in #108
- feat(kanarek): share widget feed synchronization by @trvny in #109
- feat(kanarek): add reader background refresh by @trvny in #110
- Add combined Medium feed with per-source output quota by @trvny in #111
- feat(kanarek): share reader cache with notifications by @trvny in #112
- kanarek: Robolectric inflation tests for both widget RemoteViews trees by @trvny in #113
- Harden feeds proxy by @trvny in #115
- Adapt Codex auto-fix to feeds by @trvny in #114
- Run feeds checks with fewer jobs by @trvny in #116
- build(deps): bump sharp from 0.34.5 to 0.35.2 in /kanarek/worker in the npm_and_yarn group across 1 directory by @dependabot[bot] in #117
- Harden Kanarek outbound fetches by @trvny in #118
- Deploy Kanarek after Worker CI by @trvny in #119
- kanarek: reconcile schedules when the process starts by @trvny in #120
- kanarek: restore Reader state after recreation by @trvny in #121
- kanarek: restore Player state after recreation by @trvny in #122
- kanarek: reconcile runtime after backup import by @trvny in #123
- kanarek: adapt widget surfaces to day and night mode by @trvny in #124
- kanarek: add app theme preference by @trvny in #125
- kanarek: surface stream metadata in player UI by @trvny in #126
- kanarek: manage screen wake for radio and TV by @trvny in #127
- feedseek: GOG and Samsung Newsroom feeds, plus new sources on five existing feeds by @trvny in #128
- ci: scope Feedseek checks to relevant changes by @trvny in #132
- Add Bing verification tag to feeds page by @trvny in #131
- feedseek: one-liner quote/saying/joke feeds, Agent Client Protocol, README refresh by @trvny in #129
- kanarek: adapt widgets to launcher size by @trvny in #130
- build(kanarek): prepare for AGP 10 build model by @trvny in #133
- fix(reader): bypass proxy for same-origin feeds by @trvny in #134
- ci(pages): deploy direct site changes by @trvny in #135
- feedseek: restore audio, add github and europa feeds by @trvny in #136
- Publish MegaLinter fixes as a dedicated artifact by @trvny in #137
- Bundle MegaLinter fixes with reports by @trvny in #138
- feedseek: add Visual Crossing resources, Spotify and Paint.NET feeds; extend the GitHub and Europa feeds by @trvny in #141
New Contributors
- @github-actions[bot] made their first contribution in #12
Full Changelog: https://github.com/trvny/feeds/commits/kanarek-v1.0.1