<feed xmlns='http://www.w3.org/2005/Atom'>
<title>doot.git/internal/api/interfaces.go, branch master</title>
<subtitle>doot — personal productivity web app
</subtitle>
<id>https://git.terst.org/doot.git/atom?h=master</id>
<link rel='self' href='https://git.terst.org/doot.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/'/>
<updated>2026-07-12T11:12:55+00:00</updated>
<entry>
<title>feat(widget): add recurrence lookup endpoint (GET /api/widget/recurrence)</title>
<updated>2026-07-12T11:12:55+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-07-12T11:12:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=6fdd09bfe030ce91ee188f18c198fd6a57c7b42f'/>
<id>urn:sha1:6fdd09bfe030ce91ee188f18c198fd6a57c7b42f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: remove Todoist integration entirely</title>
<updated>2026-07-06T00:00:59+00:00</updated>
<author>
<name>Doot Agent</name>
<email>agent@doot.local</email>
</author>
<published>2026-07-06T00:00:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=945c34590677e161a711ccaff0e1077197b1b178'/>
<id>urn:sha1:945c34590677e161a711ccaff0e1077197b1b178</id>
<content type='text'>
Native tasks (native_tasks table) fully replace Todoist. All Todoist
API code, store functions, handlers, routes, templates, and tests have
been removed. Migration 021 drops the now-unused tasks cache table.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat: add Claudomator stories as atom source in Doot tasks tab</title>
<updated>2026-03-25T05:17:35+00:00</updated>
<author>
<name>Claude Agent</name>
<email>agent@doot.local</email>
</author>
<published>2026-03-25T05:17:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=b58787cfec0bd07abc316c66dc9be6c10b8113c6'/>
<id>urn:sha1:b58787cfec0bd07abc316c66dc9be6c10b8113c6</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix: support multiple enabled Google Task lists and Calendars</title>
<updated>2026-03-23T08:59:35+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-23T08:59:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=23c670442392af1c75b935b3296ae2fc4fd094ba'/>
<id>urn:sha1:23c670442392af1c75b935b3296ae2fc4fd094ba</id>
<content type='text'>
- Update Google API interfaces with setters for list/calendar IDs
- Update fetchCalendarEvents and fetchGoogleTasks to use enabled IDs from source_configs
- Update timeline logic tests to reflect interface changes and seed config data
- Ensure dashboard respects user-selected lists from settings
</content>
</entry>
<entry>
<title>chore: unify and centralize agent configuration in .agent/</title>
<updated>2026-03-22T23:45:19+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-22T23:45:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=8abc63efdbc0bb96cd6c9aa99d6e9166e0bcabae'/>
<id>urn:sha1:8abc63efdbc0bb96cd6c9aa99d6e9166e0bcabae</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: Phase 1 — remove bug feature and dead code</title>
<updated>2026-03-21T21:24:02+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-21T21:24:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=764d4d2d07449aec72c87afe941b7c63ea05e08c'/>
<id>urn:sha1:764d4d2d07449aec72c87afe941b7c63ea05e08c</id>
<content type='text'>
- Delete Bug struct, BugToAtom, SourceBug, TypeBug, TypeNote
- Remove bug store methods (SaveBug, GetBugs, ResolveBug, etc.)
- Remove HandleGetBugs, HandleReportBug, bug branches in handlers
- Remove bug routes, bugs.html template, bug UI from index.html
- Remove AddMealToPlanner stub + interface method
- Migration 018: DROP TABLE IF EXISTS bugs

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Add feature toggles system with settings UI (#74)</title>
<updated>2026-02-01T06:16:12+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-02-01T06:16:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=cbb0b53de1d06918c142171fd084f14f03798bc1'/>
<id>urn:sha1:cbb0b53de1d06918c142171fd084f14f03798bc1</id>
<content type='text'>
- Add feature_toggles table (migration 012)
- Add source_config table for future source selection (migration 013)
- Create settings page at /settings with:
  - Feature toggle management (enable/disable/create/delete)
  - Data source configuration (sync and toggle boards/calendars)
- Add store methods for feature toggles and source config
- Add GetCalendarList and GetTaskLists to Google API clients
- Document feature toggle workflow in DESIGN.md

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Add Google Tasks integration (#43)</title>
<updated>2026-01-27T06:55:50+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-01-27T06:55:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=a3156a2f399ea03c645ee23b0099d9d722ce7e1e'/>
<id>urn:sha1:a3156a2f399ea03c645ee23b0099d9d722ce7e1e</id>
<content type='text'>
- New GoogleTasksClient for fetching and managing Google Tasks
- Tasks appear in Timeline view with yellow indicator dot
- Tap checkbox to complete/uncomplete tasks via Google API
- Shares credentials file with Google Calendar (GOOGLE_CREDENTIALS_FILE)
- Configure task list via GOOGLE_TASKS_LIST_ID env var (default: @default)
- Supports comma-separated list IDs for multiple lists

New files:
- internal/api/google_tasks.go - Google Tasks API client

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Use configured timezone throughout codebase</title>
<updated>2026-01-27T02:49:44+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-01-27T02:49:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=42a4e32daca13b518e64e5821080ff3d6adf0e39'/>
<id>urn:sha1:42a4e32daca13b518e64e5821080ff3d6adf0e39</id>
<content type='text'>
- Add config/timezone.go with timezone utilities:
  - SetDisplayTimezone(), GetDisplayTimezone()
  - Now(), Today() - current time/date in display TZ
  - ParseDateInDisplayTZ(), ToDisplayTZ() - parsing helpers

- Initialize timezone at startup in main.go

- Update all datetime logic to use configured timezone:
  - handlers/handlers.go - all time.Now() calls
  - handlers/timeline.go - date parsing
  - handlers/timeline_logic.go - now calculation
  - models/atom.go - ComputeUIFields()
  - models/timeline.go - ComputeDaySection()
  - api/plantoeat.go - meal date parsing
  - api/todoist.go - due date parsing
  - api/trello.go - due date parsing

This ensures all dates/times display correctly regardless
of server timezone setting.

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix bugs #24-27: calendar dedup, uncomplete tasks, planning view</title>
<updated>2026-01-24T02:10:52+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-01-24T02:10:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=7828e19501b3ca8b2e86ca7297f580c659e5c9b8'/>
<id>urn:sha1:7828e19501b3ca8b2e86ca7297f580c659e5c9b8</id>
<content type='text'>
Bug fixes:
- #24: Deduplicate calendar events across multiple calendars using
  summary + start time as key
- #25: Change event icon from calendar to clock to avoid confusion
  with date display
- #26: Add task uncomplete functionality via ReopenTask API for
  Todoist and closed=false for Trello
- #27: Restructure planning view with sections for Scheduled (timed
  events/tasks), Today (unscheduled), Quick Add, and Upcoming (3 days)

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
