Commit Graph

1475 Commits

Author SHA1 Message Date
Christian Visintin 99b76f2fd9 ci: disable unused GnuTLS compression backends
Linux musl probe / build-x86_64-unknown-linux-musl (push) Has been cancelled
Linux musl probe / build-aarch64-unknown-linux-musl (push) Has been cancelled
2026-09-03 09:01:12 +02:00
Christian Visintin a57f020e4a ci: restore workspace before Cargo patch
Linux musl probe / build-x86_64-unknown-linux-musl (push) Has been cancelled
Linux musl probe / build-aarch64-unknown-linux-musl (push) Has been cancelled
2026-09-02 23:34:39 +02:00
Christian Visintin da23372d4b ci: build musl releases with static Samba dependencies 2026-09-02 23:30:07 +02:00
Christian Visintin 5304bc3224 ci: use compatible static gettext package 2026-09-02 23:22:12 +02:00
Christian Visintin 6de1cdb39c ci: add static gettext dependency 2026-09-02 23:22:12 +02:00
Christian Visintin 57a710eff5 ci: align musl dependencies with pavao 2026-09-02 23:22:12 +02:00
Christian Visintin 6e6d077532 ci: install samba perl parser dependency 2026-09-02 23:22:12 +02:00
Christian Visintin 63f7f0d084 ci: fix temporary samba patch rewrite 2026-09-02 23:22:12 +02:00
Christian Visintin 9d2c3746d0 ci: probe musl samba configure workaround 2026-09-02 23:22:11 +02:00
Christian Visintin 0b787fee34 ci: add static musl crypto dependencies 2026-09-02 23:22:11 +02:00
Christian Visintin 48d3701678 ci: probe static musl release builds 2026-09-02 23:22:11 +02:00
Christian Visintin 622a64ac58 build: bump remotefs-smb 0.5.0 2026-09-02 22:27:56 +02:00
Christian Visintin 751f68f6d4 feat(smb): add SMB dialect selection and persistence (#445)
Deploy docs to GitHub Pages / deploy (push) Has been cancelled
Install.sh / build (ubuntu-latest) (push) Has been cancelled
CI / toolchain (push) Has been cancelled
CI / fmt (push) Has been cancelled
CI / install-scripts (push) Has been cancelled
Install.sh / build (macos-latest) (push) Has been cancelled
Site / build-site (push) Has been cancelled
CI / crates-macos-latest (push) Has been cancelled
CI / crates-ubuntu-latest (push) Has been cancelled
CI / crates-windows-latest (push) Has been cancelled
CI / doc (push) Has been cancelled
CI / deny (push) Has been cancelled
Support Auto, SMB1, SMB2, and SMB3 selection on Unix, bound negotiation to the selected dialect family, preserve legacy bookmarks as Auto, and document the new option. Windows keeps operating-system-managed negotiation.

Closes #439
2026-09-02 14:14:23 +02:00
Christian Visintin e966a83220 chore(just): add run_signed script
Deploy docs to GitHub Pages / deploy (push) Has been cancelled
CI / toolchain (push) Has been cancelled
CI / fmt (push) Has been cancelled
CI / install-scripts (push) Has been cancelled
Install.sh / build (macos-latest) (push) Has been cancelled
Install.sh / build (ubuntu-latest) (push) Has been cancelled
Site / build-site (push) Has been cancelled
CI / crates-macos-latest (push) Has been cancelled
CI / crates-ubuntu-latest (push) Has been cancelled
CI / crates-windows-latest (push) Has been cancelled
CI / doc (push) Has been cancelled
CI / deny (push) Has been cancelled
2026-09-01 12:52:10 +02:00
Christian Visintin d99c76b43c feat(ssh): auto-fill ssh config parameters in auth form
Resolve SSH host parameters in auth forms and CLI connections while preserving explicit user, bookmark, and parsed alias values. Continue forwarding SSH config files for HostName and other SSH options, and document the precedence in English and Chinese.

Closes #441
2026-09-01 12:52:10 +02:00
Christian Visintin 7434c51063 feat: add support for all ssh2 config parameters.
Achieved by bumping `remotefs-ssh` to `0.9`.

Added support for these parameters:

- Compression
- Host key certificates
- CA signature algorithms
- keys to agents
- ProxyJump
- Server alive intervals
- Agent forwarding
- Remote forwarding
- Bind address
- Bind interface
- Connection attempts
- TCP Keepalive
- Accepted public key algos
- Certificate files

Refs #441
2026-09-01 12:52:10 +02:00
Christian Visintin 9fbd617f88 fix: print actual reason for failed host params collecting
previously, we didn't show any reason for failed collecting of host params in the auth form, but just a generic message

refs #441
2026-09-01 12:52:10 +02:00
Christian Visintin 2bbe560ec5 chore: remove invalid advisories for remotefs-aws-s3
CI / toolchain (push) Has been cancelled
CI / fmt (push) Has been cancelled
CI / install-scripts (push) Has been cancelled
Install.sh / build (macos-latest) (push) Has been cancelled
Install.sh / build (ubuntu-latest) (push) Has been cancelled
Deploy docs to GitHub Pages / deploy (push) Has been cancelled
Site / build-site (push) Has been cancelled
CI / crates-macos-latest (push) Has been cancelled
CI / crates-ubuntu-latest (push) Has been cancelled
CI / crates-windows-latest (push) Has been cancelled
CI / doc (push) Has been cancelled
CI / deny (push) Has been cancelled
2026-08-30 21:48:21 +02:00
Christian Visintin 7472ca98a0 chore: add AI_POLICY and update Pull request template 2026-08-30 21:47:28 +02:00
Christian Visintin 974b6d6917 feat(gcs): add Google Cloud Storage support (#443)
* feat(gcs): add Google Cloud Storage support

Closes #436

* fix: honor configured protocol and finalization errors

* ci: remove TruffleHog checks
2026-08-30 18:58:17 +02:00
Christian Visintin 98a1ce42dc build(deps): update aes-gcm to 0.11
CI / toolchain (push) Has been cancelled
CI / fmt (push) Has been cancelled
CI / install-scripts (push) Has been cancelled
Install.sh / build (macos-latest) (push) Has been cancelled
Install.sh / build (ubuntu-latest) (push) Has been cancelled
Site / build-site (push) Has been cancelled
CI / crates-macos-latest (push) Has been cancelled
CI / crates-ubuntu-latest (push) Has been cancelled
CI / crates-windows-latest (push) Has been cancelled
CI / doc (push) Has been cancelled
CI / deny (push) Has been cancelled
Migrate nonce generation and parsing to the aes-gcm 0.11 API while preserving the encrypted payload format.
2026-08-29 14:06:27 +02:00
Christian Visintin afbc74113f ci: migrate project automation to Just (#442)
Deploy docs to GitHub Pages / deploy (push) Has been cancelled
Site / build-site (push) Has been cancelled
Install.sh / build (macos-latest) (push) Has been cancelled
Install.sh / build (ubuntu-latest) (push) Has been cancelled
CI / toolchain (push) Has been cancelled
CI / fmt (push) Has been cancelled
CI / install-scripts (push) Has been cancelled
CI / crates-ubuntu-latest (push) Has been cancelled
CI / crates-windows-latest (push) Has been cancelled
CI / doc (push) Has been cancelled
CI / deny (push) Has been cancelled
CI / crates-macos-latest (push) Has been cancelled
* ci: migrate project automation to Just

Centralize build, test, release, dependency, hook, and website commands in Just recipes. Pin workflow tooling, use the repository toolchain, and run the complete validation set in CI.

* ci: codex being codex

* docs: update CLAUDE.md for just task runner migration

Reflect the switch to just recipes for build/test/clippy/fmt, note
dprint replacing raw rustfmt, and add a cross-platform code requirement.

* fix: resolve clippy warnings breaking CI on ubuntu and windows

Use clone() instead of implicit to_string() on already-owned String
values, gate the windows-only unused make_file_at import behind
cfg(posix), and fix unused mut / manual assign-op in the windows-only
localhost test.

* fix: fmt
2026-08-28 19:29:58 +02:00
Christian Visintin 08c51a32cc ci: remove Codeberg mirror workflow. I do not support Codeberg mission anymore
CI / build-(macos-latest) (push) Has been cancelled
CI / build-(ubuntu-latest) (push) Has been cancelled
CI / build-(windows-latest) (push) Has been cancelled
Install.sh / build (macos-latest) (push) Has been cancelled
Install.sh / build (ubuntu-latest) (push) Has been cancelled
Site / build-site (push) Has been cancelled
2026-07-29 22:41:06 +02:00
Christian Visintin 739517f7e4 feat(site): add privacy policy page (#435)
codeberg-mirror / mirror (push) Has been cancelled
CI / build-(macos-latest) (push) Has been cancelled
CI / build-(ubuntu-latest) (push) Has been cancelled
CI / build-(windows-latest) (push) Has been cancelled
Install.sh / build (macos-latest) (push) Has been cancelled
Install.sh / build (ubuntu-latest) (push) Has been cancelled
Site / build-site (push) Has been cancelled
Add a GDPR privacy policy covering Vercel hosting/server logs and
EU-hosted Umami analytics, and link it from the footer.
2026-06-19 19:12:53 +02:00
Christian Visintin 77281ed926 fix(publish): anchor include globs to crate root
CI / build-(macos-latest) (push) Has been cancelled
CI / build-(ubuntu-latest) (push) Has been cancelled
CI / build-(windows-latest) (push) Has been cancelled
codeberg-mirror / mirror (push) Has been cancelled
Install.sh / build (macos-latest) (push) Has been cancelled
Install.sh / build (ubuntu-latest) (push) Has been cancelled
Site / build-site (push) Has been cancelled
Unanchored include patterns (LICENSE, README.md) matched at any depth
via gitignore-glob semantics, pulling 437 site/node_modules files into
the package and breaking cargo publish's dirty check.
2026-06-08 21:18:43 +02:00
Christian Visintin 4b6325ebe3 chore: update Cargo.lock 2026-06-08 21:15:21 +02:00
Christian Visintin 6933a98cda chore(Cargo.lock): update Cargo.lock 2026-06-08 21:14:39 +02:00
veeso 5cee1184dc chore: release v1.1.1 v1.1.1 2026-06-08 18:54:35 +00:00
Christian Visintin 4a9da89642 fix(build): drop vergen-git2 build dependency
vergen-git2 reads git metadata at build time, but the crates.io source
tarball ships no .git, so the published 1.1.0 fails on `cargo install`.
crates.io versions are immutable (no overwrite) and Chocolatey's
moderation queue blocks a fast re-push, so a clean 1.1.1 without vergen
is the only fix.
2026-06-08 20:53:55 +02:00
veeso 282f75c3f3 chore: release v1.1.0 v1.1.0 2026-06-08 18:17:39 +00:00
Christian Visintin 535ed23540 chore: update cliff config 2026-06-08 20:17:02 +02:00
Christian Visintin 70bd7d7330 fix(transfer): enqueue full destination path instead of directory
Queued transfers stored only the destination directory as the target
path. Downstream upload logic treats the queued destination as the full
file path and passes it straight to create_file, so transfers failed
with a Failure error when the remote target resolved to a directory.

Append each entry's file name to the destination directory at enqueue
time in both enqueue_file and enqueue_all, matching the single-file
transfer path which already builds the full target path.
2026-06-08 20:17:02 +02:00
Christian Visintin 352eec4762 chore(Cargo.toml): bump 1.1.0 2026-06-08 20:17:02 +02:00
Christian Visintin 3a5327f5b1 ci(release): fetch full git history and tags for build.rs
build.rs uses vergen-git2 (Git2::all_git), which runs `git describe` and
reads commit metadata. The build and publish-crate jobs checked out a
shallow clone without tags, so vergen could not resolve the describe
string and libgit2 may fail on shallow repos. Add fetch-depth: 0 and
fetch-tags: true to both jobs that compile the crate.
2026-06-08 20:17:02 +02:00
Christian Visintin b1601fb17e chore(deps): migrate keyring from 3 to 4
keyring v4 is no longer a library crate; the API moved to keyring-core
plus per-platform credential store crates. Replace the keyring dependency
with keyring-core and the native store crates, and register the default
store at runtime (lazily, once) since v4 no longer selects it at compile
time via Cargo features.
2026-06-08 20:17:02 +02:00
Christian Visintin bca261b7b2 chore(deps): bump aes, cbc, md-5, rand and vergen-git2
Migrate to the new RustCrypto cipher 0.5 traits (aes 0.9, cbc 0.2),
rand 0.10 and vergen-git2 10, whose APIs changed:

- vergen-git2: builders renamed (BuildBuilder -> Build, etc.) and the
  all_* constructors no longer return a Result
- aes/cbc: BlockDecryptMut -> BlockModeDecrypt and
  decrypt_padded_vec_mut -> decrypt_padded_vec
- rand: sample API moved
2026-06-08 20:17:02 +02:00
Christian Visintin 904befaea8 fix(copy): prevent emptying file when copy destination is empty (#421)
Install.sh / build (macos-latest) (push) Has been cancelled
Install.sh / build (ubuntu-latest) (push) Has been cancelled
CI / build-(macos-latest) (push) Has been cancelled
CI / build-(ubuntu-latest) (push) Has been cancelled
CI / build-(windows-latest) (push) Has been cancelled
codeberg-mirror / mirror (push) Has been cancelled
Deploy docs to GitHub Pages / deploy (push) Has been cancelled
Site / build-site (push) Has been cancelled
An empty copy destination resolved to the source file's own path, so
std::fs::copy truncated the original file to 0 bytes.

- localhost::copy now refuses to copy a file onto itself, returning an
  error instead of truncating it (root cause).
- action_copy treats an empty/whitespace destination as a cancel.

Closes #421
2026-06-08 17:12:52 +02:00
Christian Visintin afe7b05830 docs(config): update config dir paths for macOS/Windows in en & zh
Reflect the new config directory locations (~/.config/termscp on macOS,
%USERPROFILE%\.termscp on Windows) across the English and Chinese docs,
and add a CLAUDE.md note to keep both translations in sync.
2026-06-08 16:39:24 +02:00
Christian Visintin 837592e48a feat(config): move config dir to ~/.config/termscp on macOS and %USERPROFILE%\.termscp on Windows
Resolve the config directory through a single per-platform config_dir()
function instead of relying on dirs::config_dir everywhere:

- macOS: ~/.config/termscp (was ~/Library/Application Support/termscp)
- Windows: %USERPROFILE%\.termscp (was roaming %APPDATA%\termscp)
- Linux/other: /termscp (unchanged)

Existing users are migrated automatically on first run: when the new
directory is absent and the legacy location exists, the whole config
directory is moved to the new path. The cache directory stays at the
platform-native location.

Closes #431
2026-06-08 16:39:24 +02:00
Christian Visintin ab5de031e3 ci(site): always run site 2026-06-08 16:02:27 +02:00
Christian Visintin f3085161e6 fix(progress): equalize dual progress bar heights
The bottom (partial) bar carried a block title (the current filename),
which forces a 1-row top inset in ratatui's `Block::inner` even though
its top border is dropped to join the seam with the full bar. That left
the partial bar with one inner row while the full bar kept two, so the
two gauges rendered at unequal heights.

- Move the filename from the partial bar's title into its gauge label.
- Skip setting an empty title so no phantom top-positioned title triggers
  the inset.
- Put the panel title on the top (full) bar for multi-file transfers.
- Bump the two-bar popup height to fit the joined panel.

Also bump Cargo.lock and adapt the embedded terminal to the new vt100
`screen_mut()` API.
2026-06-08 16:02:27 +02:00
Christian Visintin 1dafc76850 fix(progress): rework transfer progress panel (#424)
Migrate the transfer progress UI to tuirealm 4, where the stdlib
`ProgressBar` widget was dropped, by rebuilding the dual-bar panel on
top of `Gauge`.

- Restore the unified two-bar look: the full bar (top) and partial bar
  (bottom) draw joined borders so they read as a single panel; a single
  file shows one fully-bordered bar.
- Redraw on every file boundary in the send/recv queue loops so the
  full bar's (N/total) counter advances even for small files that finish
  within one in-loop redraw interval.
- Track progress with a single `TransferProgress` (exact file count from
  the pre-scan, lazy partial/full computation) and consolidate the theme
  progress-bar fields.
2026-06-08 16:02:27 +02:00
Christian Visintin f066d6a387 chore(readme): remove current version 2026-06-08 10:43:35 +02:00
Christian Visintin 987751d732 chore(site): add site umami analytics 2026-06-08 10:43:35 +02:00
Christian Visintin 1ca8abbfe8 ci: rename ci workflow 2026-06-08 10:16:00 +02:00
Christian Visintin 26e71a2f1d ci(release): publish to crates.io via OIDC trusted publishing 2026-06-08 10:16:00 +02:00
Christian Visintin b1d77c78fe fix(install): quote vars, fix set -e cargo check and rustup tmpfile cleanup
- silence SC3043 by declaring dash dialect (local is supported)
- quote unquoted vars (SC2086/SC1090)
- fix set -e aborting arch install before cargo check
- fix install_cargo removing unset $archive instead of $rustup
- make brew upgrade fallback a real if-then-else (SC2015)
- drop leftover starship BASE_URL and debug echo $1
2026-06-08 10:16:00 +02:00
Christian Visintin 2a7d48a92b ci: unify os workflows into one 2026-06-08 10:16:00 +02:00
Christian Visintin 82141e7f2b chore: remove ko-fi 2026-06-08 10:16:00 +02:00
Christian Visintin 14bc15cfca chore(site): update og_preview 2026-06-08 10:16:00 +02:00