littlecodedragon
c15d280cb4
feat(eta): cross-manga page-rate priors for reading time left
...
Forgejo Release Builder / release (push) Successful in 5m53s
Blend series-local ms/page with samples from completed chapters in other
titles (similar page counts via ±15%/±30% bands). Removes fixed ms/page
floors; adds SQL query + estimator + DI wiring.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 02:59:22 +02:00
littlecodedragon
07019175d1
fix(eta): tame reading-time estimates (idle + cumulative history)
...
- Cap per-chapter samples used for averages at 45m (stats only).
- Prefer session ms/page extrapolation for current chapter so cumulative
DB read time over revisits no longer blows up duration/progress.
- Floor uncertain page rates using conservative ms/page until enough samples.
- Shared defaults in ReadingEtaDefaults for reader + library badge.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 02:28:28 +02:00
littlecodedragon
9ce3f0ba29
ci(forgejo): group release notes by prefix and fork vs merges
...
Bucket commits into New/Fix/Improve/Other from conventional-style
subjects. When upstream main is available, split direct fork commits
from merge commits under separate headings.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 22:17:56 +02:00
littlecodedragon
7fab10c8ef
CI: build release JSON with jq --rawfile (avoid ARG_MAX on large bodies
...
Forgejo Release Builder / release (push) Successful in 3m30s
Huge changelog strings passed as jq --arg exceeded Linux exec argument limit.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 21:28:58 +02:00
littlecodedragon
e89f342881
CI: fix release step env — multiline COMMIT_LOGS broke act_runner
...
Forgejo Release Builder / release (push) Failing after 3m41s
Pass commit messages via tmp file + COMMIT_LOG_FILE in GITHUB_ENV instead
of injecting COMMIT_LOGS into step env (Forgejo runner could fail before
bash ran, producing no logs).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 21:09:30 +02:00
littlecodedragon
7bca00964e
CI: persistent Gradle cache, safer release API logs, faster SDK step
...
Forgejo Release Builder / release (push) Failing after 16m20s
- Use $HOME/.cache/komikku-ci-gradle (override KOMIKKU_GRADLE_CACHE on runner)
instead of per-job .gradle-ci under the checkout so dependencies survive runs.
- Skip sdkmanager when build-tools 35.0.0 already installed.
- Enable kotlin.incremental for assembleRelease to shorten Kotlin compile.
- Replace curl -f release/asset calls with explicit HTTP status checks and
always print JSON error bodies on failure (Forgejo UI often hid stderr).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 20:32:26 +02:00
littlecodedragon
06bc3a6a0c
Fix: restore build_release.yml asset naming after draft toggle
...
Accidentally reverted version_core naming and release notes when switching
draft to false. Restore stable Komikku-v<semver>-<abi> artifacts and
alias logic; keep draft: false for Obtainium/public API visibility.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 20:12:27 +02:00
littlecodedragon
940a669936
CI: publish releases as non-draft for Obtainium and public API
...
Draft releases are not visible to unauthenticated API clients, so
Obtainium could not list or match a suitable version. Use draft: false
when creating or updating Forgejo releases.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 20:12:02 +02:00
littlecodedragon
b81d3eb198
CI: resolve merge conflict markers in build_release.yml
...
Forgejo Release Builder / release (push) Failing after 17m24s
Invalid YAML from leftover <<<<<<< / ======= / >>>>>>> markers broke
Forgejo Actions parsing. Keep fork delta, full changelog link, and tip block.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 20:05:53 +02:00
littlecodedragon
fe43d3ef2c
Reader: track per-page history metrics for ETA and backups
...
Persist per-session pages read in history, include it in backup/restore, and prefer a page-based ETA model so chapter-length variance (especially webtoons) is reflected more accurately.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 18:35:41 +02:00
littlecodedragon
384aee7372
Release: use fork update source and upstream-based changelog delta
...
Point in-app release checks/changelog links to the Forgejo fork and generate release notes against upstream komikku-app baseline commits for clearer fork-specific change visibility.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 18:29:15 +02:00
littlecodedragon
de5e0a32d3
Improve release asset naming and notes for Obtainium.
...
Normalize APK filenames to stable ABI/version patterns and add clearer release notes with a download guide so clients like Obtainium can reliably match assets.
2026-05-09 12:40:01 +02:00
littlecodedragon
b26a537d55
Fix DI registration for read-duration history interactor
...
Forgejo Release Builder / release (push) Successful in 17m1s
Register GetReadDurationEntriesByMangaIds in DomainModule so LibraryScreenModel can resolve it and the app no longer crashes on startup.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 12:20:27 +02:00
littlecodedragon
a2f9003008
CI: publish only signed release APKs
...
Forgejo Release Builder / release (push) Successful in 17m24s
Prevent unsigned artifacts from being published as Obtainium aliases and fail fast when signing secrets are missing so releases remain installable.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 07:55:21 +02:00
littlecodedragon
7e3738551b
CI: allow insecure curl for self-signed Forgejo API
Forgejo Release Builder / release (push) Successful in 15m48s
2026-05-08 08:34:29 +02:00
littlecodedragon
0d6a348578
CI: ensure curl is available in Forgejo release steps
Forgejo Release Builder / release (push) Failing after 16m51s
2026-05-08 07:11:00 +02:00
littlecodedragon
52036476a2
CI: use jq for Forgejo release API (no python3)
Forgejo Release Builder / release (push) Failing after 17m13s
2026-05-08 01:46:24 +02:00
littlecodedragon
4b1b0e8cc4
CI: raise Gradle heap to avoid GC thrashing on app compile
Forgejo Release Builder / release (push) Failing after 17m16s
2026-05-08 00:28:19 +02:00
littlecodedragon
41f0ee6bf5
Fix suspend aggregation in read-duration interactor
Forgejo Release Builder / release (push) Failing after 10m38s
2026-05-08 00:13:40 +02:00
littlecodedragon
25137641c1
Fix ETA history duration mapping for library compile
Forgejo Release Builder / release (push) Failing after 7m34s
2026-05-07 06:35:29 +02:00
littlecodedragon
e301ee2574
CI: export JAVA_HOME and persist sdk.dir for build step
Forgejo Release Builder / release (push) Failing after 8m17s
2026-05-07 06:13:47 +02:00
littlecodedragon
780ef2af25
Fix library ETA compile by adding history interactor
Forgejo Release Builder / release (push) Failing after 8m38s
2026-05-07 06:08:52 +02:00
littlecodedragon
fe3e366181
CI: raise JVM memory for resource merge OOM
Forgejo Release Builder / release (push) Failing after 8m28s
2026-05-07 05:56:14 +02:00
littlecodedragon
1a410d44c8
CI: avoid pipefail false failure in sdkmanager pipe
Forgejo Release Builder / release (push) Failing after 7m57s
2026-05-07 05:16:47 +02:00
littlecodedragon
8aac90d32a
CI: ensure build-tools 35 and verify aidl before build
Forgejo Release Builder / release (push) Failing after -22s
2026-05-07 05:15:06 +02:00
littlecodedragon
510fcf1811
ci: autodetect Android SDK path on desktop runner
Forgejo Release Builder / release (push) Failing after 8m12s
2026-05-07 00:25:47 +02:00
littlecodedragon
2cf613d19f
ci: use server URL for checkout on external runners
Forgejo Release Builder / release (push) Failing after 6m9s
2026-05-07 00:16:03 +02:00
littlecodedragon
232800cab1
ci: pin release workflow to desktop runner label
Forgejo Release Builder / release (push) Failing after -24s
2026-05-07 00:11:28 +02:00
littlecodedragon
780bd1bfc0
ci: rebalance JVM memory towards metaspace for buildSrc
Forgejo Release Builder / release (push) Failing after 9m34s
2026-05-06 23:24:58 +02:00
littlecodedragon
320ea451ec
ci: switch release workflow to ultra low-memory mode
Forgejo Release Builder / release (push) Failing after 8m13s
2026-05-06 23:13:50 +02:00
littlecodedragon
3ca6462cec
ci: reduce Gradle/Kotlin memory footprint for low-RAM runners
Forgejo Release Builder / release (push) Failing after 9m14s
2026-05-06 23:01:24 +02:00
littlecodedragon
453f7d6681
ci: cap Kotlin daemon memory for low-RAM runners
Forgejo Release Builder / release (push) Failing after 5m43s
2026-05-06 22:46:32 +02:00
littlecodedragon
bc84ffb691
ci: harden Gradle for low-memory Forgejo runners
Forgejo Release Builder / release (push) Failing after 6m45s
2026-05-06 22:27:27 +02:00
littlecodedragon
72fa8ee325
ci: stabilize Forgejo Gradle build under runner memory limits
Forgejo Release Builder / release (push) Failing after 7m28s
2026-05-06 22:15:30 +02:00
littlecodedragon
48436e3c46
feat(reader): restore series ETA tracking and estimated time left
Forgejo Release Builder / release (push) Failing after 5m28s
2026-05-06 22:04:16 +02:00
littlecodedragon
af860b5f9d
Merge remote-tracking branch 'upstream/master'
Forgejo Release Builder / release (push) Failing after 27m23s
2026-05-06 16:06:29 +02:00
littlecodedragon
3b08f156d5
Add Obtainium-friendly release asset aliases.
...
Create stable universal and arm64 APK alias names and improve release display version so repo URL import works more reliably in Obtainium.
2026-04-27 21:08:47 +02:00
littlecodedragon
f37086978d
Add optional APK signing via Forgejo secrets.
...
Forgejo Release Builder / release (push) Successful in 22m39s
Decode keystore from secrets, sign unsigned APK artifacts with apksigner when configured, and prefer uploading signed APKs.
2026-04-27 19:11:42 +02:00
littlecodedragon
55d7525d26
Handle missing mapping output in no-shrink Forgejo builds.
...
Forgejo Release Builder / release (push) Successful in 20m37s
Only create mapping zip when the mapping directory exists to avoid zip failures when code shrinking is disabled.
2026-04-27 18:43:47 +02:00
littlecodedragon
ab252123ae
Disable code shrinking for local Forgejo release CI builds.
...
Forgejo Release Builder / release (push) Failing after 21m34s
Use -Pdisable-code-shrink to bypass R8/proguard in local fork CI where minification currently crashes the daemon.
2026-04-27 17:56:57 +02:00
littlecodedragon
d6be3d1351
Harden Forgejo release build against Kotlin daemon crashes.
...
Forgejo Release Builder / release (push) Failing after 18m4s
Force in-process Kotlin compilation, disable daemon use, and reduce workers to lower memory pressure in containerized CI.
2026-04-27 17:36:06 +02:00
littlecodedragon
688b796e59
Make Forgejo release build work without Google secrets.
...
Forgejo Release Builder / release (push) Failing after 17m39s
Remove secret JSON steps and build without telemetry so local fork release CI can run without cloud credentials.
2026-04-27 17:17:24 +02:00
littlecodedragon
17c6e6bd05
Normalize Forgejo JSON secrets before writing release files.
...
Forgejo Release Builder / release (push) Failing after 3s
Accept raw JSON, quoted JSON, or base64 JSON for secret payloads and emit valid canonical JSON files for Gradle processing.
2026-04-27 17:13:47 +02:00
littlecodedragon
ea69546fcb
Accept raw or base64 JSON secrets in Forgejo release workflow.
...
Forgejo Release Builder / release (push) Failing after 3s
Validate secrets as JSON and fall back to base64 decoding when needed so google-services and client secrets are parsed correctly.
2026-04-27 17:12:18 +02:00
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