Skip to content

v1.1.1

Choose a tag to compare

@smith-and-web smith-and-web released this 16 Mar 19:51
· 111 commits to main since this release
2da3994

What's Changed

This release addresses all findings from the v1.1.0 peer code review, improving correctness, consistency, and maintainability across the Rust backend and Svelte frontend.

Correctness & Crash Risk

  • Replace all Uuid::parse_str().unwrap() with a parse_uuid() helper that returns proper errors instead of panicking
  • Set PRAGMA foreign_keys = ON at connection open instead of buried in schema DDL
  • Convert all 12 manual BEGIN/COMMIT/ROLLBACK blocks to rusqlite::Transaction with auto-rollback on drop
  • Fix duplicate_scene and duplicate_chapter to copy planning_status from the original instead of hardcoding Fixed

Consistency

  • Migrate on: event directives to Svelte 5 onkeydown/onclick syntax across 6 components
  • Replace .filter_map(|r| r.ok()) with .collect::<Result<Vec<_>, _>>() to propagate deserialization errors (42 instances)
  • Set a restrictive Content Security Policy in tauri.conf.json

Maintainability

  • Extract shared import logic into src/lib/utils/import.ts, deduplicating App.svelte and StartScreen.svelte
  • Add Svelte 5 rune globals and missing DOM globals to ESLint config, remove 8 eslint-disable comments
  • Type IconComponent as ComponentType instead of any

Testing

  • Reach 100% test coverage across all metrics (statements, branches, functions, lines)
  • New test suites for commands.ts and updater.ts
  • Fix E2E test failures caused by guidance overlay intercepting clicks

Cleanup

  • Remove unnecessary typeof window guards in UIStore
  • Use incrementing counter for toast IDs instead of Date.now()
  • Move update_project_modified inside transactions in sync.rs
  • Resolve npm audit (undici) and cargo audit (bytes) vulnerabilities

Full Changelog: v1.1.0...v1.1.1