Skip to content

Improve Windows startup, icons, CI builds, and result preparation - #20

Merged
JetSquirrel merged 2 commits into
mainfrom
codex/windows-startup-icon-performance
Oct 6, 2026
Merged

JetSquirrel merged 2 commits into
mainfrom
codex/windows-startup-icon-performance

Conversation

@JetSquirrel

Copy link
Copy Markdown
Owner

Opening DuckLocal from Explorer currently creates a console window and uses a generic executable icon. This change uses the Windows GUI subsystem, embeds the existing duck artwork as a seven-size icon resource, and attaches CLI commands to the caller's console while preserving redirected handles and LSP pipes.

It also fixes Windows file-lock failures when reopening the current database or promoting an attached database to primary. The old primary stays alive during a switch, and a failed open restores the attachment and default database. Regression tests cover reopening, app connection clones, and rollback. A missing comma in main's merged icon list is repaired so the integrated branch builds.

Performance and Windows CI

  • Category charts retain only the first 200 drawable rows instead of allocating every category before truncation, while counting all valid rows for the notice. Column fitting stops once it reaches the width cap.
  • Add an optional compact profile with Rust size optimization and DuckDB C++ optimization level 3. Its size/performance tradeoff has not been benchmarked.
  • Windows CI builds the app and tests together with cargo test --no-run, then reports test execution separately. Remove the preceding standalone Windows build, omit CI debug symbols, skip manual performance probes, retain dependency caches on failure, and cancel obsolete runs for the same branch/PR.
  • Add PE subsystem, embedded icon payload, and redirected CLI checks to Windows CI and release packaging, plus Windows build instructions in both READMEs.

The previous successful Windows job spent 45m40s on the standalone build and another 9m04s compiling tests; actual tests took about 13 seconds. Hosted CI savings still need measurement, and the first build with the new debug settings requires a fresh cache.

Validation

  • On Windows, cargo test --locked --offline -- --skip perf_probe::: 368 functional tests passed; nine manual probes excluded.
  • cargo check --locked --offline --features scroll-bench: passed.
  • python scripts/check-windows.py target/debug/ducklocal.exe: GUI subsystem, all seven duck icon payloads, CLI stdin/stdout passed.
  • CI/release YAML parsed and Windows build/test/cache structure checked; git diff --check passed.
  • Separate debug probes on this branch: 100k-category preparation 46.61 → 6.90 ms, allocations 200,016 → 407, allocated bytes 18.87 → 0.04 MB; long-text column fitting 444.65 → 2.21 ms. These are local microbenchmarks, not hosted CI or release-performance measurements.

@JetSquirrel
JetSquirrel merged commit 48f7092 into main Oct 6, 2026
4 of 6 checks passed
@JetSquirrel
JetSquirrel deleted the codex/windows-startup-icon-performance branch October 6, 2026 09:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant