36 Commits

Author SHA1 Message Date
abb2ac6780
feat(agent): add AI chat and fix dashboard 500s (#35)
* feat(agent): add AI chat panel and dashboard updates

Add ElizaOS-powered agent chat panel with streaming,
voice input, markdown rendering, and page-aware context.
Update dashboard layout with context menu and refactored
pages. Add agent memory schema, new UI components,
and fix lint errors across AI-related files.

* fix(auth): use Host header for SSO redirect URI

nextUrl.origin returns http://localhost:3000 on CF Workers,
breaking OAuth callbacks. Use Host header to derive the
correct production origin for WorkOS redirect URI.

* fix(auth): add Toaster to auth layout, fix error codes

Auth pages had no Toaster component so toast.error() calls
were invisible. Also return 401 for auth errors instead of
generic 500 from the login API.

* fix(dashboard): force-dynamic on all dashboard routes

All dashboard routes use headers() via auth, causing
static-to-dynamic runtime errors on CF Workers (500s).
Add force-dynamic to layout and server component pages.

---------

Co-authored-by: Nicholai <nicholaivogelfilms@gmail.com>
2026-02-05 16:10:25 -07:00
a0f7852845
feat(agent): add AI chat panel and dashboard updates (#34)
* feat(agent): add AI chat panel and dashboard updates

Add ElizaOS-powered agent chat panel with streaming,
voice input, markdown rendering, and page-aware context.
Update dashboard layout with context menu and refactored
pages. Add agent memory schema, new UI components,
and fix lint errors across AI-related files.

* fix(auth): use Host header for SSO redirect URI

nextUrl.origin returns http://localhost:3000 on CF Workers,
breaking OAuth callbacks. Use Host header to derive the
correct production origin for WorkOS redirect URI.

* fix(auth): add Toaster to auth layout, fix error codes

Auth pages had no Toaster component so toast.error() calls
were invisible. Also return 401 for auth errors instead of
generic 500 from the login API.

---------

Co-authored-by: Nicholai <nicholaivogelfilms@gmail.com>
2026-02-05 15:56:06 -07:00
a0dd50f59b
feat(auth): add user profiles and improve auth security (#33)
- Wire up real user data to sidebar, header, and account modal
- Add functional profile editing (first name, last name) via WorkOS API
- Add password change functionality via WorkOS API
- Add logout functionality to sidebar and header dropdowns
- Migrate from manual WorkOS SDK to @workos-inc/authkit-nextjs
- Add server-side input validation with Zod schemas for all auth routes
- Add shared validation schemas for auth, users, teams, schedule, financial
- Fix 30-second auto-logout by properly handling refresh tokens
- Add SidebarUser type and toSidebarUser helper for UI components
- Add getInitials utility for avatar fallbacks
- Document rate limiting configuration for Cloudflare WAF
- Fix login page Suspense boundary for Next.js 15 compatibility
- Remove obsolete workos-client.ts in favor of authkit helpers

Co-authored-by: Nicholai <nicholaivogelfilms@gmail.com>
2026-02-05 08:20:51 -07:00
2985d23d17
feat: add auth, people, netsuite, financials, and mobile UI (#31)
* ci: retrigger build

* ci: retrigger build

* fix(auth): use AuthKit hosted login instead of custom forms

* fix(auth): replace AuthKit with direct JWT session
and add SSO providers

Remove authkit-nextjs dependency from middleware and
auth.ts. Custom login forms now set a raw JWT cookie
that middleware and getCurrentUser() read directly via
JWT payload decode. Add Google, Microsoft, GitHub, and
Apple SSO via WorkOS getAuthorizationUrl + code exchange
callback. Login route now upserts users in DB after
authentication.

---------

Co-authored-by: Nicholai <nicholaivogelfilms@gmail.com>
2026-02-04 17:23:14 -07:00
d30decf723
feat(ui): add mobile support and dashboard improvements (#30)
* feat(schema): add auth, people, and financial tables

Add users, organizations, teams, groups, and project
members tables. Extend customers/vendors with netsuite
fields. Add netsuite schema for invoices, bills,
payments, and credit memos. Include all migrations,
seeds, new UI primitives, and config updates.

* feat(auth): add WorkOS authentication system

Add login, signup, password reset, email verification,
and invitation flows via WorkOS AuthKit. Includes auth
middleware, permission helpers, dev mode fallbacks,
and auth page components.

* feat(people): add people management system

Add user, team, group, and organization management
with CRUD actions, dashboard pages, invite dialog,
user drawer, and role-based filtering. Includes
WorkOS invitation integration.

* feat(netsuite): add NetSuite integration and financials

Add bidirectional NetSuite REST API integration with
OAuth 2.0, rate limiting, sync engine, and conflict
resolution. Includes invoices, vendor bills, payments,
credit memos CRUD, customer/vendor management pages,
and financial dashboard with tabbed views.

* feat(ui): add mobile support and dashboard improvements

Add mobile bottom nav, FAB, filter bar, search, project
switcher, pull-to-refresh, and schedule mobile view.
Update sidebar with new nav items, settings modal with
integrations tab, responsive dialogs, improved schedule
and file components, PWA manifest, and service worker.

* ci: retrigger build

* ci: retrigger build

---------

Co-authored-by: Nicholai <nicholaivogelfilms@gmail.com>
2026-02-04 16:39:39 -07:00
fbd31b58ae
feat(netsuite): add NetSuite integration and financials (#29)
* feat(schema): add auth, people, and financial tables

Add users, organizations, teams, groups, and project
members tables. Extend customers/vendors with netsuite
fields. Add netsuite schema for invoices, bills,
payments, and credit memos. Include all migrations,
seeds, new UI primitives, and config updates.

* feat(auth): add WorkOS authentication system

Add login, signup, password reset, email verification,
and invitation flows via WorkOS AuthKit. Includes auth
middleware, permission helpers, dev mode fallbacks,
and auth page components.

* feat(people): add people management system

Add user, team, group, and organization management
with CRUD actions, dashboard pages, invite dialog,
user drawer, and role-based filtering. Includes
WorkOS invitation integration.

* feat(netsuite): add NetSuite integration and financials

Add bidirectional NetSuite REST API integration with
OAuth 2.0, rate limiting, sync engine, and conflict
resolution. Includes invoices, vendor bills, payments,
credit memos CRUD, customer/vendor management pages,
and financial dashboard with tabbed views.

* ci: retrigger build

* fix: add mobile-list-card dependency for people-table

---------

Co-authored-by: Nicholai <nicholaivogelfilms@gmail.com>
2026-02-04 16:36:19 -07:00
6a1afd7b49
feat(people): add people management system (#28)
* feat(schema): add auth, people, and financial tables

Add users, organizations, teams, groups, and project
members tables. Extend customers/vendors with netsuite
fields. Add netsuite schema for invoices, bills,
payments, and credit memos. Include all migrations,
seeds, new UI primitives, and config updates.

* feat(auth): add WorkOS authentication system

Add login, signup, password reset, email verification,
and invitation flows via WorkOS AuthKit. Includes auth
middleware, permission helpers, dev mode fallbacks,
and auth page components.

* feat(people): add people management system

Add user, team, group, and organization management
with CRUD actions, dashboard pages, invite dialog,
user drawer, and role-based filtering. Includes
WorkOS invitation integration.

* ci: retrigger build

* fix: add mobile-list-card dependency for people-table

---------

Co-authored-by: Nicholai <nicholaivogelfilms@gmail.com>
2026-02-04 16:28:43 -07:00
2f613ef453
feat(auth): add WorkOS authentication system (#27)
* feat(schema): add auth, people, and financial tables

Add users, organizations, teams, groups, and project
members tables. Extend customers/vendors with netsuite
fields. Add netsuite schema for invoices, bills,
payments, and credit memos. Include all migrations,
seeds, new UI primitives, and config updates.

* feat(auth): add WorkOS authentication system

Add login, signup, password reset, email verification,
and invitation flows via WorkOS AuthKit. Includes auth
middleware, permission helpers, dev mode fallbacks,
and auth page components.

* ci: retrigger build

---------

Co-authored-by: Nicholai <nicholaivogelfilms@gmail.com>
2026-02-04 16:24:25 -07:00
9c3a19279a
feat(schema): add auth, people, and financial tables (#26)
Add users, organizations, teams, groups, and project
members tables. Extend customers/vendors with netsuite
fields. Add netsuite schema for invoices, bills,
payments, and credit memos. Include all migrations,
seeds, new UI primitives, and config updates.

Co-authored-by: Nicholai <nicholaivogelfilms@gmail.com>
2026-02-04 16:18:39 -07:00
d9b3e33b6e
fix(mobile): fix sidebar close button and scrollbar (#20)
Show the Sheet close button with sidebar-matching colors
instead of hiding it, and hide the native scrollbar on
mobile via data-attribute scoped CSS.

Co-authored-by: Nicholai <nicholaivogelfilms@gmail.com>
2026-02-04 16:13:57 -07:00
06fcc5eacb
feat(mobile): add responsive mobile support to dashboard (#19)
- Site header: compact search (icon-only on small screens), hide
  keyboard shortcut and feedback button text on mobile
- Project detail: stack urgency columns and phases/tasks grid on
  mobile, show week agenda below content instead of hiding it,
  wrap client/PM row on narrow viewports
- Schedule view: stack header title and tabs, collapse toolbar
  button labels to icons on mobile
- File browser: reduce search input width on small screens
- Dashboard home: tighter padding on small screens

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-24 14:54:27 -07:00
d4fcaa00bb
Merge pull request #16 from High-Performance-Structures/nicholai/branch-protection
ci: add branch protection, CI workflow, and PR template
2026-01-24 14:24:41 -07:00
f554f4e38c ci: add branch protection, CI workflow, and PR template
- husky pre-commit hook blocks direct commits to main
- github actions CI runs lint + build on PRs
- PR template and CONTRIBUTING.md for workflow docs
2026-01-24 14:23:14 -07:00
bb0f8d2eda fix(dashboard): use authenticated github API fetch
- add GITHUB_TOKEN auth to repo/commits fetches
- make page dynamic so cloudflare env is available
- remove unused Button import
2026-01-24 14:07:27 -07:00
f181387099 fix(feedback): await github issue creation
Worker was terminating before the async GitHub API call
could complete. Adding await ensures the issue is created
before the response is returned.
2026-01-24 14:04:08 -07:00
41fdfd9e4c feat(deploy): configure cloudflare workers + D1 + feedback
- configure wrangler for CF account with D1 binding
- add feedback API route with rate limiting and github issue creation
- add feedback widget component
- add project detail page with status/schedule/info tabs
- add frappe-gantt type declarations
- fix type errors for production build
- add migration 0004 for feedback table
2026-01-24 13:58:37 -07:00
d18c341352 feat(gantt): add zoom controls and pan mode (WIP)
zoom in/out buttons and ctrl+scroll work. pan mode
toggle added (pointer vs grab) but vertical panning
still broken - needs different approach for navigating
the chart body independently of the sticky header.
2026-01-24 13:53:12 -07:00
d980ac6d8f feat(db): add schedule tasks for N-001 and remove demo
Seed N-001-1234-Johnson with 41 construction tasks across
all phases (preconstruction through closeout), 19 FS
dependencies, and 4 milestones. Remove legacy demo project.
Fix project list to order by name for consistent first load.
2026-01-24 13:36:18 -07:00
a09024aff7 feat(ui): dashboard github stats, sidebar UX, polish
- Add live GitHub stats and commits to dashboard with
  sticky two-column layout and GitHub card link
- Auto-expand sidebar when navigating to files/projects
  while collapsed
- Add GitHub link to landing page
- Restyle storage indicator with sidebar tokens
- Fix nav-user readability with sidebar-foreground tokens
- Update favicon to colored compass logo
2026-01-24 13:32:50 -07:00
8ea4125505 fix(branding): use compass logo on home page
Replace generic tabler icon with actual compass logo
using mask-image technique, colored with brand green.
2026-01-24 13:32:02 -07:00
006c960ac2 feat(db): add customers/vendors tables and seed data
Extend schema with customers and vendors tables, add project
fields (status, address, client_name, project_manager), and
seed with 40 customers, 25 vendors, and 10 projects from
client CSV data.
2026-01-24 13:29:32 -07:00
46456b1461 fix(files): move CSI_DIVISIONS above mockFiles array 2026-01-24 13:21:05 -07:00
984c736031 feat(files): replace mock data with HPS folder structure 2026-01-24 13:19:46 -07:00
1a0dc11abf feat(branding): add compass logo and update metadata
- add resized logo assets (logo-black.png, favicon, apple-touch-icon)
- use CSS mask-image so logo inherits currentColor in all contexts
- update metadata title to "Compass" with proper icon refs
- remove template favicon.svg
2026-01-24 13:17:36 -07:00
6ffc780841 feat(dashboard): update roadmap to match PRD phases 2026-01-24 13:15:42 -07:00
a730220aef feat(settings): add settings modal with sidebar trigger 2026-01-24 13:04:24 -07:00
6ac1abfa86 feat(ui): add toolbar features and account modal
Theme toggle, notifications popover, command palette
(Cmd+K), user account dropdown with settings modal,
subtle sidebar active states, and nav transition
animation.
2026-01-24 13:03:13 -07:00
0cf9e02c4e feat(ui): update landing + dashboard, fix scroll, share search
- replace template home page with Compass branding and WIP notice
- rewrite dashboard as project status page with working/in-progress/planned sections
- fix content scrolling inside inset panel (no more clipped rounded corners)
- extract command menu into shared context so sidebar search triggers it too
2026-01-24 13:01:28 -07:00
bf806123cd docs: add AI chat panel documentation
References implementation on feat/ai-chat-panel branch.
Covers architecture, components used, enabling steps,
and remaining TODO items.
2026-01-23 22:35:58 -07:00
5cecffbce4 feat(schedule): add collapsible phase grouping to gantt
Group tasks by construction phase with expand/collapse
support. Collapsed phases render as summary bars spanning
min-to-max dates with averaged progress. Client View
button collapses all phases for clean presentation.
2026-01-23 21:13:38 -07:00
e6c1b7c4a0 refactor(layout): remove site-header and tighten spacing
replace site-header with inline sidebar trigger, reduce
dashboard padding/gaps, and adjust schedule page layout
to flex properly within the content area.
2026-01-23 21:08:18 -07:00
598047635d feat(files): add file browser with drive-style UI
google drive-inspired file browser with grid/list views,
folder navigation, context menus, and file management
dialogs. sidebar transitions to file-specific nav when
on /dashboard/files routes. mock data for now, real R2
backend later.
2026-01-23 21:06:49 -07:00
aa6230c9d4 feat(schedule): add BuilderTrend parity enhancements
Add two-level tab structure (Schedule/Baseline/Workday Exceptions),
calendar view, enhanced list view with progress rings and initials
avatars, split-pane gantt view, workday exception management with
business day integration, and baseline snapshot comparison.
2026-01-23 20:14:09 -07:00
67fed00bbd feat(schedule): add gantt schedule with task management and dependencies
Implements the schedule module for COMPASS construction PM:

- D1/Drizzle schema: tasks, dependencies, phases tables
- frappe-gantt integration for interactive timeline view
- Critical path analysis (forward/backward pass, float calc)
- Dependency validation with cycle detection
- Business day calculations (skip weekends/holidays)
- Date propagation engine for cascading schedule changes
- Task CRUD with phase assignment and progress tracking
- Dependency management (FS/FF/SS/SF with lag support)
- Dual view: sortable list view + gantt chart view

Also includes full Next.js app scaffold with dashboard,
shadcn/ui components, and Cloudflare Workers deployment config.
2026-01-23 19:34:24 -07:00
f5a7b96343 updated: gitignore 2025-11-22 18:42:01 -07:00
01d4c581d9 initialized compass 2025-11-22 18:38:49 -07:00