Commit Graph

756 Commits

Author SHA1 Message Date
cb770661d7 Merge pull request 'fix: Proxmox v1.2.2 — client retrieval, AI message ordering, Remotes UX, Ceph false positive' (#124) from fix/proxmox-v1.2.2-consolidated into beta
Some checks failed
Release Beta / autotag (push) Successful in 10s
Release Beta / changelog (push) Successful in 1m35s
Test / frontend-tests (push) Successful in 1m45s
Test / frontend-typecheck (push) Successful in 1m57s
Release Beta / build-linux-amd64 (push) Successful in 12m7s
Release Beta / build-windows-amd64 (push) Successful in 12m28s
Release Beta / build-linux-arm64 (push) Successful in 13m48s
Release Beta / build-macos-arm64 (push) Failing after 21m38s
Test / rust-fmt-check (push) Successful in 23m18s
Test / rust-clippy (push) Successful in 24m34s
Test / rust-tests (push) Successful in 26m42s
Reviewed-on: #124
2026-06-20 13:02:35 +00:00
Shaun Arman
68439bcd64 fix: address PR review findings — race condition, real ping, atomic edit, listener cleanup
All checks were successful
Test / frontend-typecheck (pull_request) Successful in 2m19s
Test / frontend-tests (pull_request) Successful in 2m10s
PR Review Automation / review (pull_request) Successful in 8m50s
Test / rust-fmt-check (pull_request) Successful in 16m20s
Test / rust-clippy (pull_request) Successful in 17m51s
Test / rust-tests (pull_request) Successful in 19m20s
Race condition in get_proxmox_client_for_cluster: two concurrent callers
for an uncached cluster could both authenticate and insert, with the second
overwriting the first. Re-check under write lock before inserting so the
later caller returns the already-stored client instead of overwriting it.

handleConnectRemote used getProxmoxCluster (a DB-only lookup) to set status
'connected', which passed even when the Proxmox API was unreachable. Replace
with pingProxmoxCluster, a new command that authenticates and calls
GET /api2/json/version, providing a real end-to-end connectivity test.

handleEditRemote used remove-then-add, leaving a gap where the record was
absent and silently lost if addProxmoxCluster failed. Replace with
updateProxmoxCluster, a new command that issues a single SQL UPDATE (plus
in-memory pool eviction) so the record is never transiently missing.

ActionsMenu useEffect added the mousedown listener only when open=true but
the dependency array contained open, causing ambiguity about cleanup timing.
Attach the listener unconditionally on mount (empty dep array) so there is
always exactly one add and one remove with no conditional branches.

New Rust tests cover update_proxmox_cluster not-found logic and ping error
message format (420 Rust + 386 frontend, zero failures).
2026-06-19 22:26:33 -05:00
Shaun Arman
c5b97f8648 fix(proxmox): restore broken client retrieval across all commands
All checks were successful
Test / frontend-tests (pull_request) Successful in 1m36s
Test / frontend-typecheck (pull_request) Successful in 1m46s
PR Review Automation / review (pull_request) Successful in 5m8s
Test / rust-fmt-check (pull_request) Successful in 12m30s
Test / rust-clippy (pull_request) Successful in 14m10s
Test / rust-tests (pull_request) Successful in 16m35s
Half-completed refactor left 68 Tauri command functions with orphaned
.ok_or_else() chains after the old clusters.get() pattern was removed
without inserting the replacement helper call. Also fixed two bugs in the
new get_proxmox_client_for_cluster helper: undeclared `clusters` variable
in the early-return check, and client_arc going out of scope before return.

fix(ai): enforce system-message-first ordering for strict LLM providers

Qwen3.5-122b (and other models via LiteLLM) reject requests where system
messages appear after user/assistant turns. Moved tool-calling format
and iteration-budget system messages to before history is appended.
Changed mid-loop iteration warning and forced-stop instruction from
system role to user role so they can safely appear mid-conversation.

fix(proxmox): Remotes actions menu and connect/disconnect behaviour

Replaced the non-functional "..." toast placeholder with a proper
ActionsMenu dropdown (Edit / Test Connection / Delete). Removed inline
emoji buttons folded into the menu. Connect now calls getProxmoxCluster
as a live connection test and reflects real status; disconnect marks the
remote disconnected locally. Remote status now maps correctly from the
backend ClusterInfoWithHealth.connected field instead of hardcoding
'connected' for every entry.

fix(proxmox): Ceph page no longer shows HEALTH_OK on non-Ceph clusters

Page now fetches real health data on mount. If getCephHealth fails the
page renders an informational notice rather than fake HEALTH_OK. When
Ceph is present, pools and OSDs are loaded and displayed live.
2026-06-19 22:13:48 -05:00
466a57c549 Merge pull request 'fix(proxmox): use camelCase clusterType for Tauri v2 IPC' (#123) from fix/proxmox-add-remote into beta
Some checks failed
Release Beta / autotag (push) Successful in 11s
Release Beta / changelog (push) Successful in 1m35s
Test / frontend-tests (push) Successful in 1m47s
Test / frontend-typecheck (push) Successful in 1m57s
Release Beta / build-macos-arm64 (push) Successful in 9m29s
Release Beta / build-linux-amd64 (push) Successful in 11m26s
Release Beta / build-windows-amd64 (push) Successful in 12m18s
Release Beta / build-linux-arm64 (push) Successful in 13m42s
Test / rust-fmt-check (push) Successful in 23m29s
Test / rust-clippy (push) Successful in 25m15s
Test / rust-tests (push) Successful in 27m20s
Renovate / renovate (push) Failing after 21s
Reviewed-on: #123
2026-06-20 01:09:55 +00:00
d9714ce38e Merge branch 'beta' into fix/proxmox-add-remote
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
2026-06-20 01:09:33 +00:00
Shaun Arman
f2a795772c fix(proxmox): use camelCase clusterType for Tauri v2 IPC
All checks were successful
Test / frontend-tests (pull_request) Successful in 1m45s
Test / frontend-typecheck (pull_request) Successful in 2m1s
PR Review Automation / review (pull_request) Successful in 5m18s
Test / rust-fmt-check (pull_request) Successful in 12m47s
Test / rust-clippy (pull_request) Successful in 14m23s
Test / rust-tests (pull_request) Successful in 16m12s
The Tauri v2 IPC layer expects camelCase parameter names. The frontend
was sending cluster_type (snake_case), causing the deserialization
failure with error 'command add_proxmox_cluster missing required key
clusterType'.

Changed proxmoxClient.ts line 28 from:
  cluster_type: clusterType
to:
  clusterType

This aligns with the project's convention where all multi-word
parameters use camelCase (clusterId, nodeId, vmId, etc.).

Fixes the 'Failed to add remote' error when adding new Proxmox remotes.
2026-06-19 17:37:25 -05:00
bb5c820881 Merge pull request 'fix(proxmox): fix add-remote IPC failure and URL construction' (#122) from fix/proxmox-add-remote into beta
All checks were successful
Release Beta / autotag (push) Successful in 9s
Release Beta / changelog (push) Successful in 1m30s
Test / frontend-tests (push) Successful in 1m50s
Test / frontend-typecheck (push) Successful in 2m2s
Release Beta / build-macos-arm64 (push) Successful in 9m23s
Release Beta / build-linux-amd64 (push) Successful in 10m10s
Release Beta / build-windows-amd64 (push) Successful in 11m58s
Release Beta / build-linux-arm64 (push) Successful in 13m10s
Test / rust-fmt-check (push) Successful in 18m36s
Test / rust-clippy (push) Successful in 20m9s
Test / rust-tests (push) Successful in 22m35s
Reviewed-on: #122
2026-06-19 22:03:58 +00:00
Shaun Arman
1a586c86cd fix(proxmox): fix add-remote IPC failure and URL construction
All checks were successful
Test / frontend-tests (pull_request) Successful in 1m51s
Test / frontend-typecheck (pull_request) Successful in 1m53s
PR Review Automation / review (pull_request) Successful in 4m57s
Test / rust-fmt-check (pull_request) Successful in 12m41s
Test / rust-clippy (pull_request) Successful in 14m7s
Test / rust-tests (pull_request) Successful in 16m5s
- Change password parameter from &str to String in add_proxmox_cluster
  so Tauri v2 IPC can deserialize it (requires DeserializeOwned + Send)
- Construct full https:// URL with port in ProxmoxClient::get_api_url()
  and authenticate() since the frontend strips the protocol before
  sending the hostname
- Show actual error string in AddRemoteForm instead of generic fallback
  (Tauri errors are plain strings, not Error instances)
- Update client tests to reflect bare-hostname input from the frontend
2026-06-19 16:44:50 -05:00
ec14409fd5 Merge pull request 'fix(windows): compile memset_shim to real .o via get_compiler()' (#121) from fix/cargo-config-sodium into beta
All checks were successful
Release Beta / autotag (push) Successful in 10s
Release Beta / changelog (push) Successful in 1m29s
Test / frontend-tests (push) Successful in 1m49s
Test / frontend-typecheck (push) Successful in 1m56s
Release Beta / build-macos-arm64 (push) Successful in 10m48s
Release Beta / build-linux-amd64 (push) Successful in 9m56s
Release Beta / build-windows-amd64 (push) Successful in 11m25s
Release Beta / build-linux-arm64 (push) Successful in 12m53s
Test / rust-fmt-check (push) Successful in 18m29s
Test / rust-clippy (push) Successful in 20m31s
Test / rust-tests (push) Successful in 22m23s
Reviewed-on: #121
2026-06-19 20:42:27 +00:00
Shaun Arman
d0a985a53b fix(windows): compile memset_shim to real .o via get_compiler() to fix MinGW link
All checks were successful
Test / frontend-tests (pull_request) Successful in 1m46s
Test / frontend-typecheck (pull_request) Successful in 1m58s
PR Review Automation / review (pull_request) Successful in 4m5s
Test / rust-fmt-check (pull_request) Successful in 13m11s
Test / rust-clippy (pull_request) Successful in 14m23s
Test / rust-tests (pull_request) Successful in 15m56s
compile("memset_shim") produces libmemset_shim.a, not memset_shim.o, so the
previous cargo:rustc-link-arg pointed at a file that never exists. Switching to
get_compiler().to_command() compiles memset_s_shim.c directly to a .o file at
a known OUT_DIR path and passes it as a positional linker arg. A positional .o
is always included unconditionally, which also resolves the archive-extraction
ordering issue where -l flags only pull symbols that are already undefined at
that point in the link command.
2026-06-19 15:21:58 -05:00
0c5d06c4e9 Merge pull request 'fix(windows): link memset_shim object directly and suppress dead_code warning' (#120) from fix/cargo-config-sodium into beta
Some checks failed
Release Beta / autotag (push) Successful in 10s
Release Beta / changelog (push) Successful in 1m34s
Test / frontend-tests (push) Successful in 1m46s
Test / frontend-typecheck (push) Successful in 1m53s
Release Beta / build-linux-amd64 (push) Successful in 10m47s
Release Beta / build-windows-amd64 (push) Failing after 11m7s
Release Beta / build-linux-arm64 (push) Successful in 13m29s
Test / rust-fmt-check (push) Successful in 18m18s
Test / rust-clippy (push) Successful in 19m40s
Release Beta / build-macos-arm64 (push) Failing after 20m38s
Test / rust-tests (push) Successful in 21m36s
Reviewed-on: #120
2026-06-19 16:52:55 +00:00
Shaun Arman
e2e7b02a0e fix(windows): link memset_shim object directly and suppress dead_code warning
Some checks failed
Test / frontend-tests (pull_request) Successful in 1m42s
Test / frontend-typecheck (pull_request) Successful in 1m51s
PR Review Automation / review (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Successful in 12m47s
Test / rust-clippy (pull_request) Successful in 14m27s
Test / rust-tests (pull_request) Successful in 16m50s
- Use rustc-link-arg to directly link memset_shim.o object file
  instead of -l flag, ensuring symbol is available regardless of
  link order with libsodium_sys

- Add #[allow(dead_code)] to find_ollama_binary() which is only
  used inside cfg(target_os = "macos") and cfg(target_os = "linux")
  blocks, causing false positive warning when cross-compiling for Windows
2026-06-19 11:23:12 -05:00
036af81147 Merge pull request 'fix(windows): ensure memset_explicit symbol is properly exported for MinGW' (#119) from fix/cargo-config-sodium into beta
Some checks failed
Release Beta / autotag (push) Successful in 9s
Release Beta / changelog (push) Successful in 1m32s
Test / frontend-tests (push) Successful in 1m46s
Test / frontend-typecheck (push) Successful in 1m57s
Release Beta / build-macos-arm64 (push) Successful in 8m52s
Release Beta / build-linux-amd64 (push) Successful in 11m41s
Release Beta / build-windows-amd64 (push) Failing after 11m49s
Release Beta / build-linux-arm64 (push) Successful in 14m11s
Test / rust-fmt-check (push) Failing after 18m49s
Test / rust-clippy (push) Successful in 20m19s
Test / rust-tests (push) Successful in 22m38s
Reviewed-on: #119
2026-06-19 14:54:49 +00:00
Shaun Arman
5c4fb05802 fix(windows): ensure memset_explicit symbol is properly exported for MinGW
Some checks failed
Test / frontend-tests (pull_request) Successful in 1m45s
Test / frontend-typecheck (pull_request) Successful in 1m57s
PR Review Automation / review (pull_request) Successful in 4m23s
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
- Add __MINGW32__ detection in memset_s_shim.c for proper EXPORT macro
- Add WIN32 and __WIN32__ defines when compiling the shim in build.rs
- The memset_explicit symbol is required by libsodium-sys-stable but not
  available in MinGW runtime
- The shim is compiled as a static library and linked before libsodium
2026-06-19 09:44:17 -05:00
cf1dffb32b Merge pull request 'fix(windows): add memset_explicit symbol export for mingw cross-compilation' (#118) from fix/cargo-config-sodium into beta
Some checks failed
Release Beta / autotag (push) Successful in 10s
Release Beta / changelog (push) Successful in 1m19s
Test / frontend-tests (push) Successful in 1m49s
Test / frontend-typecheck (push) Successful in 2m2s
Release Beta / build-linux-amd64 (push) Successful in 10m32s
Release Beta / build-linux-arm64 (push) Successful in 13m1s
Test / rust-fmt-check (push) Successful in 17m22s
Test / rust-clippy (push) Successful in 19m8s
Test / rust-tests (push) Successful in 20m50s
Release Beta / build-windows-amd64 (push) Failing after 7m38s
Release Beta / build-macos-arm64 (push) Failing after 11m10s
Renovate / renovate (push) Failing after 32s
Reviewed-on: #118
2026-06-19 04:39:00 +00:00
5cd2e08f92 Merge branch 'beta' into fix/cargo-config-sodium
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
2026-06-19 04:38:36 +00:00
Shaun Arman
d45e767d6d fix(windows): add memset_explicit symbol export for mingw cross-compilation
Some checks failed
Test / frontend-typecheck (pull_request) Successful in 1m57s
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Successful in 1m46s
PR Review Automation / review (pull_request) Successful in 4m30s
Test / rust-tests (pull_request) Has been cancelled
- Add __declspec(dllexport) to memset_explicit in memset_s_shim.c
- Explicitly link memset_shim library in build.rs for Windows MinGW target
- Fixes undefined reference to memset_explicit when building for x86_64-pc-windows-gnu
2026-06-18 23:32:09 -05:00
144c811a7a Merge pull request 'fix(build): add memset_explicit C shim for Windows MinGW libsodium linking' (#117) from fix/cargo-config-sodium into beta
Some checks failed
Test / frontend-typecheck (push) Successful in 1m57s
Test / rust-fmt-check (push) Successful in 17m42s
Release Beta / autotag (push) Successful in 9s
Release Beta / build-linux-amd64 (push) Successful in 10m46s
Test / rust-clippy (push) Successful in 19m30s
Release Beta / build-macos-arm64 (push) Failing after 17m52s
Release Beta / changelog (push) Successful in 1m18s
Release Beta / build-windows-amd64 (push) Failing after 10m58s
Test / rust-tests (push) Successful in 21m12s
Test / frontend-tests (push) Successful in 1m48s
Release Beta / build-linux-arm64 (push) Successful in 12m47s
Reviewed-on: #117
2026-06-19 04:06:35 +00:00
Shaun Arman
b6ecd49b52 fix(build): add memset_explicit C shim for Windows MinGW libsodium linking
Some checks failed
PR Review Automation / review (pull_request) Successful in 4m53s
Test / rust-tests (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Successful in 1m52s
Test / frontend-typecheck (pull_request) Successful in 2m3s
2026-06-18 22:57:13 -05:00
7a9cd93f46 Merge pull request 'fix(build): add memset_shim for Windows MinGW and rpm for Linux ARM64' (#116) from fix/cargo-config-sodium into beta
Some checks failed
Test / frontend-typecheck (push) Successful in 1m56s
Test / rust-tests (push) Successful in 21m57s
Release Beta / build-macos-arm64 (push) Successful in 3m17s
Release Beta / build-windows-amd64 (push) Failing after 11m5s
Release Beta / build-linux-amd64 (push) Successful in 11m31s
Release Beta / autotag (push) Successful in 10s
Release Beta / build-linux-arm64 (push) Successful in 13m20s
Release Beta / changelog (push) Successful in 1m21s
Test / rust-fmt-check (push) Successful in 18m2s
Test / frontend-tests (push) Successful in 1m46s
Test / rust-clippy (push) Successful in 19m44s
Reviewed-on: #116
2026-06-19 03:26:36 +00:00
Shaun Arman
95b7dec759 fix(build): add memset_shim for Windows MinGW and rpm for Linux ARM64
All checks were successful
Test / rust-clippy (pull_request) Successful in 14m26s
Test / rust-tests (pull_request) Successful in 16m24s
Test / frontend-tests (pull_request) Successful in 1m41s
Test / frontend-typecheck (pull_request) Successful in 1m53s
PR Review Automation / review (pull_request) Successful in 4m47s
Test / rust-fmt-check (pull_request) Successful in 13m16s
2026-06-18 22:08:30 -05:00
b5778306fc Merge pull request 'fix/cargo-config-sodium' (#115) from fix/cargo-config-sodium into beta
Some checks failed
Release Beta / build-macos-arm64 (push) Successful in 22m17s
Release Beta / autotag (push) Successful in 13s
Release Beta / changelog (push) Successful in 2m6s
Test / frontend-tests (push) Successful in 2m35s
Test / frontend-typecheck (push) Successful in 2m46s
Release Beta / build-linux-amd64 (push) Successful in 10m37s
Release Beta / build-linux-arm64 (push) Failing after 22m25s
Release Beta / build-windows-amd64 (push) Failing after 10m43s
Test / rust-clippy (push) Failing after 25m16s
Test / rust-tests (push) Failing after 25m14s
Test / rust-fmt-check (push) Failing after 25m18s
Reviewed-on: #115
2026-06-19 02:34:09 +00:00
Shaun Arman
0c774b6756 refactor(pr-review): switch from deprecated qwen3-coder-next to qwen3.5-122b-think
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
2026-06-18 21:33:02 -05:00
Shaun Arman
10fefe3088 fix(ci): install libsodium-dev in release-beta build jobs
Some checks failed
Test / frontend-tests (pull_request) Successful in 1m50s
Test / rust-tests (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Successful in 2m1s
PR Review Automation / review (pull_request) Failing after 4m23s
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
2026-06-18 21:12:14 -05:00
Shaun Arman
fa54c5ee4e fix(ci): install libsodium-dev in build jobs instead of using SODIUM_LIB_DIR hacks 2026-06-18 21:12:14 -05:00
ee909c9cf5 Merge pull request 'fix(build): remove SODIUM_USE_PKG_CONFIG from .cargo/config.toml [env] block' (#114) from fix/cargo-config-sodium into beta
Some checks failed
Release Beta / autotag (push) Successful in 22s
Test / frontend-tests (push) Successful in 1m56s
Release Beta / changelog (push) Successful in 1m41s
Test / frontend-typecheck (push) Successful in 2m5s
Release Beta / build-linux-amd64 (push) Failing after 5m34s
Release Beta / build-linux-arm64 (push) Failing after 6m31s
Release Beta / build-windows-amd64 (push) Successful in 12m20s
Test / rust-fmt-check (push) Successful in 15m50s
Test / rust-clippy (push) Successful in 17m51s
Test / rust-tests (push) Successful in 19m43s
Release Beta / build-macos-arm64 (push) Failing after 11m41s
Renovate / renovate (push) Failing after 28s
Reviewed-on: #114
2026-06-18 02:24:58 +00:00
Shaun Arman
8c29e7a7e3 fix(build): remove SODIUM_USE_PKG_CONFIG from .cargo/config.toml [env] block
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Cargo injects [env] entries directly into build script environments,
bypassing shell-level unset and env -u entirely. SODIUM_USE_PKG_CONFIG
was set to "0" in [env], which libsodium-sys-stable build.rs treats as
"pkg-config enabled" (env::var().is_ok() returns true for any value
including "0"). Combined with SODIUM_LIB_DIR set in the workflow, this
triggered the incompatibility panic on every build.

The original comment claiming this "avoids memset_explicit on Windows"
was incorrect — SODIUM_USE_PKG_CONFIG controls detection strategy, not
link behaviour. The actual Windows memset_explicit fix is handled via
SODIUM_LIB_DIR pointing to pre-built MinGW sodium.
2026-06-17 21:22:55 -05:00
cd7bea9ec5 Merge pull request 'fix(ci): use env -u instead of unset to drop SODIUM_USE_PKG_CONFIG' (#113) from fix/env-u-sodium into beta
Some checks failed
Release Beta / autotag (push) Successful in 14s
Release Beta / changelog (push) Successful in 1m26s
Test / frontend-tests (push) Successful in 1m53s
Test / frontend-typecheck (push) Successful in 2m0s
Release Beta / build-linux-amd64 (push) Failing after 5m4s
Release Beta / build-windows-amd64 (push) Failing after 5m50s
Release Beta / build-linux-arm64 (push) Failing after 5m54s
Release Beta / build-macos-arm64 (push) Successful in 8m19s
Test / rust-fmt-check (push) Has been cancelled
Test / rust-tests (push) Has been cancelled
Test / rust-clippy (push) Has been cancelled
Reviewed-on: #113
2026-06-18 02:09:02 +00:00
Shaun Arman
0536a6767b fix(ci): use env -u instead of unset to drop SODIUM_USE_PKG_CONFIG
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
bash unset modifies the current shell's environment but the act_runner
at 172.0.0.29 re-injects runner-level environment variables before each
cargo invocation, making unset ineffective. env -u removes the variable
from the child process's environment at the exec() level, bypassing any
runner re-injection entirely.

Applies to all three non-macOS platforms (linux-amd64, windows-amd64,
linux-arm64) in both release-beta.yml and auto-tag.yml.
2026-06-17 20:35:50 -05:00
a49fbd7ebe Merge pull request 'fix(ci): unset SODIUM_USE_PKG_CONFIG before cargo builds (beta)' (#110) from fix/unset-sodium-pkg-config-beta into beta
Some checks failed
Release Beta / autotag (push) Successful in 9s
Test / frontend-tests (push) Successful in 1m49s
Test / frontend-typecheck (push) Successful in 1m58s
Release Beta / changelog (push) Successful in 1m53s
Release Beta / build-linux-amd64 (push) Failing after 4m54s
Release Beta / build-windows-amd64 (push) Failing after 5m31s
Release Beta / build-linux-arm64 (push) Failing after 5m50s
Release Beta / build-macos-arm64 (push) Successful in 8m13s
Test / rust-fmt-check (push) Successful in 15m32s
Test / rust-clippy (push) Successful in 17m32s
Test / rust-tests (push) Successful in 19m24s
Reviewed-on: #110
2026-06-18 01:23:08 +00:00
Shaun Arman
fffd0b7400 fix(ci): unset SODIUM_USE_PKG_CONFIG before cargo builds on all platforms
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
The libsodium-sys-stable build.rs panics if both SODIUM_LIB_DIR and
SODIUM_USE_PKG_CONFIG are set simultaneously. The runner infrastructure
at 172.0.0.29 has SODIUM_USE_PKG_CONFIG in its container environment
(not traceable to any workflow file or Docker image ENV layer), which
conflicts with the SODIUM_LIB_DIR approach used for cross-compilation.

Explicitly unset SODIUM_USE_PKG_CONFIG in the shell before npm/cargo
runs on all three platforms (linux-amd64, windows-amd64, linux-arm64)
in both release-beta.yml and auto-tag.yml. This is a defensive no-op
when the variable is absent, and a clean fix when it is present.
2026-06-17 20:22:35 -05:00
721192edb0 Merge pull request 'chore: merge master into beta — resolve SODIUM_USE_PKG_CONFIG conflict in auto-tag.yml' (#112) from fix/sync-master-sodium-unset into beta
Some checks failed
Release Beta / changelog (push) Has been cancelled
Release Beta / build-linux-amd64 (push) Has been cancelled
Release Beta / build-windows-amd64 (push) Has been cancelled
Release Beta / build-macos-arm64 (push) Has been cancelled
Release Beta / build-linux-arm64 (push) Has been cancelled
Release Beta / autotag (push) Has been cancelled
Test / frontend-typecheck (push) Has been cancelled
Test / rust-tests (push) Has been cancelled
Test / frontend-tests (push) Has been cancelled
Test / rust-clippy (push) Has been cancelled
Test / rust-fmt-check (push) Has been cancelled
Reviewed-on: #112
2026-06-18 01:21:51 +00:00
Shaun Arman
ec20f343c4 chore: merge master into beta — resolve SODIUM_USE_PKG_CONFIG conflict in auto-tag.yml
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Master added `unset SODIUM_USE_PKG_CONFIG` to the linux-amd64 and
linux-arm64 build steps in auto-tag.yml (PR #111). Beta's copy of
auto-tag.yml was already ahead of master via the previous sync but
lacked those two unset lines, causing a line-level conflict.

Resolution: take master's version in both conflict regions, adding the
unset to both linux build steps. All three platforms (amd64, Windows,
arm64) now have consistent SODIUM_LIB_DIR + unset configuration.
2026-06-17 20:20:39 -05:00
gitea-actions[bot]
7ae39bc050 chore: update CHANGELOG.md for v1.2.3 [skip ci] 2026-06-18 01:17:21 +00:00
df833e8464 Merge pull request 'fix(ci): unset SODIUM_USE_PKG_CONFIG and use SODIUM_LIB_DIR in auto-tag.yml' (#111) from fix/unset-sodium-pkg-config-master into master
Some checks failed
Auto Tag / autotag (push) Successful in 16s
Auto Tag / wiki-sync (push) Successful in 15s
Sync Beta from Master / sync (push) Failing after 1m9s
Test / frontend-tests (push) Successful in 1m40s
Test / frontend-typecheck (push) Successful in 1m55s
Auto Tag / changelog (push) Successful in 1m59s
Auto Tag / build-macos-arm64 (push) Successful in 5m37s
Auto Tag / build-linux-amd64 (push) Failing after 4m38s
Test / rust-clippy (push) Has been cancelled
Test / rust-fmt-check (push) Has been cancelled
Test / rust-tests (push) Has been cancelled
Auto Tag / build-linux-arm64 (push) Has been cancelled
Auto Tag / build-windows-amd64 (push) Has been cancelled
Reviewed-on: #111
2026-06-18 01:14:15 +00:00
Shaun Arman
a15e69413a fix(ci): unset SODIUM_USE_PKG_CONFIG and use SODIUM_LIB_DIR in auto-tag.yml
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
The libsodium-sys-stable build.rs panics when both SODIUM_LIB_DIR and
SODIUM_USE_PKG_CONFIG are set simultaneously. The runner environment at
172.0.0.29 has SODIUM_USE_PKG_CONFIG set (not traceable to any workflow
file or Docker image ENV layer), which conflicts with any step that sets
SODIUM_LIB_DIR.

For all three platform builds (linux-amd64, windows-amd64, linux-arm64):
- Add `unset SODIUM_USE_PKG_CONFIG` to the shell before cargo runs
- Switch Linux builds from inline apt-get to SODIUM_LIB_DIR (Docker
  images already include libsodium-dev, removing the redundant install)
- Extend arm64 PKG_CONFIG_PATH to include /usr/aarch64-linux-gnu/lib/pkgconfig
  (matching the beta workflow for consistency)

The unset is a no-op when the variable is absent; it cleanly clears any
ambient value injected by the runner infrastructure.
2026-06-17 20:12:04 -05:00
85f26225ba Merge pull request 'fix(ci): correct SODIUM_LIB_DIR config in release-beta.yml' (#109) from fix/beta-sodium-libdir into beta
Some checks failed
Release Beta / autotag (push) Successful in 9s
Test / frontend-tests (push) Successful in 1m49s
Release Beta / changelog (push) Successful in 1m48s
Test / frontend-typecheck (push) Successful in 1m58s
Release Beta / build-linux-amd64 (push) Failing after 4m50s
Release Beta / build-windows-amd64 (push) Failing after 5m29s
Release Beta / build-linux-arm64 (push) Failing after 5m50s
Release Beta / build-macos-arm64 (push) Successful in 11m26s
Test / rust-fmt-check (push) Successful in 16m16s
Test / rust-clippy (push) Successful in 18m11s
Test / rust-tests (push) Successful in 20m1s
Reviewed-on: #109
2026-06-18 00:48:49 +00:00
Shaun Arman
648adf082e fix(ci): correct SODIUM_LIB_DIR config in release-beta.yml
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Tested locally with Ubuntu 22.04 + libsodium-sys-stable 1.24.0:
- No env vars → install_from_source() needs 'make', fails in slim containers
- SODIUM_LIB_DIR alone → works when libsodium is installed in the image
- SODIUM_LIB_DIR + SODIUM_USE_PKG_CONFIG → immediate panic (incompatible by design)

Fixes three broken build targets introduced by the merge conflict resolution:
- linux-amd64: was missing all sodium config, add SODIUM_LIB_DIR
- windows: had SODIUM_LIB_DIR + SODIUM_USE_PKG_CONFIG (incompatible), remove the latter
- linux-arm64: was missing sodium config, add SODIUM_LIB_DIR
2026-06-17 19:46:58 -05:00
a0eea43a0e Merge pull request 'chore: merge master into beta — resolve libsodium workflow conflicts' (#108) from fix/sync-master-to-beta into beta
Some checks failed
Release Beta / autotag (push) Successful in 23s
Test / frontend-tests (push) Successful in 1m56s
Test / frontend-typecheck (push) Successful in 2m8s
Release Beta / changelog (push) Successful in 1m50s
Release Beta / build-linux-amd64 (push) Failing after 5m1s
Release Beta / build-windows-amd64 (push) Failing after 5m13s
Release Beta / build-linux-arm64 (push) Failing after 5m47s
Release Beta / build-macos-arm64 (push) Successful in 7m50s
Test / rust-fmt-check (push) Successful in 16m39s
Test / rust-clippy (push) Successful in 18m38s
Test / rust-tests (push) Successful in 20m5s
Reviewed-on: #108
2026-06-18 00:21:22 +00:00
Shaun Arman
a62a59c5dc chore: merge master into beta — resolve libsodium workflow conflicts
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Resolves conflicts in auto-tag.yml and release-beta.yml caused by two
independent libsodium fixes landing on separate branches (PR #105 on beta
via SODIUM_LIB_DIR, PR #106 on master via apt-get install).

Resolution keeps beta's approach throughout: SODIUM_LIB_DIR env vars
pointing at pre-installed system libraries, with no runtime apt-get install.
Also carries forward master's Dockerfile.linux-arm64 libsodium addition and
CHANGELOG.md update.
2026-06-17 19:19:30 -05:00
gitea-actions[bot]
0550066e70 chore: update CHANGELOG.md for v1.2.3 [skip ci] 2026-06-18 00:09:15 +00:00
450ef84da7 Merge pull request 'fix(ci): add libsodium to all build environments' (#106) from fix/updater-issues into master
Some checks failed
Auto Tag / autotag (push) Successful in 9s
Auto Tag / wiki-sync (push) Successful in 11s
Build CI Docker Images / windows-cross (push) Successful in 14s
Sync Beta from Master / sync (push) Failing after 58s
Test / frontend-typecheck (push) Successful in 2m0s
Test / frontend-tests (push) Successful in 1m39s
Auto Tag / changelog (push) Successful in 1m47s
Auto Tag / build-windows-amd64 (push) Has been cancelled
Auto Tag / build-linux-arm64 (push) Has been cancelled
Auto Tag / build-macos-arm64 (push) Has been cancelled
Auto Tag / build-linux-amd64 (push) Has been cancelled
Build CI Docker Images / linux-arm64 (push) Has been cancelled
Build CI Docker Images / linux-amd64 (push) Has been cancelled
Test / rust-fmt-check (push) Has been cancelled
Test / rust-clippy (push) Has been cancelled
Test / rust-tests (push) Has been cancelled
Reviewed-on: #106
2026-06-18 00:02:20 +00:00
6ac4123cd4 Merge branch 'master' into fix/updater-issues
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
2026-06-18 00:02:02 +00:00
Shaun Arman
10b931809b fix(ci): add libsodium to all build environments
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
tauri-plugin-stronghold pulls in libsodium-sys-stable which panics at
build time if libsodium is not found via pkg-config — it does not compile
from source. All builder images and the test job inline apt installs were
missing libsodium-dev, breaking every Rust compilation step.

- Add libsodium-dev to Dockerfile.linux-amd64
- Add libsodium-dev (host) + libsodium-dev:arm64 (cross target) to
  Dockerfile.linux-arm64
- Add libsodium-dev to all three Rust jobs in test.yml
- Add inline apt-get install to linux-amd64 and linux-arm64 Build steps
  in auto-tag.yml and release-beta.yml (bridges the timing race between
  build-images and auto-tag triggering on the same push)
- Add SODIUM_LIB_DIR + SODIUM_STATIC to Windows Build env (Dockerfile
  already pre-builds libsodium; this tells the crate where to find it)
2026-06-17 19:00:06 -05:00
3d7342656f Merge pull request 'fix(ci): use SODIUM_LIB_DIR to bypass pkg-config detection' (#105) from fix/libsodium-direct-path into beta
Some checks failed
Release Beta / autotag (push) Successful in 10s
Release Beta / changelog (push) Successful in 1m23s
Test / frontend-tests (push) Successful in 1m46s
Test / frontend-typecheck (push) Successful in 1m58s
Release Beta / build-linux-amd64 (push) Failing after 4m22s
Release Beta / build-windows-amd64 (push) Failing after 4m39s
Release Beta / build-linux-arm64 (push) Failing after 5m4s
Test / rust-fmt-check (push) Successful in 15m5s
Test / rust-clippy (push) Successful in 16m55s
Test / rust-tests (push) Successful in 18m56s
Release Beta / build-macos-arm64 (push) Failing after 20m58s
Renovate / renovate (push) Failing after 12s
Reviewed-on: #105
2026-06-14 20:04:45 +00:00
Shaun Arman
7b2377351a docs: update fix summary with commit history
All checks were successful
Test / frontend-tests (pull_request) Successful in 1m42s
Test / frontend-typecheck (pull_request) Successful in 1m51s
PR Review Automation / review (pull_request) Successful in 3m59s
Test / rust-fmt-check (pull_request) Successful in 11m21s
Test / rust-clippy (pull_request) Successful in 13m23s
Test / rust-tests (pull_request) Successful in 15m10s
2026-06-14 11:00:06 -05:00
Shaun Arman
1172f20137 refactor(ci): move SODIUM_LIB_DIR to job-level env
Some checks failed
PR Review Automation / review (pull_request) Successful in 3m20s
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Moved SODIUM_LIB_DIR from per-step env blocks to job-level env for all
three Rust test jobs (rust-fmt-check, rust-clippy, rust-tests).

Benefits:
- Applies to ALL cargo commands in the job, including generate-lockfile
- More maintainable - single declaration per job
- Consistent with best practices for job-wide environment variables

Addresses automated review feedback.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-06-14 10:59:42 -05:00
Shaun Arman
b20deab391 fix: remove use-pkg-config feature conflicting with SODIUM_LIB_DIR
Some checks failed
Test / frontend-tests (pull_request) Successful in 1m39s
Test / frontend-typecheck (pull_request) Successful in 1m47s
PR Review Automation / review (pull_request) Successful in 3m43s
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
The use-pkg-config feature was added in the previous PR and conflicts
with SODIUM_LIB_DIR. The build script errors with:

  "SODIUM_LIB_DIR is incompatible with SODIUM_USE_PKG_CONFIG.
   Set the only one env variable"

Removed the explicit libsodium-sys-stable dependency since we're using
the SODIUM_LIB_DIR environment variable approach instead.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-06-14 10:52:55 -05:00
Shaun Arman
863868b2fc fix(ci): use SODIUM_LIB_DIR to bypass pkg-config detection
Some checks failed
Test / frontend-tests (pull_request) Successful in 1m40s
Test / frontend-typecheck (pull_request) Successful in 1m51s
PR Review Automation / review (pull_request) Successful in 3m32s
Test / rust-fmt-check (pull_request) Successful in 11m27s
Test / rust-tests (pull_request) Failing after 11m53s
Test / rust-clippy (pull_request) Failing after 11m55s
Directly specify libsodium library paths via SODIUM_LIB_DIR environment
variable instead of relying on pkg-config detection. This is the highest
priority method in libsodium-sys-stable's build.rs and bypasses all
pkg-config/vcpkg logic.

Platform-specific paths:
- Linux x86_64: /usr/lib/x86_64-linux-gnu
- Linux aarch64: /usr/lib/aarch64-linux-gnu
- Windows MinGW: /usr/x86_64-w64-mingw32/lib

Changes:
- test.yml: Add SODIUM_LIB_DIR to all cargo commands
- auto-tag.yml: Add SODIUM_LIB_DIR to all build jobs

This resolves "libsodium not found via pkg-config or vcpkg" by telling
the build script exactly where libsodium is installed.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-06-14 10:24:46 -05:00
bce0a3e696 Merge pull request 'fix(ci): enable libsodium pkg-config feature across all platforms' (#104) from fix/libsodium-use-pkg-config into beta
Some checks failed
Release Beta / autotag (push) Successful in 10s
Release Beta / changelog (push) Successful in 1m32s
Test / frontend-tests (push) Successful in 1m47s
Test / frontend-typecheck (push) Successful in 1m56s
Release Beta / build-macos-arm64 (push) Successful in 4m35s
Release Beta / build-linux-amd64 (push) Failing after 4m37s
Release Beta / build-windows-amd64 (push) Failing after 5m6s
Release Beta / build-linux-arm64 (push) Failing after 5m16s
Test / rust-fmt-check (push) Successful in 15m8s
Test / rust-clippy (push) Successful in 16m56s
Test / rust-tests (push) Successful in 19m2s
Reviewed-on: #104
2026-06-14 14:23:33 +00:00