Skip to content

🔖 Release v0.1.11 - #1474

Merged
aaronleopold merged 40 commits into
mainfrom
release/v0.1.11
Oct 20, 2026
Merged

aaronleopold merged 40 commits into
mainfrom
release/v0.1.11

Conversation

@aaronleopold

@aaronleopold aaronleopold commented Oct 17, 2026 •

Copy link
Copy Markdown
Collaborator

0.1.11

Added

  • ✨ Reading timeline improvements and basic journal support (#1472) [87585d4]
  • ✨ (expo) Add a persistent System theme option (#1458) [6dbd3b2]
  • ✨ Reading timeline foundations (#1460) [b988179]

Changed

  • ♻️ Improve series position ordering of books (#1473) [dc8c58a]
  • 🔧 Remove vscode configs [a09cfcb]
  • ♻️ Reorganize localization (#1469) [9f581e1]
  • ♻️ Upgrade to OPDS v2 stable progression API (#1440) [7ddbed5]
  • ⬆️ Fix vulnerability [c78e9c4]
  • ⬆️ Bump actions/download-artifact from 4 to 8 (#1451) [a5332b0]
  • ⬆️ Bump @tanstack/react-virtual from 3.10.8 to 3.14.13 (#1450) [eb718ac]
  • ⬆️ Bump actions/checkout from 3 to 7 (#1452) [fca73bb]
  • ⬆️ Bump react-native-web from 0.21.2 to 0.21.3 (#1445) [7816457]
  • ♻️ (expo) Add `Alert` stub with prettier jetpack compose dialog for Android (#1439) [d3ce23b]

Fixed

  • 🐛 Detect and delete duplicate media during oneshot conversion (#1477) [c16d207]
  • 🐛 Return 404 for EPUBs without a cover image (#1471) [d153ca7]
  • 🐛 Delete stored mtimes after library deletion (#1467) [a262043]
  • 🐛 Fix incomplete OPDS 2.0 catalog pagination (#1444) [daa509f]
  • 🐛 Respect spine `page-progression-direction` in Readium manifests (#1438) [ddb8788]
  • 🐛 Ignore case for client-side extension matching [ecdcaf7]
  • 🐛 (expo) Fix importing files shared via content:// URIs (#1416) [1668da2]

Security

  • 🔒 patch CVEs and add audit allowlist support [c637fa2]

Miscellaneous

  • 🩹 Print more meaningful message for config parse failures (#1468) [9a06681]
  • 🩹 (expo): Fix session detail thumbnail size for Android [1bc7e8d]
  • 🌐 Update German translation [fb35c7b]
  • 🌐 Update Spanish translation [d1516b5]
  • 🔀 Merge pull request #1459 from stumpapp/weblate-stump-stump [4213ad6]
  • 🌐 Update Korean translations (#1456) [7752c39]
  • 🌐 Update Chinese (Traditional Han script) translation [89f4b3d]
  • 🌐 Update Italian translation [f7f057f]
  • 🌐 Update Swedish translation [de83d59]
  • 🌐 Add Slovak translation [9db27ab]
  • 🌐 Update Chinese (Simplified Han script) translation [cf7b2df]
  • 🌐 Update German translation [93af210]
  • 🩹 Extend allowlist for additional false-positive vulns [e819251]
  • 🔀 Merge pull request #1433 from stumpapp/weblate-stump-stump [18df53f]
  • 🩹 (expo): Ensure test URL button loader fits and has correct colors [a7912a8]
  • 🩹 (expo) Fix brightness sync for Android [fdb8749]
  • 🩹 (expo) Fix external link taps for Android ebooks [e700d3e]
  • 🩹 (expo) Set `allowHardware` to false to fix OIDC crash [0c3b1e9]

Gibson431 and others added 30 commits September 21, 2026 13:31
Android's "Open with Stump" intent hands off content:// URIs, whose
paths rarely contain a literal file extension or usable filename, so
the previous extension-matching and path-parsing logic couldn't
handle them.

- native-intent now accepts any content:// or file:// URI instead of
  requiring a recognizable extension in the path; format validation
  happens later once the file is resolved.
- Import extension resolution is now MIME-type-first, using
  expo-file-system's File.type (backed by ContentResolver#getType),
  falling back to filename-based extension matching.
- Add a small native module (contentUriInfo) that resolves a
  content:// URI's real display name via ContentResolver's
  OpenableColumns.DISPLAY_NAME, used to produce a sensible book title
  instead of an opaque path segment (e.g. a numeric document ID).
Closes #1429

I have not verified on device, but hoping it does in fact correct the problem
Closes #1432

I also refactored the cve_check for two primary things:

1. The ability to add exceptions, e.g. this technically dev dependency for expo that was triggering the check to fail. It never reaches an app bundle so is acceptable to ignore as a false positive
2. Not create issues for CVE findings. I realized that is rather loud, and I'd rather not broadcast to the world "hey this version of stump has these CVEs and it isn't fixed yet!" I still get notified of failed runs, so that feels safer

If anyone actually reads my commit messages and disagrees, I'm happy to chat about it
…ndroid (#1439)

* make custom alert stub

* find/replace, add ok word, fix some funk around buttonless alerts

* simplify, alert dialog will manage positions for me
)

EPUB 3 declares reading direction on <spine page-progression-direction>,
but the manifest generator looked for a 'direction' metadata entry that
never exists on standard books. readingProgression was therefore always
published as 'ltr'.

Readium's web reader only enables its CJK vertical pipeline (vertical
ReadiumCSS, CJKVerticalSnapper, noVerticalPagination) when the manifest
reports 'rtl' alongside a CJK primary language, so vertical Japanese and
Chinese EPUBs fell back to horizontal layout in Firefox and to mismatched
pagination in Chrome (see #723).

epub-rs parses only the spine's 'toc' attribute, so the OPF is read
directly from the archive. Spine values win over a legacy
<meta name="direction"> entry, and non-directional spine values
(e.g. 'default') fall through to the legacy meta, then to 'ltr'.

Refs #723
Bumps [react-native-web](https://github.com/necolas/react-native-web) from 0.21.2 to 0.21.3.
- [Release notes](https://github.com/necolas/react-native-web/releases)
- [Commits](necolas/react-native-web@0.21.2...0.21.3)

---
updated-dependencies:
- dependency-name: react-native-web
  dependency-version: 0.21.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](actions/checkout@v3...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@tanstack/react-virtual](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual) from 3.10.8 to 3.14.13.
- [Release notes](https://github.com/TanStack/virtual/releases)
- [Changelog](https://github.com/TanStack/virtual/blob/main/packages/react-virtual/CHANGELOG.md)
- [Commits](https://github.com/TanStack/virtual/commits/@tanstack/react-virtual@3.14.13/packages/react-virtual)

---
updated-dependencies:
- dependency-name: "@tanstack/react-virtual"
  dependency-version: 3.14.13
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@v4...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Translation: stump/stump
Language: German
Progress: 100.0% (2171 of 2171 strings)
Translate-URL: https://hosted.weblate.org/projects/stump/stump/de/
Translation: stump/stump
Language: Chinese (Simplified Han script)
Progress: 94.1% (2044 of 2171 strings)
Translate-URL: https://hosted.weblate.org/projects/stump/stump/zh_Hans/
Translation: stump/stump
Language: Slovak
Translate-URL: https://hosted.weblate.org/projects/stump/stump/sk/
Translation: stump/stump
Language: Swedish
Progress: 52.9% (1149 of 2171 strings)
Translate-URL: https://hosted.weblate.org/projects/stump/stump/sv/
Translation: stump/stump
Language: Italian
Progress: 90.1% (1958 of 2171 strings)
Translate-URL: https://hosted.weblate.org/projects/stump/stump/it/
Translation: stump/stump
Language: Chinese (Traditional Han script)
Progress: 100.0% (2171 of 2171 strings)
Translate-URL: https://hosted.weblate.org/projects/stump/stump/zh_Hant/
I don't think this was actually present in builds based on quick look at tree, but good to do nonetheless
Adds 1239765 and 1239766 advisories, both for the same  vulnerbility. That dep is not part of any actual builds, is just dev but listed as dep upstream, so should be safe
* 🐛 Fix OPDS 2.0 catalog pagination

* 🐛 fix(opds): propagate pagination link errors

Replace the five pagination-link expect calls identified in review with fallible builders and normal API error propagation. Keep optional links lazy and strengthen book and series navigation coverage.
* wip: refactor for spec changes

* client changes for opds progression stable

* ensure PUT adheres to spec

* cleanup
* noodle

* mock out ui, heavy draft

* more noodling

* even MORE noodling, if you can believe it

might open a ramen shop

* add routing and session clicks

session will have its own page

* rough mock based on drawing mock

ty <3

* wip: actually build out a backend for this ig

* loader compiles

* add fk to bookmarks/annotations

im thinking for journal items maybe i'll rm the `notes` on the session and give entries their own table too

* refactor loader to load via relation

* wip: migration

* three small changes
- swap date range and "Start of Readthrough" text
- no divider between thumbnail and text
- simple stats for the book markings

* wip: real data, write painful migration that needs real testing

* wip: session by id + shell overview todos

* wip: session detail

* wip: session detail header left portion

* wip: session detail timeline

currently desc order, like the other parts, but perhaps it should be asc like drawing tbd

* bubble for book markings

* chapters_read resolver, some localization

* fix spacing on event row

* tiny color change for better light mode readability

* order on session events

* move template logic into reusable component

the catch is folks translating will need to know the fragments being translated will go in their parent sentences, will prob need to confirm i am not missing something that will make it not work well

* wip: kinda improve timeline and use template component

* functional event order

not great tho, will improve later

* wip color provider bones, cleanup, central gradient for stack, various comments

* simplify SessionProgressBar and make work

i just removed everything except the actual windowing logic, it's in git if i change my mind

* wip: session ac, basic mutations

* wip: global timeline

* wip: global timeline

* make session details header nicer

* fix issues with formatHumanDurationSeparate

* wip: annotation sheet on tap

* wip: my timeline ui

* wip review PR, clean up expo changes

* rm loader, use svc fns directly in media obj

not really using reading_timeline in a list query for books

* more cleanup / changes while reviewing pr

* small adjust of colors

* appease the clippy gods

* cleanup oopsies

* update schema + generated gql

* migration tests

not perfect but enough

* more slight color tweak + note after testing live migration

* a few android improvements

some annoying limitations to sort later too

---------

Co-authored-by: Jo <141064017+Arklaum@users.noreply.github.com>
* feat(expo): add a persistent System theme option

* fix(expo): separate theme initialization and simplify tests

Restore the saved theme in its own guarded layout effect and keep locale
and splash initialization limited to startup. Update Android navigation
bar styling from the same background state used by SystemBars.

Replace DOM-based theme tests with focused hook tests and remove Expo's
direct jsdom dependency.
Translation: stump/stump
Language: Spanish
Progress: 85.4% (1857 of 2172 strings)
Translate-URL: https://hosted.weblate.org/projects/stump/stump/es/
Translation: stump/stump
Language: German
Progress: 100.0% (2172 of 2172 strings)
Translate-URL: https://hosted.weblate.org/projects/stump/stump/de/
aaronleopold and others added 10 commits October 6, 2026 07:25
* wip: scuffed little reorg script

* consolidate into useCreateTranslate

* replace en-US

detecting and correcting duplicates beyond the rather basic reorg will def prove challenging, not something i want to do by eye so may try scripting it. offhand, maybe just lowercase each value and compare and ident copies. not tooooo bad but time

* trial run small usage

i mean, it works lol gonna take fckn AGES 😭

* batch find/replace

only 5 million bagillion to go!

* batch find/replace

only 4 million bagillion to go!

* another batch

* another batch

* todos

* wip title case

* wip: getting somewhere, working through exclusions

* expand sentence case list

* update en-US

* refactor useCreateTranslate

the whole ns-specific export was just too annoying

* humungo find/replace with some manual tedious tweaking

* migrate rest of locale files

* rm script

* rm todo

* preserve 'ui'

* more reorg into shared

it almost feels silly at this point, im preemptively moving some things like server sheet settings because the desktop app will likely share the same shit

* todo-n

* idk maybe it won't ever end

* fmt

* fix annoying ass shift-on-hover interaction with tooltip

i am sure there are more instances of this

* misc ui changes mostly in library forms

i just needed a little break from the monotonous task!

* lints

* wip: fix tests

hate how many locale-dependent tests were added

* fix remaining tests
* better android stack header, edit sheet, ctx menu

* add reading_journal model

* wip: gql

* journalEntry on ReadingSession, fake editor

* migration, wip client integration

* i got distracted and started support for reading devices

still needs migration

* basic entry

* reading device migration, fix usage errors

* fix migration

* add devices resolver to session

* link to book if from my timeline

* reorg into own folders

* rm comment, its fine i think

* reorg events out of detail

* big ol wip, working through layout for event focused timeline

* i think fix scroll issues

just swapped to normal scroll view for now and... its fine??

* okay fix for android too

* consolidate duplicate event impls into shared component/hook

* wip: localize changes, small clean up

* more localization, add is_latest resolver + loader, add extend mutation

* display device name

* rm notes field

* save my eyes from flash of white when opening edit sheets

theres a lot going on now in this component that needs a bit of more intentional sorting out, e.g. we have backgroundColor and backgroundColorData, and the derived palette stuff still isn't overly thought out, but fine for now ig

* fix lint, recursion schema issue, add test

* more translations

* invalidate after journal, add disclaimer

* rm inline render fns

* improve some android funk

always gotta be android w some funk 😭

* cleanup comments
* ⚗️ Adjust `next_in_series` loading and sorting

I dumped a lot of thoughts in a comment if you care to see what this one is about

* wip no compile: rethink some of the ordering

* wip: use order spec in queries

* wip: add next in series tests

broke tests from shared util change so will have to sort that

* fix web

* fix annoying ass tooltip content shift

* fix expo
* tdd my way into a better integration tests pattern, refactor oneshots migration handling

* todo

* quick review
@aaronleopold
aaronleopold marked this pull request as ready for review October 20, 2026 04:41
@aaronleopold
aaronleopold merged commit d0f51c8 into main Oct 20, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants