You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Windows support: installer fix, sqlite_scanner elimination, CI, test fixes (#66)
## Summary
- **Fix Windows installer** to use `.zip` archives (matching release
workflow) with `Expand-Archive`, including error handling and PS version
guard
- **Eliminate sqlite_scanner dependency on Windows**: skip DuckDB's
sqlite extension entirely, route detail queries through direct SQLite,
use CSV intermediate path for cache building with explicit TIMESTAMP
type overrides
- **Graceful sqlite_scanner fallback on Linux/macOS**: log and continue
instead of hard-failing, supporting air-gapped/offline environments
- **Add Windows CI job** (`test-windows` on `windows-latest`) with
artifact upload
- **Fix all Windows test failures**: skip Unix permission checks
(0600/0755), fix `validateRelativePath` for rooted paths, exclude `....`
filename on Windows
- **Fix CSV temp dir permissions**: use database parent directory
instead of system temp (restricted on Windows for downloaded
executables)
- **README**: remove Windows known-issues warning, upgrade pre-alpha →
alpha
## Test plan
- [x] `make test` passes on macOS
- [x] `make lint` passes
- [x] Windows CI job passes (test-windows)
- [x] Manual test: `msgvault tui` works on Windows with CSV fallback
path
- [x] Manual test: `install.ps1` downloads and extracts `.zip` correctly
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
> **Pre-alpha software.** APIs, storage format, and CLI flags may change without notice. Back up your data.
10
-
11
-
> **Windows users:** There are a number of known issues on Windows that I am actively working to resolve. Fixes are coming within the next few days. Thank you for your patience.
9
+
> **Alpha software.** APIs, storage format, and CLI flags may change without notice. Back up your data.
12
10
13
11
Archive a lifetime of email. Analytics and search in milliseconds, entirely offline.
returnnil, fmt.Errorf("open sqlite for CSV export: %w", err)
522
+
}
523
+
524
+
// Tables and the SELECT queries to export them.
525
+
// Column lists match what the COPY-to-Parquet queries expect.
526
+
tables:= []struct {
527
+
namestring
528
+
querystring
529
+
typeOverridesstring// DuckDB types parameter for read_csv_auto (empty = infer all)
530
+
}{
531
+
{"messages", "SELECT id, source_id, source_message_id, conversation_id, subject, snippet, sent_at, size_estimate, has_attachments, deleted_from_source_at FROM messages WHERE sent_at IS NOT NULL",
0 commit comments