2026-04-23 - 2026-10-23

Overview

0 Active Pull Requests
354 Active Issues
Excluding merges, 2 authors have pushed 547 commits to main and 557 commits to all branches. On main, 236 files have changed and there have been 71945 additions and 23549 deletions.

44 Releases published by 1 user

Published v1.5.0 ipx 1.5.0 2026-10-23 09:41:57 -07:00

Published directory-v1.4.0 ipx-directory 1.4.0 2026-10-23 09:41:57 -07:00

Published web-v1.3.0 ipx-web 1.3.0 2026-10-23 09:41:57 -07:00

Published v1.4.0 ipx 1.4.0 2026-10-19 11:40:00 -07:00

Published directory-v1.3.0 ipx-directory 1.3.0 2026-10-19 11:40:00 -07:00

Published web-v1.2.0 ipx-web 1.2.0 2026-10-19 11:40:00 -07:00

Published v1.3.0 ipx 1.3.0 2026-10-16 13:37:33 -07:00

Published web-v1.1.0 ipx-web 1.1.0 2026-10-16 13:37:33 -07:00

Published directory-v1.2.0 ipx-directory 1.2.0 2026-10-16 13:37:33 -07:00

Published v1.2.0 ipx 1.2.0 2026-10-15 06:25:18 -07:00

Published directory-v1.1.1 ipx-directory 1.1.1 2026-10-15 06:25:18 -07:00

Published web-v1.0.2 ipx-web 1.0.2 2026-10-15 06:25:18 -07:00

Published v1.1.0 ipx 1.1.0 2026-10-13 11:19:28 -07:00

Published directory-v1.1.0 ipx-directory 1.1.0 2026-10-13 11:19:28 -07:00

Published web-v1.0.1 ipx-web 1.0.1 2026-10-13 11:19:28 -07:00

Published v1.0.0 ipx 1.0.0 2026-10-12 13:41:47 -07:00

Published directory-v1.0.0 ipx-directory 1.0.0 2026-10-12 13:41:47 -07:00

Published web-v1.0.0 ipx-web 1.0.0 2026-10-12 13:41:47 -07:00

Published v0.12.0 2026-10-11 13:37:55 -07:00

Published v0.11.0 2026-10-09 12:10:20 -07:00

Published v0.10.3 2026-10-09 05:59:46 -07:00

Published v0.10.2 2026-10-05 16:50:32 -07:00

Published v0.10.1 2026-10-05 12:55:42 -07:00

Published v0.10.0 2026-10-05 10:09:51 -07:00

Published v0.9.1 2026-09-29 13:48:16 -07:00

Published v0.9.0 2026-09-28 07:42:21 -07:00

Published v0.8.4 2026-09-19 16:29:11 -07:00

Published v0.8.3 2026-09-19 07:49:36 -07:00

Published v0.8.2 2026-09-18 19:34:13 -07:00

Published v0.8.1 2026-09-18 19:13:06 -07:00

Published v0.8.0 2026-09-18 15:31:56 -07:00

Published v0.7.0 2026-09-18 08:32:10 -07:00

Published v0.6.1 2026-09-15 12:19:44 -07:00

Published v0.6.0 2026-09-15 11:13:29 -07:00

Published v0.5.5 2026-09-14 14:38:56 -07:00

Published v0.5.4 2026-09-14 08:38:03 -07:00

Published v0.5.3 2026-09-14 07:53:49 -07:00

Published v0.5.2 2026-09-12 07:27:42 -07:00

Published v0.5.1 2026-09-11 19:15:53 -07:00

Published v0.5.0 2026-09-11 19:06:23 -07:00

Published v0.4.0 2026-09-11 10:35:08 -07:00

Published v0.2.0 2026-09-11 06:56:58 -07:00

Published v0.3.0 2026-09-11 06:56:58 -07:00

Published v0.1.0 2026-09-11 06:56:57 -07:00

354 Issues closed from 2 users

Closed #356 Rust: the root modules hold most of the code 2026-10-23 18:54:11 -07:00

Closed #355 Rust: types written with their full path instead of imported 2026-10-23 18:19:15 -07:00

Closed #354 Rust: ipx-feed and ipx-directory have public items without doc comments 2026-10-23 18:12:04 -07:00

Closed #353 Rust: small departures from the style guide (imports, unwrap, for headers, must_use, bool parameters, SAFETY) 2026-10-23 18:07:23 -07:00

Closed #352 Unread counts still hash every read-state row a person has 2026-10-23 09:16:11 -07:00

Closed #347 Unread lists and counts read all of a person's items to find the few unread 2026-10-23 09:06:56 -07:00

Closed #349 Two requests for the same missing artwork fetch it twice 2026-10-23 08:35:35 -07:00

Closed #345 Artwork kept on disk is read from FUSE, blocking the async threads 2026-10-23 08:35:34 -07:00

Closed #348 A Signal's counts run the same verdict query twice 2026-10-23 08:35:33 -07:00

Closed #346 The item list and feed list wait on queries one at a time that could run together 2026-10-23 08:35:32 -07:00

Closed #344 A page of items reads every enclosure in the database to find its files 2026-10-23 08:35:28 -07:00

Closed #323 ipx-web strips only the Cf-Access header names, while ipx trusts whatever header trusted_header names from Caddy's address 2026-10-23 08:21:32 -07:00

Closed #342 One rw snapshot with an enormous subscriber count breaks the directory's listings for everyone 2026-10-23 08:19:56 -07:00

Closed #343 On the server's key, one user's Signal text shares a Jev call with other users' Signals and may steer their verdicts 2026-10-23 08:14:14 -07:00

Closed #340 Any signed-in user can make unlimited TypeSafe calls on the server's key through the icon route, even with signals_on_server off 2026-10-23 08:14:13 -07:00

Closed #324 Disconnecting sign-in requests escape the password-check limit and run unbounded Argon2 work on the blocking pool 2026-10-23 08:04:29 -07:00

Closed #338 One OPML upload of many same-titled outlines does quadratic work while holding the catalogue lock, and adds tens of thousands of permanent feeds to the shared scan 2026-10-23 08:01:56 -07:00

Closed #333 Any signed-in user can mark a feed they do not subscribe to private, and promote an OPML-derived feed out of its OPML 2026-10-23 07:57:45 -07:00

Closed #335 An open /api/events stream keeps sending daemon events to an account after it is removed 2026-10-23 07:53:05 -07:00

Closed #325 Private feed keys in the URL path reach every signed-in user through /api/events 2026-10-23 07:53:04 -07:00

Closed #334 Changing a password leaves every existing session and API token valid 2026-10-23 07:47:03 -07:00

Closed #336 Bodyless POST routes accept cross-origin simple requests carrying ambient credentials 2026-10-23 07:37:07 -07:00

Closed #337 A subscribed OPML with very many outlines causes quadratic sync work and an unbounded set of child feeds scanned on the shared worker 2026-10-23 07:20:01 -07:00

Closed #339 One feed listing many distinct http artwork hosts holds the shared scan worker for hours, on every scan 2026-10-23 07:20:00 -07:00

Closed #329 The directory's refresher fetches LAN and container-network addresses named by an rw peer or by a listed feed's redirect 2026-10-23 07:14:20 -07:00

Closed #341 Anonymous directory pages each run an unpaged query over the whole catalogue on a shared 10-connection pool 2026-10-23 07:08:47 -07:00

Closed #327 Feeds listed in a password-protected OPML inherit its username and password and send them to their own, unrelated hosts 2026-10-23 07:03:36 -07:00

Closed #328 Enclosure downloads send the feed's basic-auth password to whatever host the feed names, unlike feed fetches 2026-10-23 07:03:36 -07:00

Closed #332 A kept feed from a private OPML loses its private mark when the OPML is removed and is shared to the directory 2026-10-23 07:00:10 -07:00

Closed #321 Every fresh install seeds an admin account with the public password 'ipodderx', usable through the unauthenticated login endpoint 2026-10-23 06:56:57 -07:00

Closed #351 cargo deny: RUSTSEC-2026-0385 (ctutils 0.4.2) and RUSTSEC-2026-0382 (rustls-webpki 0.103.15) 2026-10-23 06:48:57 -07:00

Closed #330 A feed's .torrent URL, or a tracker it names, can make the daemon buffer an unbounded body in memory 2026-10-23 06:40:33 -07:00

Closed #320 Feed, enclosure, OPML and artwork fetches reach any internal address, and the responses come back to the user 2026-10-23 06:32:29 -07:00

Closed #322 A deeply nested OPML, uploaded by any signed-in user or served by any feed publisher, can overflow the stack and abort the whole daemon 2026-10-23 06:13:03 -07:00

Closed #326 Item and enclosure links from feeds are used as href and window.open targets without a scheme check 2026-10-23 06:08:37 -07:00

Closed #319 Downloaded enclosure served same-origin with an extension-guessed type allows stored XSS 2026-10-23 06:02:56 -07:00

Closed #331 Torrent enclosures write with overwrite enabled straight into a folder other feeds share, so one publisher can replace another feed's downloaded episodes 2026-10-23 05:56:58 -07:00

Closed #318 A multi-file torrent's name is recorded unchecked as the enclosure path, so a feed publisher can point Delete, reap and media serving at any path 2026-10-23 05:56:57 -07:00

Closed #350 Traces of some routes show their time with nothing under it 2026-10-23 05:48:00 -07:00

Closed #317 WordPress.com sites answer the feed with a browser check, and the feed fails for hours 2026-10-23 05:14:08 -07:00

Closed #316 A feed's page keeps showing an error after a check succeeds 2026-10-20 08:37:52 -07:00

Closed #315 The Directory's cover fan names the wrong property in will-change 2026-10-20 08:17:51 -07:00

Closed #314 The tab bar's corners do not nest around its tabs 2026-10-20 08:17:50 -07:00

Closed #313 Cover artwork has no edge, and dark covers melt into dark themes 2026-10-20 08:17:49 -07:00

Closed #310 Reduced motion leaves no sign that a check for new items is running 2026-10-20 08:17:48 -07:00

Closed #311 Hover styles stick on a phone after a tap 2026-10-20 08:17:48 -07:00

Closed #312 Scrolling past the end of a dialog or the phone drawer scrolls the page behind 2026-10-20 08:17:48 -07:00

Closed #309 iPX's and the page's versions are only in a hover tooltip 2026-10-19 13:13:51 -07:00

Closed #308 An off switch is nearly invisible in every light theme 2026-10-19 13:13:50 -07:00

Closed #307 Fields in dialogs have labels that are not tied to them 2026-10-19 13:13:49 -07:00

Closed #306 Dialogs are not dialogs: focus is not moved in, kept in, or given back 2026-10-19 13:13:48 -07:00

Closed #305 Text fields' borders fail 3:1 in every theme but High contrast 2026-10-19 13:13:47 -07:00

Closed #304 Error toasts show the browser's or server's raw text, with no next step 2026-10-19 13:13:46 -07:00

Closed #303 Toasts are not announced, and error toasts vanish after six seconds 2026-10-19 13:13:45 -07:00

Closed #302 Search and filter placeholders fail contrast in 20 of 25 palettes 2026-10-19 13:13:43 -07:00

Closed #301 The player's seek bar has no name 2026-10-19 13:13:42 -07:00

Closed #300 The read toggle on an item row is named "●" 2026-10-19 13:13:41 -07:00

Closed #299 Play and Delete on an item row are invisible while focused 2026-10-19 13:13:39 -07:00

Closed #298 An item can't be opened from the keyboard or a screen reader 2026-10-19 13:13:37 -07:00

Closed #297 CLAUDE.md's test counts are out of date 2026-10-19 11:17:41 -07:00

Closed #295 A feed address that serves a large file is read whole into memory 2026-10-19 11:17:40 -07:00

Closed #296 Searching items for % or _ matches more than was typed 2026-10-19 11:17:40 -07:00

Closed #294 Other people's download failures and progress show on everyone's page 2026-10-19 11:17:39 -07:00

Closed #293 Downloads folder missing for a moment makes ipx forget every downloaded file 2026-10-19 11:17:38 -07:00

Closed #292 Patreon's signed download links go to every open page and the log 2026-10-19 11:17:37 -07:00

Closed #291 A search box has no button to clear what was typed 2026-10-19 07:56:01 -07:00

Closed #290 Redesign a feed's settings dialog 2026-10-19 07:48:47 -07:00

Closed #289 Keep a feed, an OPML or a Patreon creator out of Signals 2026-10-19 07:48:46 -07:00

Closed #288 Keep a feed, an OPML or a Patreon creator out of All Subscriptions 2026-10-19 07:22:07 -07:00

Closed #287 A slow item list's trace does not say which list it was 2026-10-19 07:08:33 -07:00

Closed #286 ipx-web's spans are all named ipx-web 2026-10-18 13:05:25 -07:00

Closed #285 Switch an item between its HTML and its Markdown when a feed sends both 2026-10-18 11:41:41 -07:00

Closed #268 App-icon tiles for Signals and DeadAir, drawn as the logo is 2026-10-18 11:40:08 -07:00

Closed #273 The Directory shows initials for podcasts nobody here subscribes to: their artwork is refused 2026-10-18 11:33:32 -07:00

Closed #272 Every artwork request scans the whole entries table: no index on entries.image 2026-10-18 11:33:31 -07:00

Closed #284 A feed written in Markdown shows the Markdown as text, not formatted 2026-10-18 11:28:53 -07:00

Closed #283 An OPML's page lists its shows, not their items together 2026-10-18 10:46:08 -07:00

Closed #282 ipx lists atom_syndication, quick-xml and rss but does not use them 2026-10-17 15:40:12 -07:00

Closed #281 Dependencies with known security advisories: ammonia, rustls, h2, ringbuf 2026-10-17 15:40:11 -07:00

Closed #280 Keep a podcast from an OPML subscription when the OPML drops it 2026-10-17 14:39:41 -07:00

Closed #279 Artwork served without an image type is refused, so the podcast shows initials 2026-10-17 14:29:01 -07:00

Closed #278 Signals' metrics are not broken out by person, so the server's bill cannot be split 2026-10-17 08:28:08 -07:00

Closed #277 Signals can outrun TypeSafe's rate limits, and a 429 is retried as any other error 2026-10-17 07:40:12 -07:00

Closed #276 Signals: a look-back window an admin sets, a week by default, and an edit that asks again only what was picked out 2026-10-17 07:21:20 -07:00

Closed #274 The Signals judge scans the whole entries table on every pass, outside any trace 2026-10-17 07:21:19 -07:00

Closed #275 Signals call Jev one item at a time, so a new Signal takes about 20 minutes to fill 2026-10-17 07:21:19 -07:00

Closed #269 The API reference on ipxreader.app has no Signals 2026-10-17 06:41:50 -07:00

Closed #271 Signals: an admin setting for whose TypeSafe key pays for Jev 2026-10-17 06:20:45 -07:00

Closed #270 Signals have no metrics, and failed Jev calls do not show as failed traces 2026-10-16 19:59:42 -07:00

Closed #267 Signals judge an image-only item by its title alone: xkcd's Ground Effect went into Formula 1 2026-10-16 12:48:46 -07:00

Closed #266 A Signal with no key should link to getting one and adding it 2026-10-16 12:33:22 -07:00

Closed #265 No + on the Signals folder's row 2026-10-16 12:22:55 -07:00

Closed #264 Jev is offered brand icons through their search terms: Disney Parks got the Mandalorian 2026-10-16 12:21:01 -07:00

Closed #263 Jev picks a Signal's icon, on the server's key 2026-10-16 12:11:08 -07:00

Closed #262 Signal tiles all in one colour 2026-10-16 12:04:07 -07:00

Closed #261 A Signal's own icon, chosen from Font Awesome Free 2026-10-16 11:57:50 -07:00

Closed #259 Signals pick out far too much: each keyword is a subject on its own 2026-10-16 11:27:08 -07:00

Closed #260 Signals judge 25 items every 5 minutes instead of going straight through the queue 2026-10-16 11:27:08 -07:00

Closed #258 Signal unread counts go stale on the page 2026-10-16 10:56:11 -07:00

Closed #257 Signals: TypeSafe answers 422 to every Jev request 2026-10-16 10:49:27 -07:00

Closed #256 Signals folder right under All Subscriptions, with its + on the folder's row 2026-10-16 10:39:25 -07:00

Closed #255 Signals in a folder in the sidebar, like an OPML or Patreon creator 2026-10-16 10:17:30 -07:00

Closed #254 Signals: smart feeds picked by Jev 2026-10-16 09:57:12 -07:00

Closed #253 The directory sends its answers uncompressed 2026-10-16 07:11:06 -07:00

Closed #250 /api/directory's time is mostly outside any span 2026-10-16 06:52:16 -07:00

Closed #252 The Directory knows only what this server's people subscribe to 2026-10-16 06:42:42 -07:00

Closed #251 The dashboard's Database connections panel looks exhausted when it is not 2026-10-15 14:25:53 -07:00

Closed #249 Currently Listening's list takes 1.3 s to answer 2026-10-15 08:28:58 -07:00

Closed #248 Currently Listening and the Directory's front page still wait for the server 2026-10-15 08:24:52 -07:00

Closed #247 Opening a list waits for the server, with nothing to say it is loading 2026-10-15 08:16:51 -07:00

Closed #246 How long a list takes to show after a click is not measured 2026-10-15 07:57:15 -07:00

Closed #245 The load test's browse scenario fails without a directory 2026-10-15 07:57:14 -07:00

Closed #240 The feed list counts every item of every feed on each load 2026-10-15 07:57:13 -07:00

Closed #241 All Subscriptions' item query takes 0.3-0.9 s for about 14,000 items 2026-10-15 07:57:12 -07:00

Closed #242 Feeds that never answer 'not modified' are downloaded whole every hour 2026-10-15 07:08:53 -07:00

Closed #244 Feed fetches accept only gzip 2026-10-15 07:08:52 -07:00

Closed #239 ipx-web sends the API uncompressed 2026-10-15 07:08:51 -07:00

Closed #243 The directory re-checks every feed every six hours 2026-10-15 07:08:51 -07:00

Closed #238 A private feed's key is written to the log when its fetch fails 2026-10-15 06:23:05 -07:00

Closed #236 The page's type-check does not catch nulls 2026-10-14 10:51:00 -07:00

Closed #237 ipx-web's image carries curl 8.22.0, affected by CVE-2026-92392 2026-10-14 10:45:21 -07:00

Closed #235 The page's type-check catches little: strict is off 2026-10-14 08:57:34 -07:00

Closed #234 No unit tests for the page's own functions 2026-10-14 08:47:17 -07:00

Closed #232 Unread counts blink as a scan goes by 2026-10-14 08:03:36 -07:00

Closed #233 Refresh buttons should turn from the press to the end of that scan 2026-10-14 08:03:35 -07:00

Closed #231 The check-every-feed icon turns in jerks 2026-10-14 07:50:39 -07:00

Closed #230 A server that accepts and never answers holds a scan for 30 s 2026-10-14 07:10:48 -07:00

Closed #228 A forced scan looks up site icons one feed at a time 2026-10-14 07:10:47 -07:00

Closed #229 A feed's fetch span does not say which feed 2026-10-14 07:10:47 -07:00

Closed #227 Directory: a feed check round waits on each feed in turn 2026-10-14 07:10:46 -07:00

Closed #226 Grafana: the Downloads panel fails 2026-10-13 17:09:34 -07:00

Closed #225 Private feeds' tokens are kept in traces 2026-10-13 11:02:12 -07:00

Closed #224 Memory: no way to tell what holds it, and the directory reports none 2026-10-13 10:21:21 -07:00

Closed #223 Docs: a page for each topic, and an API reference laid out like docs.rs 2026-10-13 08:48:32 -07:00

Closed #222 The website has no docs: how to install ipx and ipx-web, and how to use ipx's and the directory's APIs 2026-10-13 06:51:31 -07:00

Closed #221 The prod-check skill still expects the healthcheck's lines after #218 2026-10-13 05:17:37 -07:00

Closed #220 ipx-directory holds about 900 MB, and nothing shows whether it climbs 2026-10-13 05:17:36 -07:00

Closed #219 The page reports a NetworkError rejection each time a background fetch fails 2026-10-13 05:17:35 -07:00

Closed #217 ipx's image does not build: the directory crate's logo files are not copied in 2026-10-12 13:50:58 -07:00

Closed #216 A home page for iPX at ipxreader.app 2026-10-12 10:56:08 -07:00

Closed #214 The directory moves to directory.ipxreader.app 2026-10-12 10:20:33 -07:00

Closed #215 A public web view of the directory at directory.ipxreader.app 2026-10-12 10:20:32 -07:00

Closed #207 Split ipx into directory, backend and frontend 2026-10-12 09:56:21 -07:00

Closed #206 Split: directory admin from ipx 2026-10-12 09:56:20 -07:00

