diff --git a/Cargo.lock b/Cargo.lock index a48fdb6..a903fda 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1859,7 +1859,7 @@ checksum = "791930b43c0d5973160d90a8f3894509f2b273430f5c5c73b668636d0287c5c0" [[package]] name = "ipx" -version = "1.2.1-dev" +version = "1.3.0" dependencies = [ "ammonia", "anyhow", @@ -1896,7 +1896,7 @@ dependencies = [ [[package]] name = "ipx-directory" -version = "1.1.2-dev" +version = "1.2.0" dependencies = [ "ammonia", "anyhow", diff --git a/crates/directory/CHANGELOG.md b/crates/directory/CHANGELOG.md index 23acf83..f555ed8 100644 --- a/crates/directory/CHANGELOG.md +++ b/crates/directory/CHANGELOG.md @@ -10,6 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.2.0] - 2026-10-16 + ### Added - Answers and pages go out compressed, brotli, zstd or gzip as the caller takes them: the feed list ipx asks for was 603 KB of JSON. A snapshot may come gzipped, `/metrics` answers gzipped, and with `OTEL_EXPORTER_OTLP_COMPRESSION=gzip` traces go to the collector compressed (#253). @@ -56,7 +58,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `ipx-directory`, a directory of public podcasts that ipx servers share: each sends the public feeds its people subscribe to, and any server with a token browses them, each feed listed once it has been read. Tokens are in its config file, each read-only, read-write or admin, and revoked one at a time (#204, #205). - Traces: a span a request, joining the trace of the ipx server that called, and a trace a refresher round with a span a feed (#213). -[unreleased]: https://git.sdf1.net/rays/ipx/compare/directory-v1.1.1...main +[unreleased]: https://git.sdf1.net/rays/ipx/compare/directory-v1.2.0...main +[1.2.0]: https://git.sdf1.net/rays/ipx/compare/directory-v1.1.1...directory-v1.2.0 [1.1.1]: https://git.sdf1.net/rays/ipx/compare/directory-v1.1.0...directory-v1.1.1 [1.1.0]: https://git.sdf1.net/rays/ipx/compare/directory-v1.0.0...directory-v1.1.0 [1.0.0]: https://git.sdf1.net/rays/ipx/releases/tag/directory-v1.0.0 diff --git a/crates/directory/Cargo.toml b/crates/directory/Cargo.toml index fb6c262..cffbda4 100644 --- a/crates/directory/Cargo.toml +++ b/crates/directory/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ipx-directory" -version = "1.1.2-dev" +version = "1.2.0" edition.workspace = true [[bin]] diff --git a/crates/ipx/CHANGELOG.md b/crates/ipx/CHANGELOG.md index a0423e8..dc8132b 100644 --- a/crates/ipx/CHANGELOG.md +++ b/crates/ipx/CHANGELOG.md @@ -12,24 +12,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.3.0] - 2026-10-16 + ### Added - Signals: a feed of your own, picked out of the noise of everything you subscribe to, holding the items TypeSafe's Jev says are about the subject you give it: a name, words, and a sentence of your own if they are not enough, from the last 30 days and every new one, judged on your own TypeSafe key, each with an icon of its own if you like, which Jev can pick on the server's TypeSafe key (`POST /api/signals/icon`) (`/api/signals`, and `typesafe_key` on `/api/me`) (#254). +- With `OTEL_EXPORTER_OTLP_COMPRESSION=gzip`, traces go to the collector compressed; `/metrics` answers gzipped, and a snapshot goes to the directory gzipped (#253). +- A Directory request's trace shows the call to the directory whole, with the size of its answer, and the steps that match it against your subscriptions (#250). +- The page's report of how long a list took to show after a click (`list_shown`, with the view and filter) is logged under that click's trace (#246). ### Changed - A feed that sends the same body again, as Patreon and Substack do whatever they are asked, is taken as unchanged instead of read again, and, without a schedule of its own, checked less often the longer it stays the same, up to every four hours, back on schedule when it changes (#242). - Feeds are fetched accepting brotli and zstd as well as gzip (#244). - On Postgres the daemon keeps all twenty of its database connections open, so a page load no longer waits for new ones, 80-330 ms each: the feed list and item lists took 0.3-1.6 s now and then, where their queries take 5-30 ms (#241). - - Currently Listening and the Pinned filter answer in a few milliseconds: they read every item on the server, 1.3 s for Currently Listening (#249). -### Added - -- With `OTEL_EXPORTER_OTLP_COMPRESSION=gzip`, traces go to the collector compressed; `/metrics` answers gzipped, and a snapshot goes to the directory gzipped (#253). -- A Directory request's trace shows the call to the directory whole, with the size of its answer, and the steps that match it against your subscriptions (#250). -- The page's report of how long a list took to show after a click (`list_shown`, with the view and filter) is logged under that click's trace (#246). - ## [1.2.0] - 2026-10-15 ### Added @@ -850,7 +848,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Torrent enclosures through librqbit, seeding to a ratio or a time, with a stall timeout. - `ipx import` and `ipx export` for OPML, and systemd units in `contrib/`. -[unreleased]: https://git.sdf1.net/rays/ipx/compare/v1.2.0...main +[unreleased]: https://git.sdf1.net/rays/ipx/compare/v1.3.0...main +[1.3.0]: https://git.sdf1.net/rays/ipx/compare/v1.2.0...v1.3.0 [1.2.0]: https://git.sdf1.net/rays/ipx/compare/v1.1.0...v1.2.0 [1.1.0]: https://git.sdf1.net/rays/ipx/compare/v1.0.0...v1.1.0 [1.0.0]: https://git.sdf1.net/rays/ipx/compare/v0.12.0...v1.0.0 diff --git a/crates/ipx/Cargo.toml b/crates/ipx/Cargo.toml index e77a2fe..9fcaea9 100644 --- a/crates/ipx/Cargo.toml +++ b/crates/ipx/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ipx" -version = "1.2.1-dev" +version = "1.3.0" edition.workspace = true [dependencies] diff --git a/package-lock.json b/package-lock.json index e5f9918..0713f71 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ipx-web", - "version": "1.0.3-dev", + "version": "1.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ipx-web", - "version": "1.0.3-dev", + "version": "1.1.0", "dependencies": { "@fortawesome/fontawesome-free": "7.3.1", "@swc/core": "^1.16.2", diff --git a/package.json b/package.json index 511126e..3473404 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ipx-web", - "version": "1.0.3-dev", + "version": "1.1.0", "private": true, "description": "Builds the ipx web pages from web/src (web/build.mjs, run by build.rs) and tests them. The Rust tests cover the server.", "scripts": { diff --git a/web/CHANGELOG.md b/web/CHANGELOG.md index 18b40a9..e7ca7fa 100644 --- a/web/CHANGELOG.md +++ b/web/CHANGELOG.md @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.1.0] - 2026-10-16 + ### Added - Signals pick what matters out of the noise of every feed you subscribe to: New signal takes a name, the words to listen for and, if those are not enough, a sentence saying what you mean, and its page lists the items from your feeds that are about it, read and unread as in their own feeds. Settings takes your TypeSafe key, which Signals need, and a Signal without one links to typesafe.ai to get one and to the key's place in Settings (#254, #266). They are kept in a Signals folder first in the feed list, under All Subscriptions, closed or open as an OPML is, with its own page listing them and a + there for a new one (#255, #256, #265). Each can have an icon of its own, searched for among all of Font Awesome Free, in place of its initials (#261), or one picked for it with Auto, which a Signal made without an icon gets by itself; each Signal's row counts its items and unread as a feed's does (#263). @@ -60,7 +62,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - On a phone, the Subscribe button on a Directory feed's page is full size again, not squashed to a sliver (#212). -[unreleased]: https://git.sdf1.net/rays/ipx/compare/web-v1.0.2...main +[unreleased]: https://git.sdf1.net/rays/ipx/compare/web-v1.1.0...main +[1.1.0]: https://git.sdf1.net/rays/ipx/compare/web-v1.0.2...web-v1.1.0 [1.0.2]: https://git.sdf1.net/rays/ipx/compare/web-v1.0.1...web-v1.0.2 [1.0.1]: https://git.sdf1.net/rays/ipx/compare/web-v1.0.0...web-v1.0.1 [1.0.0]: https://git.sdf1.net/rays/ipx/releases/tag/web-v1.0.0