Repository navigation
fix(ci): restore target-correct native Rust builds - #7
Conversation
|
Coordination: a separate continuous-publication cutover is being implemented in the isolated ci/fork-cd worktree. It will rebase onto this native-CI prerequisite after this PR lands through its normal review/checks; it does not absorb or overwrite these native changes. The canonical checkout and this PR remain owned by the native-CI task. Publication cutover will replace manual dispatch with automatic green-default-branch releases, installed-artifact smoke, healthy-channel promotion, and agent-only failure alerts. Please keep the native-CI change independently reviewed and landed; no overlapping edits requested. |
Independent exact-head reviewCommand: Fresh read-only review of the complete PR title/body/diff and surrounding source. Exact reviewed head: Reviewer outputDecision: APPROVE I found no blockers. I read the full diff and the surrounding files: What I checked and found correct
Advisory, not blocking
Verification limits
|
Fresh independent final-head reviewCommand: Fresh read-only review of the full title/body/diff and surrounding source for all 11 files. Exact reviewed head: Evidence clarification: earlier Intel/ARM build/check successes predate the three native-helper lock updates; the reviewer's statement about those successes covering current locked resolution is an inference, not new-head proof. Current-head native CI will supply that proof. Actual pure-pixel smoke is already exercised: 72 converter cases plus off-host real-image smoke with 126 screenshot scenarios, 8 invalid layouts and 6 icon-buffer cases. No OS capture APIs, interactive desktop/browser, signing or publication claimed. Reviewer outputVerdict: APPROVE on What I checked
Non-blocking advisories
Limitations
|
Fresh independent exact landing-head reviewCommand: Fresh read-only review of full title/body/diff and surrounding native source for all 11 files. Exact reviewed head: Reviewer outputAPPROVE for exact head I found no blockers. I read the final versions of What I checked
Verification limits
Non-blocking: the |
Fresh independent exact-head review, complete 12-file repairCommand: Exact reviewed head: Reviewer outputAPPROVE for head Diff since the last full APPROVE
Source semantics
CI
Verification limits
|
|
Native failure diagnosis from completed run36798899230: all four failed jobs (both standalone Clippy and ARM/Windows Rust-cache jobs) fail at the same five clippy::useless_borrows_in_formatting errors in apps/desktop/src-tauri/src/main.rs:29-32: &event.level, &msg, &event.user, &event.tags, &event.contexts passed to println!. Cache compilation itself reached the Clippy step; Intel cache and both real debug desktop builds passed. These are formatting-macro auto-borrows, so removing the redundant explicit borrows is the minimal repair; do not disable -D warnings or the gates. Diagnostics retrieved successfully with native gh run view36798899230 --repo r90group/Cap --log-failed; the GitHub wrapper incorrectly returned unavailable logs. Separate CD PR8 remains isolated and will rebase after this prerequisite lands. |
Landed repair and actual default/benchmark evidenceNormal squash merge of exact independently reviewed head
Active performance ownerPerformance Regressions remains active and unmodified. Retained historical run https://github.com/r90group/Cap/actions/runs/36386337169 failed only Windows with the same FFmpeg E0080 one-byte struct issue; Mac succeeded. Shared native setup repair addresses that compilation failure. Actual post-repair existing owner run https://github.com/r90group/Cap/actions/runs/36808721819 on main
Other changed-path proof and limitsExact pixel core execution passed 72 BGRA boundary/padding/alpha/empty-height cases and, off-host with real image 0.25.8, 126 RGB/RGBA padded-row scenarios, 8 invalid layouts, 6 Windows icon cases. All throwaway code and smoke task resources removed; standing cap-ws retained. No operator desktop/browser or devserver touched. Signing/publication, interactive recording and OS capture APIs not exercised by this repair. Own repair branch/worktree/lease removed. Foreign canonical release/UI work and foreign Cap-cd resources preserved, explicitly parked rather than reset/stashed/deleted. Session-close check: ok true, parked, no blockers or owned Cap leases. Read-only evidence retained under the run-scoped Cap directory. |
Root cause
The three Rust cache jobs on main were failing during real compilation, not cache restore. Original run: https://github.com/r90group/Cap/actions/runs/32886434230 (logs expired). Fresh native triage on the same
78913a4be1b0221f9c720d26588e68376b0d8cf1head: https://github.com/r90group/Cap/actions/runs/36784226990.cap-muxersidecar. The x86_64 matrix entry also silently built the ARM host because Cargo commands omitted--target.E0080). Setup forced Visual Studio's newer LLVM instead of standalone LLVM 20.1.8 on PATH; locked bindgen 0.70.1 predates the LLVM 22 AST fix. Primary sources: Missing fields in nested class with LLVM 22 rust-lang/rust-bindgen#3264 and Bump bindgen to 0.72 for LLVM 22 compatibility CCExtractor/rusty_ffmpeg#150.cmake 0.1.54panicking on Visual Studio 18/2026 during Whisper's real native build. The released compatibility fix iscmake 0.1.55: Add Visual Studio 2026 support rust-lang/cmake-rs#255.[build]instead of[env].Repair
clang(or explicitCLANG_PATH) and derive its pairedlibclang.dll. Keep these native keys under[env]with or without sccache.cmake 0.1.54 -> 0.1.55,cc 1.2.37 -> 1.2.46,find-msvc-tools 0.1.1 -> 0.1.5. Cargo resolution preserves all 1,159 other locked package records; no blanket dependency/FFmpeg upgrade, runner downgrade, vendoring, or generator fallback.No useful check is disabled or suppressed. No Sonar steps were present. Unrelated operator release/UI edits are excluded. Existing consumer tests remain unchanged; no tests merely assert workflow text. The same lint also occurs in test-only fixtures outside production Clippy scope; unrelated fixtures are intentionally untouched.
Verification
openai-codex/gpt-6.1-sol --thinking highfor all repair revisions.node --check scripts/setup.js: passed after its completed revision.image 0.25.8passed 126 RGB/RGBA padded-row scenarios, 8 invalid-layout cases and 6 Windows icon cases. No desktop/browser or server was opened.eprintln!redundant borrows in deeplink diagnostics, now repaired without changing messages or disabling Clippy.println!borrows in existing debug Sentry diagnostics, now removed without changing logging or debug/release behavior.anthropic/claude-sonnet-5-5 --thinking highapproved exact final 12-file head98c68656dc9189de0b4fca7087cd590ba840ec2a, no blockers: fix(ci): restore target-correct native Rust builds #7 (comment).fafa4933c1f5f097152ddd46b0a61ab2693197eaon main. Its push CI https://github.com/r90group/Cap/actions/runs/36804850042 completed success on that exact SHA: all 13 jobs actually ran and succeeded, including Intel/ARM/Windows cache compilation/release checks, ARM/Windows Clippy, and both real desktop builds. Default head was independently confirmed as that SHA at completion; concurrent CD PR ci: publish verified fork desktop artifacts on merge #8 subsequently advanced main to its direct childeb7ca4b191dcca92f9d932d73fdfafe55177c8af.E0080one-byte struct failure repaired by shared setup; Mac passed. Current benchmark owner https://github.com/r90group/Cap/actions/runs/36808721819 completed successfully on repaired mainfafa4933: both suite invocations and enforcement steps succeeded. Actual artifacts: Mac 3 passed/0 failed/0 skipped/0 errors, including a real 120-frame export; Windows 0 passed/3 skipped/0 failed/0 errors because its pre-existing GitHub Actions software-adapter guard rejected unrepresentative Microsoft Basic Render Driver metrics. No benchmark source/gate change or new suppression; Windows GPU performance is not claimed.eb7ca4b191dcca92f9d932d73fdfafe55177c8af: 12 jobs succeeded, including every native cache/Clippy/desktop job; only unchanged plugin-dependency verification was path-filter skipped. That commit changes release/UI ownership, not the CI or benchmark workflow, shared native setup, Cargo lock, or benchmark Rust inputs. Its newly added manualalert-route-probedeliberately executesexit 1to exercise triage; that expected probe failure is not a CI/benchmark regression.Signing, installer publication, interactive recording, and OS capture APIs are not exercised by this CI repair and are not claimed. Native build results, pure pixel-path execution, reviewed head and new-main evidence are recorded on this PR.