Closed #213 ipx-web and ipx-directory send no traces 2026-10-12 09:24:46 -07:00

Closed #212 On a phone, a Directory feed's Subscribe button is squashed to 18px 2026-10-12 09:05:41 -07:00

Closed #210 Dashboard, metrics and traces do not cover ipx-directory or ipx-web 2026-10-12 08:38:07 -07:00

Closed #211 ipx sends the directory its whole snapshot every half minute 2026-10-12 08:38:07 -07:00

Closed #203 Split: the frontend in its own container behind Caddy 2026-10-12 07:22:03 -07:00

Closed #205 Split: ipx uses the directory service 2026-10-12 07:22:02 -07:00

Closed #209 ipx-web strips Cloudflare Access headers from the tunnel too 2026-10-12 07:20:22 -07:00

Closed #204 Split: the directory service at ipx-dir.sdf1.net 2026-10-11 20:51:55 -07:00

Closed #202 Split: move to a Cargo workspace, shared feed crate 2026-10-11 20:30:09 -07:00

Closed #208 Move ipx into its own Arcane project, with a sample compose for others 2026-10-11 20:13:07 -07:00

Closed #201 Add a feed asks for a folder 2026-10-11 13:53:26 -07:00

Closed #200 A larger database pool on Postgres 2026-10-11 13:28:29 -07:00

Closed #199 The Database connections panel looks maxed out when the pool is idle 2026-10-11 13:28:28 -07:00

Closed #198 The Artwork kept panel is a flat line at 500 MiB 2026-10-11 13:19:05 -07:00

Closed #196 Postgres logs an error every 30 seconds for the old DeadAir table 2026-10-11 13:14:12 -07:00

Closed #197 A scan's not-due notices overflow the live-update stream 2026-10-11 13:14:12 -07:00

Closed #193 Every scan waits 1-12 s for a check that only needs doing once a day 2026-10-11 08:19:16 -07:00

Closed #195 Metrics miss the worker's current job, the queues and the work in flight 2026-10-11 08:16:00 -07:00

Closed #194 No metrics for what the daemon holds between requests, such as database connections in use 2026-10-11 08:07:00 -07:00

Closed #192 A play's trace holds only its report, not the playlist and audio it fetched 2026-10-11 07:43:39 -07:00

Closed #188 All Subscriptions takes about a second to list, nearly all of it one query 2026-10-11 07:43:38 -07:00

Closed #191 The changelog's Unreleased link compares from 0.10.3, not 0.11.0 2026-10-11 07:18:43 -07:00

Closed #190 Nothing the page does in the browser reaches the logs or traces 2026-10-11 07:16:34 -07:00

Closed #189 Cloudflare caches DeadAir's audio, so its copy skips the subscriber check 2026-10-11 07:06:22 -07:00

Closed #187 Traces cannot say where a slow reap, episode list or DeadAir pass spends its time 2026-10-11 06:16:56 -07:00

Closed #184 Browser test "touch gestures on a phone ... goes to the item just read" fails now and then in the full run 2026-10-11 05:58:28 -07:00

Closed #186 Saving an episode keeps its dead air though DeadAir is on 2026-10-11 05:39:38 -07:00

Closed #185 DeadAir sits outside the box of a show's other podcast settings 2026-10-11 05:32:28 -07:00

Closed #183 DeadAir's pause choice reads as four unrelated buttons 2026-10-10 18:44:56 -07:00

Closed #178 DeadAir: start an episode at once and move to the shortened copy when it is ready 2026-10-10 12:49:40 -07:00

Closed #182 DeadAir leaves pauses too short, so speech sounds rushed 2026-10-10 12:49:39 -07:00

Closed #181 DeadAir: play episodes through an HLS playlist of the original instead of a copy 2026-10-10 12:49:38 -07:00

Closed #180 Test whether an iPhone plays DeadAir's cuts as an HLS playlist over the original file 2026-10-10 12:24:00 -07:00

Closed #179 DeadAir copies are kept as long as the episode, doubling its space 2026-10-09 19:52:57 -07:00

Closed #177 The container's ffmpeg is 5.1, two major versions behind 2026-10-09 15:18:31 -07:00

Closed #176 Show that DeadAir is still working on an episode 2026-10-09 12:07:30 -07:00

Closed #175 A downloaded file's buttons wrap onto two rows in the Files pane 2026-10-09 12:07:29 -07:00

Closed #174 DeadAir fails on an episode with more than about 100 silences, and never tries it again 2026-10-09 11:54:30 -07:00

Closed #173 DeadAir makes no copy of an episode you have opened but not played 2026-10-09 11:54:29 -07:00

Closed #172 DeadAir in the page: a switch per feed, one beside the speed, and the time saved 2026-10-09 11:40:28 -07:00

Closed #171 DeadAir: play episodes with their silences shortened 2026-10-09 11:09:13 -07:00

Closed #170 The web server leaves Nagle's algorithm on, so a response sent in parts can wait for the browser's acknowledgement 2026-10-09 06:41:46 -07:00

Closed #169 Five Glass Cannon feeds show no artwork, and every page load logs a 502 for each 2026-10-09 06:13:30 -07:00

Closed #167 Redesign the feed settings dialog 2026-10-09 05:26:55 -07:00

Closed #168 All Subscriptions shows unread items that have been read, until the page is reloaded 2026-10-09 05:15:58 -07:00

Closed #166 A feed set to download 0 downloads nothing, though the dialog says 0 means every episode 2026-10-08 19:45:04 -07:00

Closed #165 The feed list counts every item of every feed on the server, about 70% of its time 2026-10-08 19:17:37 -07:00

Closed #164 The feed list's traces do not say where its 290 ms goes 2026-10-08 19:07:17 -07:00

Closed #163 patch_feed asks for the subscription twice 2026-10-08 18:58:49 -07:00

Closed #161 Adding a feed from the CLI and from the page are the same steps written twice 2026-10-08 18:58:48 -07:00

Closed #162 Downloading or deleting a file that no longer exists answers 500 instead of 404 2026-10-08 18:58:48 -07:00

Closed #160 A feed's Directory page builds the whole Directory to check that one feed is listed 2026-10-08 18:58:47 -07:00

Closed #159 The feed list asks the database three times per feed in a Patreon or OPML group for the group's title 2026-10-08 18:58:46 -07:00

Closed #157 Removing an account leaves the feeds only they read downloading for no one 2026-10-08 18:58:45 -07:00

Closed #158 A torrent of several files can be neither played nor reaped 2026-10-08 18:58:45 -07:00

Closed #156 The reaper counts read marks and pins of people who no longer subscribe 2026-10-08 18:58:44 -07:00

Closed #155 An episode whose file turns out to be a torrent is never marked downloaded, and is fetched again every scan 2026-10-08 18:58:43 -07:00

Closed #154 Download latest with more than 64 items hangs the request and holds up adding feeds and Refresh 2026-10-08 18:58:42 -07:00

Closed #152 A download that stalls partway stops every scan and download, and the daemon still reports healthy 2026-10-08 18:58:41 -07:00

Closed #153 A change to the feed list can silently undo another made at the same time 2026-10-08 18:58:41 -07:00

Closed #147 Color matching 2026-10-08 18:14:58 -07:00

Closed #151 On a phone the closed feed list casts its shadow along the page's left edge 2026-10-08 18:11:23 -07:00

Closed #149 toddstashwick-com-devil-inside has never been read: the site redirects to itself forever 2026-10-08 07:45:33 -07:00

Closed #145 daily-quests and hots-dots are dead: both domains have lapsed 2026-10-08 07:45:32 -07:00

Closed #144 Pelgrane Press's feed is behind a browser check that refuses iPX most of the time 2026-10-08 07:45:31 -07:00

Closed #150 Two Directory feeds are dead: Yahoo Finance's is gone, TV Fanatic's is behind a browser check 2026-10-08 07:45:31 -07:00

Closed #146 Icons should not wrap 2026-10-08 06:52:52 -07:00

Closed #148 Pin icon remains hard to read 2026-10-08 06:52:51 -07:00

Closed #143 A moment's DNS failure keeps a listed feed failing for a day: 205 feeds have never been read 2026-10-05 17:21:35 -07:00

Closed #142 A feed's Directory page says nobody subscribes when someone does, and not why it has nothing 2026-10-05 16:58:21 -07:00

Closed #141 A feed's corrections never reach an item already stored: a scan skips every item it has seen 2026-10-05 16:58:20 -07:00

Closed #136 On SQLite every request and every scan write share one database connection 2026-10-05 12:58:46 -07:00

Closed #120 ipx rm and ipx add while the daemon runs change the database but not the daemon, which then undoes them 2026-10-05 12:58:45 -07:00

Closed #127 The search box does nothing on Currently Listening 2026-10-05 12:58:45 -07:00

Closed #119 A feed whose domain has lapsed looks like a quiet feed, not a failing one 2026-10-05 12:58:44 -07:00

Closed #139 Run the load tests on Postgres, as production runs 2026-10-05 11:33:01 -07:00

Closed #140 On Postgres every write waits for the server's disk: a scan takes most of a second a feed 2026-10-05 11:33:00 -07:00

Closed #133 Load tests: what many people at once do to the server, which the browser tests cannot show 2026-10-05 10:41:19 -07:00

Closed #138 How long a sign-in takes to fail tells anyone whether the name is an account 2026-10-05 10:41:18 -07:00

Closed #134 Every feed's artwork in the feed list flashes while a refresh of every feed runs 2026-10-05 10:41:17 -07:00

Closed #137 A flood of wrong passwords stalls every other request 2026-10-05 10:41:17 -07:00

Closed #135 On SQLite every statement waits for the disk: a scan takes over a second a feed 2026-10-05 10:12:56 -07:00

Closed #132 The Directory's category tiles fan their covers choppily 2026-10-05 09:48:37 -07:00

Closed #130 Keep a feed's own description, for its page in the Directory 2026-10-05 09:48:36 -07:00

Closed #131 Some Directory category tiles are green, which reads as yours 2026-10-05 09:34:52 -07:00

Closed #129 Anyone signed in can read any feed's items and files, a private feed's included 2026-10-05 09:21:25 -07:00

Closed #128 Open a feed from the Directory before subscribing to it 2026-10-05 09:21:24 -07:00

Closed #126 The search box does nothing on the Directory 2026-10-05 09:21:23 -07:00

Closed #124 Redesign the Directory as a place to browse, with the most subscribed feeds in it 2026-10-05 09:21:22 -07:00

Closed #125 Feeds that use Apple's Football or Soccer category show as categories of their own beside Sports 2026-10-05 09:21:22 -07:00

