Repository navigation
Releases: juev/freshgo
Releases · juev/freshgo
Release list
v0.3.11
v0.3.10
Changelog
Features
- e0ff922 feat(web): an export is made in a temporary file instead of memory, so it no longer takes memory as large as the export
- ac40aec feat(serve): entries read, starred or otherwise changed are pushed to the apps of the user, and the README and the spec say how an app subscribes
- 6aee612 feat(greader): an app with the token of the API learns the VAPID key at /api/freshgo/push and subscribes to push as an app, or takes its subscription back
- 70da866 feat(push): a message of entries carries their count and the identifier of the newest for an app, and apps are told of changed entries once per half a minute
- 25a69ab feat(store): a push subscription says whether an app made it through the API, as a browser has to show every message and an app does not
Fixes
- f88f3a7 fix(greader): a request is refused for a user without an API password, whose token would depend on the salt alone
- 70ca4d3 fix(fetch): the guard refuses the reserved ranges of IANA, Teredo, and the IPv4 address a 6to4 one embeds
- 2afc1e7 fix(sanitize): data: URLs are kept only as images and a frame shows only web pages, and stored texts are cleaned again by the new rules
Other
- ab68316 test(greader): the listings benchmark gives its user an API password, which the Reader API now requires
v0.3.9
Changelog
Features
- 240a89e feat(web): an open page brings its listed entries up to date with the tree, and an adaptive stream that listed all entries lists the unread ones when some come from elsewhere, or offers to while an entry is open
v0.3.8
Changelog
Features
- de222b6 feat(web): an open page refreshes its tree when the server tells it and says how many entries came, and looks for changes every two minutes only without the stream
- 30e1f06 feat(events): the store says when entries were added, so new entries are told as they are stored, and a stream that newer ones replaced is told not to come back
- b37e3f4 feat(web): a logged-in page can listen at /events for the tree and new entries of its user, a stream that ends with its login and with the server, and is logged as a stream
- 3b37eb7 feat(events): a broker tells the subscriptions of a user that entries changed, and the store tells it once a change of entries is committed
- 1c4cf23 feat(web): every page of the interface comes in place of the one shown, with its header, notice, language and colours, and the way back comes back to where the page was scrolled
- baef862 feat(web): a stream opened from the tree comes in place of the one being read, through htmx 4, with the address, the title and the way back and forward kept, and the script acting on the stream that came
Fixes
- 129ae7e fix(web): a page in place is waited for as long as a browser waits, so a refresh of every feed or an import from a server is not cut at a minute, and a form that gets no answer says so
- 3ccfd55 fix(web): htmx reads hx-* attributes alone, so a feed whose entries carry data-hx-* cannot make the page send requests
v0.3.7
Changelog
Features
- 229d655 feat(import): one account of a Tiny Tiny RSS server is imported through its JSON API into an existing user, from the command or the transfer page, with read and starred states, labels, nested categories made top-level and a list of what could not be carried over
- fe114b0 feat(import): one account of a Miniflux server is imported through its REST API into an existing user, from the command or the transfer page, with read and starred states, tags as labels and the feed settings freshgo has, and a list of what could not be carried over
- 3fc40aa feat(labels): a filter can ask the language model for label suggestions for new entries, and an entry can be asked for them by hand, with the names shown for the reader to add or dismiss and nothing labelled before
- ff85af3 feat(summary): an entry can be summarised by the language model that translates, with the summary kept in its attributes and shown above its text, and a feed can ask for a summary of each long new entry
- e51d084 feat(push): a user can switch on Web Push in a browser and is told, once per refresh, how many unread entries came and the title of the newest, where the server has VAPID keys
- 7d2cb4b feat(digest): a user with an address can switch on a daily letter with the unread entries of the day, sent where the server has an SMTP server
- 5cb9ae7 feat(fever): /api/fever.php serves the Fever API behind an installation setting that is off by default, with the key stored when the API password is set
- f48472d feat(cli): completion prints a script that completes the commands and their flags in bash, zsh and fish
- 1608a03 feat(cli): -config names a YAML file with the settings, between the flags and the environment
- 9970a4f feat(fetch): a SOCKS4 proxy of a feed is named by import, doctor and the page of the feed, and cannot be chosen anew
- 896f8a1 feat(web): marking a page read and deleting a feed, a category or a label can be undone for ten minutes
- 36b3c0f feat(web): the page of problems says why a feed waits, when it is refreshed next, and what it failed with
- a8ef233 feat(web): a new user has a public feed token from the start, and the profile can regenerate it
- 6169f17 feat(web): a login by password can take the code of an authenticator app as well
- 37aacf7 feat(cli): freshgo doctor checks the configuration and what it names
- 6394553 feat(serve): Prometheus metrics at the debug address
- 70fa385 feat(log): -log-level and -log-format, and every request logged at debug
- 21c1246 feat(serve): /healthz says whether the database answers, and the image checks it
- 42f7ec5 feat(cli): backup copies a running database, and restore -check tells whether a copy can be started on
- 1d74f26 feat(web): a user who forgot the password resets it through a letter with a link that works once, for an hour
Fixes
- cd544a6 fix(digest): a period ends at the whole second it is stored in, so an entry in the second of a pass is not in two letters
- f2677e0 fix(refresh): at most 64 batches of entries wait for the model, so one that does not answer cannot have every refresh add to what is held in memory
- 22d8830 fix(summary): a summary is shown in whatever language it was made, so one the refresh made in the language of the settings is not lost on a reader whose browser asks for another
- 3065124 fix(import): a reading of another server stops at 256 MiB of answers, and a TT-RSS feed_id given as a string is read
- a941cff fix(fever): a key that works takes back its own attempt only, so a user cannot clear the guesses at another key made from the same address
- 4be7d47 fix(refresh): summaries end with the process, so a server told to stop does not wait for a model that does not answer
- 9ee3d21 fix(cli): TestObserve takes the request lines in any order, since a flushed answer lets the next request come before its line
- 56a25c5 fix(cli): import checks -data before it makes the database, so a typo leaves no empty one behind
- 336482f fix(store): a # or ? in the path of a SQLite database belongs to the path, so that very file opens with its pragmas
- 86a1ad9 fix(cli): settings that do not read stop the start, instead of every request
- 1bc9a72 fix(oidc): a user is bound to the issuer and subject of their first sign-in, and a group of the provider can make administrators
- 20802d8 fix(oidc): sign-ins share one reading of the provider instead of waiting for each other's
- 1e8238b fix(web): registrations are held back per address after the first few, and capped at ten an hour
- d15c21e fix(web): HTTPS behind a trusted proxy is taken from X-Forwarded-Proto, and HTTPS answers carry HSTS
- a443361 fix(store): a default user who is gone passes to the first user left, so the installation keeps an administrator
- 108a0b0 fix(store): a category and a label given one name at once are checked one after the other
- 9b19371 fix(favicon): an icon search tries a few links of a page and stops after 30 seconds
- a7ea49a fix(fulltext): the selected markup is held to a multiple of the page, so nested matches cannot exhaust memory
- 040c7e2 fix(greader): a guess at a password is paused and counted like the login form
- 305d21b fix(greader): a listing is written as it is read, so n=0 does not hold the whole stream (#141)
- 5314452 fix(websub): a subscription belongs to one feed, and its secret is not sent to another feed's hub
- 28e36a3 fix(opml): a public document keeps the credentials of a feed out of its name too
Other
- f8dec8d perf(store): a search for a string narrows the entries down by an index of trigrams before it matches them
- 0fc66ba perf(web): a public feed asked again with its ETag or Last-Modified answers 304 while only its time has moved
- 02a6413 perf(store): the installation settings are read once per five seconds, and again at once after this process changes them
- 41659e2 perf(store): PostgreSQL keeps at most four connections per processor, and no fewer than ten
- 2bf2dee test(oidc): the slow provider test counts the requests of its own engine
- 18ed3f6 test(oidc): sign-ins of the slow provider test ask without the database between them
v0.3.6
Changelog
Features
- be9402c feat(web): the tree of subscriptions folds at the head of the stream, which takes the whole width
v0.3.5
Changelog
Features
- 188c37e feat(web): the form of a feed checks whether the feed answers, directly and through every proxy
Fixes
- 2b37ea0 fix(web): the focus stays on the control of an entry it was on when the entry is brought up to date
- 089043a fix(refresh): a server puts a feed off no further than the period of the feed or of its user
- 720a4dd fix(favicon): a site that had no icon is asked again after a day
- bfa5795 fix(favicon): an icon that came through a proxy of a feed's own is kept apart
- b69a0a6 fix(favicon): the icon of a feed goes through the proxy the feed goes through
Other
- ca44e6a test(web): the walk with Tab of TestE2ETabOnly ends at the first stop of the page as well
v0.3.4
Changelog
Features
- 9c3ba71 feat(fetch): a proxy of the installation that only chosen feeds go through
Fixes
- 9e193bd fix(refresh): a feed is not asked twice within five minutes however fresh its entries are
- fd26a74 fix(web): choosing the proxy of the installation lets a failing feed be tried at once
Other
v0.3.3
v0.3.2
Changelog
Fixes
- ccbbf0f fix(refresh): a quiet feed is asked once in ttl_default of its user, an hour by default