Commit graph

  • 70a6b5e6ef fix(ai): strip markdown code block from Anthropic response before JSON parse main Vadym Samoilenko 2026-05-18 17:25:14 +01:00
  • e861f20342 fix(migration): cast gen_random_uuid() to uuid not text for omg backfill Vadym Samoilenko 2026-05-18 09:56:30 +01:00
  • f568814be5 feat(omg): backfill omg_entries from all projects with job_number Vadym Samoilenko 2026-05-18 09:55:36 +01:00
  • e0f541b082 fix(auth): rebuild frontend with session-restore-before-router fix Vadym Samoilenko 2026-05-18 09:52:04 +01:00
  • 38d7da93e2 fix(auth): restore session before registering router to prevent refresh redirect Vadym Samoilenko 2026-05-13 14:14:27 +01:00
  • 1ff57fff15 fix(router): redirect authenticated users away from login page Vadym Samoilenko 2026-05-13 13:32:29 +01:00
  • c10932649d fix(auth): set refresh cookie path to "/" for proxy compatibility Vadym Samoilenko 2026-05-13 13:20:25 +01:00
  • ff8b20857f fix(ingest): preserve active_hours when backfill sends zero Vadym Samoilenko 2026-05-13 13:13:48 +01:00
  • 0148b81e9c fix(auth): correct refresh cookie path for reverse proxy Vadym Samoilenko 2026-05-13 13:04:11 +01:00
  • fde9b61465 feat(cost): track Claude Code token usage and cost per project Vadym Samoilenko 2026-05-13 12:47:26 +01:00
  • c3022c0c66 feat(projects): replace list view with DataTable — search, column filters, resize, sort Vadym Samoilenko 2026-05-13 12:36:16 +01:00
  • 26127061ec fix: OMG auto-sync, Projects OMG# column, ADO OMG Deliverable Number, session persistence Vadym Samoilenko 2026-05-13 12:30:40 +01:00
  • b7a1dc9fdf feat: OMG project dropdown + DevOps toolbar + ADO full fields Vadym Samoilenko 2026-05-13 11:55:25 +01:00
  • dacbe1de6e feat(omg): add CC Project column linked by job_number Vadym Samoilenko 2026-05-13 11:44:51 +01:00
  • 82208cab61 chore(build): update static assets for ui-polish release Vadym Samoilenko 2026-05-13 11:36:38 +01:00
  • 80c6b4b47e fix(ui): address code review findings Vadym Samoilenko 2026-05-13 11:34:18 +01:00
  • 56a7ff06d6 fix(ui): lint and type-check fixes Vadym Samoilenko 2026-05-13 11:25:23 +01:00
  • b8329904e8 refactor(ui): replace title attrs with Tooltip on interactive elements Vadym Samoilenko 2026-05-13 11:20:54 +01:00
  • ebd5616498 refactor(login): form spacing, consistent inputs Vadym Samoilenko 2026-05-13 11:19:08 +01:00
  • 0ac7d71e9b refactor(admin): ConfirmDialog for destructive actions, spacing Vadym Samoilenko 2026-05-13 11:18:59 +01:00
  • 86607fbf06 refactor(live): Skeleton loading, EmptyState, spacing Vadym Samoilenko 2026-05-13 11:18:51 +01:00
  • ec6fb8c37b refactor(tasks): EmptyState, spacing rhythm, focus-visible Vadym Samoilenko 2026-05-13 11:18:28 +01:00
  • 3e3826028c refactor(calendar): ConfirmDialog, Skeleton loading, Button/SegmentedControl toolbar Vadym Samoilenko 2026-05-13 11:18:08 +01:00
  • 3921f01aab refactor(settings): DateRangePicker, form spacing, focus-visible Vadym Samoilenko 2026-05-13 11:16:20 +01:00
  • 5cc38b3aae refactor(project-detail): EmptyState, Skeleton loading, spacing Vadym Samoilenko 2026-05-13 11:16:15 +01:00
  • b118166693 refactor(keys): ConfirmDialog with type-to-confirm, EmptyState Vadym Samoilenko 2026-05-13 11:16:10 +01:00
  • a605ba44eb refactor(omg): touch targets, shared Input, ConfirmDialog, Tooltip Vadym Samoilenko 2026-05-13 11:16:06 +01:00
  • fd49ad9865 refactor(projects): SegmentedControl, EmptyState, typed icons Vadym Samoilenko 2026-05-13 11:12:53 +01:00
  • 13c262184a refactor(reports): SegmentedControl, Button, EmptyState Vadym Samoilenko 2026-05-13 11:12:50 +01:00
  • ba99a4dd65 refactor(devops): SegmentedControl, design tokens, ConfirmDialog, spacing Vadym Samoilenko 2026-05-13 11:12:48 +01:00
  • e2f9f35362 refactor(dashboard): extract ProjectBreakdown and ToolUsageList Vadym Samoilenko 2026-05-13 11:09:46 +01:00
  • 0a6ce6c3c4 refactor(dashboard): extract TimelineChart component Vadym Samoilenko 2026-05-13 11:09:43 +01:00
  • 4e9de2d3c3 refactor(dashboard): extract KpiRow with KpiCard components Vadym Samoilenko 2026-05-13 11:09:41 +01:00
  • be6d557622 refactor(dashboard): extract DateRangeFilter component Vadym Samoilenko 2026-05-13 11:09:38 +01:00
  • 8a31f46c88 fix(button): ensure icon size meets 40px touch target minimum Vadym Samoilenko 2026-05-13 11:06:31 +01:00
  • 58f2edadb3 fix(select): use focus-visible for keyboard-only ring Vadym Samoilenko 2026-05-13 11:06:28 +01:00
  • 823b41e28d feat(dialog): focus trap, autofocus on open, scrollable body Vadym Samoilenko 2026-05-13 11:06:19 +01:00
  • 2425e241c0 feat(datatable): typed sort, debounced filters, shared Button/Input, EmptyState Vadym Samoilenko 2026-05-13 11:06:17 +01:00
  • 34c40798be feat(ui): add SegmentedControl, KpiCard with animated counter Vadym Samoilenko 2026-05-13 11:03:33 +01:00
  • d586e9474c feat(ui): add Calendar and DateRangePicker components Vadym Samoilenko 2026-05-13 11:01:51 +01:00
  • b382ff640c feat(ui): add EmptyState and ConfirmDialog components Vadym Samoilenko 2026-05-13 11:00:14 +01:00
  • f19e5122eb feat(ui): add Tooltip, Popover, Skeleton primitives (radix-vue) Vadym Samoilenko 2026-05-13 10:58:41 +01:00
  • 9eb7e077ec feat(styles): add spacing scale comment and skeleton shimmer keyframes Vadym Samoilenko 2026-05-13 10:56:52 +01:00
  • bc5eb64c40 fix(migration): remove duplicate index creation in 0008_kanban_and_omg Vadym Samoilenko 2026-05-07 14:12:04 +01:00
  • 36118cb759 feat: replace Planka with in-app Kanban + add OMG page Vadym Samoilenko 2026-05-07 14:09:36 +01:00
  • 7c15f884c1 fix: Planka admin user + branding CSS; project job_number edit form; report filename; devops title Vadym Samoilenko 2026-05-07 13:49:00 +01:00
  • 09cfc0a89a feat: light theme redesign + DataTable with sort/filter/resize + bug fixes Vadym Samoilenko 2026-05-07 13:15:19 +01:00
  • e16e4a16a5 fix(project-detail): show all-time data when no date range given Vadym Samoilenko 2026-05-07 12:52:51 +01:00
  • e401f9a60b feat(planka): add Planka kanban to docker-compose + wire UI Vadym Samoilenko 2026-05-07 12:15:25 +01:00
  • fe31ca0fd7 feat(dashboard): add Tasks Today + ADO Priority Items panels Vadym Samoilenko 2026-05-07 12:11:51 +01:00
  • cbce273b49 feat(reports): structured prompt sections + HTML/MD export Vadym Samoilenko 2026-05-07 12:07:29 +01:00
  • 99a20ed97f feat(devops): clone work item to Tasks + UI button Vadym Samoilenko 2026-05-07 12:05:31 +01:00
  • 48b2e71daa fix(devops): account-wide WIQL sync + priority/project columns in UI Vadym Samoilenko 2026-05-07 12:04:10 +01:00
  • 75c78635bc fix: planner crash — make Task.tags optional, guard task.tags?.length Vadym Samoilenko 2026-05-07 12:01:39 +01:00
  • afdb08f11a feat: remove AI assistant widget and all related backend Vadym Samoilenko 2026-05-07 11:59:56 +01:00
  • 0d8284a7d7 fix(sidebar): use text-white/60 instead of text-foreground/60 Vadym Samoilenko 2026-05-07 11:28:16 +01:00
  • 4ff23500f3 fix(ui): calendar edit/delete, projects view toggle, planner mount race, devops inline form, reports overflow, sidebar contrast, dashboard interactivity Vadym Samoilenko 2026-05-07 11:19:46 +01:00
  • 96e6f4ee14 feat: replace local auth with Azure AD SSO (MSAL PKCE) Vadym Samoilenko 2026-05-07 10:43:19 +01:00
  • dc50dd1d3b fix: chart bars visible + logout 405 + deploy static assets Vadym Samoilenko 2026-05-06 21:39:28 +01:00
  • 3671657d11 fix: chart bars use pixel heights instead of percentages Vadym Samoilenko 2026-05-06 21:34:56 +01:00
  • ea7e44648b fix: chart bars visible — use items-stretch + justify-end for correct height Vadym Samoilenko 2026-05-06 21:32:19 +01:00
  • e456fd2b09 fix: chart bars visible + tool usage pct computed correctly Vadym Samoilenko 2026-05-06 21:27:49 +01:00
  • 433512fc78 feat: task time slots, calendar block drag-to-move Vadym Samoilenko 2026-05-06 21:19:49 +01:00
  • 732e692c8a fix: implement 5-phase contract fixes, devops page, AI summaries, expanded assistant Vadym Samoilenko 2026-05-06 21:13:28 +01:00
  • 2b4fd5dee8 feat: premium redesign — cyan/teal design system + bug fixes Vadym Samoilenko 2026-05-06 20:08:44 +01:00
  • 3e48a789fc fix: guard tool.pct against undefined before toFixed Vadym Samoilenko 2026-05-06 19:51:23 +01:00
  • d791cda770 fix: auth store sends JSON body instead of form-urlencoded (backend expects LoginRequest JSON) Vadym Samoilenko 2026-05-06 19:50:03 +01:00
  • 8c1f338c73 fix: remove BASE prefix from healthz/static/SPA routes (root_path strips prefix) Vadym Samoilenko 2026-05-06 19:47:18 +01:00
  • 7e9727587e fix: healthcheck uses host curl, not exec inside container Vadym Samoilenko 2026-05-06 19:35:26 +01:00
  • 162f4ba822 feat: AI assistant widget, design system upgrade via 21st-dev Magic Vadym Samoilenko 2026-05-06 19:34:17 +01:00
  • 2118187c76 fix: remove add_logger_name from structlog — incompatible with PrintLoggerFactory Vadym Samoilenko 2026-05-06 19:18:11 +01:00
  • 95fef1fe64 fix: migration 0005 — use postgresql.UUID for ai_flags/assistant_messages FK columns Vadym Samoilenko 2026-05-06 19:15:54 +01:00
  • 30764d8998 merge: planning hub — Vue 3 frontend, AI assistant, ADO sync, calendar, tasks Vadym Samoilenko 2026-05-06 19:11:16 +01:00
  • 9495aebef1 fix: TypeScript errors in TaskForm/CalendarView/PlannerView, rebuild frontend Vadym Samoilenko 2026-05-06 19:01:58 +01:00
  • 2533f4b046 feat: AI assistant chat widget + session categories + anomaly detection Vadym Samoilenko 2026-05-06 18:59:51 +01:00
  • ff52d502b8 feat: add complete Vue 3 frontend in web/ directory Vadym Samoilenko 2026-05-06 18:52:43 +01:00
  • 1071ac2f4d fix: idempotent report generation — return existing if already generated Vadym Samoilenko 2026-05-06 18:50:40 +01:00
  • 14cdd2f983 fix: CSV export uses wall-clock hours (not active_hours) for sessions Vadym Samoilenko 2026-05-06 18:49:41 +01:00
  • d6aea758f0 feat: composite DB indexes + admin recompute-stats endpoint Vadym Samoilenko 2026-05-06 18:49:14 +01:00
  • 264ee297af fix: create src/static stub on startup if frontend not yet built Vadym Samoilenko 2026-05-06 18:48:07 +01:00
  • ed6b86d690 fix: add pytest/pytest-asyncio/aiosqlite to requirements for test suite Vadym Samoilenko 2026-05-06 18:47:20 +01:00
  • ac6ba28008 fix: calendar datetime filters, tasks N+1 query, AI report hours accuracy Vadym Samoilenko 2026-05-06 18:46:47 +01:00
  • 908205da44 fix: consistent wall-clock hours across all dashboard endpoints Vadym Samoilenko 2026-05-06 18:45:04 +01:00
  • 9d9e8e82d4 feat: corporate planning hub backend — tasks, calendar, ADO, AI reports Vadym Samoilenko 2026-05-06 18:44:26 +01:00
  • 57655056e3 fix: restore daily_overhead_hours on top of union hours Vadym Samoilenko 2026-04-27 17:50:30 +01:00
  • c178a00b74 fix: accurate time tracking — union intervals for totals, no double-counted overhead Vadym Samoilenko 2026-04-27 17:39:55 +01:00
  • 2eee1a7c02 fix: projects page shows all-time data, not just last 30 days Vadym Samoilenko 2026-04-24 11:57:07 +01:00
  • 474e35c0ea feat: dashboard preset filters (Today/7d/30d), live feed loads today sessions on mount Vadym Samoilenko 2026-03-26 15:33:52 +00:00
  • dd92268e80 fix: setup script quoting (HOOK_CMD paths), quoted heredoc, proper JSON connection test Vadym Samoilenko 2026-03-26 15:29:17 +00:00
  • 015c5efbbd fix: try underscore variant when dash-slug path not found on disk Vadym Samoilenko 2026-03-26 15:23:03 +00:00
  • dd902ebb61 fix: repo path resolution via slug+ROOT_PATH, add trailing slash to repo URL Vadym Samoilenko 2026-03-26 15:21:43 +00:00
  • 4e950a2a67 feat: auto-detect repo URL from git remote, fix project slug (full path not last segment) Vadym Samoilenko 2026-03-26 15:19:40 +00:00
  • 46db7476a3 fix: timeline chart linear scale, date filter on daily chart, null-safe chart init Vadym Samoilenko 2026-03-26 15:16:12 +00:00
  • 0ee3c3fbd9 fix: filter collector to only scan projects under CC_ROOT_PATH Vadym Samoilenko 2026-03-26 15:09:49 +00:00
  • 4d69a4ac64 feat: project metadata fields (client, job#, repo) with inline editing + time calc audit Vadym Samoilenko 2026-03-26 15:08:14 +00:00
  • 9ebe5a92fa fix: filter invalid timestamps in timeline chart to prevent Chart.js crash Vadym Samoilenko 2026-03-26 14:50:28 +00:00
  • 94ae1af2c2 fix: eager load ApiKey.user with selectinload to avoid lazy load in async context Vadym Samoilenko 2026-03-26 14:46:14 +00:00
  • 080eec32d1 fix: use execute(delete()) instead of session.delete() to avoid MissingGreenlet Vadym Samoilenko 2026-03-26 14:44:19 +00:00
  • 7f8048dcee fix: accept HTTP 422 as valid connection (key works, empty body rejected); remove curl preview Vadym Samoilenko 2026-03-26 14:43:03 +00:00
  • 6b2f811ee5 fix: use heredoc temp file for Python settings update — avoid quote conflicts in bash Vadym Samoilenko 2026-03-26 14:37:56 +00:00