Closed #123 No way for a script or agent to use the API as a person 2026-10-04 17:18:23 -07:00

Closed #122 The Directory cannot be sorted: only most subscribers first 2026-10-04 15:55:27 -07:00

Closed #121 A pinned item's pin looks nothing like a pinned feed's 2026-10-04 15:55:26 -07:00

Closed #118 The Directory's category chips mix categories and subcategories in one flat list 2026-10-04 15:34:41 -07:00

Closed #117 Most feeds have no Directory category: blogs name none, and it is only set by hand 2026-10-04 15:23:38 -07:00

Closed #112 The daemon times out fetching some feeds that answer at once from anywhere else 2026-10-04 13:14:49 -07:00

Closed #115 Follow a feed that has moved for good to its new address 2026-10-02 14:01:22 -07:00

Closed #116 Items without a title all read "(untitled)" 2026-10-02 13:47:58 -07:00

Closed #114 The daemon runs a scan pass every minute, nearly always for nothing 2026-10-02 13:01:45 -07:00

Closed #113 The download queue counts 4420 files that will never download on their own 2026-10-02 13:01:44 -07:00

Closed #111 Keep artwork on disk and serve it from iPX 2026-10-02 06:52:18 -07:00

Closed #109 iPhones asking for /apple-touch-icon-precomposed.png get a 404 2026-10-02 06:37:22 -07:00

Closed #110 Artwork published on http should be stored on https where its host serves it 2026-10-02 06:37:22 -07:00

Closed #108 A feed whose server hangs holds up the whole scan: fetches have no timeout 2026-10-02 06:37:21 -07:00

Closed #107 Seed the Directory with vetted news feeds, and keep it free of dead ones 2026-09-29 14:21:20 -07:00

Closed #106 The startup warning says the token is all that guards the web UI 2026-09-29 13:52:04 -07:00

Closed #105 The page reloads the whole feed list after every change to one feed 2026-09-29 13:43:01 -07:00

Closed #104 Feeds are fetched one at a time, so a refresh waits on every site in turn 2026-09-29 13:34:36 -07:00

Closed #103 An open page reloads the whole feed list every minute, and settings with it 2026-09-29 13:34:35 -07:00

Closed #102 Adding a site that links no feed subscribes to its web page 2026-09-29 13:07:17 -07:00

Closed #101 Adding a site without https:// fails on every check 2026-09-29 12:47:31 -07:00

Closed #100 A feed that was failing stays in the database after its last subscriber leaves 2026-09-29 12:42:52 -07:00

Closed #99 A failing feed is retried on its normal schedule forever 2026-09-29 12:35:52 -07:00

Closed #97 Every scan downloads three more old episodes of each show, working back through its whole history 2026-09-29 11:51:29 -07:00

Closed #98 An unlimited per-check limit stops downloads on Postgres 2026-09-29 11:39:03 -07:00

Closed #96 Most of a slow feed's scan time is in untraced work after the fetch 2026-09-29 11:19:28 -07:00

Closed #95 Feeds with no artwork of their own ask their website for an icon on every scan 2026-09-29 10:32:34 -07:00

Closed #94 The feed list takes about 320ms to load: six queries per feed 2026-09-29 10:32:33 -07:00

Closed #91 Log as JSON for Loki 2026-09-29 09:28:10 -07:00

Closed #90 Artwork only on http:// does not show on the https page 2026-09-29 09:28:09 -07:00

Closed #82 ipx list does not show feed ids 2026-09-29 09:28:08 -07:00

Closed #85 Remove ipx copy-db once Postgres is settled 2026-09-29 09:28:08 -07:00

Closed #92 Four subscribed feeds fail on every scan: their publishers' addresses are dead 2026-09-29 09:14:28 -07:00

Closed #93 A failing feed's error mark is easy to miss, especially in dark mode 2026-09-29 08:25:33 -07:00

Closed #89 A feed's own artwork is used even when it is gone 2026-09-29 07:12:21 -07:00

Closed #81 The log is lost on every deploy 2026-09-29 06:35:46 -07:00

Closed #87 Send OpenTelemetry traces to Tempo 2026-09-29 06:35:45 -07:00

Closed #88 The log carries terminal colour codes when nobody is at a terminal 2026-09-29 06:35:45 -07:00

Closed #86 Remove subscribing the first admin to the catalogue 2026-09-29 06:12:14 -07:00

Closed #84 Remove the move of feeds and settings from config.toml into the database 2026-09-29 06:12:13 -07:00

Closed #83 Remove the startup pass that folds files WordPress listed twice 2026-09-29 06:12:12 -07:00

Closed #80 A site icon is never looked up again after the first time 2026-09-29 05:52:28 -07:00

Closed #79 A site icon the page names but that is missing is stored anyway 2026-09-29 05:42:56 -07:00

Closed #78 The refresh button gives no sign the feed is being checked 2026-09-28 16:51:32 -07:00

Closed #77 Refreshing every feed still asks each one only for changes 2026-09-28 16:47:58 -07:00

Closed #76 A feed page's refresh button looks different from the buttons beside it 2026-09-28 16:43:43 -07:00

Closed #75 The Directory's Subscribe button shows the Subscribed icon 2026-09-28 16:39:55 -07:00

Closed #74 Pinned and read look different in each place they are shown 2026-09-28 16:39:54 -07:00

Closed #73 Existing feeds wait for new content before getting a site icon 2026-09-28 16:27:58 -07:00

Closed #72 Looking for a page's feed link can panic on non-ASCII text 2026-09-28 16:22:51 -07:00

Closed #71 Adding a web page's address instead of its feed fails 2026-09-28 16:22:50 -07:00

Closed #70 A feed with no image shows no artwork, even when its site has a favicon 2026-09-28 16:22:49 -07:00

Closed #68 Pull to refresh gives no sign it started 2026-09-28 16:15:41 -07:00

Closed #69 The theme follows the account, so every device gets the same one 2026-09-28 16:15:41 -07:00

Closed #67 Homepage cannot show ipx's numbers 2026-09-28 13:01:10 -07:00

Closed #66 The logo takes room from search in the phone's top bar 2026-09-28 13:01:09 -07:00

Closed #65 The iOS home-screen icon does not follow light and dark mode 2026-09-28 11:44:49 -07:00

Closed #64 The favicon is the light logo in dark mode too 2026-09-28 11:14:15 -07:00

Closed #63 Modern theme and the logo's dark variant 2026-09-28 11:08:33 -07:00

Closed #62 Between releases the running build claims to be the last release 2026-09-28 10:58:06 -07:00

Closed #61 Settings shows the server's download folder, which nobody can change there 2026-09-28 10:51:57 -07:00

Closed #60 Logo beside the add-feed button, with the name and version on hover 2026-09-28 10:47:05 -07:00

Closed #59 The logo's orange needle is too close to the blue bars 2026-09-28 10:34:43 -07:00

Closed #50 When viewing unread articles, unable to go back after read. 2026-09-28 08:51:41 -07:00

Closed #58 On the Unread tab a swipe back cannot reach the item just read 2026-09-28 08:22:51 -07:00

Closed #57 A changed favicon is not picked up for a day 2026-09-28 07:16:51 -07:00

Closed #56 Rename iPodderX to iPX 2026-09-28 07:06:55 -07:00

Closed #55 A logo drawn from the radio's screen, to app icon guidelines 2026-09-28 06:32:23 -07:00

Closed #54 Nothing keeps clear of the Dynamic Island and status bar 2026-09-27 06:49:38 -07:00

Closed #53 The phone layout looks like a shrunk desktop page, not an iOS app 2026-09-27 06:49:37 -07:00

Closed #52 Swiping between items shows the item list underneath 2026-09-26 16:47:12 -07:00

Closed #51 Glass theme: light catching the panel edges 2026-09-26 16:32:02 -07:00

Closed #48 add a share option 2026-09-25 06:18:04 -07:00

Closed #47 User managed list of blocked keywords. 2026-09-25 06:18:03 -07:00

Closed #49 Swipe gesture to go to next article 2026-09-25 06:18:03 -07:00

Closed #46 The bottom bar is cut off by the home indicator in a full-screen shell 2026-09-19 16:10:48 -07:00

Closed #44 Browser test 'an export from one account imports into another' is flaky 2026-09-19 16:00:01 -07:00

Closed #45 The page cannot hand playback to a native app 2026-09-19 15:51:11 -07:00

Closed #43 Glass theme in the style of Apple's Liquid Glass 2026-09-19 13:46:22 -07:00

Closed #42 Substack subtitles are dropped 2026-09-19 08:16:16 -07:00

Closed #41 Proxy sign-in trusts a header any container on Tower can send 2026-09-19 08:16:15 -07:00

Closed #40 Web token printed in the startup log 2026-09-19 08:16:14 -07:00

Closed #39 tea comment never exits without a closed stdin, as CLAUDE.md shows it 2026-09-19 08:15:53 -07:00

Closed #38 CLAUDE.md's pkill -x ipx would also kill production's daemon 2026-09-19 08:14:29 -07:00

Closed #37 Scan all feeds toast 2026-09-18 18:17:41 -07:00

Closed #18 Backend DB To use PostgreSQL instead of SQLite 2026-09-18 15:31:03 -07:00

Closed #36 Revert Pin on entries move to the top 2026-09-18 15:08:40 -07:00

Closed #35 Pinned entries should be at the top of the entry list 2026-09-18 10:51:39 -07:00

Closed #19 Admin Redesign 2026-09-18 08:28:31 -07:00

Closed #33 Pin Feed 2026-09-18 08:14:49 -07:00

Closed #34 Play/pause icons do not match 2026-09-18 08:01:05 -07:00

Closed #22 Enable mobile gestures for feed and articles 2026-09-18 07:13:30 -07:00

Closed #32 ipodderx logo as favicon? 2026-09-18 07:10:49 -07:00

Closed #31 Media icon alignment is not consistent 2026-09-18 07:09:41 -07:00

Closed #27 Updated Themes and selector 2026-09-18 05:53:27 -07:00

Closed #23 use swc to minify html and js 2026-09-18 05:42:39 -07:00

Closed #24 Move inline js to typescript 2026-09-18 05:42:39 -07:00

Closed #21 On mobile there is no way to currently delete an enclosure item 2026-09-18 05:22:47 -07:00

Closed #30 Add feed modal should not include popular list 2026-09-18 05:22:47 -07:00

Closed #20 Feed errors in ui while scanning all feeds 2026-09-18 05:15:21 -07:00

