Refactored two files to improve code health:
1. src-tauri/src/vault/parsing.rs (7.9 → 8.54, +0.64)
- Extracted helper functions to reduce nesting in strip_markdown_chars
(process_wikilink, extract_wikilink_display, process_markdown_link)
- Refactored strip_list_marker to eliminate bumpy road pattern
(strip_unordered_marker, strip_ordered_marker)
2. src/utils/noteListHelpers.ts (9.28 → 10.0, +0.72)
- Reduced cyclomatic complexity in isInboxEntry from 15 to ~4
(hasAnyValidLinks, hasValidBodyLinks, hasValidFrontmatterLinks)
- Extracted complex conditional into wasCreatedBeforeLastModification
Gate threshold raised: 9.31 → 9.33 (conservative, pending CodeScene re-analysis)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CI/CD Setup
GitHub Actions Workflow
Il workflow ci.yml esegue i seguenti check automatici:
1. Tests
- Frontend:
pnpm test - Rust backend:
cargo test
2. Test Coverage
- Frontend: vitest con coverage reporting
- Threshold configurabile in
vitest.config.ts
3. Code Health (CodeScene)
- Delta analysis su ogni PR/push
- Fail se il code health diminuisce
- Richiede secrets configurati (vedi sotto)
4. Documentation Check
- Verifica che se cambia codice in
src/osrc-tauri/, anchedocs/viene aggiornato - Warning only — non blocca il merge, solo un reminder
- Skip con
[skip docs]nel commit message - Aggiorna docs solo se la modifica invalida architettura/astrazioni/design già documentati
5. Lint & Format
- ESLint per frontend
- Clippy + rustfmt per Rust
Setup Required
CodeScene Secrets
Aggiungi questi secrets nel repository GitHub (Settings → Secrets → Actions):
CODESCENE_TOKEN=<your-codescene-pat>
CODESCENE_PROJECT_ID=<your-project-id>
Il PAT di CodeScene è lo stesso che usi localmente (~/.codescene/token). Il project ID lo trovi nella dashboard CodeScene.
Coverage Thresholds
Configura in vitest.config.ts:
export default defineConfig({
test: {
coverage: {
lines: 80,
functions: 80,
branches: 80,
statements: 80,
// Fail CI se sotto threshold
thresholds: {
lines: 80,
functions: 80,
branches: 80,
statements: 80
}
}
}
})
Local Testing
Prima di pushare, puoi testare localmente:
# Run all tests
pnpm test && cargo test
# Check coverage
pnpm test:coverage
# Lint
pnpm lint
cargo clippy
cargo fmt --check
# CodeScene (local)
codescene delta-analysis --base-revision origin/main
Workflow Triggers
- Push: su
maine branchexperiment/* - Pull Request: verso
main
Status Checks
Tutti i check devono passare prima di poter fare merge. Se un check fallisce, vedrai il dettaglio nei logs di GitHub Actions.