Skip to content

ci + code quality: rustfmt, clippy, TS strictness, typed errors, plugin parity - #38

Merged
sam-phinizy merged 7 commits into
mainfrom
claude/issue-25-K9lmq
Mar 25, 2026
Merged

ci + code quality: rustfmt, clippy, TS strictness, typed errors, plugin parity#38
sam-phinizy merged 7 commits into
mainfrom
claude/issue-25-K9lmq

Conversation

@sam-phinizy

@sam-phinizy sam-phinizy commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Test plan

  • CI Rustfmt job fails on formatting drift
  • CI Clippy job fails on clippy warnings
  • CI Typecheck job fails on unused locals/params and switch fallthrough
  • CI Tauri Plugin Parity job fails on JS/Rust plugin mismatches
  • Existing Cargo Check, Cargo Test, Build Frontend, Vitest jobs pass
  • Tauri command interface unchanged for frontend consumers (CommandError converts to String at boundary)

Closes #24, #25, #26, #28, #30

https://claude.ai/code/session_01FSQqrGavct9yb6Ddsf9edM

claude added 5 commits March 25, 2026 01:25
Add rustfmt (--check) and clippy (-D warnings) jobs to CI workflow.
Fix existing formatting drift via cargo fmt and resolve clippy warnings
(unused variable, too_many_arguments) so current main passes cleanly.

Closes #25

https://claude.ai/code/session_01FSQqrGavct9yb6Ddsf9edM
Add script/check-tauri-versions that compares @tauri-apps/plugin-*
entries in package.json against tauri-plugin-* in Cargo.toml. Fails
on mismatches or unexpected one-sided plugins, with an allowlist for
intentional exceptions. Runs as a lightweight CI job on ubuntu-latest.

Closes #28

https://claude.ai/code/session_01FSQqrGavct9yb6Ddsf9edM
Split monolithic CI into three workflow files:
- rust.yml: fmt, clippy, cargo check, cargo test (macos-latest)
- ts.yml: typecheck, frontend build, vitest (ubuntu-latest)
- ci.yml: orchestrator for workflow_call + plugin parity check

Each workflow triggers independently on push/PR so Rust-only and
TS-only regressions fail fast without waiting for unrelated jobs.

Closes #24

https://claude.ai/code/session_01FSQqrGavct9yb6Ddsf9edM
…rough

Enable noUnusedLocals, noUnusedParameters, and noFallthroughCasesInSwitch
in tsconfig.json. Fix pre-existing type errors: add missing AppCommandContext
fields in CommandPalette test mock, fix WorkspaceIndexStatus[] return type
annotation, and correct ts-rs binding import path in FileAnnotations.ts.

Closes #26

https://claude.ai/code/session_01FSQqrGavct9yb6Ddsf9edM
Add CommandError enum with variants for Io, Git, Json, Sidecar,
NotFound, and InvalidArgument errors. Replace ad-hoc .map_err(|e|
e.to_string()) patterns with idiomatic ? operator using From impls.
Migrate annotations, diff, export, files, and git command modules
to use CommandResult<T>. Tauri boundary compatibility preserved via
From<CommandError> for String.

Closes #30

https://claude.ai/code/session_01FSQqrGavct9yb6Ddsf9edM
@sam-phinizy sam-phinizy changed the title ci: enforce rustfmt and clippy in pull requests ci + code quality: rustfmt, clippy, TS strictness, typed errors, plugin parity Mar 25, 2026
claude added 2 commits March 25, 2026 11:11
- Implement From<CommandError> for tauri::ipc::InvokeError (Tauri v2
  requires Into<InvokeError>, not Into<String>)
- Move FileAnnotations to redpen-core to fix ts-rs cross-crate import
  path resolution (was generating ../../../../ src/lib/bindings/Annotation)
- Fix clippy: use is_some_and instead of map_or, flatten iterator
  instead of nested if-let
- Fix typecheck CI: remove svelte-kit sync (not a SvelteKit project)
- Add bun setup to Cargo Test CI job for frontend dependency resolution

https://claude.ai/code/session_01FSQqrGavct9yb6Ddsf9edM
@sam-phinizy
sam-phinizy merged commit 73a91ef into main Mar 25, 2026
8 checks passed
@sam-phinizy
sam-phinizy deleted the claude/issue-25-K9lmq branch March 25, 2026 11:50
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.

ci: split quality gates into focused Rust and TS workflows

2 participants