gudvinr
ab26a4e20f
refactor(config): fix typos in test
2025-08-15 16:24:48 -07:00
Julien Voisin
2c4f4e2ae6
perf(templates): removes superfluous whitespaces in two templates
2025-08-14 19:40:30 -07:00
Julien Voisin
261b72f149
feat(icon): add resizing support for webp images
2025-08-14 19:36:11 -07:00
Julien Voisin
6c60d61f36
fix(icon): use rel=apple-touch-icon
instead of rel=apple-touch-icon-precomposed.png
...
https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html
2025-08-14 19:32:50 -07:00
Julien Voisin
fa85a0eff4
feat(ui): disable OAuth routes if OAuth is disabled
2025-08-13 21:15:26 -07:00
jvoisin
eb6f7f30bb
feat(storage): make removed entries' status immutable
...
This is a first step towards "keeping only metadata for removed entries" #3524 .
2025-08-12 20:17:34 -07:00
jvoisin
93fc206f42
refactor(opml): reduce indirections
...
Don't use a slice of pointers to opml items, when we can simply use a slice of
items instead. This should reduce the amount of memory allocations and the
number of indirections the GC has to process, speedup up the import process.
Note that this doesn't introduce any additional copies, as the only time a
slice of subscription is created, the items are created and inserted inline.
2025-08-12 19:47:47 -07:00
Julien Voisin
8bca777a6d
refactor(model): remove some indirection
...
For small fixed-size structures, it's better to use a slice of values, instead
of a slice of pointers to values: they're stored contiguously and thus can be
iterated on quickly by the CPU, and it does remove an indirection per object
every time the GC kicks in.
2025-08-12 19:46:14 -07:00
dependabot[bot]
1e6d227e40
build(deps): bump actions/checkout from 4 to 5
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v4...v5 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 16:49:06 -07:00
Frédéric Guillot
37d539eb42
fix(template): webauthn error alert was broken on the settings page
2025-08-11 20:01:53 -07:00
jvoisin
f5188b1edc
refactor(ui): don't expose webauthn routes if webauthn is disabled
2025-08-11 19:53:23 -07:00
Julien Voisin
5d9d0b2652
refactor(ui): standardize user variable naming and avoid a SQL query when only userID
is used
...
- Use `user` everywhere, instead of sometimes `loggedUser`
- Delay the instantiation of some variables: no need to perform SQL queries for
nothing.
- Remove a SQL query getting the whole user struct when only user.ID is used.
2025-08-11 19:48:36 -07:00
jvoisin
50c5996280
refactor: remove some fmt.Sprintf
calls
...
fmt.Sprintf is slow, so let's get rid of it in trivial cases that are in (at
least) moderately hot paths.
2025-08-11 19:27:34 -07:00
jvoisin
884521a7dd
refactor(template): use modern svg directive
...
https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/use
https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Attribute/xlink:href
> Warning: Since SVG 2, the xlink:href attribute is deprecated in favor of
href. See xlink:href page for more information.
2025-08-11 18:31:16 -07:00
jvoisin
3a01f8a691
perf(misc): use arrays instead of slices where possible
...
Arrays have a fixed size in go, while slices don't, making the former way
faster than the latter: https://go-benchmarks.com/array-vs-slice
2025-08-11 18:26:58 -07:00
jvoisin
68984da332
perf(static): minimize the SVG
...
Since tdewolff/minify supports SVG minimization, let's make use of it. As we
need to keep the license in the SVG because we're nice netizens, we can at
least use SPDX identifiers instead of using it verbatim.
This does save a couple of kB.
2025-08-09 15:38:43 -07:00
jvoisin
485baf9654
refactor(misc): fix a handful of TODO
2025-08-09 15:22:02 -07:00
Julien Voisin
06cbf1b3b3
fix(icon): update incorrect log messages
2025-08-09 15:20:33 -07:00
Frédéric Guillot
b20a8c97b0
fix(ui): invert toast notification icons
2025-08-09 14:23:20 -07:00
Frédéric Guillot
e0ca92fca4
fix(storage): revert DISTINCT
in FetchJobs
query
2025-08-08 16:53:52 -07:00
Frédéric Guillot
598d4d4f51
feat(storage): improve BatchBuilder
logging
2025-08-08 16:34:36 -07:00
Frédéric Guillot
a2229198ae
feat(api): log request URI in authentication handlers
2025-08-08 14:27:23 -07:00
Frédéric Guillot
34499b887b
feat: add POLLING_LIMIT_PER_HOST
to limit concurrent requests per host
...
Each batch of feeds sent to the worker pool is now guaranteed to contain unique feed URLs.
When `POLLING_LIMIT_PER_HOST` is set, an additional limit is applied to the number of concurrent requests per hostname, helping to prevent overloading a single server.
Note: Additional requests may still be made during feed refresh. For example, to fetch feed icons or when the web scraper is enabled for a particular feed.
2025-08-08 12:33:46 -07:00
Tim Douglas
a4f672b589
fix: URL detection incorrectly capturing newlines in media descriptions
2025-08-08 10:42:09 -07:00
Julien Voisin
98da7b3f22
feat(template): provide a link for the Apache 2.0 license in the about page
...
- Provide a link for the Apache 2.0 license
- Factorise the checks for IsAdmin
- Fix some indentation issues
2025-08-08 10:31:21 -07:00
jvoisin
b4c82a4c53
perf(static): minimize images
2025-08-08 10:16:32 -07:00
Frédéric Guillot
4d7c601f6d
feat(ui): add PWA app shortcuts
...
References:
- https://web.dev/articles/app-shortcuts
- https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Manifest/Reference/shortcuts
2025-08-07 20:47:08 -07:00
Frédéric Guillot
f7e672452b
feat(js): force page reload to prevent stale data from bfcache
...
The unread page may show outdated entries when navigating back from an article, due to Chrome's back/forward cache (bfcache) restoring the page from memory.
Reference: https://web.dev/articles/bfcache
2025-08-07 19:35:16 -07:00
Frédéric Guillot
6532435db9
fix(css): align icon labels vertically in entry actions
2025-08-07 17:50:17 -07:00
jvoisin
14cd5e9c0d
refactor(template): reduce the amount of code in common templates
...
There is no need to have templates used only used in a single file be part of
every single other ones. This should reduce a bit the resident memory
consumption of miniflux.
2025-08-07 17:36:41 -07:00
Julien Voisin
566670cc06
refactor: unexport symbols
2025-08-07 17:27:04 -07:00
dependabot[bot]
a4d51b5586
build(deps): bump golang.org/x/net from 0.42.0 to 0.43.0
...
Bumps [golang.org/x/net](https://github.com/golang/net ) from 0.42.0 to 0.43.0.
- [Commits](https://github.com/golang/net/compare/v0.42.0...v0.43.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/net
dependency-version: 0.43.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 17:25:08 -07:00
dependabot[bot]
e6d01896e0
build(deps): bump github.com/tdewolff/minify/v2 from 2.23.10 to 2.23.11
...
Bumps [github.com/tdewolff/minify/v2](https://github.com/tdewolff/minify ) from 2.23.10 to 2.23.11.
- [Release notes](https://github.com/tdewolff/minify/releases )
- [Commits](https://github.com/tdewolff/minify/compare/v2.23.10...v2.23.11 )
---
updated-dependencies:
- dependency-name: github.com/tdewolff/minify/v2
dependency-version: 2.23.11
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 17:15:46 -07:00
dependabot[bot]
b4a814a5b2
build(deps): bump golang.org/x/term from 0.33.0 to 0.34.0
...
Bumps [golang.org/x/term](https://github.com/golang/term ) from 0.33.0 to 0.34.0.
- [Commits](https://github.com/golang/term/compare/v0.33.0...v0.34.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/term
dependency-version: 0.34.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 17:14:36 -07:00
dependabot[bot]
940d94e793
build(deps): bump golang.org/x/image from 0.29.0 to 0.30.0
...
Bumps [golang.org/x/image](https://github.com/golang/image ) from 0.29.0 to 0.30.0.
- [Commits](https://github.com/golang/image/compare/v0.29.0...v0.30.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/image
dependency-version: 0.30.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 17:04:43 -07:00
Frédéric Guillot
80f48c88c7
refactor: replace interface{}
with any
2025-08-05 20:26:07 -07:00
Frédéric Guillot
045f2f1747
chore(view): remove unused webauthn_js_checksum
key
2025-08-05 20:20:33 -07:00
Julien Voisin
2565ff930c
refactor(template): make use of template.ParseFS
2025-08-05 20:07:49 -07:00
Julien Voisin
b3fce752d2
refactor: replace Sprintf
with string concatenation
...
There is no need to have go parse the whole format string then introspect the
arguments when we an simply use string concatenation.
2025-08-05 19:47:26 -07:00
Julien Voisin
798bc4cd2d
refactor(static): use a simple struct instead of two slices to store assets data and checksums
...
- Use a simple struct instead of two slices to store the data and the checksums
of resources
- Remove a superfluous call to Sprintf
- Factorise presence check and data retrieval in some maps
- Size the maps when possible
2025-08-05 19:35:27 -07:00
Julien Voisin
b1cbaae71c
refactor(storage): simplify feed.go
by using min()
, inline errors, and use idiomatic conditions
...
- Use `min` instead of doing the comparison by hand.
- Inline error handling where it makes sense
- Invert a condition to make it more idiomatic
2025-08-05 19:25:50 -07:00
Julien Voisin
924293ee5c
perf(storage): avoid heavy-weight SQL when marking feed as read
...
There is no need to perform a heavy-weight SQL query gathering all the
information available on a feed when we're only interested in its last check
timestamp.
2025-08-05 18:01:58 -07:00
Julien Voisin
826977bc8c
perf(api): speed up markFeedAsRead
by avoiding a JOIN
operation
2025-08-05 17:55:15 -07:00
Julien Voisin
ed0e4a667d
refactor(template): reindent and merge tags in feed_list.html
...
- Fix some indentation
- Factorize/merge some <span>
- Remove superfluous spaces
- Reindent some nested tags
2025-08-05 17:50:09 -07:00
jvoisin
5affd78f4f
refactor(reader): move the fetcher outside of a loop
...
There is no need to rebuilt the fetcher for every item, creating it once is
enough.
2025-08-05 17:39:23 -07:00
Frédéric Guillot
d3ad460c9d
Revert "feat(cookie): use SameSiteStrictMode
when not using OAuth2/OIDC"
...
This reverts commit 135ce1d546
.
People using Miniflux as PWA on Android are constantly being logged out.
2025-08-05 17:32:20 -07:00
Frédéric Guillot
0f3c04a98a
test(rewrite): fix flaky test case by sorting query string keys
2025-08-05 17:31:43 -07:00
gudvinr
e8e3a600b4
refactor(googlereader): remove intermediate variable
2025-08-03 13:21:40 -07:00
Julien Voisin
a6ce5c92dc
perf(storage): minor optimization for FetchJobs
...
- Replace a call to fmt.Sprintf with a concatenation
- Explicit declaration of return values in FetchJobs
- Initialize the size of FetchJobs return value to b.limit: when b.limit is
used, which is most of the time, this avoid resizing the slice, and when it
isn't, the size of the map is set to 0, which is equivalent to the previous
situation anyway.
- Move a call to `request.UserID(r)` to a lower scope.
2025-08-03 13:19:14 -07:00
gudvinr
76ef8f3579
refactor(googlereader): replace Sprintf("%d")
with FormatInt
...
see https://medium.com/swlh/bad-go-frivolous-sprintf-2ad28fedf1a0
2025-08-03 13:15:49 -07:00