Files
ipx/web/CHANGELOG.md
rays 8f19d88fc9 Compressed answers, a directory twice as patient, fewer whole re-reads (#239, #242, #243, #244)
Measured on 2026-10-15: the feed list and item lists went out uncompressed at over 100 KB; ipx
read 2.6 GB of feed bodies a day and the directory 3.9 GB.

- ipx-web compresses with zstd or gzip, leaving out /api/events, which a compressor would hold
  back, and /media (#239).
- A body identical to the last one (SHA-256 in feeds.body_hash) is taken as a 304, unless
  something is missing a read would fill or the check is forced; and a feed without a schedule
  of its own whose body has been the same waits a twelfth of that, up to four hours, beside the
  failure backoff (#242). 35 Patreon show feeds sent ~300 KB each hourly, about 250 MB a day.
- The directory checks each feed every twelve hours, not six (#243).
- reqwest accepts brotli and zstd too (#244).

#240 (cache the feed list's counts) is left open: at production's size on the test Postgres
that count takes 12 ms and All Subscriptions 32 ms, against 366 and 300 ms in production, so
the cause is production's database, not the query (#241).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:54:00 +00:00

3.1 KiB

Changelog: ipx-web

The page, and the container that serves it (Caddy). ipx's changelog is crates/ipx/CHANGELOG.md, which was the page's too until 0.12.0, and the directory's crates/directory/CHANGELOG.md.

Its version is in package.json, and a release is tagged web-vX.Y.Z.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Changed

  • The page and the API's answers are sent compressed, zstd or gzip, which the feed list and item lists, over 100 KB each, were not; live updates and audio are not compressed (#239).

1.0.2 - 2026-10-15

Fixed

  • The refresh buttons turn from the moment they are pressed until the scan they asked for has finished, smoothly, instead of jerking back upright between one feed and the next (#231, #233).
  • A feed's unread count stays put while a scan checks it quickly; the spinner takes its place only when a check takes a moment (#232).

Security

  • The ipx-web image no longer carries curl, which Caddy's base image shipped and nothing used: 8.22.0 there is affected by CVE-2026-92392 (#237).

1.0.1 - 2026-10-13

Fixed

  • A live update or a list refresh that fails because the network is gone (a laptop asleep) is no longer reported as an error, an error page from Cloudflare no longer becomes a request's message, and requests a minute or more after a tap start a trace of their own instead of joining that tap's (#219).

1.0.0 - 2026-10-12

Added

  • With a directory token that may administer it, an admin has Check now and Remove from the directory on a Directory feed's page, and Servers and Blocked lists in Admin, Directory (#206).
  • The page has a version of its own, which the logo's tooltip shows beside ipx's (#207).
  • The page is served by its own container, ipx-web (Caddy), which passes the API to ipx on the same address, so a change to the page deploys without rebuilding ipx (#203).
  • Admin, Directory sets the directory's address and this server's token, and whether to share, and says how the last share went (#205).
  • A feed's settings have a Private switch, which keeps it out of the directory; on and locked for a feed whose address or login shows it is private (#205).
  • ipx-web logs one line a request, without the request's headers or a sign-in token in the address (#210).
  • ipx-web sends a trace span for each request when WEB_TRACING=on, continuing the page's trace into ipx (#213).

Changed

  • The Directory says when no directory is set up, and its counts are of everyone on every sharing server (#205).
  • Add a feed no longer asks for a folder; a feed's folder is its title (#201).

Fixed

  • On a phone, the Subscribe button on a Directory feed's page is full size again, not squashed to a sliver (#212).