summaryrefslogtreecommitdiff
path: root/docs
AgeCommit message (Collapse)Author
6 daysA guide for an agent creating doot tasksHEADmasterPeter Stone
Written for a Claude instance with no access to this repo or the database, so it covers the whole path: get a session, create a task, and what the endpoint will not do. Checked against the live server rather than read off the handlers. The auth request and poll return the documented shapes, and an unauthenticated create is refused with 401. Three things it exists to say, because none are guessable from the outside: - A human approves every session in a browser, and it lasts an hour. There is no API key and no auto-approval; trust levels change how the prompt is labelled, not whether it appears. The approval request itself expires in five minutes, so asking early wastes it. - The create endpoint silently ignores description, labels, estimated_minutes and project_name. They are real fields on a doot task and they are dropped without complaint, so an agent that sends them gets a task that is missing things it thinks it set. - The response carries no task id, so a create cannot be chained into an update. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018AwnALZL6bD4VBtATDVv3B
2026-09-03Finish the spec status update (previous commit only applied partially)Peter Stone
The prior commit's edit to the open-questions section silently no-opped on a mismatched target, so the spec still carried the pre-implementation questions and claimed the duplicate "Yard work" task was outstanding after it had been deleted. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018AwnALZL6bD4VBtATDVv3B
2026-09-03Update punch-list spec: record what shipped and what's still openPeter Stone
Marks the core pull model as implemented and deployed, with the live verification results, and replaces the old open-questions section with the honest remaining list -- carry-over is unbuilt, there's still no dedicated review surface, buckets still push rather than being pulled, and ordinary undated backlog tasks have no commit control yet. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018AwnALZL6bD4VBtATDVv3B
2026-09-03Update punch-list spec: correct the recurrence diagnosis, record progressPeter Stone
The spec described skipped recurrences as an accidental "double-book." It isn't: generating the successor regardless of completion is deliberate (so skipping doesn't stall the series). The actual defect was that nothing retired the superseded occurrence, so skips accumulated as permanent overdue items. Recorded the intended semantics -- an occurrence not done before its successor lands is stale, and the newer one stands. Also marked the bucket pool as populated and flagged the leftover duplicate "Yard work" recurring task as needing an explicit decision, since deleting it ends its series. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018AwnALZL6bD4VBtATDVv3B
2026-09-02Add design spec for the pull-based punch listPeter Stone
Written from measurements against production rather than from the symptom report: the free-standing task list is actually fine (19 genuinely today-sized items); what breaks it is due_date carrying two incompatible meanings, with chains stamping due_date=now on every unlock so milestones are born looking like deadlines. Proposes splitting due_date (real deadlines only) from a new committed_date ("I chose this today"), moving chain steps and bucket items behind an explicit pull, and adding a short review surface. Not yet implemented -- capturing the design before building. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018AwnALZL6bD4VBtATDVv3B
2026-07-18Add bucket CRUD and read-only Projects/Labels to Settings pagePeter Stone
New "Maintenance Buckets" section: create a bucket, add a pool item by title (creates the task and assigns it in one step), remove an item, delete a bucket (unbuckets its tasks rather than deleting them). New read-only Projects and Labels sections (name + color swatch) -- both are simple enough that read-only is the right call on web, per user direction, rather than duplicating the Android popup's editing UX. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL
2026-07-18Rework Tasks tab: Chains section, checklist modal, project visibilityPeter Stone
The flat Tasks-tab atom list was silently dumping every chain step (locked and unlocked) and dormant bucket-pool items in as ordinary undated cards, with no chain/project context and no protection against completing a locked step out of order. - CompleteNativeTask now rejects completing a locked chain task (ErrChainTaskLocked), mapped to 400 in both the widget and web complete-atom handlers. - Chain tasks and dormant bucket items are excluded from the flat atom list; a new "Chains" section shows one card per active/paused chain with the current step and N/M progress. - New chain checklist modal (GET /chains/{id}) lists every position in order with pause/resume/abandon -- the web view originally deferred as Android-only. - Fixed a real bug this surfaced: resuming a paused chain only flipped the status flag, never unlocking the deferred successor, so a chain paused right after a completion stayed stuck forever. SetChainStatus now catches up the deferred advancement on resume, idempotently. - Atom cards gained a project-name chip for general visibility. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL
2026-07-17Extend chain creation to accept per-task description and priorityPeter Stone
CreateChain and POST /api/widget/chains previously only took bare title strings, with priority hardcoded to 1 -- narrower than the spec's "an ordered list of task titles/descriptions" API line. Now accepts []models.ChainTaskInput{Content, Description, Priority} per position, priority defaulting to 1 when omitted. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL
2026-07-17Document deferred UI screens for chains and bucketsPeter Stone
Fleshes out the "not built" notes in both specs into actionable follow-up scope: what data/API layer already exists, what the screen needs to do, and precedent to follow. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL
2026-07-17Implement linear task chains and recurring maintenance bucketsPeter Stone
Backend, web timeline, and Android widget wiring for the last two unimplemented items from doot-future-task-scheduling-ideas. Chains: task_chains table + chain_id/chain_position/chain_unlocked on native_tasks (migration 026), WIP-limit-1 advancement hooked into CompleteNativeTask, locked tasks excluded from all date-based queries, 5 new /api/widget/chains* endpoints, an N/M position badge on web and Android widget rows. Buckets: maintenance_buckets table + bucket_id/bucket_state/ bucket_last_active_at on native_tasks (migration 027), staleness-then-priority selection scoring, a new RunBucketCycleCheck scheduler loop, 5 new endpoints including the distinct Defer action, a Defer button on web and Android widget rows. Also corrected stale "not yet approved" status headers on the two already-shipped specs this work depended on (labels/projects, budgets/ availability) -- their headers were never updated after implementation. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL
2026-07-16Add implementation plan for task budgets and availabilityPeter Stone
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PQaPGQVSfmKUiHXB87qRTC
2026-07-16Add implementation plan for task labels and projectsPeter Stone
Nine tasks: schema/model + project_id wiring, Projects CRUD, label-color CRUD, HTTP endpoints, TimelineItem/WidgetItem project-color threading, Android data layer, task-detail popup UI (project picker + label editor), widget grid color accent, build/deploy.
2026-07-16Add design docs for four backlog task-scheduling ideasPeter Stone
Labels/projects, budgets/availability, recurring maintenance buckets, and linear task chains -- refined via a 24-question interview (2026-07-15) into concrete data models, mechanisms, and API shapes. None approved for implementation yet; each spec notes its dependencies on the others (labels/projects is foundational to two of the other three). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VTUSAEKfsPc6WGDq45yPHD
2026-07-16Add implementation plan for task recurrence and detail popup editingPeter Stone
Nine tasks: recurrence schema/model, ComputeNextOccurrence, iteration creation on completion, periodic due-date trigger, HTTP endpoints, Android WidgetRepository additions, description linkification, TaskDetailActivity redesign, build/deploy.
2026-07-16docs: clarify monthly rollover drift is permanent, and only affects day ↵Peter Stone
29-31 anchors
2026-07-16docs: add design for task recurrence + detail popup editingPeter Stone
New recurring-series model for doot-native tasks (server-owned, not consumer-driven): new rows are created either on completion or once a due date passes, whichever comes first. Redesigns the widget's task detail popup with editable title/description, linkified URLs/phone numbers, and independently-tappable date/recurrence/next-date chips.
2026-07-16docs: fix exclusive all-day end-date bug in multi-day plan's Android taskPeter Stone
MD-Task 2's review caught that Google Calendar's all-day End.Date is exclusive (a single-day all-day event's End is one day past its own day), which isMultiDayEvent/multiDayVariant didn't account for. Task 4 (Android, not yet implemented) had the same flaw copied into its Kotlin code -- fixed here before dispatching, mirroring the Go-side fix.
2026-07-16docs: add multi-day calendar events implementation planPeter Stone
2026-07-16docs: add widget text-size + tomorrow-section fix implementation planPeter Stone
2026-07-16docs: add design for widget text-size setting + tomorrow-section fixPeter Stone
Covers the root cause for the missing TOMORROW section (grid bounds skewed by tomorrow's events) and the configurable header/content text size+weight preference.
2026-07-12docs: add widget recurrence-display implementation planPeter Stone
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VTUSAEKfsPc6WGDq45yPHD
2026-07-12docs: add widget refresh button implementation planPeter Stone
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VTUSAEKfsPc6WGDq45yPHD
2026-07-12docs: add widget recurrence-display design specPeter Stone
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VTUSAEKfsPc6WGDq45yPHD
2026-07-12docs: add widget quick-add implementation planPeter Stone
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VTUSAEKfsPc6WGDq45yPHD
2026-07-12docs: add widget quick-add design specPeter Stone
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VTUSAEKfsPc6WGDq45yPHD
2026-07-12docs: add widget clickable-reschedule implementation planPeter Stone
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VTUSAEKfsPc6WGDq45yPHD
2026-07-12docs: add widget clickable-reschedule design specPeter Stone
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VTUSAEKfsPc6WGDq45yPHD
2026-07-12docs: add widget overdue-badge design spec and implementation planPeter Stone
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VTUSAEKfsPc6WGDq45yPHD
2026-07-12docs: add widget refresh button design specPeter Stone
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VTUSAEKfsPc6WGDq45yPHD
2026-03-26docs: ADR-006 — add Seam 1 first partial decision (stories, in Doot)Peter Stone
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26docs: add ADR-006 Claudomator integration — seams, decisions, roadmapPeter Stone
Captures: auth gating, WS proxy, visual unification, and the Seam 1 (HTMX partials) → Seam 2 (single binary) architectural migration path. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-05Document multi-agent workflow, ADRs, and Agent APIPeter Stone
- Add Development Workflow section to DESIGN.md documenting three-role system (Architect, Implementor, Reviewer) with handoff documents - Update CLAUDE.md with Key Documents section pointing to DESIGN.md, role definitions, and ADRs - Add ADR-first documentation policy across all role definitions - Update REVIEWER_ROLE.md with comprehensive test quality checklist - Document Agent API and completed tasks log in DESIGN.md - Update database schema table with 5 missing tables - Update endpoint reference with 10 missing routes - Create ADRs 002-005 capturing key architectural decisions: - 002: Timeline aggregation architecture - 003: HTMX write operations pattern - 004: Concurrent data fetching with graceful degradation - 005: Agent API notification-based authentication - Add migrations/README.md documenting schema history and 007 gap Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Update deployment docs with real-world fixesPeter Stone
- Add explicit permission steps (755 dirs, 644 files) - Document systemd override for .env sourcing - Expand troubleshooting with common errors: - AH01144 proxy module error - 403 forbidden on static files - Template nil pointer panic - Readonly database error Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add VPS deployment artifacts and documentationPeter Stone
Include systemd service file, Apache reverse proxy config, and comprehensive deployment guide for Linux VPS setup. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add project documentationPeter Stone
Include design system guidelines, Phase 3 roadmap, code quality review, proposed README, and authentication ADR. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>