v0.7.8
About this release
- The new
account reauthandaccount credentialscommands renew a login or replace a stored secret. calendar hideandcalendar showcontrol the sidebar view of a calendar.sync run --account <name>syncs only the calendars of one account.- In the TUI, press
pto copy the details of the selected event. - Sync now preserves a foreign VALARM.
event update --clear-foreign-alarmsdeletes it on demand.
📦 Install: see the README. Prebuilt binaries and checksums.txt are attached below.
Changelog
🚀 Features
- d0e5c4b feat(account): reauth OAuth accounts from the CLI
- ffae8e6 feat(account): rotate basic and bearer credentials
- 2478ab0 feat(calendar): hide and show from the CLI
- de30d24 feat(calendar): include account and hidden in JSON
- 45565b2 feat(cli): add --clear-foreign-alarms to remove a preserved alarm
- 04cad3b feat(sync): run CalDAV sync for one account
- c8c6e28 feat(tui): copy event details with p
🐛 Bug fixes
- c155056 fix(alarm): close the snooze-path gap, filter fetches, surface sync-only alarms
- 7e5dfec fix(alarm): filter sync-only state at read time, keep foreign counts
- fe1ec46 fix(alarm): guard, order, and degrade the alarm write path
- 11da5d0 fix(alarm): keep a foreign UID empty, guard the exported action
- f0401e2 fix(alarm): keep a foreign VALARM whole, batch the todo alarm read
- 676de0f fix(alarm): normalize a malformed stored action as the row loads
- 3678748 fix(alarm): repair a malformed action to a reserved x-name
- 9e56602 fix(alarm): repair a malformed stored action, keep every preserved row
- 0b29c83 fix(alarm): retire dead snoozes, filter fetches in SQL, keep action case
- 0e10768 fix(alarm): retire stuck pending states, close the round-4 findings
- e9aaa5d fix(alarm): retire sync-only state at the write point, keep CLI rows
- 0f31d48 fix(alarm): screen the todo span, correct the state comments
- 1daf2c9 fix(alarm): validate Action and Related at the service write boundary
- 7745ac9 fix(attendee): clamp the constrained parameters, guard the write
- 25c5652 fix(cli): keep OAuth banners off JSON stdout
- 86799c6 fix(duration): align every span gate on ValidateSpan, heal legacy rows
- c2dd063 fix(duration): keep dead trigger rows, add the span rule and year cap
- d7738af fix(duration): let the start own storability, heal spans in a migration
- 7de3f28 fix(duration): parse components as int64, purge dead trigger rows
- cec60c7 fix(duration): reject durations that overflow time.Duration
- 4627588 fix(duration): split the day and time ceilings, widen the trigger heal
- efaf2f0 fix(ical): correct REPEAT:0 handling, guard the repeat fire path
- 5c5a4d7 fix(ical): drop VALARM alarms with an unsupported ACTION
- 0cd8589 fix(ical): harden VALARM REPEAT, DURATION, and empty-ACTION handling
- f5ed9d6 fix(ical): preserve VALARMs with unsupported ACTION values across sync
- 4ff02b6 fix(ical): share the repeat-duration rule, warn on every alarm drop
- 46b3d1c fix(ical): validate VALARM RELATED and DURATION, share the action set
- 9b932ee fix(model): refuse a malformed alarm action at the write boundary
- 9dc04f1 fix(storage): drop the empty-action clause, guard both repair patterns
- 574411a fix(storage): heal legacy alarm rows on startup, defer the clamp warning
- e64904d fix(sync): resolve --account before opening the credential store
- a887348 fix(todo): wrap the span error so it stays inspectable
Full Changelog: v0.7.7...v0.7.8