- Add ActivityHub and wire up SignalR in Program.cs
- Broadcast new context events from ContextController
- Connect SignalR client on Analytics page for live feed updates
- Restructure activity feed HTML to support live prepending
- Add slide-in animation for new activity items
- Update CORS to allow credentials for SignalR
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Clicking the header "New Task" button now scrolls to and focuses
the create-task input in the Pending column.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove legacy wwwroot files (old index.html, app.css, api.js, page scripts)
- Add Index page that redirects / to /board
- Fix mapping delete button missing handler=Delete in URL
- Add [IgnoreAntiforgeryToken] to AnalyticsModel for consistency
- Remove duplicate JS from _TaskDetail.cshtml (already in app.js)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Delete the entire TaskTracker.Web React/npm frontend. All UI
functionality has been reimplemented as Razor Pages served from
the TaskTracker.Api project using htmx, SortableJS, and Chart.js.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Analytics page with stat cards (open tasks, active time, top category),
Chart.js timeline bar chart bucketed by hour, category donut chart with
legend, and paginated activity feed with htmx "Load more" support.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wire up SortableJS in app.js to enable dragging task cards between
Kanban columns. On drop, fires htmx PUT requests to the appropriate
Board handler (Start/Pause/Resume/Complete) based on the column
transition. Invalid transitions are reverted. Sortable instances are
destroyed and recreated after htmx swaps to prevent memory leaks.
Also centralizes detail panel open/close/edit helpers and Escape key
handling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Server-rendered Kanban board with 4 status columns (Pending, Active,
Paused, Completed), task cards with category colors and elapsed time,
filter bar with category chips and subtask toggle, and inline create
task form. All handlers support htmx partial updates for status
transitions (start, pause, resume, complete, abandon, create).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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>