Cursor Agent and rmcrackan
da23a7ddb0
fix: use '/' in Unix mount prefix matching (Windows CI)
...
FindLongestMountPointPrefix is exercised on Windows CI with Unix-style
paths. Path.DirectorySeparatorChar is '\\' there, so '/var/home' never
matched '/var/home/...'. Hardcode '/' for Unix mount identity.
Co-authored-by: rmcrackan <rmcrackan@gmail.com >
2026-08-09 17:55:38 +00:00
Cursor Agent and rmcrackan
16e6a6f659
bugfix #1919 : resolve Unix mount points for disk-space preflight
...
Path.GetPathRoot always returns "/" for absolute Unix paths, so bulk
backup preflight queried composefs root free space (often 0 on Bazzite)
instead of the filesystem containing Books/In progress.
On Unix, symlink-canonicalize paths (so /home -> /var/home) and pick the
longest DriveInfo.GetDrives() mount prefix. Route GetBackupDriveSpaces
through the shared helper so grouping and free-space queries agree.
Co-authored-by: rmcrackan <rmcrackan@gmail.com >
2026-08-09 17:51:36 +00:00
Robert McRackan
065118cf6c
Fail fast on invalid Settings.json enums and broken Serilog structure: reject unknown enum values at startup with clear errors, accept case-insensitive names, migrate ZipFile sinks, and validate Serilog shape without blocking hand-edited custom sinks
2026-08-07 11:10:43 -04:00
Robert McRackan
e0d49b57e1
Encrypt-fail plaintext fallback
2026-08-05 10:02:53 -04:00
Robert McRackan
4513a8007b
Quiet Docker ConfigApp.dll noise and document login-external via /config
2026-08-03 09:09:59 -04:00
Robert McRackan
712568b188
Surface real CLI/Docker auth failures and fix login-external locales
2026-08-02 11:55:48 -04:00
Robert McRackan
5f4a75aade
Detect identity decrypt failures by exception type
2026-08-01 11:25:56 -04:00
Robert McRackan
a6d637c718
Harden Audiobookshelf Server URL handling and connection errors
2026-07-31 14:05:36 -04:00
John Doe
b5e87847ff
fix: Address review feedback - UI parity, soft-fail, token encryption, pagination, CLI wiring
2026-07-26 19:12:31 +02:00
John Doe
ad61618cc9
Add Audiobookshelf auto-upload integration
...
- Persist settings: enabled, server URL, API token, library/folder IDs
- Add AudiobookshelfApiService for login, library listing, and multipart upload
- Add UploadToAudiobookshelf post-download processable
- Add settings tab to WinForms and Avalonia with library/folder dropdowns
- Match Avalonia layout to WinForms with aligned columns
2026-07-26 09:58:12 +02:00
Robert McRackan
20150cc4ed
update dependencies
2026-07-25 22:03:23 -04:00
Robert McRackan
abea874db8
Add Important settings UI for encrypted token storage
2026-07-25 21:32:42 -04:00
Robert McRackan
bb18e9adc4
Add TokenStorageMethod preference and AudibleApi token-storage wiring
2026-07-25 21:17:11 -04:00
Robert McRackan
a9e6f75443
update dependencies
2026-07-25 20:57:52 -04:00
rmcrackan
d30086e53a
bugfix
2026-06-17 10:38:24 -04:00
rmcrackan
82d4001f0a
#1878 : Detect incomplete in-app upgrades, roll back install files, and show clear recovery messages
2026-06-17 10:18:52 -04:00
rmcrackan
d955cb7605
#1873 , #1876 - Handle Windows Application Control blocking after in-app upgrades
2026-06-16 17:25:18 -04:00
rmcrackan
b654a8b551
#1867 - Fix duplicate-ASIN crashes. New Hangover recovery
2026-06-12 11:48:32 -04:00
rmcrackan
b7ce96e91d
Finish windows installers, phase 1
2026-06-08 14:03:59 -04:00
rmcrackan
2c2ae2c8b0
#1845 - improve error message for common VPN blocking errors. improve troubleshooting docs
2026-06-02 12:53:20 -04:00
rmcrackan
e6c17053f7
#1844 - add lock to avoid race/NRE
2026-06-02 10:54:14 -04:00
rmcrackan
3cf5d0b3fa
unit test bug fix: culture info
2026-05-25 10:46:34 -04:00
rmcrackan
6bd1ea7ca4
fix unit tests for windows-only logic
2026-05-25 10:41:20 -04:00
rmcrackan
f8c5f0da68
#1836 - Fix misleading "Not enough disk space" warnings when Books and In progress are on different drives
2026-05-25 10:25:46 -04:00
rmcrackan
b9490966bb
* Multi-step backup: PDF and later steps now run in the same awaited chain, so disk full on PDF stops the queue instead of counting as success.
...
* Detection: Quota / NAS “out of space” messages are treated like disk full, not generic retries.
2026-05-18 10:00:32 -04:00
rmcrackan
77f518f8d3
#1823 - Address full disk better. Fail clearly and early when possible, fail safely when space cannot be queried, and do not take down the UI or spam the user when the disk is full.
2026-05-18 09:20:51 -04:00
rmcrackan
74b18c170a
#1822 - Fix the startup crash after auto-upgrade by loading the library only after InteropFactory assembly resolution is ready, checking that Microsoft.EntityFrameworkCore.Sqlite.dll is present in the install folder, and showing a clear reinstall message instead of a generic "Unexpected error" when that still fails.
2026-05-18 08:54:40 -04:00
Jo-Be-Co
4be0361e42
fixing typos and naming of test method
2026-05-14 16:51:51 +02:00
Jo-Be-Co
c2c7b04acd
minor fixes and comment corrections
2026-05-14 02:12:25 +02:00
Jo-Be-Co
f194032139
#1762 add filter() to list properties
2026-05-14 02:10:38 +02:00
Jo-Be-Co
a21bb8174d
#1762 introduce CommonFormatters.TryGetLiteral
2026-05-14 02:04:26 +02:00
rmcrackan
597c8f7b3d
Merge pull request #1795 from Jo-Be-Co/1762_unique_and_count
...
#1762 add unique() and count() to list properties
2026-05-09 23:21:29 -04:00
Jo-Be-Co
6996fb1b81
When formatting ContributorDto, retain the IFormatProvider even if the format is empty
2026-05-10 00:36:49 +02:00
Jo-Be-Co
7ef10b1e7d
#1762 add unique() and count() to list properties
2026-05-09 21:15:24 +02:00
rmcrackan
727c869ba9
#1711 : Linux/Docker: the default in-progress download/decrypt folder is now per-user (/tmp/Libation-<username>) and is created with 0700 permissions, fixing failures caused by leftover /tmp/Libation directories from previous root installs and hardening against another local user reading partial download artifacts. Auto-upgrade downloads now land in a randomly-named per-run temp directory.
2026-05-08 09:04:39 -04:00
MBucari
505c614210
Code Cleanup
...
Remove unused parameters
Remove unnecessary casts
Make fields readonly
Order modifiers
Format document
Sort usings
Remove unnecessary nullable directive
Apply namespace preferences (file-level)
2026-05-04 21:10:28 -06:00
Michael Bucari-Tovo
df531de255
Update Avalonia to v12
...
Avalonia 12 uses compiled bindings by default. Converted all remaining reflection bindings into compiled bindings,
Fixed binding errors
2026-05-04 21:08:26 -06:00
rmcrackan
dd059a0ce9
#1776 - Make Linux Snap SQLite startup failures easier to understand and fix (stale LibationFiles in appsettings.json after a revision change), improve crash and log detail (inner exceptions + paths), and document that in the docs and FAQ. Tests lock in exception formatting behavior.
2026-05-01 10:01:03 -04:00
rmcrackan
849f5f508e
trying again to fix the intermittent cover image issue
2026-05-01 09:38:29 -04:00
rmcrackan
f610ccdf58
#1744 Make Explorer folder icons reliable by running them after other post-download work, retrying briefly when the 300×300 cover or ICO write fails, and logging clear, actionable messages when it still cannot succeed.
2026-04-27 10:30:27 -04:00
Jo-Be-Co
30809fb38d
fixed quoting errors in format-strings
2026-04-20 21:38:45 +02:00
rmcrackan
5b89f29a4f
Merge pull request #1735 from Jo-Be-Co/bifunctions
...
1714 conditional tag cmp working on two properties
2026-04-20 14:36:24 -04:00
rmcrackan
ccc74cef56
#1748 : In-app upgrades now wait for the real installer and treat failures as failures.
2026-04-20 10:20:29 -04:00
rmcrackan
f2ef616203
Merge pull request #1745 from Jo-Be-Co/refactor-LocaleDto
...
Some optimizations after last update to AudibleApi
2026-04-17 17:53:07 -04:00
Jo-Be-Co
87e8c6a32a
fixed pr remarks
2026-04-17 23:48:22 +02:00
rmcrackan
9f255a3bc1
#1744 - attempt to harded code for cover image/folder image
2026-04-17 16:07:00 -04:00
Jo-Be-Co
6d7af0a8ae
Some optimizations after last update to AudibleApi
2026-04-17 21:43:42 +02:00
Jo-Be-Co
dc353aa7e5
Merge branch 'master' into bifunctions
2026-04-17 08:50:53 +02:00
rmcrackan
a5912efa0c
upgrade nuget
2026-04-15 08:10:09 -04:00
Jo-Be-Co
a4bc39ee6b
switched from RegionInfo to AudibleApi.Locale
2026-04-15 00:45:55 +02:00