4gray
fd59447064
docs(docker): restore self-hosted PWA compose flow
...
* docs(docker): restore self-hosted PWA compose flow
* fix(docker): supervise self-hosted runtime processes
* fix(docker): exit cleanly on container stop
2026-05-21 09:30:57 +02: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
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
32cc0b74e8
feat: add self-hosted PWA backend runtime ( #944 )
...
* feat(web-backend): add self-hosted proxy app
* feat(web): enable runtime PWA configuration
* test(web-e2e): cover self-hosted backend proxy
* test(web-e2e): clean self-hosted lint warnings
* fix(web-backend): validate proxied provider URLs
* fix(web-backend): proxy through registered provider targets
* fix(web-backend): document CodeQL SSRF validation boundary
* test(web-e2e): mock provider target registration
* fix(web): address self-hosted review feedback
2026-05-16 00:10:03 +02:00
4gray
5e5a89a300
refactor(ui): remove dead portal code and share detail styles ( #946 )
2026-05-16 00:09:29 +02:00
4gray
0ec9b29993
fix(playlist): preserve auto-refresh on manual refresh ( #947 )
...
* fix(playlist): preserve auto-refresh on manual refresh
* test(playlist): cover disabled auto-refresh preservation
2026-05-15 23:10:35 +02:00
4gray
272e0e772e
fix(stalker): preserve explicit portal identity ( #941 )
2026-05-15 18:34:49 +02:00
4gray
2d5c4fa4f9
chore: tighten validation and runtime logging
...
* chore: tighten validation and runtime logging
* fix(i18n): localize new settings labels
2026-05-15 17:43:42 +02:00
4gray
d24c77a143
chore(nx): enforce scoped workspace boundaries ( #942 )
2026-05-15 09:59:06 +02:00
4gray
4a4334cb64
feat(playback): improve browser-player diagnostics ( #939 )
...
* feat(playback): diagnose browser stream access errors
Entire-Checkpoint: f957cd9849e0
* feat(playback): expose browser-player diagnostic details
Entire-Checkpoint: f957cd9849e0
* fix(playback): keep media path extensions authoritative
Entire-Checkpoint: f957cd9849e0
* fix(playback): tighten browser access diagnostics
Entire-Checkpoint: f957cd9849e0
* fix(playback): align diagnostic followups
Entire-Checkpoint: f957cd9849e0
* fix(playback): narrow declared stream metadata
Entire-Checkpoint: f957cd9849e0
* fix(playback): preserve explicit extension overrides
Entire-Checkpoint: f957cd9849e0
* fix(playback): keep mpeg-ts out of unsupported containers
Entire-Checkpoint: f957cd9849e0
* refactor(playback): split diagnostics utilities
Entire-Checkpoint: f957cd9849e0
* fix(playback): treat mpegts early eof as media fallback
Entire-Checkpoint: f957cd9849e0
2026-05-15 00:55:23 +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
2a5b1d1da7
fix(xtream): keep live playback on category switch ( #936 )
2026-05-14 20:52:02 +02:00
4gray
a40d5447e7
feat(settings): add external player arguments ( #932 )
...
* feat(settings): add external player arguments
* fix(settings): address external player argument review
* fix(settings): require external player argument settings
* feat(settings): add external player argument placeholders
Closes https://github.com/4gray/iptvnator/issues/835
2026-05-14 11:04:01 +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
e7db920543
fix(settings): clarify external player path hints ( #929 )
...
* fix(settings): clarify external player path hints
* fix(settings): gate external player hints to desktop
2026-05-12 19:49:14 +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
a2ecdc358f
fix(electron): resolve macOS external player app paths ( #924 )
...
* fix(electron): resolve macOS external player app paths
* fix(electron): make macos player executable mapping explicit
2026-05-10 23:36:35 +02:00
4gray
1ca291d35c
chore(nx): update Nx to 22.7.1 ( #923 )
...
* chore(nx): update Nx to 22.7.1
Entire-Checkpoint: f957cd9849e0
* fix(ci): patch nx-electron package metadata copy
Entire-Checkpoint: f957cd9849e0
* fix(packaging): preserve electron package metadata
Entire-Checkpoint: f957cd9849e0
* fix(packaging): address package verifier review
Entire-Checkpoint: f957cd9849e0
2026-05-10 22:01:25 +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
5f4cf01467
fix(playback): avoid redundant VideoJS source resets ( #920 )
...
* fix(playback): avoid redundant VideoJS source resets
* fix(playback): clean up cleared VideoJS sources
* refactor(playback): use signal APIs in VideoJS player
closes #608
2026-05-10 15:32:00 +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
eb0da5951f
Merge pull request #914 from 4gray/codex/fix-linux-window-identity
...
fix(linux): align packaged app identity
2026-05-09 20:11:07 +02:00
4gray
4a755b43ec
Merge pull request #885 from sapireli/fix/xtream-catchup-server-timezone
...
fix(xtream): use server timezone when constructing catchup/timeshift URLs
2026-05-09 19:28:16 +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
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
4gray
e9875f9f29
Merge pull request #903 from sapireli/search_all_fix
...
Fix Xtream section search across categories
2026-05-08 22:09:36 +02:00
4gray
f884c3479a
Merge pull request #906 from TeddJohnson/codex/double-click-stream-start
...
feat: Add double-click stream open setting
2026-05-08 20:08:23 +02:00
4gray
d0b08b9f1d
feat(player): add embedded-mpv player for macOS as experimental feature ( #877 )
...
Merge PR #877 : feat(player): add embedded-mpv player for macOS as experimental feature
2026-05-02 03:34:46 +02:00
4gray
e35b96d55d
Merge pull request #864 from sapireli/epg-hardening-invalid-rows
...
Harden EPG channel lookup and invalid rows
2026-04-16 23:42:52 +02:00
4gray
595213d3dc
Merge pull request #854 from 4gray/feat/xtream-epg
...
Feat: Xtream Code API EPG improvements
2026-04-06 18:18:17 +02:00
4gray
dd265f15e9
Merge pull request #853 from 4gray/feat/workspace-dashboard-improvements
...
Feat: xtream and workspace improvements
2026-04-05 18:58:50 +02:00
4gray
2e29523078
Merge pull request #844 from 4gray/claude/fix-e2e-playlist-tests-ZB1XE
...
fix(e2e): use mat-button-toggle value selectors for playlist type selection
2026-04-04 13:49:56 +02:00
4gray
e579c21486
Merge pull request #803 from GiviMAD/fix_epg_ignored_programs
...
fix: epg ignored programs
2026-03-17 23:30:42 +01:00
4gray
ea55c485a7
Merge pull request #801 from markc1984/master
...
fix: support raw MPEG-TS (.ts) streams in all embedded video players
2026-03-05 23:42:38 +01:00
4gray
ef65c48f11
Merge pull request #775 from 4gray/claude/dazzling-lamport
...
feat(website): add Astro landing page and blog with cinematic broadcast design
2026-02-14 21:25:12 +01:00
4gray
d7953d9e13
Merge pull request #771 from 4gray/refactor/stalker-portals
...
Refactor: Stalker portal store
2026-02-14 16:27:33 +01:00
4gray
ac2ca36470
Merge pull request #769 from 4gray/feat/remote-control-for-xtream
...
Feat: Remote control for xtream/stalker
2026-02-14 16:16:55 +01:00
4gray
12bbdf562a
Merge pull request #765 from 4gray/fix/pre-v0-19-release-fixes
...
Fix/0.19 release fixes
2026-02-13 20:59:38 +01:00
4gray
516461c4a1
Merge pull request #766 from hasanbeder/master
2026-02-13 07:47:57 +01:00
4gray
7415de5f0b
Merge pull request #761 from 4gray/feat/search-in-visible-categories
...
feat: add excludeHidden option to search functions for filtering results
2026-02-10 22:35:54 +01:00
4gray
355b5083bd
Merge pull request #759 from 4gray/style/compact-navigataion-bar
...
style: adjust sidebar and navigation styles for improved layout and c…
2026-02-09 23:45:52 +01:00
4gray
856f529b9a
Merge pull request #758 from 4gray/feat/search-feature-improvements
...
Feat/search feature improvements
2026-02-08 20:40:55 +01:00
4gray
d5a0136d9a
Merge pull request #754 from 4gray/feat/xtream-search-and-ui-improvements
...
Feat/xtream-search-and-ui-improvements
2026-02-08 16:16:34 +01:00
4gray
b101dfaf91
Merge pull request #751 from 4gray/fix/epg-keep-expired-items
...
Fix/epg-keep-expired-items
2026-02-03 07:49:43 +01:00
4gray
243213dc5b
Merge pull request #750 from 4gray/refactor/optimize-m3u-module
...
Refactor/optimize-m3u-module
2026-02-01 22:51:53 +01:00
4gray
6b18d91ca7
Merge pull request #749 from 4gray/feat/custom-sorting-for-playlists
...
Feat/custom-sorting-for-playlists
2026-02-01 16:40:56 +01:00
4gray
0526d69a4c
Merge pull request #747 from 4gray/refactor/xtream-stalker-code-generalization
...
Refactor/xtream stalker code generalization
2026-02-01 16:06:09 +01:00
4gray
25e8c78df1
Merge pull request #743 from 4gray/feat/download-manager-ui
...
feat: add download manager feature
2026-01-27 13:25:49 +01:00
4gray
84a2cc8822
Merge pull request #737 from 4gray/feat/playback-position-persistence
...
feat: playback position persistence
2026-01-23 21:08:10 +01:00
4gray
d218dc0ad2
Merge pull request #730 from 4gray/fix/hls-quality-selector
...
fix(vjs-player): replace HLS quality plugin and add plugin guards
2026-01-14 18:03:09 +01:00
4gray
1bbad6920a
Merge pull request #729 from 4gray/ci/update-github-action-files
...
ci: run workflows on master branch instead of nx
2026-01-12 22:25:37 +01:00
4gray
d27268ca04
Merge pull request #726 from 4gray/fix/pre-release-fixes-v0-18
...
fix/pre-release-fixes-v0-18
2026-01-12 21:38:34 +01:00
4gray
33d8036ecc
Merge pull request #724 from 4gray/refactor/store-refactoring
...
refactor/store-refactoring
2026-01-12 00:40:40 +01:00
4gray
fcc0e558d4
Merge pull request #725 from 4gray/fix/stalker-favorites
...
fix/stalker-favorites
2026-01-12 00:40:24 +01:00
4gray
a37192c2ad
Merge pull request #721 from 4gray/feat/introduce-playlist-switcher
...
feat/introduce-playlist-switcher
2026-01-10 17:40:45 +01:00
4gray
2c5fc7e1ab
Merge pull request #717 from 4gray/e2e-tests
...
e2e smoke tests
2026-01-09 15:38:45 +01:00
4gray
c7fff52bc9
Merge pull request #715 from 4gray/feat/category-management-xtream
...
Feat/category management xtream
2026-01-09 00:28:54 +01:00
4gray
834841b549
Merge pull request #712 from 4gray/style/stalker-porta-series-view
...
feat: enhance favorites button and series view with loading states and improved styling
2026-01-06 17:58:13 +01:00
4gray
0a4d00c081
Merge pull request #711 from 4gray/feat/epg-improvements
...
feat/epg-improvements
2026-01-06 00:40:07 +01:00
4gray
4adc2b7bc8
Merge pull request #710 from 4gray/style/visual-improvements-in-vod-and-serials-view
...
style/visual-improvements-in-vod-and-serials-view
2026-01-05 23:25:21 +01:00
4gray
ad9bf45518
Merge pull request #709 from 4gray/feat/improve-stalker-support
...
feat/improve-stalker-support
2026-01-05 21:51:10 +01:00
4gray
6c17980175
Merge pull request #708 from 4gray/chore/update-nx
...
chore: update nx dependencies
2026-01-04 19:07:27 +01:00
4gray
2e2bf7b84e
Merge pull request #706 from 4gray/refactor/streaming-sax-epg-parser
...
refactor/streaming-sax-epg-parser
2026-01-03 00:28:45 +01:00
4gray
a2240fcc88
Merge pull request #703 from 4gray/refactor-move-global-favorites-to-header
...
refactor: move global favorites to header
2025-12-26 01:32:07 +01:00
4gray
fce4d8798e
Merge pull request #702 from 4gray/refactor/restructure-database-events
...
refactor(electron-backend): split DB event handlers into modules
2025-12-26 01:02:24 +01:00
4gray
45b3a8be22
Merge pull request #701 from 4gray/refactor/database-library
...
feat(db): add shared database library with sql config
2025-12-26 00:52:04 +01:00
4gray
65b21aa0f2
Merge pull request #698 from 4gray/refactor/mpv-vlc-error-handling
...
chore: improve player error handling
2025-12-25 23:54:18 +01:00
4gray
13e3ef96e0
Merge pull request #694 from 4gray/refactor/playlist-filter
...
refactor/merge-playlist-filter-and-sort-into-one-menu
2025-12-21 01:04:12 +01:00
4gray
d391514015
Merge pull request #688 from 4gray/fix/playlist-use-file-basename-title
...
fix(playlist): use file basename as playlist title
2025-12-14 17:55:31 +01:00
4gray
ebc085cb4e
Merge pull request #687 from 4gray/fix/ui-fixes
...
fix/ui-fixes
2025-12-14 17:30:33 +01:00
4gray
ba9932aa4d
Merge pull request #678 from 4gray/ci/macos-arch-runners-update
...
ci/macos-arch-runners-update
2025-12-14 16:50:47 +01:00
4gray
7fa7143868
build: update snap description in electron-builder
2025-12-14 14:14:03 +01:00
4gray
54b8d3a18b
ci: move env variable to step header
2025-12-14 13:03:13 +01:00
4gray
a20143ce17
Merge pull request #674 from 4gray/fix/remote-control-bundle-fix
...
feat(package): include built remote-control-web in packaged app
2025-12-12 21:06:27 +01:00
4gray
6b0436e788
Merge pull request #672 from 4gray/style/improve-start-page
...
style/improve-start-page
2025-12-06 22:05:38 +01:00
4gray
a08a4e4122
Merge pull request #673 from 4gray/build/unpack-libsql-native-bindings-win
...
build(win): unpack libsql native bindings in ASAR
2025-12-06 21:44:04 +01:00
4gray
c2b1220386
Merge pull request #666 from 4gray/feat-extract-channel-item-add-epg-dialog
...
feat(ui): extract channel list item template and add EPG dialog
2025-11-29 18:48:34 +01:00
4gray
1914b4bce9
Merge pull request #664 from 4gray/ci/enable-aarch64-build
2025-11-26 20:22:53 +01:00
4gray
2c1d29f841
ci: restrict architecture targets to x64 only
2025-11-26 17:46:27 +01:00
4gray
4020de1af9
ci: enhance build workflow with Flatpak setup
...
Added Flatpak configuration steps to the build workflow.
2025-11-26 17:28:28 +01:00
4gray
3b76db7aeb
ci: update Linux targets in package.json
2025-11-26 17:27:48 +01:00
4gray
ae6e97db91
ci: install Linux dependencies in CI workflow
...
Added steps to install Linux system dependencies for builds.
2025-11-26 17:12:39 +01:00
4gray
1531b1ab73
ci: update Linux target configurations in package.json
2025-11-26 16:48:08 +01:00
4gray
59081ef342
Merge pull request #662 from 4gray/feat-store-backbutton-and-player-teardown
...
EPG Worker fix
2025-11-24 22:57:07 +01:00
4gray
b7109c16a2
feat(package): update build directories and refine file inclusion for packaging
2025-11-24 17:40:48 +00:00
4gray
9f7995054d
feat(epg): update worker path for packaged app and refine file inclusion in build
2025-11-24 17:19:35 +00:00
4gray
64afc2901e
feat(epg): enhance worker path handling and add fallback for missing worker files
2025-11-24 16:21:00 +00:00
4gray
6b40287fae
feat(epg): differentiate worker path for packaged and development environments
2025-11-24 16:08:05 +00:00
4gray
682b040aec
fix(epg): update worker URL handling for packaged apps
2025-11-24 15:53:10 +00:00
4gray
1b4954e20b
feat(epg): update worker path handling for production environment
2025-11-24 15:36:29 +00:00
4gray
97aa1d4a59
Merge pull request #659 from 4gray/feat-info-overlay-no-epg-layout
...
feat-info-overlay-no-epg-layout
2025-11-23 19:50:27 +01:00
4gray
5796dd0a48
Merge pull request #652 from 4gray/feat-remote-control-ui-server-integration
...
feat-remote-control-ui-server-integration
2025-11-22 11:36:02 +01:00
4gray
ba5662edaa
Merge pull request #651 from 4gray/feat-account-info-add-translations
...
feat-account-info-add-translations
2025-11-15 18:56:11 +01:00
4gray
43b92edde3
Merge pull request #649 from 4gray/feat/xtream-preserve-user-data
...
feat/xtream-preserve-user-data
2025-11-13 20:38:06 +01:00
4gray
b81798e87a
Merge pull request #648 from 4gray/fix/m3u-auto-refresh-mechanism
...
fix/m3u-auto-refresh-mechanism
2025-11-11 20:57:21 +01:00
4gray
2ae7e730ad
Merge pull request #647 from 4gray/fix/favorites-in-stb-and-xc
...
fix/favorites-in-stb-and-xc
2025-11-11 08:21:51 +01:00
4gray
b8650be90f
Merge pull request #644 from 4gray/refactor/ipc-events-handling
...
refactor/ipc-events-handling
2025-11-08 22:46:47 +00:00
4gray
f36f94675b
Merge pull request #638 from 4gray/ci-add-github-actions-ui-fixes
...
ci-add-github-actions-ui-fixes
2025-10-31 09:42:01 +00:00