<feed xmlns='http://www.w3.org/2005/Atom'>
<title>doot.git/web/templates/partials, 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-23T08:13:02+00:00</updated>
<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>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>style: modernize UI with dark glass theme and 40% bg opacity</title>
<updated>2026-03-22T10:05:16+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-22T10:05:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=11b905fd437d651b2e39745aa82a5dd36f70331e'/>
<id>urn:sha1:11b905fd437d651b2e39745aa82a5dd36f70331e</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>chore: autocommit uncommitted changes</title>
<updated>2026-03-18T07:06:03+00:00</updated>
<author>
<name>Claudomator Agent</name>
<email>agent@claudomator</email>
</author>
<published>2026-03-18T07:06:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=e3195a6534bae000a63e884ff647fac95d9d2498'/>
<id>urn:sha1:e3195a6534bae000a63e884ff647fac95d9d2498</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: sync log, cache clear endpoint, Todoist projects from cached tasks</title>
<updated>2026-03-04T21:12:44+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-03-04T21:12:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=0fd54eddc40f517cf491310d4f8a60b0d79dc937'/>
<id>urn:sha1:0fd54eddc40f517cf491310d4f8a60b0d79dc937</id>
<content type='text'>
- migration 016: sync_log table
- store: AddSyncLogEntry, GetRecentSyncLog, InvalidateAllCaches, GetProjectsFromTasks
- settings: HandleClearCache (POST /settings/clear-cache), SyncLog in page data
- settings: use GetProjectsFromTasks instead of deprecated Todoist REST /projects
- handlers: populate atom projects from store
- agent: log warning on registration failure instead of silently swallowing
- google_tasks: simplify URL literal
- tests: sync log CRUD, clear cache handler, settings page includes sync log,
  sync sources adds log entry, incremental sync paths, task completion
  response/headers, calendar cache fallback

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix timeline task completion replacing view, fix passkey registration CSRF</title>
<updated>2026-02-07T23:47:13+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-02-07T23:47:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=0620afc98fdc0f764e82807bb0090b78618ddb1d'/>
<id>urn:sha1:0620afc98fdc0f764e82807bb0090b78618ddb1d</id>
<content type='text'>
- Fix checkboxes in timeline calendar grid targeting #tab-content (replaced
  entire view). Now target closest .untimed-item/.calendar-event with outerHTML
- Fix passkey registration 403 by passing CSRFToken from settings handler
  and exposing it via meta tag for JS to read
- Add TDD workflow requirement to CLAUDE.md
- Tests written first (red-green): template content assertions for checkbox
  targets and CSRF token presence, handler data struct verification

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix missing settings button, disappeared events, and tab refresh bug</title>
<updated>2026-02-07T00:53:47+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-02-07T00:53:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=27ee1a271248e9f1de8ecb981a6cabfa8e498b1b'/>
<id>urn:sha1:27ee1a271248e9f1de8ecb981a6cabfa8e498b1b</id>
<content type='text'>
- Add settings gear icon link to dashboard header
- Fix GetTasksByDateRange/GetCardsByDateRange to include overdue items
  (changed from BETWEEN to &lt;= end, filter completed tasks)
- Fix refresh replacing active tab with tasks tab by using
  htmx.trigger(body, 'refresh-tasks') instead of innerHTML+htmx.process
- Add refresh-tasks hx-trigger to meals, shopping, conditions tabs
- Add tests for overdue inclusion/exclusion, settings link, template data

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Improve session handling, shopping UI, and cleanup</title>
<updated>2026-02-05T20:43:19+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-02-05T20:43:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=1eab4d59454fa5999675d51b99e77ac6580aba95'/>
<id>urn:sha1:1eab4d59454fa5999675d51b99e77ac6580aba95</id>
<content type='text'>
Session improvements:
- Extend session lifetime to 7 days for mobile convenience
- Add idle timeout to extend session on activity
- Use standard cookie name for better compatibility

Shopping model:
- Add FlattenItemsForStore helper for extracting store items
- Add StoreNames helper for store list
- Improve shopping-tab.html with inline add forms

Frontend:
- Add WebSocket reconnection and agent approval UI to app.js
- Simplify timeline calendar JS (move event positioning to CSS)
- Update login page styling

Deployment:
- Remove unused git checkout step from deploy.sh
- Update apache.conf WebSocket proxy settings

Documentation:
- Add Agent Context API feature spec to issues/

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Document Quick Add UX pattern and filter checked shopping items</title>
<updated>2026-02-04T01:17:46+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-02-04T01:17:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/doot.git/commit/?id=4ac78382343e14c00ba21ee11ee4642255509eef'/>
<id>urn:sha1:4ac78382343e14c00ba21ee11ee4642255509eef</id>
<content type='text'>
- Add Quick Add UX pattern to DESIGN.md documenting expected behaviors
  for form submission, error handling, and completed item display
- Filter checked items from shopping-tab.html display (both grouped
  and ungrouped views)

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