tftsr-devops_investigation/PR_SUMMARY.md
Shaun Arman 7316339ae2
Some checks failed
Release Beta / autotag (push) Successful in 39s
Release Beta / changelog (push) Successful in 1m26s
Test / frontend-tests (push) Successful in 1m55s
Test / frontend-typecheck (push) Successful in 2m8s
Release Beta / build-macos-arm64 (push) Successful in 4m8s
Release Beta / build-linux-amd64 (push) Failing after 4m39s
Release Beta / build-windows-amd64 (push) Failing after 4m52s
Release Beta / build-linux-arm64 (push) Failing after 5m22s
Test / rust-clippy (push) Has been cancelled
Test / rust-tests (push) Has been cancelled
Test / rust-fmt-check (push) Has been cancelled
fix(ci): resolve libsodium pkg-config detection across all platforms
## Problem
All three CI build platforms (linux-amd64, windows-amd64, linux-arm64)
were failing with libsodium detection errors in release-beta.yml:
- Linux: "libsodium not found via pkg-config or vcpkg"
- Windows: "SODIUM_LIB_DIR is incompatible with SODIUM_USE_PKG_CONFIG"

## Root Cause
The libsodium-sys-stable crate requires explicit environment configuration:
- Linux needs SODIUM_USE_PKG_CONFIG=1 to find libsodium-dev packages
- Windows needs SODIUM_LIB_DIR pointing to pre-built libs OR pkg-config (not both)
- Cross-compilation requires complete PKG_CONFIG_PATH for arch-specific .pc files

## Solution

### release-beta.yml fixes:
1. **linux-amd64**: Added SODIUM_USE_PKG_CONFIG=1
2. **windows-amd64**:
   - Set SODIUM_LIB_DIR=/usr/x86_64-w64-mingw32/lib (was "")
   - Added SODIUM_USE_PKG_CONFIG=no (explicit disable)
   - Standardized SODIUM_STATIC=1 (was "yes")
3. **linux-arm64**:
   - Added SODIUM_USE_PKG_CONFIG=1
   - Extended PKG_CONFIG_PATH to include /usr/aarch64-linux-gnu/lib/pkgconfig

### auto-tag.yml fixes:
- **linux-arm64**: Extended PKG_CONFIG_PATH (same as release-beta.yml)

## Additional Fix
Fixed flaky test `shell::pty::tests::test_is_alive` by adding retry logic
for process reaping to handle OS timing variations (macOS was timing out).

## Validation
 Local build: cargo check passed
 Rust tests: 416 passed, 6 ignored
 Frontend tests: 386 passed (45 files)
 Linting: cargo clippy + eslint passed
 CI validation: pending push to beta branch

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-06-14 04:36:44 -05:00

3.1 KiB

Pull Request Summary

PR #100: Fix Proxmox Remote Add Error

URL: #100

Branch: fix/proxmox-remote-add-errorbeta

Version: 1.2.31.2.4


Problem

Users could not add Proxmox remotes when providing URLs with port numbers (e.g., https://172.0.0.18:8006). The error displayed was: "Failed to add remote"

Root Cause

The RemotesPage.tsx component incorrectly parsed URLs containing ports:

  1. User enters: https://172.0.0.18:8006
  2. Code strips protocol → 172.0.0.18:8006
  3. Code uses this with port still attached as hostname
  4. Code also sends separate port parameter: 8006
  5. Backend receives malformed: url: "172.0.0.18:8006" + port: 8006
  6. Connection fails

Solution

Added URL parsing logic to properly handle ports in both add and edit operations:

// Parse URL to extract hostname and port
let hostname = config.url.replace(/^https?:\/\//, '');
let port = config.type === 'pve' ? 8006 : 8007;

// If URL contains port, extract it
const portMatch = hostname.match(/:(\d+)$/);
if (portMatch) {
  port = parseInt(portMatch[1], 10);
  hostname = hostname.replace(/:\d+$/, '');
}

Now correctly handles:

  • Full URLs with ports: https://172.0.0.18:8006 → hostname: 172.0.0.18, port: 8006
  • Hostnames only: 172.0.0.18 → hostname: 172.0.0.18, port: 8006 (default)
  • Custom ports: https://192.168.1.100:8443 → hostname: 192.168.1.100, port: 8443

Changes

Modified Files

  • src/pages/Proxmox/RemotesPage.tsx
    • Fixed handleAddRemote() function
    • Fixed handleEditRemote() function
    • Added port extraction logic
    • Properly separates hostname from port

Version Bump

  • package.json: 1.2.31.2.4
  • src-tauri/Cargo.toml: 1.2.31.2.4
  • src-tauri/tauri.conf.json: 1.2.31.2.4
  • src-tauri/Cargo.lock: Updated
  • src-tauri/gen/schemas/macOS-schema.json: Regenerated

Commits

  1. 666de6dd - fix(proxmox): parse port from URL when adding remote
  2. 58cbe525 - chore: bump version to 1.2.4
  3. 0b409c32 - chore: update Cargo.lock and schema for v1.2.4

Testing

Completed

  • ESLint checks passed
  • Rust compilation successful
  • Database corruption fixed (removed 0-byte DB)

Required Before Merge

  • Manual test: Add remote with https://172.0.0.18:8006
  • Manual test: Add remote with 172.0.0.18 (should use port 8006)
  • Manual test: Add PBS remote with custom port
  • Manual test: Edit existing remote and verify port changes
  • Verify remote connection succeeds
  • Verify VMs/containers load after adding remote
  • Test with self-signed certificates
  • Test with API token authentication

Stats

  • Files changed: 6
  • Additions: +263 lines
  • Deletions: -10 lines
  • State: Open, mergeable
  • CI Status: Pending

Next Steps

  1. Branch pushed to origin
  2. PR created (#100)
  3. Awaiting review
  4. Manual testing
  5. Merge to beta
  6. Test on beta branch
  7. Merge to master (if applicable)