Commit Graph

578 Commits

Author SHA1 Message Date
NimBold 60f13f756c fix(ui): harden RTL sidebar and desktop window controls
Keep custom Windows/Linux controls available during platform detection, preserve RTL table order while aligning filenames left, and persist sidebar placement overrides.

Refs #17
2026-07-19 02:34:32 +03:30
NimBold 2668f0b722 fix(media): handle locked browser cookie databases
Retry yt-dlp metadata and media downloads without browser cookies only when the browser database cannot be read, while preserving explicit credentials, cache identity, and cancellation behavior.

Refs #22

Refs #24
2026-07-18 17:22:10 +03:30
NimBold 93ddf427b4 feat(i18n): add localized desktop UI
Refs #17
2026-07-18 13:44:29 +03:30
NimBold e4d7d5ecf0 feat(locations): make directory memory opt-in
Keep the last Add-window directory disabled until enabled in Settings > Locations.

Refs #23
2026-07-18 12:02:17 +03:30
NimBold 160e6af945 feat(locations): remember last Add-window directory
Remember manually selected Add-window folders during the current session, with a persisted Locations toggle and cross-platform path handling.\n\nRefs #23
2026-07-18 11:52:24 +03:30
NimBold c914eeb7b3 feat(i18n): add localization infrastructure and English catalog
Refs #17
2026-07-18 01:10:27 +03:30
NimBold 62365f514e fix(ui): align size header with values 2026-07-17 23:46:06 +03:30
NimBold 9fdd8ac1b8 fix(ui): align size values within column 2026-07-17 23:37:32 +03:30
NimBold 61eb034db1 chore(release): prepare Firelink 1.1.1 v1.1.1 2026-07-17 18:58:45 +03:30
NimBold c949cbb9ee fix(ui): align action controls and protect keychain consent 2026-07-17 18:37:50 +03:30
NimBold 566396e629 fix(media): stabilize YouTube size estimates 2026-07-17 17:49:23 +03:30
NimBold db39cd2153 fix: stabilize media progress and cancel controls 2026-07-17 17:12:56 +03:30
NimBold f4b830414d fix: harden audited persistence and download paths 2026-07-17 16:27:39 +03:30
NimBold 0447d1cab7 fix(build): scope Tailwind scanning and remove dead Rust helper
Limit Tailwind source detection to the frontend and root HTML while preserving the CSS-defined theme. Remove redundant test-only nonce validation scaffolding so the Rust library builds without warnings.
2026-07-17 03:20:31 +03:30
NimBold 513143d745 fix(release): harden packaged smoke cleanup 2026-07-17 02:35:36 +03:30
NimBold a8dc4fb447 fix(security): harden browser handoff boundaries 2026-07-17 02:05:41 +03:30
NimBold 50c3da2f5d fix(downloads): close media lifecycle cleanup gaps
Validate every Aria2 mirror URI, keep metadata cleanup errors truthful, and serialize media registration with lifecycle cancellation so abandoned tombstones cannot accumulate.
2026-07-17 01:03:52 +03:30
NimBold 6ef911919d fix(settings): harden settings and diagnostic controls 2026-07-17 00:39:26 +03:30
NimBold 5144ecd39e chore(deps): refresh packages and bundled engines 2026-07-17 00:03:15 +03:30
NimBold a56b859151 fix(downloads): preserve authenticated capture metadata
Keep Gmail attachment filenames and origin-scoped browser cookies intact through metadata redirects, while rejecting Google sign-in responses.\n\nFixes #21
2026-07-16 22:58:12 +03:30
NimBold 469faed7b9 fix(downloads): harden add flow and URL validation 2026-07-16 22:20:12 +03:30
NimBold 79ce0c18a1 fix(downloads): harden aria2 recovery lifecycle 2026-07-16 17:56:00 +03:30
NimBold d195a132b3 perf(downloads): scale playlist rows efficiently 2026-07-16 17:23:43 +03:30
NimBold feb5d8e87d fix(downloads): harden playlist state and scrolling 2026-07-16 16:57:35 +03:30
NimBold a136fa832c feat(downloads): support YouTube playlists 2026-07-16 16:07:00 +03:30
NimBold f3d0e0be13 fix(downloads): recover stalls and honor connection defaults (#19, #20) 2026-07-16 14:28:59 +03:30
NimBold edeef0ac54 fix(startup): enforce consent before download handoffs
Gate clipboard, extension, and deep-link inputs until startup consent is resolved, and serialize extension readiness transitions so native prompts cannot race the app explanation. Identify consent by the build revision so same-version updates re-enter the consent boundary.

Requested by [this X post](https://x.com/ixabolfazl/status/2077356127763804450?s=20).
2026-07-15 21:48:00 +03:30
NimBold 9f333618fc fix(downloads): show total size after completion 2026-07-15 21:30:01 +03:30
NimBold ed54a048ab fix(keychain): version startup consent policy 2026-07-15 21:21:35 +03:30
NimBold d2479f52be fix(startup): restore keychain consent barrier 2026-07-15 21:09:45 +03:30
NimBold 6e6ae51395 fix(downloads): preserve live progress across lifecycle edges 2026-07-15 20:50:46 +03:30
NimBold 1d197432b2 feat(downloads): add live limits clipboard capture and byte progress 2026-07-15 20:35:05 +03:30
NimBold 9917f29743 fix(build): gate platform-specific proxy helper 2026-07-15 12:49:40 +03:30
NimBold df3bc359c4 chore(release): prepare Firelink 1.1.0 v1.1.0 2026-07-15 11:55:54 +03:30
NimBold 57f132f53e fix(metadata): decode URL-derived filenames
Decode URL path segments before sanitizing metadata filenames and preserve malformed escapes safely.

Fixes #18
2026-07-15 11:29:17 +03:30
NimBold 52b00e5cb4 fix(keychain): gate credential-store startup access 2026-07-15 11:07:48 +03:30
NimBold 8e02a61c3f fix(downloads): preserve terminal startup state 2026-07-15 10:23:06 +03:30
NimBold 82f2914077 fix: close post-release lifecycle state gaps 2026-07-15 10:13:53 +03:30
NimBold 9224117d77 chore(deps): scope release-gate update to npm (#16)
Remove the unrelated Rust lockfile refresh from the prior dependency commit. Keep the Autoprefixer release-gate update scoped to package.json and package-lock.json. Refs #16.
2026-07-15 09:43:19 +03:30
NimBold 3c84b5c1a4 chore(deps): refresh compatible npm and Rust packages (#16)
Refresh Autoprefixer and compatible Rust transitive dependencies after the release hardening work. Refs #16.
2026-07-15 09:40:23 +03:30
NimBold c34c489aef fix(settings): preserve speed limiter units
Persist the selected display unit for disabled limits, preserve in-progress fractional input, and keep exact KiB-backed preset values visible.\n\nNo linked issue.
2026-07-15 09:19:19 +03:30
NimBold b81e8391e1 fix(release): harden speed limits and extension replay checks 2026-07-15 09:02:40 +03:30
NimBold 6ff0047d6c fix(release): make verifier RPC smoke resilient
Use OS-selected localhost ports with bounded bind retries and handle aria2c spawn failures without unhandled child-process errors.

Refs #3
2026-07-15 08:50:34 +03:30
NimBold 4a3fece22b fix(release): harden package and engine verifier cleanup 2026-07-15 08:40:12 +03:30
NimBold 1da0fa7223 fix(security): harden credential and path boundaries
Preserve pending pairing tokens until credential-store migration succeeds, defer keychain access until frontend hydration, reject symlink and malformed ownership paths, and restrict metadata credentials to exact origins.

Refs #15

Refs #16
2026-07-15 08:23:43 +03:30
NimBold d6af4ee2b5 fix(extension): harden local handoff boundaries 2026-07-15 06:06:16 +03:30
NimBold 2479ead4ed fix(downloads): harden lifecycle race handling
Audit Assignment 06 lifecycle paths and preserve truthful state across ambiguous Aria2 resume failures. Clean up partial startup listener registration and prevent stale resume workers from leaking or releasing current permits.
2026-07-15 05:34:32 +03:30
NimBold 80a29356e0 fix(tools): harden scheduler limits and logs
Guard scheduler system actions against pending work, serialize diagnostic log transitions, and keep speed-limit saves truthful after backend failures.\n\nNo linked issue was found for this audit.
2026-07-15 03:00:46 +03:30
NimBold 45bbca0515 fix(settings): harden persisted settings and update checks 2026-07-15 02:25:53 +03:30
NimBold e35b1af731 fix(downloads): close audit lifecycle gaps
Prevent duplicate Add Window submissions and preserve discard confirmation.

Reject duplicate backend primary-path ownership and clear stale lifecycle progress.
2026-07-15 01:51:04 +03:30