Skip to content

Torrentinel 0.6.0

Choose a tag to compare

@ib0ndar ib0ndar released this 30 Sep 05:20
· 54 commits to main since this release

Torrentinel 0.6 adds reliable delivery, collection paging, and English/Russian localization.

Highlights

  • Transactional SQLite notification outbox: direct changes and rule matches/history are saved with their queued notification. Automatic retry, restart recovery, leased work, exponential backoff, and Telegram rate-limit handling prevent silent delivery loss.
  • Pending notifications are visible in Administration, alongside individual delivery receipts and sanitized failures.
  • Server-side collection search and unread/error filtering. Pagination is enabled by default and can be disabled per account in Settings, which also has a default entries-per-page dropdown. Settings and collection pages offer 10/20/50/100-entry selection. Synchronized page counts and first/previous/next/last controls appear above and below the subscriptions; the page-size label sits above its dropdown, aligned with the status-tab text.
  • English remains the default; Russian can be selected in Settings. Preferences persist per account, including Telegram release-message language. User-defined titles and phrases remain unchanged.
  • Feature pages and backend routes are split into focused modules. Mobile layout/drawer issues found during browser testing are fixed.
  • Dependency audit advisories addressed; the current npm audit reports no vulnerabilities.

Upgrade notes

Back up the database and application-data directory together before updating. Startup adds the outbox table, collection activity index, and per-user language/pagination/page-size columns; existing accounts start in English with pagination enabled at 50 entries.

This corrected 0.6.0 release adds the default-size dropdown in Settings and replaces the initially published 25/50/100/200 choices with 10/20/50/100. Existing saved values of 25 or 200 are migrated to 20 or 100; existing 50/100 preferences are retained. The version remains 0.6.0; pull the updated image and recreate/restart the container to receive these corrections.

The approved Settings layout uses separate, aligned preference rows with compact 200 px dropdowns for interface language and default page size. A divider and additional spacing separate the pagination toggle from the size control; labels and dropdowns stack on small screens. The redundant language-description sentence has been removed.

Pending notifications do not expire, including when Telegram is temporarily unconfigured. Deleting a subscription cancels its pending notifications; disabled users are not sent notifications. Successful outbox receipts are retained for seven days.

Telegram does not support idempotent send keys. Delivery is at least once, not exactly once: a crash after Telegram accepts a message but before the local receipt is saved may cause a duplicate. Notifications lost before 0.6.0 cannot be reconstructed automatically.

Verification

135 automated tests cover existing behavior plus outbox crashes/transactions/retries/concurrency/shutdown, paging/filtering/account isolation, preference persistence, Russian notifications, frontend request races, the Settings default-size control, synchronized top/bottom navigation, and safe migration of the initially published page-size constraint. Typechecked production builds and the complete automated suite passed before committing the corrections. Both Linux architecture images run the full test suite during build and receive integrated-browser runtime smoke checks.

Container images: bah0/torrentinel:v0.6.0 for linux/amd64 and linux/arm64.