Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -877,6 +877,41 @@ jobs:
run: cargo test --manifest-path desktop/src-tauri/Cargo.toml --target $env:TARGET
env:
CMAKE_POLICY_VERSION_MINIMUM: "3.5"
- name: Diagnose loader failure (canary only)
if: failure()
shell: pwsh
run: |
$exe = Get-ChildItem "desktop\src-tauri\target\$env:TARGET\debug\deps\buzz_lib-*.exe" | Select-Object -First 1
if (-not $exe) { Write-Host "no buzz_lib exe found"; exit 0 }
Write-Host "=== EXE: $($exe.FullName) $($exe.Length) bytes ==="
$vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
$vs = & $vswhere -latest -property installationPath
$dumpbin = Get-ChildItem "$vs\VC\Tools\MSVC\*\bin\Hostx64\x64\dumpbin.exe" | Select-Object -First 1
Write-Host "=== DEPENDENTS ==="
& $dumpbin.FullName /dependents $exe.FullName
Write-Host "=== DLL LOAD PROBE ==="
$deps = (& $dumpbin.FullName /dependents $exe.FullName) | Where-Object { $_ -match '^\s+\S+\.dll$' } | ForEach-Object { $_.Trim() }
foreach ($d in $deps) {
try { [void][System.Runtime.InteropServices.NativeLibrary]::Load($d); Write-Host "OK $d" }
catch { Write-Host "FAIL $d :: $($_.Exception.Message)" }
}
Write-Host "=== IMPORTS (per-DLL function list) ==="
& $dumpbin.FullName /imports $exe.FullName
Write-Host "=== GETPROCADDRESS PROBE (catches forwarded-export gaps) ==="
Add-Type -Name K32 -Namespace W -MemberDefinition '
[DllImport("kernel32", SetLastError=true, CharSet=CharSet.Ansi)] public static extern IntPtr LoadLibraryA(string n);
[DllImport("kernel32", SetLastError=true, CharSet=CharSet.Ansi)] public static extern IntPtr GetProcAddress(IntPtr h, string f);'
$cur = $null
(& $dumpbin.FullName /imports $exe.FullName) | ForEach-Object {
if ($_ -match '^\s+(\S+\.dll)\s*$') { $cur = $Matches[1] }
elseif ($cur -and $_ -match '^\s+[0-9A-F]+\s+([A-Za-z_][A-Za-z0-9_]*)\s*$') {
$fn = $Matches[1]
$h = [W.K32]::LoadLibraryA($cur)
if ($h -eq [IntPtr]::Zero) { Write-Host "NOLIB $cur"; $cur = $null; return }
if ([W.K32]::GetProcAddress($h, $fn) -eq [IntPtr]::Zero) { Write-Host "MISSING $cur :: $fn" }
}
}
Write-Host "probe done"

desktop-build-macos:
name: Desktop Build (macOS)
Expand Down
1 change: 1 addition & 0 deletions desktop/playwright.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ export default defineConfig({
"**/drafts-screenshots.spec.ts",
"**/buzz-theme-screenshots.spec.ts",
"**/channel-sort.spec.ts",
"**/identity-lost.spec.ts",
],
use: {
...devices["Desktop Chrome"],
Expand Down
5 changes: 3 additions & 2 deletions desktop/scripts/check-file-sizes.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,9 @@ const overrides = new Map([
// baked-env-required-badge: getBakedBuildEnvKeys wrapper adds ~16 lines. Queued to split.
// restart-badge: started the queued split — start/stopManagedAgent moved to
// tauriManagedAgents.ts; limit ratcheted down 1388 → 1380 to bank the headroom.
["src/shared/api/tauri.ts", 1380],
// identity-import-keyring: `lost`/`locked` fields in RawIdentity + getIdentity/
// importIdentity mappings + persistCurrentIdentity() command (merged total 1398).
["src/shared/api/tauri.ts", 1398],
// readiness-gate: PersonaDialog.tsx threads computeLocalModeGate +
// requiredCredentialEnvKeys + RequiredFieldLabel so the "New agent" dialog
// shows required markers and credential amber rows (parity with
Expand Down Expand Up @@ -198,7 +200,6 @@ const overrides = new Map([
// uid-keyed lockfile path + behavioral tests add ~303 lines. Load-bearing
// security fix for the lost-update race that stranded agent keys.
["src-tauri/src/secret_store.rs", 1043],
["src-tauri/src/app_state.rs", 1033],
// multi-slot splitting + no-op suppression (#1309): the ReadStateManager
// class grew from ~700 lines to ~1019 with the addition of
// splitContextsIntoBudgetedSlots (pure fn + 5 tests), publishSplitSlots,
Expand Down
4 changes: 4 additions & 0 deletions desktop/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -110,3 +110,7 @@ tempfile = "3"
strip-ansi-escapes = "0.2"

[dev-dependencies]

# CI-experiment (canary): shrink debug binaries — suspected Windows loader size cliff
[profile.dev]
debug = "line-tables-only"
843 changes: 352 additions & 491 deletions desktop/src-tauri/src/app_state.rs

Large diffs are not rendered by default.

Loading
Loading