Skip to content

feat: MAM room to ratio, Queued page size and ETAs, MyAnonamouse settings tab - #67

Merged
mikaeltarquin merged 2 commits into
mainfrom
claude/mam-queue-eta
Oct 7, 2026
Merged

mikaeltarquin merged 2 commits into
mainfrom
claude/mam-queue-eta

Conversation

@mikaeltarquin

Copy link
Copy Markdown
Owner

Summary

  • MAM panel: Buffer → Room to ratio. Shows how much more can be downloaded (not freeleech) before the ratio drops below Keep Ratio At Least (1.0 when that's off), after Shelfmark's active MAM downloads. The plain buffer is in the tooltip. /api/mam/account and /api/mam/ratio now return keep_ratio and room_bytes.
  • Queued page summary. Tiles at the top: total size and item count (Up next + saved picks), what counts against the ratio, room to the ratio, upload credit for the whole queue (BP cost and, for admins, the wait at the estimated BP/hr), and when the last item can start.
  • Queued page ETA per saved item. When the item can start once both the ratio and an unsatisfied slot allow:
    • Ratio: picks that fit go first (mirroring the auto-get check, including the small-ebook exception); the rest are priced cumulatively in queue order as upload credit (50 GB steps, 500 BP/GB) and the time to earn the missing BP.
    • Slots: MAM picks take the slots free now (after Up next and the kept-free slots), then each as a seeding torrent reaches 72 h, then the queue's own 72 h after they start. MAM's download pause holds everything. Without the client's seeding times, picks past the free slots show "For a slot, time unknown". /api/mam/unsat-timing now returns free_seconds for every seeding torrent; /api/mam/ratio returns unsat_check.
  • MyAnonamouse settings tab under Settings › Indexers, after Prowlarr. A frontend split of the prowlarr_config backend tab (via SPLIT_TABS), so values save to the same file and no migration is needed; the first part keeps the prowlarr_config id so old links still work. A notice shows on the tab when Prowlarr is off. Text pointing to "Prowlarr settings" for MAM updated, env-var docs regenerated.

Testing

  • Frontend: typecheck, oxlint (--deny warnings), oxfmt, vitest (371 passed), with new tests for the estimator (ratio, cumulative credit, slots, pause, unknown timing), formatWait and the settings split.
  • Backend: ruff, basedpyright on changed modules, tests/prowlarr (812 passed) with new tests for room-to-ratio and free_seconds. Full suite has the same 11 environment-related failures as main.
  • Not checked visually in a running app.

🤖 Generated with Claude Code

https://claude.ai/code/session_01ULvMD6k72dAoo7JXgkhk6p


Generated by Claude Code

claude added 2 commits October 7, 2026 16:46
…ings tab

- The MAM panel's Buffer becomes Room to the Keep Ratio At Least ratio, counting
  Shelfmark's active MAM downloads; the plain buffer is in its tooltip.
- The Queued page shows the queue's total size, what counts against the ratio, the
  room left and the upload credit the whole queue needs.
- Saved queued items get an ETA: fits now, freeleech, or the upload credit needed and
  (admins) how long the bonus points take at the estimated rate.
- MyAnonamouse gets its own tab under Settings > Indexers, split off the Prowlarr tab.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ULvMD6k72dAoo7JXgkhk6p
The ETA is now when an item can start once both the ratio and an unsatisfied slot
allow: MAM picks take the free slots (after Up next and the kept-free slots), then
each as a seeding torrent reaches 72 hours, then the queue's own 72 hours after they
start; MAM's download pause holds them all. /api/mam/unsat-timing reports every
seeding torrent's remaining time, and /api/mam/ratio whether the slot check is on.
The summary adds when the last of the queue can start.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ULvMD6k72dAoo7JXgkhk6p
@mikaeltarquin
mikaeltarquin merged commit b0c0f4c into main Oct 7, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants