Commit Graph
523 Commits
Author SHA1 Message Date
Aymeric Rabot 659c01052e Update .gitignore 2026-02-19 15:43:44 -05:00
AntonandGitHub ff85765728 fix: resolve react-doctor errors (hooks order, reduced motion, key prop) (#105)
- Move useCallback hooks before early return in ReferencesDialog
  to fix conditional hook call violation (Rules of Hooks)
- Add useReducedMotion hook and apply to all motion animations
  for WCAG 2.3.3 accessibility compliance
- Replace useEffect state reset with key prop on ItemCatalog
  for proper React reconciliation on category change
- Add global prefers-reduced-motion CSS media query

Fixes 4 react-doctor errors, bringing score from 81 to ~85+.
2026-02-19 19:20:05 +00:00
9a0f83a1ec feat: SEO improvements, OG image endpoint, favicon, and metadata (#104)
- Add dynamic OG image generation endpoint (/og) adapted from monorepo
- Replace favicon with monorepo version, remove unused icon.svg
- Add seo.ts config, robots.ts, sitemap.ts for better search indexing
- Add per-page metadata (editor, viewer, settings, profile, community)
- Remove stale package-lock.json that caused ENOWORKSPACES errors with Next.js
- Add OG fonts (Geist Regular, Plus Jakarta Sans SemiBold)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-19 13:38:34 -05:00
Aymeric RabotandClaude Opus 4.6 867681e1da feat: add env.mjs for centralized env validation (t3-env)
Validates all required env vars at runtime with zod schemas.
Skips validation during build via SKIP_ENV_VALIDATION flag.
Replaces scattered process.env access with typed env imports.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-19 01:47:36 -05:00
Aymeric RabotandClaude Opus 4.6 4c0d0885a3 fix: declare env vars in turbo.json so Vercel build receives them
Turbo was stripping env vars during build on Vercel. Added all required
vars to turbo.json build task. Also hardened Supabase and BetterAuth
init with fallback placeholders for build-time safety.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-19 01:45:09 -05:00
Aymeric RabotandClaude Opus 4.6 48397917a9 feat: auto-create avatars storage bucket on server startup
Uses Next.js instrumentation.ts to ensure the Supabase "avatars"
bucket exists on first boot — no manual setup needed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-19 01:41:48 -05:00
Aymeric RabotandClaude Opus 4.6 23a71c376f feat: avatar upload, connected accounts, round navbar avatar, Vercel analytics
- Avatar upload to Supabase Storage with pencil overlay in settings
- Show username initials as avatar fallback (instead of name initials)
- Round avatar in navbar (rounded-full with natural shadow)
- Connected Accounts section in settings showing Google status
- Connect Google directly from settings without signing out
- Add Vercel Analytics, Speed Insights, and Toolbar
- Update page title to "Pascal Editor"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-19 01:40:17 -05:00
Aymeric RabotandClaude Opus 4.6 b53cb984eb chore: add missing feedback migration to match remote
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-19 01:32:02 -05:00
Aymeric RabotandClaude Opus 4.6 6f7613818b feat: account linking for magic link + Google, last login method hint
- Move account linking config out of Google conditional so it's always active
- Trust both 'google' and 'email' providers for automatic account linking
- Add lastLoginMethod plugin to track how users last signed in
- Show "Last signed in with Google/email link" hint in sign-in dialog

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-19 01:29:30 -05:00
Aymeric RabotandClaude Opus 4.6 a0ac904dfc fix: lazy-init Supabase and Drizzle clients for build compatibility
Defer database client creation until first use via Proxy so Next.js
builds succeed without POSTGRES_URL and SUPABASE_URL env vars present.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-19 01:21:41 -05:00
Aymeric Rabot d6e6954877 Update .gitignore 2026-02-19 01:19:52 -05:00
Aymeric RabotandClaude Opus 4.6 62dde6ef5a feat: add Google OAuth, user profiles, community hub improvements
- Add Google OAuth sign-in alongside magic link authentication
- Username onboarding: require username selection after first sign-in
- Public profile pages at /u/[username] with social links (GitHub, X)
- Settings page for managing username and social links
- Viewer header: unified floating card with project name, @username, breadcrumb
- Guest CTA on viewer page prompting sign-in
- Show owner avatar + username on community project cards
- Redesigned project cards (larger preview, avatar + stats row below)
- Consistent navbar across hub and profile pages with GitHub link
- Footer with links to GitHub repo and npm packages
- Borderless design with natural shadows throughout
- Apple corner smoothing (squircle) progressive enhancement
- cursor:pointer globally on buttons and links
- DB migrations: username, github_url, x_url columns on auth_users
- Root-level db:generate/migrate/push/studio scripts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-19 01:04:37 -05:00
Anton Pascal 0fd8656090 chore: clean up release workflow
Use bypass-2FA token via NPM_TOKEN secret. No --provenance
(causes npm CLI crash on GH runners).
2026-02-18 21:56:06 +00:00
Anton Pascal a6804343bc release: @pascal-app/core@0.1.13 @pascal-app/viewer@0.1.13 2026-02-18 21:55:39 +00:00
Anton Pascal bffab3dd4c debug: capture npm debug logs and verify publish 2026-02-18 21:49:05 +00:00
Anton Pascal bbe5124800 fix: proper auth — NPM_TOKEN env + OIDC provenance
Previous runs had NODE_AUTH_TOKEN set to a garbage placeholder
because we removed the env var from publish steps. Now properly
passing secrets.NPM_TOKEN as NODE_AUTH_TOKEN.
2026-02-18 21:46:41 +00:00
Anton Pascal 6e7a75f476 fix: try Node 20 + capture debug log on failure 2026-02-18 21:41:54 +00:00
Anton Pascal bf30c586eb fix: use OIDC trusted publishers instead of npm token
The npm package has trusted publishers (OIDC) configured.
Remove manual token auth — let GitHub Actions OIDC handle it.
2026-02-18 21:38:26 +00:00
Anton Pascal e3c3331df0 debug: add verbose logging to npm publish 2026-02-18 21:35:28 +00:00
Anton Pascal f384f55497 fix: manual npmrc auth instead of setup-node registry 2026-02-18 21:32:38 +00:00
Anton Pascal 9b77918e41 fix: pin npm@10 to avoid publish bug 2026-02-18 21:29:36 +00:00
Anton Pascal 5495c1f5fb fix: remove --provenance flag from npm publish 2026-02-18 21:23:38 +00:00
Anton Pascal cbcdf98edf fix: use NPM_TOKEN secret in release workflow 2026-02-18 20:48:25 +00:00
Aymeric Rabot 40c1c9f651 Update .gitignore 2026-02-18 15:44:45 -05:00
Anton Pascal 3b11bf6088 chore: add release scripts 2026-02-18 20:43:31 +00:00
Aymeric RabotandGitHub f3efdf12a5 Merge pull request #102 from pascalorg/fix-npm-repo-urls
fix: correct repository URLs for npm listings
2026-02-18 15:37:01 -05:00
Aymeric RabotandGitHub 1a02687828 Merge pull request #101 from pascalorg/setup-release-workflow
ci: add manual release workflow
2026-02-18 15:36:39 -05:00
Anton Pascal c788c981ee ci: use OIDC trusted publishing instead of NPM_TOKEN
- Added environment: npm + id-token: write permission
- Added --provenance flag for supply chain security
- Removed NPM_TOKEN secret dependency
- Added setup-node with registry-url for OIDC auth
2026-02-18 20:28:43 +00:00
Anton Pascal f497d9123a fix: correct repository URLs for npm listings 2026-02-18 20:27:52 +00:00
Anton Pascal 90b29e619e ci: add manual release workflow for @pascal-app/core and @pascal-app/viewer 2026-02-18 20:25:03 +00:00
Wassim SAMADandGitHub 8603e8953f Merge pull request #100 from pascalorg/feat/window-editor
Feat/window editor
2026-02-18 16:31:05 +09:00
wass08 e8fcc840d5 surface placement 2026-02-18 16:26:17 +09:00
wass08 c0676f684e item surfaces 2026-02-18 16:06:23 +09:00
Aymeric Rabot e2ecbf48da Create drizzle.config.ts 2026-02-18 01:51:17 -05:00
Aymeric RabotandGitHub 8f70e8b53e Merge pull request #99 from pascalorg/feat/refactor-supabase-setup
Refactor Supabase setup and fix local dev ports
2026-02-18 01:49:05 -05:00
Aymeric RabotandClaude Opus 4.6 aa27e0dd7a refactor: move supabase config to repo root, fix port and env setup
- Move supabase/ from packages/db/ to repo root for simpler CLI usage
- Use custom ports (553xx) to avoid conflicts with other local Supabase instances
- Add --env-mode=loose to turbo dev so root .env vars reach Next.js
- Remove hardcoded --port 3000 from next dev (reads PORT env var instead)
- Add .env.example with Supabase env var placeholders
- Add supabase local state dirs to .gitignore

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-18 01:48:53 -05:00
wass08 a121460965 fix y position on items 2026-02-18 15:05:25 +09:00
wass08 c816295e18 fix camera initial load 2026-02-18 14:39:41 +09:00
wass08 5d61e60f95 free mode for slabs and ceiling 2026-02-18 14:00:28 +09:00
wass08 586bd9f16c fix number input 2026-02-18 13:37:46 +09:00
wass08 47373eadef adjusting wall system + adding panel 2026-02-18 13:35:12 +09:00
wass08 be013d26e5 window panel 2026-02-18 13:14:55 +09:00
wass08 076faae7df window building 2026-02-18 10:41:12 +09:00
wass08 9a2c89547b feedback feature 2026-02-18 10:26:57 +09:00
wass08 1cceb50ab6 fix thumbnail issues 2026-02-18 09:49:57 +09:00
Wassim SAMADandGitHub f1077ad1c8 Merge pull request #98 from pascalorg/feat/rename-properties-to-projects
feat: rename properties to projects + simplify project creation
2026-02-18 08:08:58 +09:00
Anton Pascal 84e933f705 feat: add project name editing, remove address fields from settings
- Add updateProjectName server action
- Project settings dialog now shows editable name field
- Removed address editing section from settings (per Wassim's request)
- Privacy toggle and delete project remain
2026-02-17 23:07:38 +00:00
Anton Pascal ee30f17129 feat: rename properties to projects
- Rename all DB tables: properties → projects, properties_addresses → projects_addresses, properties_models → projects_models, property_likes → projects_likes
- Add projects_likes as proper Drizzle schema table (was SQL-only before)
- Rename ID prefixes: property_xxx → project_xxx
- Rename auth_sessions column: active_property_id → active_project_id
- Simplify project creation: address is now optional (no longer required to get started)
- Update all actions, stores, types, components, and routes
- Rename route: /editor/[propertyId] → /editor/[projectId]
- Add SQL migration for table/column/index/policy/function renames
- Update RPC functions: increment_project_views, get_project_like_count
- Update storage bucket reference: project-thumbnails
- All types/exports follow existing Drizzle patterns (pgTable, relations, zod schemas)
2026-02-17 20:40:52 +00:00
Wassim SAMADandGitHub 77d64824e5 Merge pull request #97 from pascalorg/feat/community-features
Feat/community features
2026-02-17 16:25:53 +09:00
wass08 dd5f63df64 wall tool draft 2026-02-17 16:22:45 +09:00