littlecodedragon
1f552c2774
Fix malformed JSON secret files in Forgejo release workflow.
...
Forgejo Release Builder / release (push) Failing after 3s
Write secrets via printf and validate with python json.tool so google-services and client secrets remain valid JSON in CI.
2026-04-27 17:11:18 +02:00
littlecodedragon
1fc3835259
Stabilize Forgejo Android build by avoiding Gradle daemon in CI.
...
Forgejo Release Builder / release (push) Failing after 6m58s
Run Gradle with --no-daemon and reduced workers to prevent daemon crashes in containerized runner jobs.
2026-04-27 16:50:33 +02:00
littlecodedragon
041fd7e5ee
Set Android SDK env vars for containerized Forgejo builds.
...
Detect /opt/android-sdk-linux, export ANDROID_HOME/ANDROID_SDK_ROOT, and write local.properties so Gradle can resolve the SDK path.
2026-04-27 07:06:26 +02:00
littlecodedragon
acca36c3a3
Harden JDK package-manager detection in Forgejo release job.
...
Forgejo Release Builder / release (push) Failing after 23m19s
Log PATH and package manager probes, check common absolute binary locations, and keep workflow free of control bytes for Forgejo parsing.
2026-04-27 06:41:24 +02:00
littlecodedragon
fc6b46b07b
Remove hidden control bytes from Forgejo workflow.
...
Forgejo Release Builder / release (push) Failing after 6m42s
Clean trailing NUL bytes so Forgejo can parse build_release.yml and enqueue tag-based runs again.
2026-04-27 06:37:13 +02:00
littlecodedragon
2a0caf80ff
Adjust Forgejo checkout URL for host-networked Docker jobs.
...
Use 127.0.0.1 Forgejo endpoint from job steps so clone and API calls stay local to the NAS host network path.
2026-04-27 06:23:46 +02:00
littlecodedragon
5396ebad7c
Fix Forgejo release workflow for Docker executor.
...
Forgejo Release Builder / release (push) Failing after 3m15s
Use a container-reachable Forgejo checkout URL and support package installs via root or sudo in container jobs.
2026-04-27 06:05:44 +02:00
littlecodedragon
1f554081a5
ci: make Forgejo JDK install distro-aware
...
Forgejo Release Builder / release (push) Failing after 1s
Detect dnf/apt/apk/pacman in the Forgejo release workflow so Java setup works across runner base images.
2026-04-27 05:15:30 +02:00
littlecodedragon
029c3a25f0
ci: replace checkout action with shell clone on Forgejo
...
Forgejo Release Builder / release (push) Failing after 1s
Avoid JS-based checkout action dependency because runner image lacks node binary.
2026-04-27 04:56:48 +02:00
littlecodedragon
f6d9e07077
ci: remove unavailable signing action on Forgejo
...
Forgejo Release Builder / release (push) Failing after 0s
Drop external APK signing action and publish unsigned release artifacts in Forgejo workflow to keep pipeline executable.
2026-04-27 04:53:29 +02:00
littlecodedragon
138a92854e
ci: remove external action dependencies in Forgejo workflow
...
Forgejo Release Builder / release (push) Failing after 0s
Replace setup-java, write-file-action, and setup-gradle action steps with shell-based equivalents for reliable Forgejo execution.
2026-04-27 04:51:29 +02:00
littlecodedragon
dbee19612b
ci: sanitize Forgejo release workflow yaml
...
Forgejo Release Builder / release (push) Failing after 5s
Remove hidden control bytes so Forgejo can parse build_release.yml again.
2026-04-27 04:43:14 +02:00
littlecodedragon
efb1a1e539
ci: touch Forgejo workflow for trigger
...
Add a marker comment and keep Forgejo release workflow explicitly node20-compatible.
2026-04-26 17:33:58 +02:00
littlecodedragon
5b93575bab
ci: fix Forgejo release workflow action versions
...
Switch checkout/setup-java/setup-gradle to node20-compatible action versions for Forgejo runner v3.5.1.
2026-04-26 17:19:39 +02:00
littlecodedragon
5351e4a2f8
ci: make workflows Forgejo runner compatible
...
Forgejo Release Builder / release (push) Failing after 0s
Pin workflow actions to node20-compatible versions and replace node24-only dependencies so jobs run on Forgejo runner v3.5.1.
Made-with: Cursor
2026-04-26 17:11:53 +02:00
littlecodedragon
d51aaa39b9
ci: add Forgejo release workflow
...
Forgejo Release Builder / release (push) Failing after 5s
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-24 14:28:23 +02:00
littlecodedragon
9c110ee46a
docs: mention series ETA in README
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-24 14:10:11 +02:00
Cuong-Tran
bdf81596e9
chore: Avoid race conditions and improve bulk selection ( #1606 )
...
* avoid race conditions
* Improve Bulk selection
* Consolidate selection mode updates and list clearing into a single state update.
2026-04-23 16:30:55 +07:00
Cuong-Tran
d8eb71e004
chore(UI): Use remember getUiModel ( #1605 )
...
* use remember getUiModel
* update headerIndexes to use remember for state management
* Refactor LibraryUpdateErrorScreen to improve state management
* Move header index calculation from the screen model to the presentation layer.
* Optimize UI model and header index memoization using `remember(state)`.
* Remove redundant `LaunchedEffect` and simplify scroll-to-index logic.
* Refactor LibraryUpdateErrorScreen to enhance state management with derivedStateOf
2026-04-23 15:19:54 +07:00
Cuong-Tran
bf9b663581
Optimize database indexes and clean up schema ( #1603 )
...
* Update `excluded_scanlators` index to a composite index on `manga_id` and `scanlator`.
* Convert `idx_history_last_read` into a partial index for entries where `last_read > 0`.
* Remove redundant `idx_manga_sync_manga_id` index.
* Remove unused `last_modified_at` column and its associated trigger from `mangas_categories`.
* Sync migration files with schema changes.
2026-04-23 00:02:39 +07:00
Luca Auer
8bb8d7ccb7
Add missing indexes to improve database query performance ( mihonapp/mihon#2950 )
...
(cherry picked from commit cae9fbf3213987e7d263845431dfac10a2ecb3b0)
2026-04-23 00:02:39 +07:00
MediocreLegion
80ea323281
fix(delegate): migrate NH to the v2 api ( #1582 )
...
* fix(delegate): migrate NH to the v2 api
* bump versionId
* remove versionId requirement
* gemini review suggestions
* remove dead code
* remove unused imports
* linging
* unneeded comment
* fix(delegate): migrate NH to the v2 api (jobobby04/TachiyomiSY#1581 )
* fix(delegate): migrate NH to the v2 api
* remove extra comment
* remove redundant data
* linting
* Code cleanup
---------
Co-authored-by: Jobobby04 <jobobby04@users.noreply.github.com>
(cherry picked from commit eec1236b8b5904b46d79bb716e29f073c6fe9b34)
* close `response`
* Avoid empty server list
---------
Co-authored-by: Jobobby04 <jobobby04@users.noreply.github.com>
Co-authored-by: Cuong-Tran <16017808+cuong-tran@users.noreply.github.com>
2026-04-22 13:31:05 +07:00
Copilot
ee7fb26790
fix: remove expect/actual for LocalSource in single-target KMP module ( #1602 )
...
Agent-Logs-Url: https://github.com/komikku-app/komikku/sessions/5bf2689f-d906-47af-881b-4556f828a3a6
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: cuong-tran <16017808+cuong-tran@users.noreply.github.com>
2026-04-22 12:18:16 +07:00
Cuong-Tran
6f020399d8
chore(ci): Add SSH key setup for Codeberg repository mirroring ( #1595 )
2026-04-16 16:22:27 +07:00
Cuong-Tran
26d3be95e3
feat(UI): Mask WebDAV password while typing ( #1564 )
...
* Refactor
* feat(UI): Mask WebDAV password while typing
* fix: allow space as password
* use coroutines for asynchronous setting
2026-04-16 14:01:49 +07:00
Cuong-Tran
fd60bc7f13
fix(MangaDex): Fix nullability issues in track creation for MangaDex ( #1527 )
...
* fix(trackers-mangadex): Handle nullability in `createMdListTrack`
* Return null instead of throwing exception in initial track creation
* Improve error handling in `createMdListTrack`
* Change exception to return null when track not found
* handle nullability in MangaDex tracking
2026-04-16 12:52:51 +07:00
Cuong-Tran
6f06974524
feat: split "sync on add" into separate metadata and chapter fetch preferences ( #1563 )
...
* feat: split "sync on add" into separate metadata and chapter fetch preferences
* refactor: remove redundant SnackbarHostState and error snackbars when auto sync entries
* clean other languages strings
2026-03-17 13:09:48 +07:00
Weblate (bot)
edaf975e21
Translations update from Hosted Weblate ( #1523 )
...
* Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (208 of 208 strings)
Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/zh_Hant/
* Translated using Weblate (Italian)
Currently translated at 94.7% (197 of 208 strings)
Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/it/
* Translated using Weblate (Italian)
Currently translated at 95.1% (198 of 208 strings)
Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/it/
* Translated using Weblate (Arabic)
Currently translated at 74.5% (155 of 208 strings)
Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ar/
* Translated using Weblate (Korean)
Currently translated at 30.7% (64 of 208 strings)
Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ko/
* Translated using Weblate (Russian)
Currently translated at 100.0% (208 of 208 strings)
Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ru/
* Translated using Weblate (Italian)
Currently translated at 95.1% (198 of 208 strings)
Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/it/
* Translated using Weblate (Arabic)
Currently translated at 74.5% (155 of 208 strings)
Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ar/
* Translated using Weblate (Korean)
Currently translated at 30.7% (64 of 208 strings)
Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ko/
* Translated using Weblate (Italian)
Currently translated at 95.6% (199 of 208 strings)
Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/it/
* Translated using Weblate (Arabic)
Currently translated at 74.5% (155 of 208 strings)
Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ar/
* Translated using Weblate (Arabic)
Currently translated at 74.5% (155 of 208 strings)
Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ar/
---------
Co-authored-by: ɴᴇᴋᴏ <s99095lkjjim@gmail.com>
Co-authored-by: Giulia <giuliachen6562@gmail.com>
Co-authored-by: pasquale ruotolo <pachiruo@gmail.com>
Co-authored-by: ZiadSenior <Ziadsenior@yahoo.com>
Co-authored-by: 안세훈 <on9686@gmail.com>
Co-authored-by: amigo browser <juniperforest1@proton.me>
Co-authored-by: Cuong Tran <cuongtran.tm@gmail.com>
2026-03-17 08:34:25 +07:00
Cuong-Tran
3fa1cf9e07
chore(deps): Automate app shortcuts with shortcut-helper plugin
...
- Revert shortcuts setup with `com.github.zellius.shortcut-helper`
- Switch to komikku-app/android-shortcut-gradle:0.2.0
2026-02-24 12:11:58 +07:00
renovate[bot]
e7a4a215d5
chore(deps): update github actions ( #1507 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 18:39:01 +07:00
renovate[bot]
dfc89d4fc3
fix(deps): update dependency org.junit.jupiter:junit-jupiter to v6.0.3 ( #1498 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 18:38:54 +07:00
renovate[bot]
03667fbf85
fix(deps): update dependency androidx.compose:compose-bom to v2026.02.00 ( #1493 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 18:38:47 +07:00
renovate[bot]
86bfa87809
fix(deps): update paging.version to v3.4.1 ( #1492 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 18:38:38 +07:00
renovate[bot]
f20f44b516
fix(deps): update dependency androidx.activity:activity-compose to v1.12.4 ( #1491 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 18:38:30 +07:00
renovate[bot]
ebfbc6498f
fix(deps): update dependency dev.chrisbanes.haze:haze to v1.7.2 ( #1487 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 18:38:21 +07:00
renovate[bot]
9eeadee712
fix(deps): update dependency com.google.firebase:firebase-bom to v34.9.0 ( #1478 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 18:38:10 +07:00
Weblate (bot)
5b14a51993
Translations update from Hosted Weblate ( #1502 )
...
* Translated using Weblate (Russian)
Currently translated at 100.0% (206 of 206 strings)
Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/ru/
* Translated using Weblate (Spanish)
Currently translated at 64.5% (133 of 206 strings)
Translation: Komikku-App/Komikku
Translate-URL: https://hosted.weblate.org/projects/komikku-app/komikku/es/
---------
Co-authored-by: amigo browser <juniperforest1@proton.me>
Co-authored-by: Erick Alejandro <erickux@gmail.com>
2026-02-22 18:37:30 +07:00
Weblate (bot)
f78d3af23a
Translations update from Hosted Weblate ( mihonapp/mihon#2843 )
...
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/ar/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/ca/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/de/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/eo/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/es/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/fil/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/fr/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/hi/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/hr/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/id/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/ja/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/ko/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/my/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/pl/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/ru/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/tr/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/vi/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/mihon/mihon/zh_Hant/
Translation: Mihon/Mihon
Co-authored-by: Ai Ai Ecchi <aiaiecchi9og@gmail.com>
Co-authored-by: Alexandre Dhooge <alexandre.dhooge@zaclys.net>
Co-authored-by: Cuong Tran <cuongtran.tm@gmail.com>
Co-authored-by: Dexroneum <Rozhenkov69@gmail.com>
Co-authored-by: Eduard Ereza Martínez <eduard@ereza.cat>
Co-authored-by: Frosted <frosted@users.noreply.hosted.weblate.org>
Co-authored-by: Hualiang <642615676@qq.com>
Co-authored-by: Infy's Tagalog Translations <ced.paltep10@gmail.com>
Co-authored-by: Jakub Szafranek13 Fabijan <jakubfabijan@tuta.io>
Co-authored-by: Lyfja <45209212+lyfja@users.noreply.github.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: MuhamadSyabitHidayattulloh <tebepc@gmail.com>
Co-authored-by: Swyter <swyterzone@gmail.com>
Co-authored-by: Throw Away <throwawayacc4gulshan@gmail.com>
Co-authored-by: ZerOriSama <godarms2010@live.com>
Co-authored-by: akir45 <akkn0708@gmail.com>
Co-authored-by: clukki <nguyenhuuminh16911@gmail.com>
Co-authored-by: momoehab <momoehab@gmail.com>
Co-authored-by: yumekon <konrad.nowicki91@gmail.com>
Co-authored-by: ɴᴇᴋᴏ <s99095lkjjim@gmail.com>
Co-authored-by: 안세훈 <on9686@gmail.com>
(cherry picked from commit 7c7d35e2c64d4f85b0db431fbe18408698af9c6e)
2026-02-22 18:35:32 +07:00
Cuong-Tran
78f9cf65c0
feat(navigation): Allow clearing search when Back on Extensions Screen ( #1506 )
2026-02-20 18:17:44 +07:00
Cuong-Tran
a09e55270c
(chore): Don't wrap an intent-chooser inside another intent-chooser ( #1505 )
2026-02-20 17:02:46 +07:00
Cuong-Tran
7380e77b5c
feat(theme): Support Dynamic theme for Android 11 and below ( #1504 )
2026-02-20 12:02:31 +07:00
Cuong-Tran
fe7b10f941
feat(migration): Allow skipping smart search for single entry migration ( #1496 )
...
* feat(migration): Allow skipping smart search for single entry migration
Introduces a "Smart search" setting when migrating a single manga, allowing users to choose between an automated best-match search or manual selection directly.
* ensure manual migration is only triggered once
* Add UI toggle
* refactor pref
2026-02-20 08:49:51 +07:00
Cuong-Tran
36c1c642ca
fix(recommends): Handle crash due to null manga case in RecommendsScreenModel ( #1495 )
2026-02-13 13:53:11 +07:00
Cuong-Tran
4292b22743
fix(logging): Fix xLog crash ( #1494 )
2026-02-13 12:31:53 +07:00
Syabit
dd3b19fa89
fix(notifications): paused notifications not showing ( #1468 )
...
* fix(notifications): paused notifications not showing
* docs(notifications): clarify notification dismissal and add comment for paused notifications
* refactor
---------
Co-authored-by: Cuong-Tran <16017808+cuong-tran@users.noreply.github.com>
2026-02-10 13:54:36 +07:00
Cuong-Tran
b68444f3cb
fix(ExH): Fix CF cookies interceptor ( #1485 )
...
* fix(ExH): Fix CF cookies interceptor
* No need getting cookies from system webview
2026-02-10 12:51:57 +07:00
MajorTanya
513e5e8dd3
Add src:local search alias for Local Source ( mihonapp/mihon#2928 )
...
(cherry picked from commit cf93afab4526bf7dc336b9eaec93a45181785ff1)
2026-02-09 10:24:19 +07:00
MajorTanya
34102027d1
Clean up some build warnings ( mihonapp/mihon#2929 )
...
* Replace deprecated rememberPlainTooltipPositionProvider
* Remove superfluous when branch
This when is marked as exhaustive.
* Replace deprecated LibrariesContainer call
AboutLibraries now wants us to produce the libraries ourselves.
* Replace deprecated ClipboardManager with Clipboard
Clipboard uses suspend functions, hence the coroutine scope addition.
* Use multi-dollar strs to simplify GraphQL queries
These have been available since Kotlin 2.1.
* Remove various redundant casts & conversions
- WebViewScreenContent: loadingState is in the LoadingState.Loading
branch, no need to cast at all
- Bangumi: username is not modified, make val
- Kavita: token is already a String
- PagerViewerAdapter: insertPageLastPage is already null-checked
- PagerViewerAdapter: use reified filterIsInstance
- ReaderViewModel: chapter IDs are already Longs
- CloudflareInterceptor: webview is smart-cast to non-null here
* Replace deprecated MenuAnchorType
Literally just a typealias for ExposedDropdownMenuAnchorType anyway.
* OptimizeNonSkippingGroups is enabled by default
* Suppress shadowing warning
This is explicitly intentional according to the KDocs.
* Migrate Context Receivers to Context Parameters
Requires changing the compiler arg, but that is part of the migration:
https://blog.jetbrains.com/kotlin/2025/04/update-on-context-parameters
Apparently, the only visible change is that names are required now.
"_" can be used for anonymous context parameters.
* Fix expression bodies with explicit return
Naming conflict resolved by aliasing.
From 2.4/2.5 onward, these will only be allowed with explicit return
types, or have to be turned into a block body. I opted for the latter
since the function is reasonably dense already.
see: https://youtrack.jetbrains.com/issue/KTLC-288
* Suppress deprecation of non-AutoMirrored icons
We use these arrows for navigation in the Upcoming screen.
I strongly doubt the AutoMirrored versions would make sense for our
use-case.
* Explicitly opt-in to new annotation default rules
affects the following annotated value-parameters:
- Preference.SliderPreference.steps (`@IntRange`)
- ReaderViewModel.State.brightnessOverlayValue (`@IntRange`)
- ReadingMode.iconRes (`@DrawableRes`)
- MigrationListScreenModel.Dialog.Progress.progress (`@FloatRange`)
see: https://youtrack.jetbrains.com/issue/KT-73255
see: https://github.com/Kotlin/KEEP/blob/change-defaulting-rule/proposals/annotation-target-in-properties.md
Warning message was the following:
This annotation is currently applied to the value parameter only, but in the future it will also be applied to field.
- To opt in to applying to both value parameter and field, add '-Xannotation-default-target=param-property' to your compiler arguments.
- To keep applying to the value parameter only, use the '@param:' annotation target.
(cherry picked from commit b543bc089a442c5e93b0fb6c83bc4037740b1eb5)
2026-02-05 22:56:31 +07:00
renovate[bot]
ccf404c4f7
fix(deps): update kotlin monorepo to v2.3.10 ( #1470 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 16:41:39 +07:00
renovate[bot]
a4298237e2
fix(deps): update dependency io.kotest:kotest-assertions-core to v6.1.3 ( #1469 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 16:41:29 +07:00