Skip to content

Releases: ZyraLabs/warpseed

warpseed v1.1.6

Choose a tag to compare

@github-actions github-actions released this 07 Sep 23:08

warpseed 1.1.6 — it asks before it replaces a file

Downloading a file you already had used to replace it silently — and only
after transferring the whole thing again.
A 50 GB file cost 50 GB to
discover it was unwanted, and the copy you had was gone. That is fixed, in
both directions.

Fixed

  • The destination is checked before the transfer starts, not at the
    moment it finishes. Nothing is re-transferred to find out it was not
    needed, and nothing is replaced without a decision having been made.

New

  • Overwrite rules, in Settings → When the file already exists. Each kind
    of clash gets its own answer:

    Default
    Incoming is newer and larger Overwrite
    Incoming is smaller Ask
    Incoming is older Ask
    Identical (same size and time) Skip
    Anything else Ask

    Every one can be set to Overwrite, Skip, Keep both, or Ask. "Newer and
    larger" is the only case that replaces a file on its own — a bigger file
    with a later date is a better copy of the same thing far more often than it
    is a mistake. Anything that could be a downgrade asks.

  • "Ask" holds the file in the queue instead of interrupting you. The dock
    shows "3 files already exist at the destination. Nothing is transferred
    until you decide."
    Each row explains itself — "Incoming is smaller than
    the copy you have — 1.8 GB incoming vs 2.4 GB already there"
    — with Skip,
    Keep both and Overwrite per row, or the same three for the whole set. A
    folder full of clashes is one decision, not one dialog per file.

  • Keep both transfers to a free name beside the existing file:
    ep01.mkv becomes ep01 (1).mkv.

  • Uploads get all of this too. Uploading over a file already on the seedbox
    was just as silent, and harder to notice.

Notes

  • Held transfers are queued but not running: they consume no connection and
    hold nothing up. The rest of the queue carries on around them.
  • A server that reports no timestamp still gets a size comparison; warpseed
    will not call two files identical on size alone.
  • Existing settings and queues are untouched. The rules above are the
    defaults for everyone, including existing installs.

warpseed v1.1.5

Choose a tag to compare

@github-actions github-actions released this 07 Sep 22:25

warpseed 1.1.5 — nothing is deleted without asking

1.1.4 made cancel throw away a transfer's part-downloaded data, which is what
stops a cancelled 50 GB upload sitting on your seedbox quota. It did not add a
warning, so a single click could discard hours of transfer with no way back.
That was wrong, and this fixes it.

Fixed

  • Cancel now asks first, and says exactly what it is about to delete —
    "the 12.4 GB already transferred" — and that Pause would keep it. The
    Skip buttons in Deck and Timeline go through the same warning: they
    cancel a failed transfer, and "skip" reads far too much like "leave it for
    later".
  • Clear done asks when the list contains cancelled transfers, whose
    part-downloaded data goes with the row. It says plainly that completed
    transfers are only being removed from a list and the files you downloaded
    are untouched.
  • Deleting a saved site asks. The X on a site in Quick Connect removed it,
    its saved password, its bookmarks and its pinned host key, on one click and
    with no confirmation at all. That has been true since 1.0.

Changed

  • Every destructive confirmation now offers "Don't ask again until warpseed
    restarts"
    . Silencing one kind of warning silences only that kind — turning
    off the file-delete prompt does not turn off the cancel prompt — and a
    relaunch always asks again.
  • A transfer that has moved no bytes cancels immediately, with no dialog.
    There is nothing to lose, and a warning you always dismiss is a warning you
    stop reading.

Notes

  • If you are on 1.1.3 or earlier, cancel did not delete anything and there was
    nothing to warn about. Coming from 1.1.4, this is the guard rail that should
    have shipped with it.

warpseed v1.1.4

Choose a tag to compare

@github-actions github-actions released this 07 Sep 21:48

warpseed 1.1.4 — the data-safety pass

No new features. This release closes every remaining way the queue could
lose, waste or misplace your bytes
, including one that could publish a file
of exactly the right size holding the wrong contents. If you run overnight
transfers, take this one.