Closed #25 unrendered js code or something in body of article 2026-09-18 05:15:21 -07:00

Closed #28 the-observation-deck missing image 2026-09-18 05:15:21 -07:00

Closed #29 admin and logging permissions 2026-09-18 05:15:21 -07:00

Closed #15 Remove light/dark/classic switcher from main UI 2026-09-18 05:15:20 -07:00

Closed #16 Unread status 2026-09-18 05:15:20 -07:00

Closed #17 When filtering for unread, ui unread-> read behaviour is undesired 2026-09-18 05:15:20 -07:00

Closed #14 Currently listening lists nothing 2026-09-15 10:48:53 -07:00

Closed #11 Switch to using the Inter font 2026-09-15 10:31:06 -07:00

Closed #12 double audio 2026-09-15 10:31:06 -07:00

Closed #13 pin header icon is not aligned 2026-09-15 10:31:06 -07:00

Closed #10 Directory: let an admin give a blog its category 2026-09-15 10:20:00 -07:00

Closed #9 Pin not flag 2026-09-15 10:15:01 -07:00

Closed #8 Keybindings 2026-09-15 10:08:56 -07:00

Closed #3 Retire davewiner's 922 rows, without taking the 12 that people still read 2026-09-15 10:01:28 -07:00

Closed #6 Directory: split the rail by what a feed is before what it is about 2026-09-15 09:09:50 -07:00

Closed #7 Directory: replace the flat list with a chip rail over an artwork grid 2026-09-15 09:09:50 -07:00

Closed #4 Directory: give feeds a category, from the feed itself 2026-09-15 09:09:49 -07:00

Closed #5 Directory: expose category on /api/popular and /api/directory 2026-09-15 09:09:49 -07:00

Closed #2 Say what a site sent when it is not XML at all 2026-09-14 14:33:15 -07:00

Closed #1 Add a feed never loads its Popular list when opened over Directory or Popular 2026-09-14 14:28:50 -07:00

354 Issues created by 0 users

Opened #1 Add a feed never loads its Popular list when opened over Directory or Popular 2026-09-14 13:58:16 -07:00

Opened #2 Say what a site sent when it is not XML at all 2026-09-14 13:58:17 -07:00

Opened #3 Retire davewiner's 922 rows, without taking the 12 that people still read 2026-09-14 13:58:17 -07:00

Opened #4 Directory: give feeds a category, from the feed itself 2026-09-14 13:58:18 -07:00

Opened #5 Directory: expose category on /api/popular and /api/directory 2026-09-14 13:58:18 -07:00

Opened #6 Directory: split the rail by what a feed is before what it is about 2026-09-14 13:58:19 -07:00

Opened #7 Directory: replace the flat list with a chip rail over an artwork grid 2026-09-14 13:58:19 -07:00

Opened #8 Keybindings 2026-09-15 07:04:20 -07:00

Opened #9 Pin not flag 2026-09-15 07:08:09 -07:00

Opened #10 Directory: let an admin give a blog its category 2026-09-15 09:46:17 -07:00

Opened #11 Switch to using the Inter font 2026-09-15 10:14:51 -07:00

Opened #12 double audio 2026-09-15 10:17:26 -07:00

Opened #13 pin header icon is not aligned 2026-09-15 10:18:34 -07:00

Opened #14 Currently listening lists nothing 2026-09-15 10:38:21 -07:00

Opened #15 Remove light/dark/classic switcher from main UI 2026-09-16 06:58:51 -07:00

Opened #16 Unread status 2026-09-16 07:27:41 -07:00

Opened #17 When filtering for unread, ui unread-> read behaviour is undesired 2026-09-16 07:31:14 -07:00

Opened #18 Backend DB To use PostgreSQL instead of SQLite 2026-09-16 07:32:43 -07:00

Opened #19 Admin Redesign 2026-09-16 07:34:32 -07:00

Opened #20 Feed errors in ui while scanning all feeds 2026-09-16 07:37:47 -07:00

Opened #21 On mobile there is no way to currently delete an enclosure item 2026-09-16 07:41:17 -07:00

Opened #22 Enable mobile gestures for feed and articles 2026-09-16 07:51:13 -07:00

Opened #23 use swc to minify html and js 2026-09-16 07:56:14 -07:00

Opened #24 Move inline js to typescript 2026-09-16 08:03:13 -07:00

Opened #25 unrendered js code or something in body of article 2026-09-16 08:18:41 -07:00

Opened #27 Updated Themes and selector 2026-09-16 16:09:42 -07:00

Opened #28 the-observation-deck missing image 2026-09-17 09:52:49 -07:00

Opened #29 admin and logging permissions 2026-09-17 12:50:52 -07:00

Opened #30 Add feed modal should not include popular list 2026-09-17 16:32:09 -07:00

Opened #31 Media icon alignment is not consistent 2026-09-18 06:45:40 -07:00

Opened #32 ipodderx logo as favicon? 2026-09-18 06:50:43 -07:00

Opened #33 Pin Feed 2026-09-18 07:29:08 -07:00

Opened #34 Play/pause icons do not match 2026-09-18 07:56:16 -07:00

Opened #35 Pinned entries should be at the top of the entry list 2026-09-18 10:48:55 -07:00

Opened #36 Revert Pin on entries move to the top 2026-09-18 12:00:40 -07:00

Opened #37 Scan all feeds toast 2026-09-18 18:12:23 -07:00

Opened #38 CLAUDE.md's pkill -x ipx would also kill production's daemon 2026-09-19 08:11:49 -07:00

Opened #39 tea comment never exits without a closed stdin, as CLAUDE.md shows it 2026-09-19 08:15:41 -07:00

Opened #40 Web token printed in the startup log 2026-09-19 08:16:13 -07:00

Opened #41 Proxy sign-in trusts a header any container on Tower can send 2026-09-19 08:16:14 -07:00

Opened #42 Substack subtitles are dropped 2026-09-19 08:16:15 -07:00

Opened #43 Glass theme in the style of Apple's Liquid Glass 2026-09-19 13:20:07 -07:00

Opened #44 Browser test 'an export from one account imports into another' is flaky 2026-09-19 13:28:25 -07:00

Opened #45 The page cannot hand playback to a native app 2026-09-19 14:23:27 -07:00

Opened #46 The bottom bar is cut off by the home indicator in a full-screen shell 2026-09-19 16:05:37 -07:00

Opened #47 User managed list of blocked keywords. 2026-09-24 10:16:14 -07:00

Opened #48 add a share option 2026-09-24 10:17:01 -07:00

Opened #49 Swipe gesture to go to next article 2026-09-24 10:18:16 -07:00

Opened #50 When viewing unread articles, unable to go back after read. 2026-09-25 07:29:21 -07:00

Opened #51 Glass theme: light catching the panel edges 2026-09-25 19:47:01 -07:00

Opened #52 Swiping between items shows the item list underneath 2026-09-26 16:25:07 -07:00

Opened #53 The phone layout looks like a shrunk desktop page, not an iOS app 2026-09-26 17:09:43 -07:00

Opened #54 Nothing keeps clear of the Dynamic Island and status bar 2026-09-26 17:21:31 -07:00

Opened #55 A logo drawn from the radio's screen, to app icon guidelines 2026-09-28 06:30:43 -07:00

Opened #56 Rename iPodderX to iPX 2026-09-28 06:54:34 -07:00

Opened #57 A changed favicon is not picked up for a day 2026-09-28 07:09:44 -07:00

Opened #58 On the Unread tab a swipe back cannot reach the item just read 2026-09-28 08:20:27 -07:00

Opened #59 The logo's orange needle is too close to the blue bars 2026-09-28 10:31:51 -07:00

Opened #60 Logo beside the add-feed button, with the name and version on hover 2026-09-28 10:42:48 -07:00

Opened #61 Settings shows the server's download folder, which nobody can change there 2026-09-28 10:48:31 -07:00

Opened #62 Between releases the running build claims to be the last release 2026-09-28 10:53:34 -07:00

Opened #63 Modern theme and the logo's dark variant 2026-09-28 11:00:44 -07:00

Opened #64 The favicon is the light logo in dark mode too 2026-09-28 11:09:32 -07:00

Opened #65 The iOS home-screen icon does not follow light and dark mode 2026-09-28 11:40:39 -07:00

Opened #66 The logo takes room from search in the phone's top bar 2026-09-28 11:52:02 -07:00

Opened #67 Homepage cannot show ipx's numbers 2026-09-28 12:05:23 -07:00

Opened #68 Pull to refresh gives no sign it started 2026-09-28 13:21:33 -07:00

Opened #69 The theme follows the account, so every device gets the same one 2026-09-28 13:23:57 -07:00

Opened #70 A feed with no image shows no artwork, even when its site has a favicon 2026-09-28 16:15:47 -07:00

Opened #71 Adding a web page's address instead of its feed fails 2026-09-28 16:18:47 -07:00

Opened #72 Looking for a page's feed link can panic on non-ASCII text 2026-09-28 16:19:09 -07:00

Opened #73 Existing feeds wait for new content before getting a site icon 2026-09-28 16:23:46 -07:00

Opened #74 Pinned and read look different in each place they are shown 2026-09-28 16:32:07 -07:00

Opened #75 The Directory's Subscribe button shows the Subscribed icon 2026-09-28 16:32:08 -07:00

Opened #76 A feed page's refresh button looks different from the buttons beside it 2026-09-28 16:41:27 -07:00

Opened #77 Refreshing every feed still asks each one only for changes 2026-09-28 16:45:08 -07:00

Opened #78 The refresh button gives no sign the feed is being checked 2026-09-28 16:48:51 -07:00

Opened #79 A site icon the page names but that is missing is stored anyway 2026-09-29 05:39:24 -07:00

Opened #80 A site icon is never looked up again after the first time 2026-09-29 05:50:37 -07:00

Opened #81 The log is lost on every deploy 2026-09-29 05:55:08 -07:00

Opened #82 ipx list does not show feed ids 2026-09-29 06:04:47 -07:00

Opened #83 Remove the startup pass that folds files WordPress listed twice 2026-09-29 06:06:57 -07:00

Opened #84 Remove the move of feeds and settings from config.toml into the database 2026-09-29 06:06:58 -07:00

Opened #85 Remove ipx copy-db once Postgres is settled 2026-09-29 06:06:58 -07:00

Opened #86 Remove subscribing the first admin to the catalogue 2026-09-29 06:06:59 -07:00

Opened #87 Send OpenTelemetry traces to Tempo 2026-09-29 06:17:59 -07:00

