Register Razor Pages services and middleware in Program.cs, removing
UseDefaultFiles() since Razor Pages handles routing. Add shared layout
with dark-themed app shell (header, nav links, search/new-task buttons)
and vendor script references for htmx, Sortable, and Chart.js.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
11-task plan covering project setup, CSS/JS assets, Board page with
Kanban drag-and-drop, detail panel, search modal, Analytics page with
Chart.js, Mappings page with inline CRUD, and React app removal.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Design for moving the TaskTracker web UI from React/npm to
Razor Pages + htmx, eliminating the Node toolchain and unifying
on a single .NET stack with one-binary deployment.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Allow setting ParentTaskId when updating a task via the API (with
validation that the parent exists) and when creating a task via the
MCP create_task tool.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use 32-bit Environment.TickCount with unchecked uint arithmetic so
GetIdleTime stays correct after the ~49.7 day uint wrap boundary
- Only clear _pausedTaskId after successful resume, not before the API call
- Add retry path: if resume failed, retry on next poll cycle while user
is still active
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replaces sidebar with top nav, adds Cmd+K search modal, redesigns
kanban cards with glow effects, frosted glass detail panel, stat cards
on analytics, refined mappings table, centralized CSS design tokens.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When user is idle beyond IdleTimeoutMs, automatically pauses the active
task via the API. When user returns, resumes the task if it's still paused.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
12-task plan covering CSS foundation, top nav, Cmd+K search,
kanban cards, detail panel, analytics, mappings, and polish.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ASP.NET serializes C# enums as strings by default ("Pending", "Active"),
but frontend types used numeric values (0, 1). Changed WorkTaskStatus and
NoteType to string values matching API output.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>