Commit Graph

808 Commits

Author SHA1 Message Date
NimBold 4d33f9790f fix(torrent): remove unstarted magnets safely
- allow pre-admission staged and paused magnets to remove without ownership
- inspect exact cached Torrent outputs and sidecars before bypassing the guard
- fail closed for malformed metadata and admitted lifecycles
- cover missing, unrelated, partial, and malformed asset cases
2026-08-26 11:25:58 +03:30
NimBold ba491ccd7d fix(torrent): harden magnet metadata enrichment
- Preserve magnet display names before metadata resolution
- Bound optional magnet probes separately from required metadata work
- Fence stale Add-window probes and temporary Torrent metadata across modal races
- Compact responsive Torrent peer metrics across locales
2026-08-25 03:27:49 +03:30
NimBold 51db4fc6b7 fix(torrent): repair magnet handoff and TUN discovery
- recognize direct magnet schemes and keep metadata parents out of terminal completion
- adopt validated followed payload GIDs with bounded, lifecycle-fenced reconciliation
- route direct Torrent DNS through the system resolver for TUN clients
- make magnet preview optional and repair stale fallback drafts
- release paused handoff permits and show peer-wait state consistently
- cover the lifecycle and failure paths with Torrent smokes and regression tests
2026-08-25 02:29:18 +03:30
NimBold b5ee53140d fix(torrent): harden lifecycle and properties state
- admit valid magnets immediately while keeping metadata refresh optional
- fence Torrent recovery, diagnostics, and allocation presentation by lifecycle
- avoid false peer-wait claims when telemetry is missing or malformed
- stabilize Properties metric label/value layout for narrow and RTL windows