Opened #88 The log carries terminal colour codes when nobody is at a terminal 2026-09-29 06:28:35 -07:00

Opened #89 A feed's own artwork is used even when it is gone 2026-09-29 06:51:46 -07:00

Opened #90 Artwork only on http:// does not show on the https page 2026-09-29 06:51:47 -07:00

Opened #91 Log as JSON for Loki 2026-09-29 06:51:48 -07:00

Opened #92 Four subscribed feeds fail on every scan: their publishers' addresses are dead 2026-09-29 08:02:49 -07:00

Opened #93 A failing feed's error mark is easy to miss, especially in dark mode 2026-09-29 08:17:32 -07:00

Opened #94 The feed list takes about 320ms to load: six queries per feed 2026-09-29 09:39:39 -07:00

Opened #95 Feeds with no artwork of their own ask their website for an icon on every scan 2026-09-29 09:39:40 -07:00

Opened #96 Most of a slow feed's scan time is in untraced work after the fetch 2026-09-29 09:39:41 -07:00

Opened #97 Every scan downloads three more old episodes of each show, working back through its whole history 2026-09-29 11:24:00 -07:00

Opened #98 An unlimited per-check limit stops downloads on Postgres 2026-09-29 11:26:23 -07:00

Opened #99 A failing feed is retried on its normal schedule forever 2026-09-29 12:31:08 -07:00

Opened #100 A feed that was failing stays in the database after its last subscriber leaves 2026-09-29 12:37:48 -07:00

Opened #101 Adding a site without https:// fails on every check 2026-09-29 12:37:49 -07:00

Opened #102 Adding a site that links no feed subscribes to its web page 2026-09-29 12:47:31 -07:00

Opened #103 An open page reloads the whole feed list every minute, and settings with it 2026-09-29 13:11:11 -07:00

Opened #104 Feeds are fetched one at a time, so a refresh waits on every site in turn 2026-09-29 13:11:11 -07:00

Opened #105 The page reloads the whole feed list after every change to one feed 2026-09-29 13:41:43 -07:00

Opened #106 The startup warning says the token is all that guards the web UI 2026-09-29 13:45:16 -07:00

Opened #107 Seed the Directory with vetted news feeds, and keep it free of dead ones 2026-09-29 14:13:13 -07:00

Opened #108 A feed whose server hangs holds up the whole scan: fetches have no timeout 2026-10-02 06:25:37 -07:00

Opened #109 iPhones asking for /apple-touch-icon-precomposed.png get a 404 2026-10-02 06:25:37 -07:00

Opened #110 Artwork published on http should be stored on https where its host serves it 2026-10-02 06:29:36 -07:00

Opened #111 Keep artwork on disk and serve it from iPX 2026-10-02 06:50:46 -07:00

Opened #112 The daemon times out fetching some feeds that answer at once from anywhere else 2026-10-02 12:36:32 -07:00

Opened #113 The download queue counts 4420 files that will never download on their own 2026-10-02 12:45:35 -07:00

Opened #114 The daemon runs a scan pass every minute, nearly always for nothing 2026-10-02 12:49:29 -07:00

Opened #115 Follow a feed that has moved for good to its new address 2026-10-02 13:05:34 -07:00

Opened #116 Items without a title all read "(untitled)" 2026-10-02 13:46:47 -07:00

Opened #117 Most feeds have no Directory category: blogs name none, and it is only set by hand 2026-10-04 15:10:22 -07:00

Opened #118 The Directory's category chips mix categories and subcategories in one flat list 2026-10-04 15:30:07 -07:00

Opened #119 A feed whose domain has lapsed looks like a quiet feed, not a failing one 2026-10-04 15:41:46 -07:00

Opened #120 ipx rm and ipx add while the daemon runs change the database but not the daemon, which then undoes them 2026-10-04 15:44:51 -07:00

Opened #121 A pinned item's pin looks nothing like a pinned feed's 2026-10-04 15:50:42 -07:00

Opened #122 The Directory cannot be sorted: only most subscribers first 2026-10-04 15:50:43 -07:00

Opened #123 No way for a script or agent to use the API as a person 2026-10-04 17:08:49 -07:00

Opened #124 Redesign the Directory as a place to browse, with the most subscribed feeds in it 2026-10-05 08:39:37 -07:00

Opened #125 Feeds that use Apple's Football or Soccer category show as categories of their own beside Sports 2026-10-05 08:39:38 -07:00

Opened #126 The search box does nothing on the Directory 2026-10-05 08:39:39 -07:00

Opened #127 The search box does nothing on Currently Listening 2026-10-05 08:56:51 -07:00

Opened #128 Open a feed from the Directory before subscribing to it 2026-10-05 09:08:56 -07:00

Opened #129 Anyone signed in can read any feed's items and files, a private feed's included 2026-10-05 09:10:09 -07:00

Opened #130 Keep a feed's own description, for its page in the Directory 2026-10-05 09:21:25 -07:00

Opened #131 Some Directory category tiles are green, which reads as yours 2026-10-05 09:31:59 -07:00

Opened #132 The Directory's category tiles fan their covers choppily 2026-10-05 09:38:19 -07:00

Opened #133 Load tests: what many people at once do to the server, which the browser tests cannot show 2026-10-05 09:51:44 -07:00

Opened #134 Every feed's artwork in the feed list flashes while a refresh of every feed runs 2026-10-05 09:56:19 -07:00

Opened #135 On SQLite every statement waits for the disk: a scan takes over a second a feed 2026-10-05 10:02:18 -07:00

Opened #136 On SQLite every request and every scan write share one database connection 2026-10-05 10:19:37 -07:00

Opened #137 A flood of wrong passwords stalls every other request 2026-10-05 10:21:35 -07:00

Opened #138 How long a sign-in takes to fail tells anyone whether the name is an account 2026-10-05 10:21:35 -07:00

Opened #139 Run the load tests on Postgres, as production runs 2026-10-05 10:38:09 -07:00

Opened #140 On Postgres every write waits for the server's disk: a scan takes most of a second a feed 2026-10-05 11:02:49 -07:00

Opened #141 A feed's corrections never reach an item already stored: a scan skips every item it has seen 2026-10-05 13:11:49 -07:00

Opened #142 A feed's Directory page says nobody subscribes when someone does, and not why it has nothing 2026-10-05 16:46:35 -07:00

Opened #143 A moment's DNS failure keeps a listed feed failing for a day: 205 feeds have never been read 2026-10-05 16:58:22 -07:00

Opened #144 Pelgrane Press's feed is behind a browser check that refuses iPX most of the time 2026-10-06 12:52:25 -07:00

Opened #145 daily-quests and hots-dots are dead: both domains have lapsed 2026-10-06 12:52:26 -07:00

Opened #146 Icons should not wrap 2026-10-07 05:17:54 -07:00

Opened #147 Color matching 2026-10-07 05:19:07 -07:00

Opened #148 Pin icon remains hard to read 2026-10-07 05:21:34 -07:00

Opened #149 toddstashwick-com-devil-inside has never been read: the site redirects to itself forever 2026-10-08 06:39:34 -07:00

Opened #150 Two Directory feeds are dead: Yahoo Finance's is gone, TV Fanatic's is behind a browser check 2026-10-08 06:39:35 -07:00

Opened #151 On a phone the closed feed list casts its shadow along the page's left edge 2026-10-08 18:04:33 -07:00

Opened #152 A download that stalls partway stops every scan and download, and the daemon still reports healthy 2026-10-08 18:36:20 -07:00

Opened #153 A change to the feed list can silently undo another made at the same time 2026-10-08 18:36:21 -07:00

Opened #154 Download latest with more than 64 items hangs the request and holds up adding feeds and Refresh 2026-10-08 18:36:21 -07:00

Opened #155 An episode whose file turns out to be a torrent is never marked downloaded, and is fetched again every scan 2026-10-08 18:36:22 -07:00

Opened #156 The reaper counts read marks and pins of people who no longer subscribe 2026-10-08 18:36:23 -07:00

Opened #157 Removing an account leaves the feeds only they read downloading for no one 2026-10-08 18:36:24 -07:00

Opened #158 A torrent of several files can be neither played nor reaped 2026-10-08 18:36:24 -07:00

Opened #159 The feed list asks the database three times per feed in a Patreon or OPML group for the group's title 2026-10-08 18:36:25 -07:00

Opened #160 A feed's Directory page builds the whole Directory to check that one feed is listed 2026-10-08 18:36:26 -07:00

Opened #161 Adding a feed from the CLI and from the page are the same steps written twice 2026-10-08 18:36:26 -07:00

Opened #162 Downloading or deleting a file that no longer exists answers 500 instead of 404 2026-10-08 18:36:27 -07:00

Opened #163 patch_feed asks for the subscription twice 2026-10-08 18:36:27 -07:00

Opened #164 The feed list's traces do not say where its 290 ms goes 2026-10-08 19:03:52 -07:00

Opened #165 The feed list counts every item of every feed on the server, about 70% of its time 2026-10-08 19:07:17 -07:00

Opened #166 A feed set to download 0 downloads nothing, though the dialog says 0 means every episode 2026-10-08 19:28:34 -07:00

Opened #167 Redesign the feed settings dialog 2026-10-08 19:28:35 -07:00

Opened #168 All Subscriptions shows unread items that have been read, until the page is reloaded 2026-10-09 05:09:29 -07:00

Opened #169 Five Glass Cannon feeds show no artwork, and every page load logs a 502 for each 2026-10-09 06:07:03 -07:00

Opened #170 The web server leaves Nagle's algorithm on, so a response sent in parts can wait for the browser's acknowledgement 2026-10-09 06:18:15 -07:00

Opened #171 DeadAir: play episodes with their silences shortened 2026-10-09 09:28:59 -07:00

Opened #172 DeadAir in the page: a switch per feed, one beside the speed, and the time saved 2026-10-09 11:09:07 -07:00

Opened #173 DeadAir makes no copy of an episode you have opened but not played 2026-10-09 11:46:57 -07:00

Opened #174 DeadAir fails on an episode with more than about 100 silences, and never tries it again 2026-10-09 11:50:37 -07:00

Opened #175 A downloaded file's buttons wrap onto two rows in the Files pane 2026-10-09 12:03:19 -07:00

Opened #176 Show that DeadAir is still working on an episode 2026-10-09 12:03:19 -07:00

Opened #177 The container's ffmpeg is 5.1, two major versions behind 2026-10-09 15:08:39 -07:00

Opened #178 DeadAir: start an episode at once and move to the shortened copy when it is ready 2026-10-09 17:05:44 -07:00

