Skip to content

feat(desktop): add the first guided SystemDiff capture workflow #13

Description

@XiaojuCH

Problem

SystemDiff's validated capture and diff workflow is still exposed only through the CLI. Ordinary Windows users must manage JSON files and understand snapshot/diff terminology before they can answer the product's core question: what changed on this PC?

Scope

Add the first guided desktop vertical slice using Tauri 2, React, and TypeScript while reusing the existing Rust capture, diff, coverage, and evidence semantics in-process.

The desktop workflow has three primary states:

  1. Ready — explain the purpose and start a capture.
  2. Capturing — keep the before state internally while the user installs, runs, or changes software.
  3. Results — capture the after state, compare it, and show calm human-readable Registry startup and Windows Services changes with optional technical evidence.

Acceptance criteria

  • The user can complete Start capture → make a change → Finish & Compare without PowerShell, JSON, file pickers, or manual snapshot naming.
  • Rust owns capture, diff classification, coverage semantics, and the typed presentation model; TypeScript owns layout, interaction, and localization only.
  • The UI supports en-US and zh-CN, selected from the user's language.
  • Capture/compare work is asynchronous and duplicate actions are rejected.
  • Temporary evidence is collision-safe, app-local, and explicitly cleaned up on finish/cancel with conservative startup recovery.
  • Tauri IPC is narrow: no arbitrary filesystem paths, shell commands, remote content, network client, telemetry, or elevation.
  • A guarded HKCU-only dogfood test proves SystemDiffDogfood is shown as an added startup value and cleans up exact test data.
  • A real Windows desktop screenshot documents only implemented behavior.
  • Rust tests, frontend typecheck/build, desktop build, manual GUI validation, independent review, and CI pass.

Non-goals

Scheduled Tasks, history/baseline management, settings/dashboard/charts, risk scores, signatures/rules/AI/cloud/accounts, updater, installer polish, signing, or an official release.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions