* feat(ui): export a search result as .torrent without downloading it Lets you grab the .torrent file for a torrent you haven't downloaded yet straight from the details view, fetching just the metadata over the network (destroying the handle the instant it arrives) or reusing a cached .torrent if one already exists. Bound to `s` in the details view to mirror the existing "export" key on the downloads page, at the cost of overloading `s` with "sort" in the results list (see PR description for the tradeoff). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X8mRpPSwcUzB2p4zJQtnQm * fix(ui): rebind export to e, add metadata-fetch timeout, trim help label Splits sort and export back apart per review: s stays Sort (used far more often) and e becomes Export in the results detail view, freeing up the duplicate s row in the ? sheet. fetchAndExportTorrent now races the metadata fetch against a 20s timeout so a no-peer magnet resolves null instead of hanging forever. Shortening the help label back under the packing threshold restores the four-column layout at 136 cols. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X8mRpPSwcUzB2p4zJQtnQm ---------
Showing the changes to scripts (1 of 9 files). Show all
Unified · Split
| @@ -96,11 +96,14 @@ function makeStore( · 95 unmodified lines | ||
| 96 | 96 | setDownloadFocus: noop, |
| 97 | 97 | seedFocus: null, |
| 98 | 98 | setSeedFocus: noop, |
| 99 | + resultFocus: null, | |
| 100 | + setResultFocus: noop, | |
| 99 | 101 | startDownload: noop, |
| 100 | 102 | requestDownloadTo: noop, |
| 101 | 103 | copyMagnet: noop, |
| 102 | 104 | openDownloadFolder: noop, |
| 103 | 105 | exportTorrent: noop, |
| 106 | + fetchAndExportTorrent: noop, | |
| 104 | 107 | notice: null, |
| 105 | 108 | setNotice: noop, |
| 106 | 109 | quitAll: noop, |