Opened #179 DeadAir copies are kept as long as the episode, doubling its space 2026-10-09 17:24:31 -07:00

Opened #180 Test whether an iPhone plays DeadAir's cuts as an HLS playlist over the original file 2026-10-09 19:46:32 -07:00

Opened #181 DeadAir: play episodes through an HLS playlist of the original instead of a copy 2026-10-09 19:46:32 -07:00

Opened #182 DeadAir leaves pauses too short, so speech sounds rushed 2026-10-10 12:24:01 -07:00

Opened #183 DeadAir's pause choice reads as four unrelated buttons 2026-10-10 17:12:18 -07:00

Opened #184 Browser test "touch gestures on a phone ... goes to the item just read" fails now and then in the full run 2026-10-10 18:43:26 -07:00

Opened #185 DeadAir sits outside the box of a show's other podcast settings 2026-10-11 05:29:44 -07:00

Opened #186 Saving an episode keeps its dead air though DeadAir is on 2026-10-11 05:35:36 -07:00

Opened #187 Traces cannot say where a slow reap, episode list or DeadAir pass spends its time 2026-10-11 06:04:46 -07:00

Opened #188 All Subscriptions takes about a second to list, nearly all of it one query 2026-10-11 06:16:55 -07:00

Opened #189 Cloudflare caches DeadAir's audio, so its copy skips the subscriber check 2026-10-11 06:22:26 -07:00

Opened #190 Nothing the page does in the browser reaches the logs or traces 2026-10-11 07:07:08 -07:00

Opened #191 The changelog's Unreleased link compares from 0.10.3, not 0.11.0 2026-10-11 07:18:41 -07:00

Opened #192 A play's trace holds only its report, not the playlist and audio it fetched 2026-10-11 07:32:34 -07:00

Opened #193 Every scan waits 1-12 s for a check that only needs doing once a day 2026-10-11 07:49:02 -07:00

Opened #194 No metrics for what the daemon holds between requests, such as database connections in use 2026-10-11 07:54:04 -07:00

Opened #195 Metrics miss the worker's current job, the queues and the work in flight 2026-10-11 08:10:03 -07:00

Opened #196 Postgres logs an error every 30 seconds for the old DeadAir table 2026-10-11 13:09:31 -07:00

Opened #197 A scan's not-due notices overflow the live-update stream 2026-10-11 13:09:32 -07:00

Opened #198 The Artwork kept panel is a flat line at 500 MiB 2026-10-11 13:14:13 -07:00

Opened #199 The Database connections panel looks maxed out when the pool is idle 2026-10-11 13:26:12 -07:00

Opened #200 A larger database pool on Postgres 2026-10-11 13:26:13 -07:00

Opened #201 Add a feed asks for a folder 2026-10-11 13:50:29 -07:00

Opened #202 Split: move to a Cargo workspace, shared feed crate 2026-10-11 20:01:38 -07:00

Opened #203 Split: the frontend in its own container behind Caddy 2026-10-11 20:01:38 -07:00

Opened #204 Split: the directory service at ipx-dir.sdf1.net 2026-10-11 20:01:39 -07:00

Opened #205 Split: ipx uses the directory service 2026-10-11 20:01:39 -07:00

Opened #206 Split: directory admin from ipx 2026-10-11 20:01:40 -07:00

Opened #207 Split ipx into directory, backend and frontend 2026-10-11 20:01:57 -07:00

Opened #208 Move ipx into its own Arcane project, with a sample compose for others 2026-10-11 20:04:43 -07:00

Opened #209 ipx-web strips Cloudflare Access headers from the tunnel too 2026-10-12 07:17:00 -07:00

Opened #210 Dashboard, metrics and traces do not cover ipx-directory or ipx-web 2026-10-12 07:32:11 -07:00

Opened #211 ipx sends the directory its whole snapshot every half minute 2026-10-12 07:35:34 -07:00

Opened #212 On a phone, a Directory feed's Subscribe button is squashed to 18px 2026-10-12 09:02:49 -07:00

Opened #213 ipx-web and ipx-directory send no traces 2026-10-12 09:09:41 -07:00

Opened #214 The directory moves to directory.ipxreader.app 2026-10-12 09:59:39 -07:00

Opened #215 A public web view of the directory at directory.ipxreader.app 2026-10-12 10:08:03 -07:00

Opened #216 A home page for iPX at ipxreader.app 2026-10-12 10:27:31 -07:00

Opened #217 ipx's image does not build: the directory crate's logo files are not copied in 2026-10-12 13:44:49 -07:00

Opened #219 The page reports a NetworkError rejection each time a background fetch fails 2026-10-13 05:11:31 -07:00

Opened #220 ipx-directory holds about 900 MB, and nothing shows whether it climbs 2026-10-13 05:11:32 -07:00

Opened #221 The prod-check skill still expects the healthcheck's lines after #218 2026-10-13 05:11:32 -07:00

Opened #222 The website has no docs: how to install ipx and ipx-web, and how to use ipx's and the directory's APIs 2026-10-13 05:19:19 -07:00

Opened #223 Docs: a page for each topic, and an API reference laid out like docs.rs 2026-10-13 06:55:36 -07:00

Opened #224 Memory: no way to tell what holds it, and the directory reports none 2026-10-13 10:07:55 -07:00

Opened #225 Private feeds' tokens are kept in traces 2026-10-13 10:39:50 -07:00

Opened #226 Grafana: the Downloads panel fails 2026-10-13 17:08:46 -07:00

Opened #227 Directory: a feed check round waits on each feed in turn 2026-10-14 06:24:15 -07:00

Opened #228 A forced scan looks up site icons one feed at a time 2026-10-14 06:24:16 -07:00

Opened #229 A feed's fetch span does not say which feed 2026-10-14 06:24:16 -07:00

Opened #230 A server that accepts and never answers holds a scan for 30 s 2026-10-14 06:24:17 -07:00

Opened #231 The check-every-feed icon turns in jerks 2026-10-14 07:49:55 -07:00

Opened #232 Unread counts blink as a scan goes by 2026-10-14 07:54:38 -07:00

Opened #233 Refresh buttons should turn from the press to the end of that scan 2026-10-14 07:58:21 -07:00

Opened #234 No unit tests for the page's own functions 2026-10-14 08:46:37 -07:00

Opened #235 The page's type-check catches little: strict is off 2026-10-14 08:51:07 -07:00

Opened #236 The page's type-check does not catch nulls 2026-10-14 08:56:58 -07:00

Opened #237 ipx-web's image carries curl 8.22.0, affected by CVE-2026-92392 2026-10-14 10:43:25 -07:00

Opened #238 A private feed's key is written to the log when its fetch fails 2026-10-15 06:06:40 -07:00

Opened #239 ipx-web sends the API uncompressed 2026-10-15 06:40:37 -07:00

Opened #240 The feed list counts every item of every feed on each load 2026-10-15 06:40:38 -07:00

Opened #241 All Subscriptions' item query takes 0.3-0.9 s for about 14,000 items 2026-10-15 06:40:39 -07:00

Opened #242 Feeds that never answer 'not modified' are downloaded whole every hour 2026-10-15 06:40:39 -07:00

Opened #243 The directory re-checks every feed every six hours 2026-10-15 06:40:40 -07:00

Opened #244 Feed fetches accept only gzip 2026-10-15 06:40:41 -07:00

Opened #245 The load test's browse scenario fails without a directory 2026-10-15 06:53:48 -07:00

Opened #246 How long a list takes to show after a click is not measured 2026-10-15 07:48:08 -07:00

Opened #247 Opening a list waits for the server, with nothing to say it is loading 2026-10-15 08:11:53 -07:00

Opened #248 Currently Listening and the Directory's front page still wait for the server 2026-10-15 08:20:02 -07:00

Opened #249 Currently Listening's list takes 1.3 s to answer 2026-10-15 08:24:53 -07:00

Opened #250 /api/directory's time is mostly outside any span 2026-10-15 08:55:43 -07:00

Opened #251 The dashboard's Database connections panel looks exhausted when it is not 2026-10-15 14:25:27 -07:00

Opened #252 The Directory knows only what this server's people subscribe to 2026-10-15 19:11:34 -07:00

Opened #253 The directory sends its answers uncompressed 2026-10-16 06:54:30 -07:00

Opened #254 Signals: smart feeds picked by Jev 2026-10-16 09:40:02 -07:00

Opened #255 Signals in a folder in the sidebar, like an OPML or Patreon creator 2026-10-16 10:05:10 -07:00

Opened #256 Signals folder right under All Subscriptions, with its + on the folder's row 2026-10-16 10:36:35 -07:00

Opened #257 Signals: TypeSafe answers 422 to every Jev request 2026-10-16 10:45:39 -07:00

Opened #258 Signal unread counts go stale on the page 2026-10-16 10:51:04 -07:00

Opened #259 Signals pick out far too much: each keyword is a subject on its own 2026-10-16 11:01:57 -07:00

Opened #260 Signals judge 25 items every 5 minutes instead of going straight through the queue 2026-10-16 11:14:55 -07:00

Opened #261 A Signal's own icon, chosen from Font Awesome Free 2026-10-16 11:28:01 -07:00

Opened #262 Signal tiles all in one colour 2026-10-16 12:03:14 -07:00

Opened #263 Jev picks a Signal's icon, on the server's key 2026-10-16 12:09:06 -07:00

Opened #264 Jev is offered brand icons through their search terms: Disney Parks got the Mandalorian 2026-10-16 12:20:04 -07:00

Opened #265 No + on the Signals folder's row 2026-10-16 12:21:51 -07:00

Opened #266 A Signal with no key should link to getting one and adding it 2026-10-16 12:32:51 -07:00

Opened #267 Signals judge an image-only item by its title alone: xkcd's Ground Effect went into Formula 1 2026-10-16 12:46:54 -07:00

Opened #268 App-icon tiles for Signals and DeadAir, drawn as the logo is 2026-10-16 13:07:11 -07:00

Opened #269 The API reference on ipxreader.app has no Signals 2026-10-16 13:48:47 -07:00

Opened #270 Signals have no metrics, and failed Jev calls do not show as failed traces 2026-10-16 19:55:31 -07:00

Opened #271 Signals: an admin setting for whose TypeSafe key pays for Jev 2026-10-17 06:06:42 -07:00

Opened #272 Every artwork request scans the whole entries table: no index on entries.image 2026-10-17 06:54:27 -07:00

Opened #273 The Directory shows initials for podcasts nobody here subscribes to: their artwork is refused 2026-10-17 06:54:27 -07:00

