Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
f1fae74
fix: update vercel commands to use corepack for build and dev
smcnab1 May 2, 2026
443b2c8
fix: update Sentry configuration to disable logs and adjust traces sa…
smcnab1 May 2, 2026
c1ac9de
fix: add missing newline at end of Sentry configuration files
smcnab1 May 2, 2026
18263b8
feat: redesign account page with modern SaaS dashboard (#86)
smcnab1 May 3, 2026
0096a94
chore: update ESLint and TypeScript settings to block production buil…
smcnab1 May 3, 2026
2246c99
chore: remove husky commit-msg hook
smcnab1 May 3, 2026
636816f
fix: clean up unused imports and fix JSX escaping (#88)
smcnab1 May 3, 2026
02a4c33
chore: update Node.js version and remove unused dependencies from pac…
smcnab1 May 3, 2026
0197e41
chore: update Node.js version in .nvmrc and modify pre-commit hook to…
smcnab1 May 3, 2026
a61ed08
refactor: clean up code formatting and improve readability in various…
smcnab1 May 3, 2026
1e5ff84
chore: remove vercel.json configuration file
smcnab1 May 3, 2026
271a59b
fix: add pnpm lockfile
smcnab1 May 3, 2026
22dff6f
chore: format pnpm-lock.yaml for consistency and readability
smcnab1 May 3, 2026
8dd4f9d
fix: pin node 20.11.x for pnpm stability
smcnab1 May 3, 2026
c385298
fix: relax node engine constraint
smcnab1 May 3, 2026
19c6d16
fix: downgrade pnpm for vercel stability
smcnab1 May 3, 2026
bb68c4f
chore: update package.json and tsconfig.json for improved configuration
smcnab1 May 3, 2026
0f4f130
chore: update configuration files for improved package management and…
smcnab1 May 3, 2026
55fe9b9
refactor: simplify middleware and remove non-MVP tooling (#90)
smcnab1 May 3, 2026
be6cdd2
security: lock down dev and admin routes (#91)
smcnab1 May 3, 2026
0296b02
chore: remove non-MVP dependencies (#92)
smcnab1 May 3, 2026
0a4e9e9
refactor: simplify next.config for MVP (#93)
smcnab1 May 3, 2026
2e99711
refactor: clean environment variables for MVP (#94)
smcnab1 May 3, 2026
d1a2ce8
chore: transition from pnpm to npm for package management
smcnab1 May 3, 2026
7f477e5
Codex/workos auth helper unification (#96)
smcnab1 May 3, 2026
c97f7a5
Codex/auth permission helpers (#97)
smcnab1 May 3, 2026
1ffb566
Centralize Convex auth context
smcnab1 May 3, 2026
c973b5a
Remove Clerk JWT provider from Convex
smcnab1 May 3, 2026
ca8342a
Add WorkOS auth base
smcnab1 May 3, 2026
048add7
Use WorkOS session for auth user
smcnab1 May 3, 2026
07e1395
Migrate backend auth off Clerk
smcnab1 May 3, 2026
0824af5
Migrate frontend auth hooks
smcnab1 May 3, 2026
9e6d733
Remove Clerk packages and webhook
smcnab1 May 3, 2026
9ac17fe
Clean up WorkOS auth migration
smcnab1 May 3, 2026
2c67fdd
Merge branch 'auth/remove-jwt' into auth/integration
smcnab1 May 3, 2026
15e0e60
Merge branch 'auth/workos-base' into auth/integration
smcnab1 May 3, 2026
0d02719
Merge branch 'auth/identity-swap' into auth/integration
smcnab1 May 3, 2026
8ce5e4b
Merge branch 'auth/backend-migration' into auth/integration
smcnab1 May 3, 2026
602e094
Merge branch 'auth/frontend-migration' into auth/integration
smcnab1 May 3, 2026
23f69bf
Normalize integration lockfile
smcnab1 May 3, 2026
4198333
Merge branch 'auth/remove-clerk' into auth/integration
smcnab1 May 3, 2026
959f022
Merge branch 'auth/final-cleanup' into auth/integration
smcnab1 May 3, 2026
81ab2c0
Switch integration branch to npm
smcnab1 May 3, 2026
0457fee
Remove remaining pnpm references
smcnab1 May 3, 2026
1a4a034
Use npm tooling for auth phase
smcnab1 May 3, 2026
087cda8
Fix npm lockfile package scopes
smcnab1 May 3, 2026
36c025a
Fix npm CI workflows
smcnab1 May 3, 2026
4d2a314
Fix npm CI workflows
smcnab1 May 3, 2026
89e0c8d
Respect high audit threshold in CI
smcnab1 May 3, 2026
8fba7ea
Respect high audit threshold in CI
smcnab1 May 3, 2026
e5ec6c6
Auth phase 1: Convex auth context refactor (#98)
smcnab1 May 4, 2026
0a49058
Auth phase 2: Remove Convex Clerk JWT provider (#99)
smcnab1 May 4, 2026
9bd78f9
Auth phase 3: Add WorkOS base helper (#100)
smcnab1 May 4, 2026
a1b2e0b
Auth phase 4: Use WorkOS identity for auth user (#101)
smcnab1 May 4, 2026
253b380
Auth phase 5: Migrate backend auth usage (#102)
smcnab1 May 4, 2026
4cbd988
Auth phase 6: Migrate frontend auth hooks (#103)
smcnab1 May 4, 2026
3c4b6f5
Auth phase 7: Remove Clerk package and webhook (#104)
smcnab1 May 4, 2026
408e80c
Merge remote-tracking branch 'origin/auth/final-cleanup' into dev-auth
smcnab1 May 4, 2026
6eacf1b
Merge remote-tracking branch 'origin/auth/integration' into dev-auth
smcnab1 May 4, 2026
8596198
Remove deprecated Husky hook bootstrap
smcnab1 May 4, 2026
0bdd8a6
Auth/workos finalise (#107)
smcnab1 May 4, 2026
96d1ea8
Refactor organisation context retrieval across multiple modules (#108)
smcnab1 May 4, 2026
0e297bf
Fix dev-auth build blockers
smcnab1 May 4, 2026
840b13a
Auth/login process (#110)
smcnab1 May 5, 2026
88afc85
Db/new user (#111)
smcnab1 May 5, 2026
aebc3da
feat: complete Account Hub setup and TypeScript verification (#112)
smcnab1 May 5, 2026
28c5ea3
fix: husky
smcnab1 May 5, 2026
a9ed1ff
Merge branch 'dev-auth' into develop
smcnab1 May 5, 2026
1e47c75
fix: assigned value but not used
smcnab1 May 5, 2026
2a64bfc
Sidebar rewrite: TeamSwitcher, NavMain, NavUser, AppSidebar + account…
smcnab1 May 6, 2026
1c4eb14
fix: email newsletter sign-up and waitlist (#114)
smcnab1 May 8, 2026
a57d7ba
fix: style updates to color (#115)
smcnab1 May 8, 2026
923a6bb
Fix sidebar collapsed icon mode for header and footer (#116)
smcnab1 May 8, 2026
25c4207
fix: sidebar display issues in collapsed state (#117)
smcnab1 May 8, 2026
dec9d2e
fix: dashboard fix
smcnab1 May 8, 2026
e41eccf
fix: staff workloading view page
smcnab1 May 8, 2026
3cfd7a7
feat: sidebar customisable by role (#118)
smcnab1 May 9, 2026
710d209
feat: quick-links updated (#119)
smcnab1 May 9, 2026
db6ad36
Fix/perm allocation (#120)
smcnab1 May 9, 2026
ba06488
Feature/account page (#121)
smcnab1 May 9, 2026
7f685a1
feat: added submenu on click when collapsed sidebar (#122)
smcnab1 May 9, 2026
b3fd75a
Feature/manager setup (#123)
smcnab1 May 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
24 changes: 7 additions & 17 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,20 +1,10 @@
# Sentry Configuration
SENTRY_DSN=your_sentry_dsn_here
SENTRY_TRACES_SAMPLE_RATE=0.2
SENTRY_PROFILES_SAMPLE_RATE=0.0
NEXT_PUBLIC_CONVEX_URL=https://your-convex-deployment.convex.cloud
CONVEX_DEPLOYMENT=your-convex-deployment

# Sentry API (for dashboard and alert scripts)
SENTRY_ORG=your_org_slug
SENTRY_PROJECT=your_project_slug
SENTRY_AUTH_TOKEN=your_sentry_api_token

# Convex Configuration
NEXT_PUBLIC_CONVEX_URL=your_convex_url_here
WORKOS_API_KEY=sk_test_your_key
WORKOS_CLIENT_ID=client_your_id
WORKOS_COOKIE_PASSWORD=replace_with_32_or_more_random_chars
WORKOS_REDIRECT_URI=http://localhost:3000/api/auth/callback

# Clerk Configuration
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
CLERK_WEBHOOK_SECRET=your_clerk_webhook_secret

# Other environment variables...
# Add your existing environment variables here
NEXT_PUBLIC_APP_URL=http://localhost:3000
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
# ------------------------------------------------------------------------------
# Mark lock files as generated
package-lock.json linguist-generated
pnpm-lock.yaml linguist-generated
package-lock.json linguist-generated
yarn.lock linguist-generated

# Ignore built/compiled output
Expand Down
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,5 @@ security/** @NexoraDevLabs/infrastructure-ops

# ---- Config & package management
package.json @NexoraDevLabs/infrastructure-ops
pnpm-lock.yaml @NexoraDevLabs/infrastructure-ops
package-lock.json @NexoraDevLabs/infrastructure-ops
tsconfig*.json @NexoraDevLabs/engineering
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,5 @@ body:
id: environment
attributes:
label: Environment
description: Node/pnpm/browser/version info
placeholder: 'Node 20.19.4, pnpm 10.15.0, Chrome 128'
description: Node/npm/browser/version info
placeholder: 'Node 20.19.4, npm 10.15.0, Chrome 128'
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/ci_failure.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,8 @@ body:
description: How can this failure be reproduced?
placeholder: |
1. Checkout commit abc123def456
2. Run 'pnpm install'
3. Run 'pnpm test'
2. Run 'npm install'
3. Run 'npm test'
4. Observe failure in Button.test.tsx
validations:
required: true
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/incident.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ body:
options:
- label: Vercel (frontend deployment)
- label: Convex (database/backend)
- label: Clerk (authentication)
- label: WorkOS (authentication)
- label: Upstash/Redis (caching)
- label: Statsig (feature flags)
- label: GitHub Actions (CI/CD)
Expand Down
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/secret_rotation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ body:
options:
- label: Vercel (environment variables)
- label: Convex (deployment keys)
- label: Clerk (API keys, webhook secrets)
- label: WorkOS (API keys, webhook secrets)
- label: Upstash/Redis (REST tokens, connection URLs)
- label: Statsig (server/API keys)
- label: GitHub Actions (secrets, environment secrets)
Expand All @@ -46,7 +46,7 @@ body:
attributes:
label: Secret Name
description: Name of the secret being rotated
placeholder: 'e.g., VERCEL_TOKEN, CONVEX_DEPLOY_KEY, CLERK_SECRET_KEY'
placeholder: 'e.g., VERCEL_TOKEN, CONVEX_DEPLOY_KEY'
validations:
required: true

Expand Down
8 changes: 3 additions & 5 deletions .github/filters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ app:
- 'vercel.json'
- '.vercelignore'
- 'package.json'
- 'pnpm-lock.yaml'
- 'package-lock.json'
- '.nvmrc'

tests:
Expand Down Expand Up @@ -44,7 +44,7 @@ lint:
sec:
- '**/*.{ts,tsx,js,jsx,cts,mts,cjs,mjs}'
- 'package.json'
- 'pnpm-lock.yaml'
- 'package-lock.json'
- 'yarn.lock'
- 'npm-shrinkwrap.json'
- '.nvmrc'
Expand All @@ -65,11 +65,9 @@ infra:

deps:
- '**/package.json'
- '**/pnpm-lock.yaml'
- '**/package-lock.json'
- '**/yarn.lock'
- '**/npm-shrinkwrap.json'
- '**/pnpm-workspace.yaml'
- '.nvmrc'
- '.npmrc'

Expand All @@ -86,7 +84,7 @@ build:
- '.vercelignore'
- 'public/**'
- 'package.json'
- 'pnpm-lock.yaml'
- 'package-lock.json'
- '.nvmrc'
- 'convex/**'
- 'app/**'
Expand Down
16 changes: 8 additions & 8 deletions .github/instructions/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,23 @@

## Overview

WorkloadWizard: multi-tenant academic workload web app (Next.js + Convex). Repo uses **pnpm**, Node from **.nvmrc**, TypeScript (strict), Vitest, ESLint + Prettier, Tailwind/shadcn UI. Auth by Clerk. CI is split into Format, Quality (lint/typecheck/test/build), CodeQL, Semgrep. AI PR reviews are label-gated (`ai-review`, `ai-deep`, `ai-ultra`).
WorkloadWizard: multi-tenant academic workload web app (Next.js + Convex). Repo uses **npm**, Node from **.nvmrc**, TypeScript (strict), Vitest, ESLint + Prettier, Tailwind/shadcn UI. Auth by WorkOS. CI is split into Format, Quality (lint/typecheck/test/build), CodeQL, Semgrep. AI PR reviews are label-gated (`ai-review`, `ai-deep`, `ai-ultra`).

## Build & Validate (always follow in this order)

1. **Setup**
- Use Node from `.nvmrc`.
- `pnpm install --frozen-lockfile`
- `npm install --frozen-lockfile`
2. **Format**
- PRs: `pnpm prettier --check .`
- Local: `pnpm prettier --write .` (do not commit style churn beyond touched files)
- PRs: `npm prettier --check .`
- Local: `npm prettier --write .` (do not commit style churn beyond touched files)
3. **Lint & Types**
- `pnpm lint`
- `pnpm typecheck`
- `npm run lint`
- `npm run typecheck`
4. **Tests**
- `pnpm test` (Vitest, jsdom; only runs tests under `src/**` or `tests/**`; never in `node_modules`)
- `npm test` (Vitest, jsdom; only runs tests under `src/**` or `tests/**`; never in `node_modules`)
5. **Build**
- `pnpm build`
- `npm run build`
6. **Env**
- Local/dev env goes in `.env.local` (never commit). CI uses repo/org secrets.

Expand Down
3 changes: 1 addition & 2 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,14 +61,13 @@ infra:
- 'eslint.config.*'
- 'commitlint.config.*'
- 'cz.config.*'
- 'pnpm-workspace.yaml'

# ---------- Dependencies / Tooling ----------
dependencies:
- changed-files:
- any-glob-to-any-file:
- '**/package.json'
- '**/pnpm-lock.yaml'
- '**/package-lock.json'

'pkg:config':
- changed-files:
Expand Down
4 changes: 2 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
## βœ… Checklist

- [ ] PR title follows [Conventional Commits](https://www.conventionalcommits.org/) (`feat:`, `fix:`, `chore:`, etc.)
- [ ] Code has been linted (`pnpm lint`)
- [ ] Tests added or updated (`pnpm test`) if relevant
- [ ] Code has been linted (`npm lint`)
- [ ] Tests added or updated (`npm test`) if relevant
- [ ] Documentation updated (if applicable)
- [ ] Ready for review (remove Draft status if finished)

Expand Down
2 changes: 1 addition & 1 deletion .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"automergeType": "squash"
},

"postUpdateOptions": ["pnpmDedupe"],
"postUpdateOptions": ["npmDedupe"],

"automerge": false,
"separateMultipleMajor": true,
Expand Down
2 changes: 1 addition & 1 deletion .github/settings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ repository:
name: workload-wizard
description: A comprehensive workload management application for educational institutions
homepage: https://workload-wizard.vercel.app
topics: nextjs, react, typescript, convex, clerk, education, workload-management
topics: nextjs, react, typescript, convex, education, workload-management
private: true
has_issues: true
has_projects: true
Expand Down
Loading
Loading