Skip to content

release: harden local data handling for iTime 0.2.9 - #2

Merged
lingcang728 merged 1 commit into
mainfrom
fix/deep-audit-safety-20260906
Sep 6, 2026
Merged

release: harden local data handling for iTime 0.2.9#2
lingcang728 merged 1 commit into
mainfrom
fix/deep-audit-safety-20260906

Conversation

@lingcang728

@lingcang728 lingcang728 commented Sep 6, 2026

Copy link
Copy Markdown
Owner

iTime 0.2.9

This PR packages the repository-wide audit fixes into the next patch release and also closes the larger architecture issues identified during the audit.

Reliability and safety

  • Fail closed when the recording setting cannot be loaded. First-run behavior is unchanged, while corrupt/unreadable settings start paused.
  • Keep 90/365-day retention windows exact instead of retaining one extra calendar day.
  • Propagate directory enumeration errors instead of silently reporting incomplete local-data results.
  • Neutralize spreadsheet formula prefixes in CSV exports while preserving raw JSON values.

Architecture and performance

  • Stream full-history JSON/CSV exports directly to a temporary file and atomically promote the finished export, avoiding a second full in-memory export buffer and keeping record traversal bounded.
  • Lazy-load secondary Vue pages so the initial bundle is split instead of carrying every page in the main chunk.
  • Keep keyboard records on the canonical LOCALAPPDATA/iTime/Data path. If that path is unavailable, startup fails safely instead of silently writing keyboard data to the system temp directory.
  • Make exit quiescing recoverable: pause collection without changing the saved preference, flush keyboard data, restore collection if flushing fails, and only exit after the local data boundary is safe.

Release readiness

  • Bump all application version sources to 0.2.9: package.json, package-lock.json, Cargo.toml, Cargo.lock, and tauri.conf.json.
  • Add regression coverage for retention boundaries, streaming record traversal, export cleanup/counts, CSV formula safety, and recording-startup failure behavior.

After merge, tagging the merge commit as v0.2.9 will use the existing Immutable Release workflow to build and publish the portable EXE, NSIS installer, and latest.json from a clean Windows checkout.

Validation

Windows CI is the executable gate for this PR. I will keep the branch open until the final head passes the full repository verification suite.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 6, 2026

Copy link
Copy Markdown

Deploying itime with  Cloudflare Pages  Cloudflare Pages

Latest commit: 2ba3b49
Status: ✅  Deploy successful!
Preview URL: https://404d023f.itime-928.pages.dev
Branch Preview URL: https://fix-deep-audit-safety-202609.itime-928.pages.dev

View logs

@lingcang728 lingcang728 changed the title fix: harden recording startup and local data handling release: harden local data handling for iTime 0.2.9 Sep 6, 2026
@lingcang728
lingcang728 force-pushed the fix/deep-audit-safety-20260906 branch from 5c217a9 to 2ba3b49 Compare September 6, 2026 13:41
@lingcang728
lingcang728 merged commit 6d9acf1 into main Sep 6, 2026
2 checks passed
@lingcang728
lingcang728 deleted the fix/deep-audit-safety-20260906 branch September 6, 2026 13:51
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.

1 participant