Skip to content

Durable notes and offline time offsets#145

Merged
dbieber merged 2 commits into
mainfrom
2026-07-16-upgrade-round-1
Jul 17, 2026
Merged

Durable notes and offline time offsets#145
dbieber merged 2 commits into
mainfrom
2026-07-16-upgrade-round-1

Conversation

@dbieber

@dbieber dbieber commented Jul 17, 2026

Copy link
Copy Markdown
Owner

No description provided.

dbieber and others added 2 commits July 16, 2026 21:41
Hotel captive portals accept TCP connections, so the old HEAD-request
internet check reported internet access while uploads were failing, and
note events were dropped from the queue as if uploaded.

- is_internet_available now requires a genuine 204-with-empty-body from a
  generate_204 connectivity endpoint (with a fallback endpoint), so a
  captive portal no longer counts as being online.
- Every note event is appended to a durable local JSONL log
  (out/note_log/YYYY-MM-DD.jsonl) at capture time, before transcription
  or upload, from all capture paths (keyboard shell, :note/:subnote
  commands, voice transcription).
- Local copies (note log, .wav recordings, .txt transcripts) are kept for
  at least 6 months no matter what, and are only cleaned up at all under
  real disk pressure (<1GB free), oldest first, checked daily by the
  uploader. Nothing is ever deleted because of an upload.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_016ib1Yk692v5GKFz1bg5hTW
Go Note Go has no realtime clock, so after a flight or a stretch offline
the system clock (and therefore note timestamps) can be wrong.

- ':xtime 3:30pm' records an alleged-time offset: the difference between
  what time it really is and the system clock. Bare clock times snap to
  the nearest occurrence (+/-12h), so ':xtime 1am' at 8pm means tonight.
  ':xtime' says the current alleged time; ':xtime clear' resets.
- Note events now carry BOTH the raw clock timestamp and the offset
  (NoteEvent.offset, effective_timestamp), in the queues and in the
  durable note log, so either time can be recovered later.
- ':rxtime 4' retroactively applies the current offset to the last 4
  hours of pending (not-yet-uploaded) notes; bare ':rxtime' reaches back
  to the last boot (/proc/uptime).
- The Roam uploader titles new sessions with the first note's effective
  time (clock + offset) instead of the upload time.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_016ib1Yk692v5GKFz1bg5hTW
@dbieber
dbieber merged commit 9ae7fb3 into main Jul 17, 2026
2 checks passed
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