EngineeringDesktop verification

Proven verification commands

Catalogs build, binding, native-app, verification, and release commands proven by the desktop CI stack.

Summary

The desktop CI stack establishes the canonical build, binding, native-app, verification, and release command set. Questions: exact build/test/lint/verify commands executor plans may cite for crates (jackin-usage, jackin-usage-ffi), the boltffi bindings drift gate, the Swift app, and release verification. Informs: jackin-desktop Method: codebase read (commands proven by CI green usage, not guessed) Vetted: 2026-07-24

Findings

Crates tests

  • cargo nextest run -p jackin-usage -p jackin-usage-ffi --locked — exact CI command for the rust-jackin-usage / rust-jackin-usage-ffi units — .github/workflows/ci-pr.yml (group-rust dispatches ci-unit-rust.yml; per-crate commands in .github/ci/project.toml) (confidence: HIGH)
  • General runner and filters: cargo nextest run, -E 'test(name)', --all-features — TESTING.md (confidence: HIGH)

Bindings drift gate

  • cargo xtask desktop bindings-check — desktop-cadence step, .github/workflows/desktop-cadence.yml (via mise run desktop-ci); requires cargo install boltffi_cli --version 0.30.1 --locked (CI installs it; mise cargo:boltffi_cli provides boltffi per native/README.md) (confidence: HIGH)

App build / verify / run

  • cargo xtask desktop build --version "$JACKIN_APP_VERSION" --build "$JACKIN_APP_BUILD" → native/dist/JackinDesktop.app; cargo xtask desktop verify native/dist/JackinDesktop.app [zip] — desktop-cadence steps (mise run desktop-ci, via desktop-merge/desktop-scheduled); operator wrappers mise run desktop-build|desktop-verify|desktop-run|desktop — mise.toml (confidence: HIGH)
  • The merge cadence also exercises the built app via UI tests (mise run desktop-test-ui, after desktop-ci) (confidence: HIGH)

Swift tests

  • cargo xtask desktop test (mise desktop-test, mise.toml); macOS-only guard require_macos("desktop test") — crates/jackin-xtask/src/desktop.rs:157; full-Xcode alternative printed by xtask: cd native && swift test -c release — crates/jackin-xtask/src/desktop.rs:197 (confidence: HIGH)
  • Snapshot runner stability: GitHub's current official runner-image catalog exposes macOS 26 GA under explicit macos-26 labels, while the moving macos-latest alias was scheduled to transition in June 2026. Native system-font/SF-Symbol golden tests must use explicit macos-26, freeze Dynamic Type/accessibility/animation inputs, and keep tolerant pixel comparison; otherwise the runner major can change without a source diff. — https://github.com/actions/runner-images#available-images (confidence: HIGH)

Workspace lint/fmt gates

  • cargo clippy --workspace --all-targets --all-features --locked -- -D warnings and cargo fmt — workspace baseline, crates/CLAUDE.md (removed in #956; consolidated into root AGENTS.md) (lint section); merge-readiness: cargo xtask ci / cargo xtask ci --fast — CONTRIBUTING.md (confidence: HIGH)

Release verification

  • cargo xtask desktop sign-notarize (mise desktop-sign-notarize), --release verify requires Developer ID + notarization/staple/Gatekeeper — native/README.md (build/verify + CI/release contracts tables); release artifact naming jackin-desktop-<VERSION>-aarch64-apple-darwin.zip — .github/workflows/release.yml:523-549 (confidence: HIGH)

Dead ends and contradictions

  • None; commands converge across mise.toml, xtask source, CI, and docs.

Limitations and open questions

  • None load-bearing; notarization steps need org Apple secrets (release-macos environment — names only, native/README.md).

On this page