Commit Graph

  • 5ef01593d7 One place to get an episode's file where you are (#457) file-where rays 2026-11-13 18:40:49 +00:00
  • 47e093e313 Phone reader: back and the item's actions float over the text (#456) main rays 2026-11-13 17:43:45 +00:00
  • 757ce5fbb3 Share never hands over a private feed's file (#455) rays 2026-11-13 17:34:17 +00:00
  • 45ef1e83f2 Share says why an episode gets no play link (#454) rays 2026-11-13 17:26:01 +00:00
  • b3636e648f Share works in the iOS app on an episode of a private feed (#452) rays 2026-11-13 16:57:25 +00:00
  • c133adf398 docs/play.md: the tunnel and traces reach ipx-play through the host's address rays 2026-11-13 14:35:52 +00:00
  • ac246682f0 Dockerfile.play copies web/logo-dark.svg, which the directory crate embeds (#451) rays 2026-11-13 14:30:58 +00:00
  • 679a674fc9 Share an episode as a page, on ipx-play (#447) Ray Slakinski 2026-11-13 09:24:18 -05:00
  • 171c77475a iOS: the app's settings in Settings, not behind a shake; iPhone upright (#445) Ray Slakinski 2026-11-13 08:39:54 -05:00
  • 69f1a38e9f iOS tests: CarPlay's episodes need a downloaded file (#443) Ray Slakinski 2026-11-13 08:33:32 -05:00
  • 6d6bfe6e1d iOS CarPlay: the phone's bar takes up the car's episode; only playable shows (#442, #443, #444) rays 2026-11-11 23:08:14 +00:00
  • a55f08d4ff Tests for push passes, downloads, OPML round trips and directory refresh rays 2026-11-11 23:04:10 +00:00
  • 75d099474c Terminal reader: play with mpv, mark read on move, folders and pins (#439, #440, #441) rays 2026-11-11 23:04:02 +00:00
  • 3a3900e959 Image builds keep compiled crates between builds (#438) rays 2026-11-09 14:05:12 +00:00
  • f9e4c1d800 CLAUDE.md: the home page deploys with wrangler and an API token from /src/.envrc rays 2026-11-09 13:38:12 +00:00
  • dccf9e1762 prod-check skill: the server's command in the container is ipxd (#437) rays 2026-11-09 13:32:55 +00:00
  • 2bb7ed2109 iOS: CarPlay (#420) Ray Slakinski 2026-11-09 08:10:29 -05:00
  • 711b0395f1 A terminal reader, ipx; the server is ipxd (#437) rays 2026-11-09 11:52:10 +00:00
  • f844cf349a iOS: Siri and Shortcuts, and a widget (#427, #428) Ray Slakinski 2026-11-08 19:32:43 -05:00
  • 8f888ae10e Admin page: an error toast no longer throws for want of haptic (#436) rays 2026-11-09 00:04:12 +00:00
  • da6cda28a5 iOS: the entitlements file is XcodeGen's output, not source (#433) Ray Slakinski 2026-11-08 17:47:41 -05:00
  • bd535851b0 The iOS app's icon count, pushed by ipx (#433) Ray Slakinski 2026-11-08 17:47:28 -05:00
  • e6414941ab iOS: the icon's count follows the page's (#421) Ray Slakinski 2026-11-08 17:18:43 -05:00
  • b455c1ec8c iOS: iPX opens with no connection (#435) Ray Slakinski 2026-11-08 17:08:27 -05:00
  • cf0dad7380 iOS: presses are felt (#430) Ray Slakinski 2026-11-08 16:57:51 -05:00
  • 2e031763fa Player: a sleep timer, and AirPlay in the app (#429) Ray Slakinski 2026-11-08 16:54:08 -05:00
  • ecc248307e iOS: episodes kept on the phone play with no connection (#425) Ray Slakinski 2026-11-08 14:40:01 -05:00
  • 05e522ac93 iOS: ask for the background refresh as the app leaves, too (#421) Ray Slakinski 2026-11-08 14:31:21 -05:00
  • 9541f6c6f4 Phone: the bottom totals are centred, low on the screen (#424) Ray Slakinski 2026-11-08 14:26:56 -05:00
  • ca54e83f9c Phone: the bottom totals are text alone, set in from the sides (#424) Ray Slakinski 2026-11-08 14:25:27 -05:00
  • 8d4c70a571 Admin page: the top bar clears the status bar in the iOS app (#423) Ray Slakinski 2026-11-08 14:18:55 -05:00
  • 4957c297b7 Stop tracking ios/.envrc Ray Slakinski 2026-11-08 14:11:22 -05:00
  • 3626a30b52 iOS: the player goes to ipxapi.sdf1.net with one API token; unread badge (#419, #421) Ray Slakinski 2026-11-08 14:11:03 -05:00
  • 7d4456bb2f iOS: build 2, with the player tokens (#419) Ray Slakinski 2026-11-08 13:10:49 -05:00
  • f6042e9b5f iOS: player tokens in the keychain, and a build that uploads (#419) Ray Slakinski 2026-11-08 13:08:15 -05:00
  • a581e3fc88 An iOS app: the page in a web view, with the phone's own player (#418) rays 2026-11-07 21:50:43 +00:00
  • 6d64cba374 A kept episode's row says On this device (#413) rays 2026-11-07 17:36:12 +00:00
  • b209f55d2c Admin page: Save waits for a change, and the phone layout fits (#414) rays 2026-11-07 17:16:23 +00:00
  • c6dcb7f34e Admin page laid out as a feed's settings are (#414) rays 2026-11-07 17:07:19 +00:00
  • 88f4e4765b The search box says Search (#417) rays 2026-11-07 17:28:56 +00:00
  • 1b0b155226 One Check every feed button: the top bar's (#416) rays 2026-11-07 17:26:53 +00:00
  • 5a8a7fb0cc Subscribing wakes the Signals judge, so a known feed's items reach Signals at once (#415) rays 2026-11-07 17:26:50 +00:00
  • 2c4d03668f Episodes can be kept on the device to listen offline (#412) rays 2026-11-07 15:31:04 +00:00
  • 07923d665b Page coverage keeps what a document ran before it unloads, and every page (#407) rays 2026-11-07 14:37:49 +00:00
  • f5a3847a21 Production's log lines name their trace again (#411, #408) rays 2026-11-07 13:41:04 +00:00
  • ba18b445ec Log lines name their trace under a scoped subscriber too (#408) rays 2026-11-07 13:34:24 +00:00
  • 8acf57961e Ten wrong passwords from one address hold it off sign-in for a quarter hour (#409) rays 2026-11-07 13:18:38 +00:00
  • 46392c55e1 The daemon test stops its daemons when an assertion fails (#400) rays 2026-11-07 05:55:39 +00:00
  • f6ba08d506 Coverage measures the page's Node tests and runs the Rust on Postgres (#407) rays 2026-11-07 04:57:32 +00:00
  • 7994f93f31 A download a restart stopped is taken up again at the start (#410) rays 2026-11-07 04:50:33 +00:00
  • 5c5dd91d21 Browser tests for the Directory's show page, dialogs, keys and player (#405, #406) rays 2026-11-07 04:45:11 +00:00
  • ee5610ba4e Browser tests for the page's live updates (#404) rays 2026-11-07 04:37:45 +00:00
  • 8e8307b569 Tests for the directory's Apple sync, metrics and dropped snapshots (#402) rays 2026-11-07 04:32:28 +00:00
  • c00d5383de Tests for feeds that move, WordPress.com, Patreon and ipx add/rm (#401) rays 2026-11-07 04:29:03 +00:00
  • 2db42b5fae Tests for the daemon's start, shutdown and CLI (#400) rays 2026-11-07 04:24:54 +00:00
  • 1253b470a5 Tests for torrents: a real swarm, the guard and the scan's deferral (#397) rays 2026-11-07 04:19:59 +00:00
  • 980fbc3f66 Tests for Signals' judging, pacing, icons and API (#398) rays 2026-11-07 04:15:49 +00:00
  • 3bb59c215a Tests for proxy sign-in, passwords, account settings and ipx user (#399) rays 2026-11-07 04:10:29 +00:00
  • b62182e38e Tests for the log's fields and the metrics Grafana reads (#403) rays 2026-11-07 04:02:15 +00:00
  • a92e81aba2 Tests for the reaper deleting files (#396) rays 2026-11-07 03:55:52 +00:00
  • bda2ef07be Browser tests for the directory's public pages (#395) rays 2026-11-07 03:46:49 +00:00
  • 194a9250e7 The API's coverage is measured, and every suite's is in Grafana (#394) rays 2026-11-07 03:33:49 +00:00
  • 352e2b77a5 A test signs in with the sign-in form (#393) rays 2026-11-07 03:16:42 +00:00
  • f8408a3d26 Tests, tooling and the served scripts are TypeScript (#392) rays 2026-11-07 02:23:22 +00:00
  • b509ea4b35 Coverage for the Rust and the page, and tests for the offline gaps (#390, #391) rays 2026-11-07 01:55:19 +00:00
  • af69b699a8 iPX opens and reads without a connection (#389) rays 2026-11-07 00:57:31 +00:00
  • 742f76969e An open page takes up a new version by itself after a deploy (#388) rays 2026-11-07 00:04:55 +00:00
  • e5388b443f YouTube feeds are read one at a time, two seconds apart (#386) rays 2026-11-06 23:54:32 +00:00
  • bbcf69062e A failing YouTube feed is asked again hourly for a day (#386) rays 2026-11-06 23:44:51 +00:00
  • d3b8c4cd01 A short Unread list read through no longer says more to load (#385) rays 2026-11-06 23:44:51 +00:00
  • 8a66f9c7ee prod-check names each trace's service and an event's fields (#387) rays 2026-11-06 23:44:51 +00:00
  • 1b2343cf28 prod-check reads swipes and a reader that will not scroll (#384) rays 2026-11-04 20:56:15 +00:00
  • 5c1970e8ee Swipes and a reader that will not scroll are reported (#384) rays 2026-11-04 20:46:31 +00:00
  • 385589ff77 Swiping past the 50th item fetches the next ones (#383) rays 2026-11-04 20:36:45 +00:00
  • c8cbb3047a Images build in a capped BuildKit builder rays 2026-11-04 20:23:23 +00:00
  • 245fa79fbf A YouTube feed's spurious 404 or 500 is asked again (#382) rays 2026-11-04 16:46:14 +00:00
  • 72e4a97f87 ipx-web uses Caddy's global metrics option (#381) rays 2026-10-26 02:23:27 +00:00
  • 90bbcfb40e Changelog: the blank line after Added stays first (#380) rays 2026-10-26 02:15:25 +00:00
  • 3f27dfdfdb The directory has a robots.txt and a sitemap (#380) rays 2026-10-26 02:15:05 +00:00
  • 08b28f0598 A tap's span ends with its own requests' answers (#379) rays 2026-10-26 02:05:31 +00:00
  • 5ee633e700 Changelog: no blank line inside Fixed (#378) rays 2026-10-26 01:48:02 +00:00
  • 070b39e840 The page stops recursing when a tap ends long after its answer (#378) rays 2026-10-26 01:47:51 +00:00
  • c4f0a362d8 The directory's refresher alert waits out a restart (#365) rays 2026-10-25 16:35:46 +00:00
  • dd91602a49 Metrics and traces for what had none, and alerts on them (#365-#377) rays 2026-10-25 16:18:06 +00:00
  • c788112190 Requests are counted in /metrics, and only a failed one is logged (#364) rays 2026-10-25 15:11:20 +00:00
  • 6352324bcb The logs stop repeating what metrics and their own fields say (#363) rays 2026-10-25 15:01:42 +00:00
  • 1d54f5141d The same feed over http and https is one feed (#362) rays 2026-10-25 02:00:20 +00:00
  • eae0ef5061 The page tells two feeds' items with one guid apart (#361) rays 2026-10-25 02:00:14 +00:00
  • 2c7e23c346 An item's text takes four fifths of the reading pane, not 80 characters (#360) rays 2026-10-25 01:49:44 +00:00
  • cad14ec09d An item's text keeps to about 80 characters a line, not 70 (#360) rays 2026-10-25 01:44:09 +00:00
  • cbc0c48f46 An item's text keeps to about 70 characters a line (#360) rays 2026-10-25 01:40:58 +00:00
  • 56778df9c5 CLAUDE.md: ipx-web's base images from Google's mirror too rays 2026-10-25 01:36:19 +00:00
  • 4249393f2a An interface font and a reading font in Settings (#359) rays 2026-10-25 01:35:02 +00:00
  • 75afaa291c Reading fonts in Settings: Atkinson Hyperlegible, Lexend, Literata, Source Serif, OpenDyslexic (#359) rays 2026-10-25 01:26:02 +00:00
  • ea5c15cc58 The font's default is called Default (set by the theme) (#359) rays 2026-10-25 01:18:21 +00:00
  • 6f38c0ad9b Choose a font in Settings, beside the theme (#359) rays 2026-10-25 01:10:28 +00:00
  • c6ca4d1a91 A show made a feed of its own leaves its list's group (#358) rays 2026-10-25 00:57:17 +00:00
  • 474be3e0a8 ipx 1.5.2-dev, ipx-directory 1.4.2-dev rays 2026-10-24 13:11:09 +00:00
  • ed9f008c6c Release ipx 1.5.1 and ipx-directory 1.4.1 v1.5.1 directory-v1.4.1 rays 2026-10-24 13:03:13 +00:00
  • b72e65711f A feed is read up to 200 MB, not 50 (#357) rays 2026-10-24 12:49:30 +00:00