4gray
701cf23299
chore(frontend): clean logging and lint suppressions
2026-05-26 20:18:12 +02:00
4gray
a1b0d9186c
chore(test): clean lint and warning baseline
2026-05-26 19:30:21 +02:00
4gray
3d4d2ca9bf
fix(angular): remove template diagnostics warnings ( #1011 )
...
* fix(angular): remove template diagnostics warnings
* fix(angular): preserve template fallback behavior
2026-05-26 18:33:44 +02:00
4gray
82c725ea5a
refactor(playback): add playback position runtime bridge ( #1009 )
...
* refactor(playback): add playback position runtime bridge
* test(services): avoid angular testing import in playback specs
2026-05-25 01:14:11 +03:00
4gray
697eab6e73
refactor(epg): route renderer calls through runtime bridge
...
Add typed EPG runtime bridge, split EPG runtime capabilities, migrate renderer EPG callers away from direct window.electron access, and address Greptile review feedback.
2026-05-24 13:45:51 +03:00
4gray
959f6061f0
fix(runtime): address greptile capability feedback
2026-05-22 14:37:06 +03:00
4gray
cf0b06312b
test(xtream): mock remote control runtime support
2026-05-22 14:32:12 +03:00
4gray
ed8680116c
fix(runtime): address consolidated review feedback
2026-05-22 14:02:56 +03:00
4gray
676e8bb5da
refactor(runtime): gate downloads navigation by capability
2026-05-22 13:38:20 +03:00
4gray
3e398f1d1a
refactor(remote-control): gate live bridge by capability
2026-05-22 13:35:03 +03:00
4gray
8cfc40f59b
refactor(xtream): gate data source by sqlite capability
2026-05-22 13:35:03 +03:00
4gray
5cf7ab9358
refactor(xtream): use epg runtime capability only
2026-05-22 13:34:37 +03:00
4gray
465b1b5559
refactor(stalker): gate portal sqlite sync by runtime capability
2026-05-22 13:34:16 +03:00
4gray
790dbb7062
refactor(portal): gate activity storage by runtime capability
2026-05-22 13:34:16 +03:00
4gray
45ee1ac3e4
refactor(portal-ui): use runtime capabilities
2026-05-22 11:47:33 +03:00
4gray
c571c57c5b
refactor(runtime): centralize platform capabilities
2026-05-22 11:00:34 +03:00
4gray
36bce47764
merge: resolve master conflicts for pwa hardening
...
- merge origin/master into PR #964 and keep embedded MPV test on the isolated playback sub-entrypoint
- centralize EPG capability through DataService.supportsEpg and update PWA web-e2e expectations
- split BrowserAccessError copy between Electron and PWA diagnostics
2026-05-22 10:20:03 +03:00
4gray
5d355b6f10
fix(web): address strict mode review feedback
2026-05-22 03:11:14 +03:00
4gray
4ab8915483
chore(web): enable strict TypeScript mode
2026-05-22 02:58:12 +03:00
4gray
55efc24608
fix(pwa): harden self-hosted runtime boundaries
2026-05-22 02:09:57 +03:00
4gray
2a769ad44e
Merge origin/master into PR 955
2026-05-22 01:34:56 +03:00
4gray
67d512d44c
Merge pull request #961 from 4gray/agent/pwa-provider-target-flow
...
fix(docker): exclude agent worktrees from build context
2026-05-22 00:47:22 +03:00
4gray
69b7bca9df
fix(pwa): prefer xtream collection snapshots
2026-05-21 21:13:58 +03:00
4gray
87dfaec03d
fix(pwa): filter stalker from xtream collections
2026-05-21 20:33:02 +03:00
4gray
6438eec49f
fix(pwa): align xtream content identity
2026-05-21 20:18:39 +03:00
4gray
ed0b6833d6
fix(pwa): persist xtream collection snapshots
2026-05-21 20:00:38 +03:00
4gray
9097ff5bc1
fix(pwa): align xtream recent clearing
2026-05-21 19:45:07 +03:00
4gray
d1e057887f
fix(pwa): avoid persisting xtream passwords
2026-05-21 19:41:16 +03:00
4gray
ec098f98b1
fix(pwa): hydrate xtream user collections
2026-05-21 19:35:36 +03:00
4gray
1ea6914f98
fix(pwa): harden xtream identity normalization
2026-05-21 19:27:40 +03:00
4gray
1d4d793aac
fix(pwa): restore xtream user collections
2026-05-21 19:23:25 +03:00
4gray
b2909a1186
feat(workspace): add keyboard shortcuts help ( #957 )
...
* feat(workspace): add keyboard shortcuts help
* style(workspace): polish keyboard shortcuts dialog
* fix(workspace): address shortcuts review feedback
* docs(workspace): clarify desktop shortcut availability
* refactor(workspace): split keyboard shortcut definitions
2026-05-21 19:15:46 +03:00
4gray
6829c667bd
fix(pwa): restore xtream rail and vod navigation
2026-05-21 14:18:11 +03:00
4gray
5b091809ef
fix(xtream): ignore future recently added dates
...
## Summary
- Normalize Xtream recently-added timestamps across UI, import, and dashboard query paths.
- Filter future/invalid provider dates before ranking rails and migrate legacy millisecond cache rows.
- Add regression coverage for future timestamps, series date priority, and DB migration behavior.
## Validation
- GitHub checks passed, including Unit Tests and Typechecks, Web E2E, Electron E2E on macOS/Ubuntu/Windows, CodeQL, builds, and Greptile Review.
2026-05-19 14:39:38 +02:00
4gray and Claude Opus 4.7
a27a29fcf2
refactor(ui): unify primary color to blue across all surfaces
...
Swap M3 primary palette from violet to azure so checkboxes, radio
buttons, raised CTAs, and active states read as the same blue used by
the rail selection token. Cascading template + SCSS updates align the
remaining hand-rolled surfaces (Add Playlist dialog, VOD play button,
radio player, multi-EPG, empty-state CTAs) with the unified system.
LIVE stays red (broadcast role), cyan stays on EPG "now" indicator,
green stays on completed-download — semantic colors keep their meaning;
only the indiscriminate accent uses get folded into the blue primary.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 00:12:34 +02:00
4gray
20e7322353
refactor(portal): split collection data access ( #953 )
2026-05-19 00:01:34 +02:00
4gray
118d4fce32
fix(playback): improve inline stream diagnostics ( #952 )
...
* fix(playback): improve inline stream diagnostics
* fix(playback): preserve headers in diagnostics wrapper
* fix(portal): align unified live player imports
2026-05-18 23:59:20 +02:00
4gray
5e5a89a300
refactor(ui): remove dead portal code and share detail styles ( #946 )
2026-05-16 00:09:29 +02:00
4gray
272e0e772e
fix(stalker): preserve explicit portal identity ( #941 )
2026-05-15 18:34:49 +02:00
4gray
d24c77a143
chore(nx): enforce scoped workspace boundaries ( #942 )
2026-05-15 09:59:06 +02:00
4gray
8232a86a1e
feat(portal): add category sorting controls ( #940 )
...
* feat(portal): add category sort modes
* fix(portal): address category sort review feedback
2026-05-15 00:28:32 +02:00
4gray
9ae984ad7f
feat(portal): add series quick start CTA ( #925 )
...
* feat(portal): add series quick start CTA
Entire-Checkpoint: f957cd9849e0
* fix(portal): address series quick start review
Entire-Checkpoint: f957cd9849e0
* docs: use repo-relative quick start path
Entire-Checkpoint: f957cd9849e0
2026-05-12 23:45:02 +02:00
4gray
a33d506266
fix(stalker): play radio collections with audio layout ( #930 )
...
* fix(stalker): play radio collections with audio layout
* fix(stalker): address radio review feedback
2026-05-12 19:48:38 +02:00
4gray
6ae1251ad1
fix(playback): use inline player for collection VOD ( #928 )
...
* feat(portal): add series quick start CTA
Entire-Checkpoint: f957cd9849e0
* fix(playback): use inline player for collection vod
* fix(playback): address inline collection review feedback
* fix(playback): ignore stale vod position loads
2026-05-12 19:26:40 +02:00
4gray
6305dcf00e
Add browser playback diagnostics and MPV/VLC fallback ( #921 )
...
* feat(playback): add codec diagnostics fallback
Entire-Checkpoint: f957cd9849e0
* fix(playback): address diagnostics review feedback
Entire-Checkpoint: f957cd9849e0
* fix(playback): ignore recoverable hls diagnostics
Entire-Checkpoint: f957cd9849e0
* fix(playback): polish diagnostic fallback banner
Entire-Checkpoint: f957cd9849e0
* fix(xtream): preserve live category search scope
Entire-Checkpoint: f957cd9849e0
2026-05-10 17:27:54 +02:00
4gray
724e4b1ab3
feat(playback): add embedded mpv (macos) stream recording ( #916 )
...
* feat(playback): add embedded mpv stream recording
Entire-Checkpoint: f957cd9849e0
* fix(playback): address embedded mpv recording review
Entire-Checkpoint: f957cd9849e0
* fix(playback): track mpv recording auto-stop replies
Entire-Checkpoint: f957cd9849e0
2026-05-10 12:27:09 +02:00
4gray
8b3b1c9bb7
chore: merge master into xtream timezone fix
2026-05-09 16:15:01 +02:00
4gray
134b5fb779
Merge pull request #911 from 4gray/codex/stalker-radio
...
feat(stalker): add radio support
2026-05-09 15:50:10 +02:00
4gray
0d93301520
fix(stalker): address radio review feedback
...
Entire-Checkpoint: f957cd9849e0
2026-05-09 13:08:41 +02:00
4gray
9261794b4a
Merge pull request #902 from weeco/feat/xtream-xmltv-epg-fallback
...
feat(xtream): fall back to uploaded XMLTV when provider has no EPG
2026-05-09 13:06:51 +02:00