Fixed

  • A resumed Hyperlane download now proves its progress is real. The check
    was the part file's size — which proves nothing, because the file is
    created at its full size before the first byte arrives. Anything that
    replaced its contents without changing its length passed: a folder restored
    from a backup or Windows' Previous Versions, another tool writing the same
    path, or leftovers from an attempt at a different file of the same size.
    The ranges already marked done were never fetched again, and the finished
    file had the right length and the wrong bytes. Each completed range is now
    read back from the server and compared before anything is resumed — the
    check uploads have had all along.
  • Cancel no longer leaves the file behind. Cancelling removed the queue
    row's work but not its part file, so a cancelled 50 GB upload left a
    full-size placeholder on the seedbox. It is sparse on disk, but seedbox
    quotas are usually billed on apparent size, so you were paying for a
    transfer you cancelled. Cancel now discards the placeholder, the lane plan
    and the byte count. Pause is unchanged and still keeps everything for
    resume.
  • Clear done no longer strands a cancelled transfer's data. It deleted
    the row, which was the only record that the part file existed. It now
    sweeps those files first, the same way Clear failed does.
  • The same file queued twice no longer runs twice. Two rows aimed at one
    destination wrote into the same part file at the same time. For downloads
    that wasted the transfer; for uploads, where the two sources can differ, it
    could splice two files together. Only one row per destination runs at a
    time now, and re-queuing something already waiting returns the row you
    already have instead of adding a second. Two different files aimed at one
    destination are still accepted — that is a conflict, and warpseed will not
    pretend it queued something it did not.
  • Cancel is now always honoured. A transfer cancelled in the moment
    before the queue picked it up could be started anyway, because the queue
    worked from a list read a moment earlier and never rechecked. It now claims
    a transfer only while that transfer is still waiting, so a cancel can never
    be overtaken.
  • Closing warpseed no longer spends a transfer's retries. A transfer
    interrupted on its second attempt came back with one retry left and the old
    error still attached, so it gave up at the first hiccup of the new run.
    Quitting is not a transfer failure: recovery now restores a clean slate and
    keeps the byte progress, so it resumes rather than restarts.

Notes

  • Nothing here changes your settings, your queue or your saved sites.
  • The download resume check costs two 256 KiB reads per lane before a resumed
    transfer starts — a fraction of a second against a transfer measured in
    gigabytes, and the only way to know the bytes on disk are the bytes you
    asked for.

warpseed v1.1.3

Choose a tag to compare

@github-actions github-actions released this 07 Sep 09:41

warpseed 1.1.3 — lanes you actually get, and one button for a failed batch

If Hyperlane said 4 lanes but a queue of large files crawled at one
connection's speed each, this is the fix.
Thank you to the tester who
worked out the connection arithmetic before we did, and who lost a batch to
a hard drive unplugged mid-run.

Fixed

  • A queue of large files ran every file on one lane. Transfers took
    whatever connections happened to be spare rather than waiting for the lane
    count you set, so the first file claimed the budget and everything behind
    it started narrow. Files now wait for their full lane count: a queue of
    large files runs them one at a time at full width instead of all of them
    at one connection's speed. Queue order is respected per site, so the file
    at the front no longer waits behind smaller ones that fit.
  • A part-transferred large file is no longer restarted when the server is
    short of connections.
    A Hyperlane download that had to fall back to a
    single connection deleted its multi-lane progress before starting over —
    on a 50 GB file that is tens of gigabytes re-downloaded, and a server
    granting one connection where several were asked for is ordinary. It now
    waits and retries with its progress intact instead. This was the oldest
    known data-safety item on the roadmap (1.2), and the reason a nearly
    finished transfer could suddenly start again from nothing.
  • A server that refuses connections no longer stalls the queue. When a
    server grants fewer connections than asked for, warpseed now remembers
    what it actually got and sizes the following transfers to match, instead
    of holding the rest of the queue back waiting for a width that server was
    never going to give. The observed limit is forgotten once the site goes
    idle or goes stale, so a momentary refusal cannot hold a site at one
    connection for the rest of an overnight run.
  • The Transfers settings did not say they were connection budgets.
    "Concurrent transfers" and "Per-site default" count connections, not
    files, and Hyperlane draws its lanes from them — so setting them to 1 to
    "give one file all the lanes" silently turned Hyperlane off, which is the
    exact opposite of what it reads like. They are now Connections, all
    sites
    and Connections per site, the section says what they do, and
    the lane field tells you when your budget is limiting it and what to raise
    it to.

New

  • Retry failed and Clear failed in the queue toolbar, shown whenever
    anything has failed. One unplugged drive or one hour of a server refusing
    logins fails a whole batch, and clearing it a row at a time was the
    reported pain. Retry requeues everything and each file resumes from the
    byte it reached; Clear removes the rows and the part-downloaded data with
    them, so nothing is left behind on disk.

Also included, if you are coming from 1.1.1

1.1.2 was never published as a download, so this release carries its fixes
too — the big one being that queues over 200 rows stopped showing what was
in flight
: the dock read "0 active", Flight had no lanes and Activity was
empty while the transfers carried on regardless. Full detail in
docs/release/release-notes-1.1.2.md.

Notes

  • Nothing about your saved settings changes — the two Transfers numbers mean
    what they always meant, they are just named and explained correctly now.
    If you had lowered them to force more lanes, raise them back: the lane
    count can never exceed them, and Settings now says so under the field.
  • Clear failed deletes part-downloaded data. Those files start from the
    beginning if you queue them again. Finished files are never touched, and
    the confirmation says so before anything is removed. It clears exactly the
    rows it counted, so anything that fails while the confirmation is open is
    left for you to look at rather than swept away with the rest.
  • Clear failed keeps a row whose data it cannot reach rather than
    deleting the record and stranding the file. That means failed uploads
    while the site is disconnected — connect it and clear again. It also
    leaves the part-file alone when another queued copy of the same
    destination is still using it, so re-queuing a folder and then tidying the
    red rows no longer resets the new copy to zero.
  • If the log says something like site 1 granted 4/6 connections, that is
    your server refusing the extras, not warpseed giving up — it is the
    quickest way to find the connection ceiling your provider actually
    enforces, and a good number to set Connections per site to.

warpseed v1.1.1

Choose a tag to compare

@github-actions github-actions released this 05 Sep 02:17

warpseed 1.1.1 — Hyperlane downloads no longer stall the disk

If Hyperlane downloads sat at one connection's speed, cancel took ages to
let go, or warpseed lingered in Task Manager doing disk work after you closed
it, this is the fix.
Thank you to the tester who reported all three in one
email and pointed at the same file in WinSCP for comparison.

Fixed

  • Large downloads no longer zero-fill the destination. Hyperlane reserves
    the full file size up front so each lane can write at its own offset. On
    Windows that reservation was not free: the first write from each lane made
    NTFS write zeros over everything before it, inside a call that nothing could
    interrupt. On a 50 GB file with four lanes that was roughly 37 GB of zeros
    before lane four's first byte landed. Three of four lanes sat idle for
    minutes, cancel could not take effect until the zeros finished, and the
    process outlived the window — End Task included — until the disk was done.
    The part file is now flagged sparse before it is sized, so a write at any
    offset costs only that write, and the flag is cleared again once every
    byte is in place so the finished file is an ordinary one. Volumes that
    refuse the flag (FAT32, some network shares) still work and a line in the
    log says so.

Added

  • Verbose log. Settings → About → Verbose log. Adds per-lane byte
    ranges, how long each lane's first write took, and when a cancel was
    requested versus when the lanes actually let go. Off by default so the log
    stays a readable timeline. Turn it on when reporting a stall, reproduce it,
    then send warpseed.log from Open log folder.

Notes

  • This is about downloads to a local NTFS volume. The single-connection
    path was never affected; only files above the Hyperlane threshold
    (256 MB by default) hit this.
  • Known gap: a Hyperlane upload to a Windows-hosted SFTP server can hit
    the same zero-fill on the server's side, where warpseed cannot set the
    flag. Seedboxes run Linux, so this is unlikely to affect anyone; if it
    does, set upload lanes to 1 for that site.
  • A .wschunk left by 1.1.0 is flagged sparse on its next attempt and
    resumes normally.

warpseed v1.1.0

Choose a tag to compare

@github-actions github-actions released this 02 Sep 04:01

warpseed 1.1.0 — sortable columns, faster uploads, and a log file

If you are on 1.0.0, this is the update to take. The column headers in
1.0.0 were not clickable at all — a CSS rule further down the same file put
the header strip out of flow, underneath the first row of files. Sorting by
size or date was unreachable, and the status bar was quietly eating most of
the pane. Both are fixed.