Tests:
- npm test -- --run
- npm run build
- npm run check:i18n
- node --test scripts/*.node-test.js
- cargo test --all-targets
- npm run smoke:torrent
- npm run smoke:torrent:failure-paths
- git diff --check
2026-08-24 15:51:24 +03:30
NimBold a6b341f9e3 fix(downloads): allow staged replacements to remove their own target
- Treat the persisted staged row as its own legacy ownership claim
- Keep cross-download and ambiguous ownership conflicts fail-closed
- Cover persisted self-claim cleanup and changed-target protection
2026-08-24 13:44:18 +03:30
NimBold 9a7894a3e2 fix(downloads): clean up pre-admission replacements
- Authorize exact fingerprint-matched cleanup for staged replacements
- Revalidate lifecycle, ownership, paths, and identity changes
- Add race and regression coverage
2026-08-24 09:05:26 +03:30
NimBold b56ec0a3a8 fix(downloads): allow removing unadmitted queue items
- treat pre-admission rows without exact assets as metadata-only cleanup
- retain fail-closed ownership checks for admitted and ambiguous lifecycles
- add regression coverage for normal, media, and Torrent artifact cases
2026-08-24 08:31:07 +03:30
NimBold 45c25da98e fix(settings): harden Network Torrent settings layout
- Replace uneven Torrent tabs with concise localized controls
- Align supporting text and value fields with a responsive network grid
- Preserve keyboard tab navigation and style restart notes consistently
- Keep specialized row rules after generic macOS styles to prevent cascade regressions
2026-08-24 07:45:14 +03:30
NimBold 627e24da0f chore(deps): refresh packages and bundled engines
- update React DOM types and compatible Rust lock dependencies
- refresh Windows and Linux FFmpeg source URLs and checksums
- cover aria2 asset hashes and Windows npm command execution
- verify Firelink and Companion across tests, builds, and engine payloads
2026-08-24 06:57:16 +03:30
NimBold c34f2d2ae6 fix(ci): correct Windows handle initialization
- pass the Win32 null template handle with the binding's pointer type
- keep stable file-identity lookup compilable on the MSVC target
2026-08-23 04:02:09 +03:30
NimBold 0ff0b28e9f fix(ci): repair cross-platform native checks
- make cleanup tests configure an explicit approved root instead of relying on platform download-directory discovery
- replace unstable Windows metadata extensions with stable Win32 file identity lookup
- preserve exact replacement fingerprint validation across enqueue, quarantine, recovery, and cleanup paths
2026-08-23 03:53:37 +03:30
NimBold d49c7bd292 fix(downloads): harden recovery, replacement, and cleanup
- make media credential recovery durable and explicit across lifecycle entry points
- protect exact output replacement with platform-aware ownership, fingerprints, locks, and crash-safe quarantine
- permanently remove unfinished assets while preserving safe completed and Torrent cleanup
- add frontend, native, and localization regressions
2026-08-23 03:24:55 +03:30
NimBold 686bba97a9 fix(release): bound engine provisioning and Linux package setup
- abort locked engine downloads and extraction on process interruption
- recover only dead-PID staging trees while preserving active and legacy trees
- normalize Ubuntu mirrors and bound apt in release jobs
- cover cancellation, orphan cleanup, and workflow contracts with focused tests
2026-08-22 05:30:04 +03:30
NimBold e88425833f fix(handoff): close browser credential boundaries
- Filter custom credential headers and cookies at restricted handoff consumers.
- Preserve ordinary single-file capture credentials for Add-window review.
- Extend native and renderer redaction coverage with focused regressions.
2026-08-22 05:02:04 +03:30
NimBold 3bcad639e2 fix(persistence): harden cross-layer ownership
- Validate and sanitize renderer event payloads before UI projection
- Fence stale enqueue cleanup by native lifecycle generation
- Canonicalize empty startup hydration and harden SQLite backup durability
- Add real-postcondition IPC, restart, storage, and queue regressions
2026-08-22 04:11:02 +03:30
NimBold e6d276e28e fix(torrent): harden RPC and seeding lifecycle
- Retry ambiguous seed resumes without stranding queue permits.
- Bound cached Torrent metadata rereads at every native consumer.
- Validate Aria2 global-option results and retain upload telemetry during lost-event reconciliation.
2026-08-22 03:29:37 +03:30
NimBold 101461b97c fix(media): harden bundled engine ownership
- Fail closed on CWD engine fallback in release builds.
- Redact media process diagnostics and remove unused Aria2 resolution.
- Add release-mode resolver regression coverage and rerun media gates.
2026-08-22 02:56:21 +03:30
NimBold a55cdee7e5 fix(downloads): harden live lifecycle projection
- remove non-queued lifecycle rows from the frontend pending projection
- validate live progress telemetry before updating store state
- add lifecycle and malformed-input regression coverage
2026-08-22 02:35:56 +03:30
NimBold d9022add5b fix(tools): harden scheduler and diagnostics
- preserve same-queue scheduler starts across superseded Run Now generations while retaining Stop cancellation
- pause saved and tracked scheduler ownership, fence engine cache writes, and normalize log merge/redaction boundaries
- add postcondition regressions for scheduler handoff, engine request generations, compact JSON redaction, and live log overlap
2026-08-22 02:23:59 +03:30
NimBold 55d5a9358b fix(settings): harden persisted consumer state
- validate complete settings snapshots before replacing durable state
- sanitize malformed proxy, user-agent, sidebar, speed, and path values at native and renderer hydration boundaries
- add hostile persisted-settings regression coverage
2026-08-22 02:00:22 +03:30
NimBold e9de193c9e fix(properties): route live controls through native mutations
- route active normal and Torrent-safe fields to dedicated live consumers

- fence unsupported statuses and mixed persisted patches at the bridge

- add regression coverage for active status and media boundaries
2026-08-22 01:47:13 +03:30
NimBold 3a740db2f2 fix(add-window): harden intake admission and destination safety
- retain valid magnet clipboard handoffs and reject malformed magnet URLs

- normalize destination identity and fail closed on deleted queues

- redact malformed media headers and add focused regression coverage
2026-08-22 01:25:10 +03:30
NimBold 1672dce803 fix(table): harden queue and row interaction lifecycles
- fence column resize and queue lost-capture handlers to the active pointer

- keep staged bulk actions and RTL submenu keyboard navigation truthful

- add deterministic selection, resize, action-count, and keyboard regressions
2026-08-22 01:05:36 +03:30
NimBold 1fe12b1fea fix(shell): harden sidebar accessibility and resize lifecycle
- keep the collapsed sidebar out of the accessibility tree and restore reveal focus

- add keyboard queue context actions and correct the queue accessibility contract

- fence sidebar resize pointers and clean up every interruption path with regressions
2026-08-22 00:48:22 +03:30
NimBold cc74bec9b0 fix(ci): cover Windows headless production contracts
- execute queue, retry, normalization, and credential-boundary contracts without the broken Tauri mock runtime\n- refresh target-specific FFmpeg source locks after provider URL and digest drift\n- document the remaining compile-only Windows GUI test limitation
2026-08-22 00:32:22 +03:30
NimBold f724616cde fix(torrent): distinguish connected and listed peers
- label live connected peer telemetry separately from listed peer details
- report count mismatches and keep connected values accented
- synchronize bindings, locales, accessibility, and regression coverage
2026-08-21 23:04:34 +03:30
NimBold c385c38556 chore(deps): refresh packages and bundled engines
- update compatible npm and Cargo lock dependencies
- refresh yt-dlp and target-specific FFmpeg artifacts with verified hashes
- detect provider SHA-256 drift in the update checker
2026-08-21 09:55:16 +03:30
NimBold 2d265ce7c8 fix(downloads): surface allocation and retain terminal progress
- emit native allocation state around Aria2 preallocation
- preflight batch destinations before backend admission
- preserve exact progress across retries and terminal states
- fence allocation and progress across pauses, retries, and stale GIDs
2026-08-21 01:33:13 +03:30
NimBold c355e99913 fix(ci): normalize Ubuntu package mirrors
- replace unreachable Azure runner mirrors with the HTTPS Ubuntu archive

- retain bounded apt retries and timeout safeguards
2026-08-19 20:39:51 +03:30
NimBold a478701291 fix(aria2): recover monotonic connection pool collapse
- preserve a resumed transfer's full connection baseline before its first speed sample

- recover sequential connection loss through transient throughput rebounds

- retain stable-underfilled safeguards and add log-shaped regression coverage
2026-08-19 20:25:24 +03:30
NimBold 5620110506 fix(ci): allow slow Linux apt index refresh
- give Ubuntu package-index refresh enough time on loaded mirrors

- retain retry, request timeout, and job-level safeguards
2026-08-19 18:38:33 +03:30
NimBold f5bdd88e5c fix(downloads): recover degraded connections and restart state
- recover persistent Aria2 connection-pool collapse without restarting stable or rate-limited pools
- preserve sanitized browser context while failing closed on credential-bearing and malformed restart state
- fence resume paths and harden portable and Torrent persistence with regression coverage
2026-08-19 18:25:54 +03:30
NimBold 6be0f5ca5a fix(ci): isolate Windows Tauri test harness
- keep Windows executable checks on targets that run on the hosted image
- compile Tauri-backed queue and library tests without executing the broken harness
- share root-scoped canonical cache logic with the Windows safety regression
2026-08-19 13:03:07 +03:30
NimBold dd04ed40d6 fix(ci): bound platform test and dependency checks
- run Windows integration targets without the broken Tauri lib harness
- retain Windows cache and web-seed regressions in runnable targets
- bound Linux apt retries, network waits, and job duration
2026-08-19 12:47:16 +03:30
NimBold 9418aa5564 fix(torrents): preserve per-file web-seed ownership
- use Aria2 per-file URI state for safe Torrent seed lifecycle updates
- preserve embedded and legacy web-seed baselines during explicit changes
- harden atomic replacement and retained cache cleanup across platforms
- execute Windows Torrent cache and web-seed regressions in CI
2026-08-19 12:11:09 +03:30
NimBold 78e9c9b80f fix(torrents): harden post-release lifecycle boundaries
- make Torrent journals and metadata caches atomic across platforms
- reject unsafe Torrent cache and web-seed inputs
- validate magnet trackers through the shared policy
- preserve embedded web seeds during explicit installation
- correct 1-based Torrent file indices in renderer state and Properties UI
2026-08-19 11:02:57 +03:30
NimBold 566632b7ad fix(torrent): harden allocation and credential isolation
- Extend allocation-phase eligibility to preallocated Torrent admission while excluding none, verify-only, and media work.

- Strip Torrent metadata credentials at intake, persistence, renderer, native, and Aria2 header boundaries.

- Add restart, batch-admission, persistence, and native regression coverage.
2026-08-19 08:49:02 +03:30
NimBold 2bce25868c fix(build): harden engine downloads and refresh dependencies
- update Lucide, Vitest, compatible Cargo locks, and FFmpeg source pins

- resume interrupted archives with HTTP range and checksum validation

- cover complete, range-ignored, and unsatisfiable archive recovery paths
2026-08-18 20:58:19 +03:30
NimBold bdbc11ad94 fix(ui): fence stale allocation status
- keep paused and completed rows authoritative over transient allocation state

- preserve allocation feedback for failed-download retries

- expose the table allocation phase as an accessible indeterminate progressbar
2026-08-16 00:09:21 +03:30
NimBold 6aa07db5df feat(ui): show file allocation phase
- expose transient allocation state around normal Aria2 enqueue

- render truthful indeterminate allocation status in the table and Properties window

- add localized copy, accessibility semantics, lifecycle cleanup, and regression tests
2026-08-16 00:03:43 +03:30
NimBold d135a17f1b fix(downloads): allow confirmed credentialless resume
- distinguish redacted session credentials from intrinsic URL authentication

- requeue confirmed resumes without saved secrets from the table and Properties window

- scope batch overrides to approved rows and harden malformed bridge payloads

- add regression coverage and localized confirmation copy
2026-08-15 23:32:43 +03:30
NimBold 3f3a3514a3 fix(ui): expose resume failure reason
- show persisted resume failure details instead of a generic backend rejection

- keep the generic message only when no actionable reason is available
2026-08-15 23:12:56 +03:30
NimBold 8e7e81277b fix(downloads): recover stale aria2 gids on resume
- validate retained GIDs before resume shortcuts, including WaitingToSeed

- invalidate stale lifecycle mappings and queue ownership before re-enqueue

- preserve conservative transport handling and cover missing-GID classification
2026-08-15 22:56:36 +03:30
NimBold 6245c62d3d fix(downloads): harden aria2 diagnostics
- add stage-correlated metadata, DNS, admission, retry, and poller logs
- classify resolver, range, and HTTP failures without leaking sensitive data
- fence slow Aria2 admission and terminal polling against stale lifecycle state
- record proxy route and requested versus effective connection telemetry
2026-08-15 21:25:12 +03:30
NimBold f77fd0be3f fix(downloads): harden automatic capture and aria2 transfers
- Pass prepared redirect URIs to Aria2 while preserving stable source identities.

- Fence effective-connection telemetry and retry lifecycle transitions by control epoch.

- Keep credentialed routes conservative across redirects, mirrors, and inline URL credentials.

- Preflight destination access and preserve actionable retryable permission errors in the UI.

- Add adversarial regression coverage for ranges, redirects, retries, telemetry, and enqueue failures.
2026-08-15 14:31:38 +03:30
NimBold 92cfaa26ce chore(deps): refresh package and engine locks
- update Zustand and refreshed npm lockfile metadata

- refresh BtbN FFmpeg Windows/Linux artifacts with verified checksums

- make update checks fail closed on unavailable providers and target-specific engine feeds

- update Rust transitive dependencies and add checker regression coverage
2026-08-15 10:07:39 +03:30
NimBold ca32b772a2 fix(torrent): use live peer telemetry in properties
- source the Properties peer card from live Aria2 status counts
- distinguish connected peers from unavailable peer details
- remove redundant peer-summary IPC and harden count parsing
- add responsive, accessible peer/seeder presentation and regressions
2026-08-15 06:26:25 +03:30
NimBold de41dd55d6 fix(torrent): harden metadata reuse and live peer telemetry
- reuse validated tracker-bearing metainfo without restoring direct web seeds
- preserve Torrent file selection while making long paths scrollable and copyable
- add lifecycle-fenced peer and seeder summaries to Properties telemetry
- validate cache tracker metadata and cover malformed, stale, and path-copy cases
2026-08-14 13:13:06 +03:30
NimBold 314f4e2e00 fix(settings): harden Torrent network validation
- Align the DHT message-timeout range with bundled Aria2 1.37.0.
- Validate and canonicalize Torrent network text settings at the native boundary.
- Fence delayed input responses and reject contradictory IPv6 bind state.
- Add regression coverage for malformed settings and cross-field races.
2026-08-13 16:40:55 +03:30
NimBold 4b43e8ed5c fix(integration): serialize browser add inputs
- serialize extension and deep-link Add-window events
- acknowledge successful extension handling at the frontend boundary
- add regression coverage for ordered input processing
2026-08-12 20:20:55 +03:30