Opened #274 The Signals judge scans the whole entries table on every pass, outside any trace 2026-10-17 06:58:32 -07:00

Opened #275 Signals call Jev one item at a time, so a new Signal takes about 20 minutes to fill 2026-10-17 06:58:32 -07:00

Opened #276 Signals: a look-back window an admin sets, a week by default, and an edit that asks again only what was picked out 2026-10-17 07:03:45 -07:00

Opened #277 Signals can outrun TypeSafe's rate limits, and a 429 is retried as any other error 2026-10-17 07:34:26 -07:00

Opened #278 Signals' metrics are not broken out by person, so the server's bill cannot be split 2026-10-17 08:23:53 -07:00

Opened #279 Artwork served without an image type is refused, so the podcast shows initials 2026-10-17 14:05:30 -07:00

Opened #280 Keep a podcast from an OPML subscription when the OPML drops it 2026-10-17 14:32:00 -07:00

Opened #281 Dependencies with known security advisories: ammonia, rustls, h2, ringbuf 2026-10-17 15:23:56 -07:00

Opened #282 ipx lists atom_syndication, quick-xml and rss but does not use them 2026-10-17 15:23:57 -07:00

Opened #283 An OPML's page lists its shows, not their items together 2026-10-18 09:17:49 -07:00

Opened #284 A feed written in Markdown shows the Markdown as text, not formatted 2026-10-18 11:01:25 -07:00

Opened #285 Switch an item between its HTML and its Markdown when a feed sends both 2026-10-18 11:17:43 -07:00

Opened #286 ipx-web's spans are all named ipx-web 2026-10-18 13:03:52 -07:00

Opened #287 A slow item list's trace does not say which list it was 2026-10-19 07:04:41 -07:00

Opened #288 Keep a feed, an OPML or a Patreon creator out of All Subscriptions 2026-10-19 07:14:55 -07:00

Opened #289 Keep a feed, an OPML or a Patreon creator out of Signals 2026-10-19 07:27:05 -07:00

Opened #290 Redesign a feed's settings dialog 2026-10-19 07:27:06 -07:00

Opened #291 A search box has no button to clear what was typed 2026-10-19 07:51:35 -07:00

Opened #292 Patreon's signed download links go to every open page and the log 2026-10-19 10:40:15 -07:00

Opened #293 Downloads folder missing for a moment makes ipx forget every downloaded file 2026-10-19 10:40:15 -07:00

Opened #294 Other people's download failures and progress show on everyone's page 2026-10-19 10:40:16 -07:00

Opened #295 A feed address that serves a large file is read whole into memory 2026-10-19 10:40:16 -07:00

Opened #296 Searching items for % or _ matches more than was typed 2026-10-19 10:40:17 -07:00

Opened #297 CLAUDE.md's test counts are out of date 2026-10-19 11:06:29 -07:00

Opened #298 An item can't be opened from the keyboard or a screen reader 2026-10-19 12:39:45 -07:00

Opened #299 Play and Delete on an item row are invisible while focused 2026-10-19 12:39:46 -07:00

Opened #300 The read toggle on an item row is named "●" 2026-10-19 12:39:47 -07:00

Opened #301 The player's seek bar has no name 2026-10-19 12:39:47 -07:00

Opened #302 Search and filter placeholders fail contrast in 20 of 25 palettes 2026-10-19 12:39:48 -07:00

Opened #303 Toasts are not announced, and error toasts vanish after six seconds 2026-10-19 12:39:49 -07:00

Opened #304 Error toasts show the browser's or server's raw text, with no next step 2026-10-19 12:39:50 -07:00

Opened #305 Text fields' borders fail 3:1 in every theme but High contrast 2026-10-19 12:39:51 -07:00

Opened #306 Dialogs are not dialogs: focus is not moved in, kept in, or given back 2026-10-19 12:49:02 -07:00

Opened #307 Fields in dialogs have labels that are not tied to them 2026-10-19 12:49:02 -07:00

Opened #308 An off switch is nearly invisible in every light theme 2026-10-19 12:49:03 -07:00

Opened #309 iPX's and the page's versions are only in a hover tooltip 2026-10-19 12:49:04 -07:00

Opened #310 Reduced motion leaves no sign that a check for new items is running 2026-10-19 16:22:19 -07:00

Opened #311 Hover styles stick on a phone after a tap 2026-10-19 16:22:19 -07:00

Opened #312 Scrolling past the end of a dialog or the phone drawer scrolls the page behind 2026-10-19 16:22:20 -07:00

Opened #313 Cover artwork has no edge, and dark covers melt into dark themes 2026-10-19 16:22:20 -07:00

Opened #314 The tab bar's corners do not nest around its tabs 2026-10-19 16:22:21 -07:00

Opened #315 The Directory's cover fan names the wrong property in will-change 2026-10-19 16:22:22 -07:00

Opened #316 A feed's page keeps showing an error after a check succeeds 2026-10-20 08:34:51 -07:00

Opened #317 WordPress.com sites answer the feed with a browser check, and the feed fails for hours 2026-10-20 08:42:36 -07:00

Opened #318 A multi-file torrent's name is recorded unchecked as the enclosure path, so a feed publisher can point Delete, reap and media serving at any path 2026-10-23 05:26:41 -07:00

Opened #319 Downloaded enclosure served same-origin with an extension-guessed type allows stored XSS 2026-10-23 05:26:42 -07:00

Opened #320 Feed, enclosure, OPML and artwork fetches reach any internal address, and the responses come back to the user 2026-10-23 05:26:43 -07:00

Opened #321 Every fresh install seeds an admin account with the public password 'ipodderx', usable through the unauthenticated login endpoint 2026-10-23 05:26:43 -07:00

Opened #322 A deeply nested OPML, uploaded by any signed-in user or served by any feed publisher, can overflow the stack and abort the whole daemon 2026-10-23 05:26:44 -07:00

Opened #323 ipx-web strips only the Cf-Access header names, while ipx trusts whatever header trusted_header names from Caddy's address 2026-10-23 05:26:44 -07:00

Opened #324 Disconnecting sign-in requests escape the password-check limit and run unbounded Argon2 work on the blocking pool 2026-10-23 05:26:45 -07:00

Opened #325 Private feed keys in the URL path reach every signed-in user through /api/events 2026-10-23 05:26:45 -07:00

Opened #326 Item and enclosure links from feeds are used as href and window.open targets without a scheme check 2026-10-23 05:26:46 -07:00

Opened #327 Feeds listed in a password-protected OPML inherit its username and password and send them to their own, unrelated hosts 2026-10-23 05:26:47 -07:00

Opened #328 Enclosure downloads send the feed's basic-auth password to whatever host the feed names, unlike feed fetches 2026-10-23 05:26:47 -07:00

Opened #329 The directory's refresher fetches LAN and container-network addresses named by an rw peer or by a listed feed's redirect 2026-10-23 05:26:48 -07:00

Opened #330 A feed's .torrent URL, or a tracker it names, can make the daemon buffer an unbounded body in memory 2026-10-23 05:26:48 -07:00

Opened #331 Torrent enclosures write with overwrite enabled straight into a folder other feeds share, so one publisher can replace another feed's downloaded episodes 2026-10-23 05:26:49 -07:00

Opened #332 A kept feed from a private OPML loses its private mark when the OPML is removed and is shared to the directory 2026-10-23 05:26:49 -07:00

Opened #333 Any signed-in user can mark a feed they do not subscribe to private, and promote an OPML-derived feed out of its OPML 2026-10-23 05:26:50 -07:00

Opened #334 Changing a password leaves every existing session and API token valid 2026-10-23 05:26:51 -07:00

Opened #335 An open /api/events stream keeps sending daemon events to an account after it is removed 2026-10-23 05:26:51 -07:00

Opened #336 Bodyless POST routes accept cross-origin simple requests carrying ambient credentials 2026-10-23 05:26:52 -07:00

Opened #337 A subscribed OPML with very many outlines causes quadratic sync work and an unbounded set of child feeds scanned on the shared worker 2026-10-23 05:26:52 -07:00

Opened #338 One OPML upload of many same-titled outlines does quadratic work while holding the catalogue lock, and adds tens of thousands of permanent feeds to the shared scan 2026-10-23 05:26:53 -07:00

Opened #339 One feed listing many distinct http artwork hosts holds the shared scan worker for hours, on every scan 2026-10-23 05:26:54 -07:00

Opened #340 Any signed-in user can make unlimited TypeSafe calls on the server's key through the icon route, even with signals_on_server off 2026-10-23 05:26:55 -07:00

Opened #341 Anonymous directory pages each run an unpaged query over the whole catalogue on a shared 10-connection pool 2026-10-23 05:26:55 -07:00

Opened #342 One rw snapshot with an enormous subscriber count breaks the directory's listings for everyone 2026-10-23 05:26:56 -07:00

Opened #343 On the server's key, one user's Signal text shares a Jev call with other users' Signals and may steer their verdicts 2026-10-23 05:26:57 -07:00

Opened #344 A page of items reads every enclosure in the database to find its files 2026-10-23 05:35:26 -07:00

Opened #345 Artwork kept on disk is read from FUSE, blocking the async threads 2026-10-23 05:35:26 -07:00

Opened #346 The item list and feed list wait on queries one at a time that could run together 2026-10-23 05:35:27 -07:00

Opened #347 Unread lists and counts read all of a person's items to find the few unread 2026-10-23 05:35:28 -07:00

Opened #348 A Signal's counts run the same verdict query twice 2026-10-23 05:35:28 -07:00

Opened #349 Two requests for the same missing artwork fetch it twice 2026-10-23 05:35:29 -07:00

Opened #350 Traces of some routes show their time with nothing under it 2026-10-23 05:44:06 -07:00

Opened #351 cargo deny: RUSTSEC-2026-0385 (ctutils 0.4.2) and RUSTSEC-2026-0382 (rustls-webpki 0.103.15) 2026-10-23 06:32:29 -07:00

Opened #352 Unread counts still hash every read-state row a person has 2026-10-23 09:06:57 -07:00

Opened #353 Rust: small departures from the style guide (imports, unwrap, for headers, must_use, bool parameters, SAFETY) 2026-10-23 18:00:02 -07:00

Opened #354 Rust: ipx-feed and ipx-directory have public items without doc comments 2026-10-23 18:00:03 -07:00

Opened #355 Rust: types written with their full path instead of imported 2026-10-23 18:00:04 -07:00

Opened #356 Rust: the root modules hold most of the code 2026-10-23 18:00:04 -07:00