Skip to main content

max / goingson

v0.3.1: Time tracking, file attachments, external sync, email attachments Major features: - Time tracking with focus timer, time sessions model, and time summary UI - File attachments system: model, repository, blob sync, Tauri commands, frontend UI - External sync: iCal and vCard import support with dedicated command layer - Email attachment extraction pipeline via IMAP Supporting changes: - Migrations 035-038 (time_tracking, attachments, external_sync, sync_trigger_fixes) - Sync service: blob sync, improved pull/push/apply, scheduler enhancements - OAuth credential improvements, expanded search and task repos - Frontend: new JS modules (focus-timer, time-tracking, time-summary, attachments, import-external) - Weekly review enhancements, day planning updates, project render improvements - Android target scaffolding, Apple project config updates - Cleaned up todo docs and removed completed archive
Co-Authored-By
Claude Opus 4.6 <noreply@anthropic.com>
Author: Max J. <87768334+MaxJMath@users.noreply.github.com> · 2026-04-13 22:18 UTC
Commit: 7c3777de50846fe489174f0ada2cb83f437e4ebe
Parent: 2aa7cd2
190 files changed, +11769 insertions, -1506 deletions
M Cargo.lock +23
@@ -1905,13 +1905,16 @@
1905 1905 "goingson-core",
1906 1906 "goingson-db-sqlite",
1907 1907 "goingson-plugin-runtime",
1908 + "ical",
1908 1909 "icalendar",
1909 1910 "keyring",
1910 1911 "lettre",
1912 + "libsqlite3-sys",
1911 1913 "mailparse",
1912 1914 "notify",
1913 1915 "notify-debouncer-mini",
1914 1916 "open",
1917 + "openssl",
1915 1918 "parking_lot",
1916 1919 "rand 0.8.5",
1917 1920 "reqwest 0.12.28",
@@ -2313,6 +2316,15 @@
2313 2316 "cc",
2314 2317 ]
2315 2318
2319 + [[package]]
2320 + name = "ical"
2321 + version = "0.11.0"
2322 + source = "registry+https://github.com/rust-lang/crates.io-index"
2323 + checksum = "9b7cab7543a8b7729a19e2c04309f902861293dcdae6558dfbeb634454d279f6"
2324 + dependencies = [
2325 + "thiserror 1.0.69",
2326 + ]
2327 +
2316 2328 [[package]]
2317 2329 name = "icalendar"
2318 2330 version = "0.16.17"
@@ -3507,6 +3519,15 @@
3507 3519 source = "registry+https://github.com/rust-lang/crates.io-index"
3508 3520 checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe"
3509 3521
3522 + [[package]]
3523 + name = "openssl-src"
3524 + version = "300.5.5+3.5.5"
3525 + source = "registry+https://github.com/rust-lang/crates.io-index"
3526 + checksum = "3f1787d533e03597a7934fd0a765f0d28e94ecc5fb7789f8053b1e699a56f709"
3527 + dependencies = [
3528 + "cc",
3529 + ]
3530 +
3510 3531 [[package]]
3511 3532 name = "openssl-sys"
3512 3533 version = "0.9.112"
@@ -3515,6 +3536,7 @@
3515 3536 dependencies = [
3516 3537 "cc",
3517 3538 "libc",
3539 + "openssl-src",
3518 3540 "pkg-config",
3519 3541 "vcpkg",
3520 3542 ]
@@ -5591,6 +5613,7 @@
5591 5613 "serde_json",
5592 5614 "thiserror 2.0.18",
5593 5615 "tokio",
5616 + "tokio-stream",
5594 5617 "tracing",
5595 5618 "unicode-normalization",
5596 5619 "urlencoding",
M Cargo.toml +4 -1
@@ -10,7 +10,7 @@
10 10 resolver = "2"
11 11
12 12 [workspace.package]
13 - version = "0.3.0"
13 + version = "0.3.1"
14 14 edition = "2021"
15 15 license-file = "LICENSE"
16 16
@@ -74,6 +74,9 @@
74 74 strum = "0.26"
75 75 strum_macros = "0.26"
76 76
77 + # iCalendar parsing
78 + ical = "0.11"
79 +
77 80 # CSV
78 81 csv = "1.3"
79 82
@@ -61,6 +61,9 @@
61 61 tracing = { workspace = true }
62 62 tracing-subscriber = { workspace = true }
63 63
64 + # iCalendar parsing (for .ics import)
65 + ical = { workspace = true }
66 +
64 67 # Export/Backup
65 68 csv = { workspace = true }
66 69 icalendar = { workspace = true }
@@ -98,6 +101,12 @@
98 101 workspace = true
99 102 features = ["image-png", "tray-icon"]
100 103
104 + # Android: bundle SQLite (system SQLite not accessible via NDK)
105 + # and vendor OpenSSL (native-tls deps need it for cross-compilation)
106 + [target.'cfg(target_os = "android")'.dependencies]
107 + libsqlite3-sys = { version = "0.30", features = ["bundled"] }
108 + openssl = { version = "0.10", features = ["vendored"] }
109 +
101 110 [dev-dependencies]
102 111 tempfile = "3"
103 112
@@ -1,7 +1,7 @@
1 1 {
2 2 "$schema": "https://schema.tauri.app/config/2",
3 3 "productName": "GoingsOn",
4 - "version": "0.3.0",
4 + "version": "0.3.1",
5 5 "identifier": "com.goingson.app",
6 6 "build": {
7 7 "beforeBuildCommand": "./src-tauri/frontend/build-css.sh",
@@ -12,6 +12,7 @@
12 12 argon2 = { workspace = true, features = ["std"] }
13 13 serde_json = { workspace = true }
14 14 tracing = { workspace = true }
15 + tokio = { workspace = true, features = ["macros"] }
15 16
16 17 [dev-dependencies]
17 18 tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
M docs/todo/todo.md +31 -103
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file