2.50.0 (2026-02-11)
Features
- add
parsed_matches_targetutility and use it to centralize season/episode filtering logic (47b79ee) - add
tzdatapackage and setTZenvironment variable toUTC(29ac052) - add COMET_CLEAN_TRACKER setting to control tracker list display in Comet scraper (a35327b)
- add configurable reachability check settings including retries, delay, and timeout for improved connection handling (16f5df4)
- add Debrid Account Scraper feature description to README (4f4e351)
- add debug logging to
_validate_torrentfor various torrent validation failure conditions (bde663f) - add DMM to supported scrapers and introduce DMM Ingester feature (68fa89d)
- add external reachability check for COMETNET_ADVERTISE_URL and introduce COMETNET_SKIP_REACHABILITY_CHECK for local testing (f8983c7)
- add HTTP request handling to the WebSocket server for graceful responses to non-WebSocket requests (4b0a187)
- add local torrent existence check to optimize gossip validation and enhance message re-propagation (8e04047)
- add logging for incoming connection handling in ConnectionManager to track extracted IPs (fe23a34)
- add max latency configuration and handling in CometNet to disconnect peers exceeding acceptable latency, enhancing network performance (39b5e1b)
- add method to reset discovery hysteresis in BackgroundScraperWorker for improved task management (2a97dda)
- add optional node alias to CometNet (9af324f)
- add periodic state save functionality to CometNetService with configurable interval (a209467)
- add persistence for the gossip engine's statistics (8e71ee2)
- add PostgreSQL-specific logic for refreshing scrape locks using
RETURNING 1to confirm update success (dd8f8de) - add support for cached availability checks across multiple services (228cba0)
- add version information display and update checking functionality to the admin dashboard (d8c7aa8)
- allow
_scrape_media_typeto signal early termination and stop the scraping loop (b96fd1f) - allow Kodi setup codes to be 6-16 characters long and update related prompts (1c5b963)
- apply reputation penalty when an invalid hex signature is encountered (e23d630)
- asynchronously validate manifests and canonicalize float values for signature stability, while improving shutdown handling and error logging (67083f2)
- cache public key representations, validate incoming info hashes, and generalize message sending to support raw bytes (6d74cef)
- canonicalize pool manifest timestamps to integers for signing to resolve float precision issues (67240ad)
- derive
node_idfrom public key forPoolMemberand update admin dashboard to display node IDs (bcd1b14) - display current branch in the admin dashboard version information and visually refresh the version details section (4b8ad5f)
- display peer torrents received in the admin dashboard and include reputation data in peer information (1be6218)
- document CometNet P2P network and remove Nginx reverse proxy configuration from README (f66c0f2)
- enable standalone CometNet service to directly save discovered torrents to the database (9caab14)
- enhance admin dashboard with background scraper next cycle display and controls (c2ce896)
- enhance client IP retrieval in CometNetService by adding support for WebSocket requests (b9f3dfa)
- enhance COMETNET_ADVERTISE_URL validation with security checks for internal domains, private IPs, and port range, and improve reachability checks for public IPs (2da0020)
- enhance copyInviteLink function to use async clipboard API with fallback for insecure contexts (cce81ec)
- enhance cryptographic verification by adding public key loading and signature verification methods (5e0afc0)
- enhance debrid service to enrich torrent metadata from availability checks (1699808)
- enhance DebridService with file index coercion and parsed data merging (fe63e77)
- enhance formatting functions with customizable styles for components and streamline secret string handling in Kodi setup (3799022)
- enhance gossip statistics by adding repropagation tracking and updating dashboard labels (80cc495)
- enhance handshake logging in ConnectionManager for better debugging and error tracking (454817e)
- enhance info hash normalization with error handling and new format support (6b9b33d)
- enhance reachability check logic in
check_advertise_url_reachabilityto handle hairpin NAT scenarios and improve logging for verification results (20226ae) - enhance state loading to tolerate integrity hash mismatches (1fe70be)
- enhance system clock synchronization check to use multiple endpoints and provide detailed error reporting (9f51226)
- enhance WebSocket connection and handshake logging in ConnectionManager to improve debugging and error tracking (35f32d6)
- enhance WebSocket connection logging in CometNetService for improved client IP tracking (979a26e)
- filter episodes based on the retry status of their associated series item (0696166)
- implement a custom Kodi setup dialog with dedicated error alerts and expand the Kodi add-on documentation (526c6e2)
- implement a custom Kodi setup dialog with dedicated error alerts and expand the Kodi add-on documentation (6aaf39d)
- implement a Kodi repository build system, including a new Makefile, generation script, repository definition, and GitHub Actions workflow (cd2f6ab)
- implement and integrate pool member contribution tracking within the PoolStore and record contributions during gossip processing (f67b941)
- implement concurrent lock maintenance as a separate task to ensure continuous scraping and robustly handle lock loss (1172adf)
- implement debrid account torrent scraping (c36475b)
- implement dedicated crypto executor management in utils and shutdown procedure in CometNetService to enhance resource handling (a944efc)
- implement distributed locking for the background scraper and remove the
background_scraper_progresstable (1b9d8e1) - implement functionality for users to leave CometNet pools with role-based restrictions (4081d11)
- implement mandatory and auto-generated
COMETNET_API_KEY, and add auto-generation forADMIN_DASHBOARD_PASSWORDandPROXY_DEBRID_STREAM_PASSWORD(29a8a5a) - implement membership reconciliation in CometNetService and improve error logging in CometNetRelay (6cca3f4)
- implement message rate limiting and refactor message security validation into a dedicated module (0a75780)
- implement new pools management UI with filtering and search functionality in admin dashboard (12c4695)
- implement private network mode with HMAC authentication, status display, and enhanced logging (e154fc0)
- implement proactive distributed lock refreshing and add error handling for background tasks (c170fc6)
- implement queue-based backpressure and discovery pausing for the background scraper using watermarks (af664a7)
- implement queue-based backpressure and discovery pausing for the background scraper using watermarks (6eaff9c)
- implement resolution-based selection of info hashes for torrent streaming (1814efa)
- implement seadex scraper and fix anime media id parser (436de99)
- implement self-removal from pools by broadcasting a signed leave message and updating local cleanup logic (db15cd7)
- implement sharded and deduplicated filter parse cache (fab96ae)
- implement system clock synchronization check on CometNet startup with configurable tolerance and timeout (51a81e4)
- improve caching and scraping by supporting linked Kitsu and IMDb media IDs and refining season/episode parameters for debrid services (072dcab)
- improve client IP extraction in WebSocket connections by introducing get_client_ip_any function and updating connection handling in CometNetService and ConnectionManager (f2f5838)
- improve connection handling in ConnectionManager by closing duplicate connections and reusing existing ones (bd0a5f4)
- improve data canonicalization by sorting visited nodes and robustly handling dictionary keys, and add debug logging for signature verification (2c8b3f7)
- improve error handling in torrent title parsing (85fc456)
- improve error handling in torrent title parsing (42a93d4)
- improve Kodi integration with direct VideoInfoTag usage, robust setup, and refined stream info handling (a62dc06)
- increase default relay timeout and add specific handling for
asyncio.TimeoutErrorduring batch sends (f8819b1) - init cometnet (748249e)
- introduce a dirty manifest tracking mechanism and
flush_dirty_manifestsmethod to batch manifest writes (b37ec8a) - Introduce DMM ingester (19001ee)
- introduce Kodi addon with pairing service, setup utilities, and updated documentation (d27239d)
- introduce smart language detection by leveraging country-specific Trakt aliases (c413428)
- log private addresses announced by incoming peers and add a setting to prevent sharing private IPs during PEX (7160406)
- log specific timeout warnings for scraper exceptions instead of general ratelimiting messages. (311bfae)
- nekobt scraper (da28fc4)
- new background scraper (cebb785)
- optimize queue snapshot retrieval in BackgroundScraperWorker by consolidating database queries and normalizing discovery limits (dabbee5)
- record own contributions (a36a9d1)
- refactor HTTP client management and enhance caching mechanisms (4178cda)
- refactor HTTP client management and enhance caching mechanisms (efca5db)
- relax connection limits and overrepresentation checks for private IP addresses (a8cefbd)
- schedule debrid account sync tasks as background tasks when warm sync does not time out (577a83e)
- seadex anime only (e15125a)
- seadex anime only (9b36762)
- standardize database conflict handling and type checks with new constants, and add cometnet torrent existence batch check callback (f8e76e9)
- track and handle completion of debrid account sync background tasks (041a3ac)
- update canonicalization to preserve float precision and add signature verification debug logs (f1e871e)
- update Kodi integration with new configuration handling, improved manifest URL generation, and enhanced user prompts (43964ac)
- version and update checker (7c9842a)
Bug Fixes
_save_manifest_asyncnow returns a boolean, allowingflush_dirty_manifeststo re-queue failed manifest saves (cfb648a)- add HTTP status error handling to AnimeTosho and correct status attribute usage in Nyaa (b188eda)
- adjust background scraper cycle timing to account for missed cycles (39da5c5)
- broaden WebSocket noise error filtering (47b4657)
- chunk
execute_manycalls for SQLite to respect its parameter limit (2352aa6) - cinemata no releaseInfo (5f1ca3e)
- correct tracker extraction logging for SeaDex scraper (44aa0d8)
- D (721fa0f)
- default
name_queryparameter to an empty string instead ofNone(49a7302) - docker: add make to build dependencies for miniupnpc (2fcb2ef)
- docker: increase uv timeout to 300s to avoid network errors (dc98727)
- ensure default last_seen time is used when sorting keys in PublicKeyStore (b7bf69e)
- ensure proper cancellation of in-flight tasks in BackgroundScraperWorker during cancellation (5d4c5fd)
- ensure proper lock refresh handling and add read timeout for DMM hashlist downloads. (bbf2639)
- ensure proper shutdown and tracking of relay batch flush tasks and reorder README features (53b9c61)
- ensure season and episode checks in
parsed_matches_targethandle None values correctly (0a9ace9) - ensure TorrentMetadata size is an integer and sort pool members by public key for deterministic serialization (5fe3307)
- exclude subscribed and member pools from the discover count calculation (37e7e6f)
- filter private IPs from PEX and warn on misconfiguration (7ee5b20)
- first search emptying itself when torrent cache ttl is -1 (9237b8c)
- fix _persist_kitsu_imdb_mapping method (40a8fc3)
- fix various memory leaks (3798971)
- fix volume on official docker compose (820ebf0)
- gracefully cancel and drain in-flight scraping tasks upon lock loss instead of abruptly stopping (2268e8f)
- gracefully handle UnicodeEncodeError during filename processing in DMM ingester (6e68a93)
- handle tracker extraction more robustly by ensuring it defaults to None when not present (7fd92bc)
- improve error handling for WebSocket connections with detailed logging (1c536c8)
- pin mediaflow-proxy dependency to version 2.4.1 for compatibility (a69a1df)
- pool join (c09a143)
- postgres (11aef0f)
- potential race can drop queued broadcasts during timeout shutdown (92aadf3)
- prevent CometNet from starting with multiple FastAPI workers in non-relay mode (a76a36a)
- prevent CometNet startup with private advertise URLs on public networks unless explicitly allowed (e6c8a4c)
- print full traceback for exceptions occurring during the scraping cycle (0bf3390)
- remove
OR_IGNOREfrom thefirst_searchesINSERT statement (390b452) - remove ellipsis from truncated node ID displays in the admin dashboard (96e333d)
- remove signal handler (bad47c4)
- remove the update check interval and related logic to always perform an update check (9327826)
- suppress unsupported HTTP method HEAD errors from websockets logs using a new filter (de4cd80)
- tracker extraction result is discarded (9448806)
- update anime_entries insert query to handle conflicts by updating existing data (fa15430)
- update contribution recording logic in
PoolStoreto allow contributions to be recorded across all pools if no specific pool ID is provided, enhancing flexibility in member contribution tracking (2887a22) - update lock expiration logic in DistributedLock to refresh based on current loop time (372efe2)