Fixed

  • Column headers work. Click Name, Size or Modified to sort; click again
    to reverse. Both panes now share one sort — previously each pane kept its
    own and they only agreed again after a restart. Sorting by size in a
    folder-only listing reverses properly instead of appearing to do nothing.
  • The file list gets the space. The pane used a four-row grid for a
    layout whose filter strip is optional, so with the filter closed the free
    space went to the status bar instead of the listing.
  • Typing jumps instead of hiding. Pressing a letter now moves the cursor
    to the first matching file, the way File Explorer does, and repeats step
    through matches. Previously it opened a filter and made rows disappear as
    you typed, with no way back from the keyboard. Ctrl+F still opens the
    filter deliberately, and Esc leaves it.
  • The address bar stops stealing focus. After one Ctrl+L, every folder
    you opened re-entered the path editor, leaving the arrow keys dead until
    you clicked back into the list.
  • Times are local. Timestamps were shown in UTC, so they disagreed with
    Explorer and made a correct date sort look wrong.
  • The folder tree opens collapsed instead of listing every drive up front.
  • Queued transfers no longer wait behind a multi-lane one. A transfer now
    starts on whatever connections are free rather than holding out for its
    full request, which could leave downloads pending indefinitely behind an
    upload.
  • Closing no longer risks re-sending a finished file. Quitting in the
    moment a transfer completed could lose its "completed" record, and since a
    finished transfer has already published its file, the retry on next launch
    started again from zero. Shutdown now stops transfers and lets their state
    land first.

New

  • Hyperlane uploads. Large uploads now split across several connections,
    the way downloads have since 1.0. Off below 128 MB, three lanes by default,
    both adjustable in Settings → Hyperlane · Uploads. Interrupted uploads
    resume per chunk, and every resumed range is verified against the source
    before it is trusted.
  • Activity reports real speeds. A summary band shows current rate, data
    moved today, average and best, and every finished transfer carries its
    duration and rate. Averages are over time spent transferring, not
    wall-clock, so idle gaps do not drag them down. Transfers from before this
    release have no timing recorded and show no speed.
  • A log file. warpseed.log, next to the database, with Settings →
    About → Open log folder
    to find it. Attach it to a bug report; it makes
    a slow or failed transfer diagnosable instead of guesswork.
  • Sort shortcuts and column affordances. Ctrl+F3 / Ctrl+F5 / Ctrl+F6
    sort by name, date and size, and the headers show a sort direction.

Notes

Hyperlane uploads are new in this release and have been tested against one
server. If an upload behaves oddly, set Lanes per file to 1 in Settings
to fall back to the single-connection path, and send the log.

Upload throughput depends heavily on your connection: where a single stream
is held back by packet loss, more lanes can help far more than expected, so
it is worth trying higher lane counts and watching the Activity average.

Windows 10/11 x64. Portable, no installer. The binary is unsigned, so
SmartScreen may prompt on first run — "More info" then "Run anyway", and
verify the published SHA-256 if you would rather be certain.

warpseed v1.0.0

Choose a tag to compare

@github-actions github-actions released this 24 Aug 01:16

warpseed 1.0 — release notes

Free forever, from Zyra Labs. Support development: buymeacoffee.com/zyralabs

What warpseed is

A fast transfer client for Windows built for seedbox workloads: parallel
connections, byte-level resume that survives errors and restarts, and a
queue you can trust with an overnight 50 GB run.

Highlights

  • Hyperlane — one large file split across up to 16 connections at
    once, so a per-connection speed cap no longer caps the file.
  • Byte-level resume — errored or paused transfers pick up at the
    exact byte, verified against per-chunk checkpoints.
  • Four views — Deck (the night's work at a glance), Browse (dual-pane
    commander, WinSCP muscle memory intact), Activity (the session as a
    story), and Flight (a live picture of the pipeline while it runs).
  • Mini mode — collapse warpseed to a tiny always-on-top pill and keep
    an eye on the run while you work; Escape brings it back.
  • Three themes — Clay (default), Cobalt, and Iris (dark).
  • Honest failure handling — plain-language errors with one-click
    retry; the app reconnects cleanly after idle timeouts.
  • Safety — host-key pinning on first use, credentials in Windows
    Credential Manager, downloads confined to their destination folder.

Bug reports

Settings → About → Report a bug in the app, or email warpseed@zyralabs.tech — handled on an urgency basis.

Requirements

Windows 10/11 x64 · WebView2 (preinstalled on Windows 11)

Known limitations

  • SFTP password auth only (SSH keys/agent planned)
  • FTP/S3/WebDAV planned via a future engine adapter
  • Unsigned binary for now — SmartScreen may prompt on first run