<feed xmlns='http://www.w3.org/2005/Atom'>
<title>doot.git/internal, branch main</title>
<subtitle>doot — personal productivity web app
</subtitle>
<id>https://git.terst.org/doot.git/atom?h=main</id>
<link rel='self' href='https://git.terst.org/doot.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/'/>
<updated>2026-03-25T05:17:35+00:00</updated>
<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>feat: gate Claudomator UI behind Doot session auth via reverse proxy</title>
<updated>2026-03-25T04:03:13+00:00</updated>
<author>
<name>Doot Agent</name>
<email>agent@doot.terst.org</email>
</author>
<published>2026-03-25T04:03:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=2db5020047640361066510f29f908ca9fd1c99aa'/>
<id>urn:sha1:2db5020047640361066510f29f908ca9fd1c99aa</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>feat: unify Google Tasks with main system via caching and integrated UI</title>
<updated>2026-03-23T08:13:02+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-23T08:13:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=b2d8fc460be3105ac383098e7cdc92171e5026ec'/>
<id>urn:sha1:b2d8fc460be3105ac383098e7cdc92171e5026ec</id>
<content type='text'>
- Implement SQLite caching layer for Google Tasks
- Integrate Google Tasks into unified Atoms loop (showing in Tasks tab)
- Update Planning tab to include cached Google Tasks
- Enhance Quick Add form with Todoist project selector
- Remove orphaned HandleTasksTab/HandleRefreshTab methods
- Update tests to reflect new BuildTimeline signature and data structures
</content>
</entry>
<entry>
<title>feat: complete Agent Context API Phase 2 &amp; 3 (Write/Create/Management)</title>
<updated>2026-03-23T06:50:43+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-23T06:50:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=b0688c8819da1b7fcb4a97b6ec1fa58050e4841e'/>
<id>urn:sha1:b0688c8819da1b7fcb4a97b6ec1fa58050e4841e</id>
<content type='text'>
- Implement write operations (complete, uncomplete, update due date, update task)
- Implement create operations (create task, add shopping item)
- Add Trusted Agents management UI in Settings with revocation support
- Fix SQLite timestamp scanning bug for completed tasks
- Add comprehensive unit tests for all new agent endpoints
- Update worklog and feature documentation
</content>
</entry>
<entry>
<title>fix: parse Todoist local datetimes, show near-future tasks, add undated tasks to timeline</title>
<updated>2026-03-23T00:42:44+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-23T00:42:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=6c767194d9470b368f8d337e0719795f235f683c'/>
<id>urn:sha1:6c767194d9470b368f8d337e0719795f235f683c</id>
<content type='text'>
- parseDueDate: handle date field containing "YYYY-MM-DDTHH:MM:SS" (local time,
  no tz offset) — Todoist REST API v1 uses this format for recurring tasks with
  a set time, causing due dates to silently parse as nil
- IsFuture threshold: widen from tomorrow to 7 days out so tasks due this week
  show in the main tasks section with dates visible (not collapsed)
- BuildTimeline: include undated Todoist tasks in the Today section (mirrors
  existing Google Tasks behavior)
- GetUndatedTasks: new store method for tasks with due_date IS NULL

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</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>refactor: RF-04/08 migrate inline HTML to templates, standardize form parsing</title>
<updated>2026-03-19T00:11:16+00:00</updated>
<author>
<name>Claude Agent</name>
<email>agent@workspace</email>
</author>
<published>2026-03-18T10:09:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=5f4f59fc6302a4e44773d4a939ae7b3304d61f1f'/>
<id>urn:sha1:5f4f59fc6302a4e44773d4a939ae7b3304d61f1f</id>
<content type='text'>
RF-04: Already complete in codebase (handlers use HTMLResponse + partials).
RF-08: Migrate single-required-field handlers from Pattern A/B to Pattern C
(requireFormValue). Affected: HandleCompleteTask, HandleCompleteCard,
HandleReportBug, HandleCreateTask in handlers.go; HandleToggleFeature,
HandleCreateFeature in settings.go. Reduces 6-8 lines of boilerplate to 2.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>test: add coverage for planning tab, meals, Google Tasks, bug handlers, completed task parsing</title>
<updated>2026-03-19T00:11:16+00:00</updated>
<author>
<name>Agent</name>
<email>agent@workspace.local</email>
</author>
<published>2026-03-18T10:15:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=5723d6635f9462e60960b0f9548273d95a86d8f3'/>
<id>urn:sha1:5723d6635f9462e60960b0f9548273d95a86d8f3</id>
<content type='text'>
- HandleTabPlanning: happy-path test verifying tasks/cards land in correct
  sections (scheduled/unscheduled/upcoming); boundary test confirming a task
  due exactly at midnight of tomorrow lands in Upcoming, not Scheduled
- HandleTabMeals: grouping test verifying two meals sharing date+mealType
  produce one CombinedMeal with both recipe names merged
- Google Tasks GetTasksByDateRange: four boundary tests (start inclusive, end
  exclusive, no-due-date always included, out-of-range excluded) using
  redirectingTransport mock server pattern
- HandleGetBugs: data assertions verifying bug list and empty-list cases
- HandleReportBug: success test verifying bug is saved and bugs template
  is re-rendered
- GetCompletedTasks: timestamp parsing test ensuring CompletedAt is not zero
  when inserted with a known "2006-01-02 15:04:05" string

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