Commit Graph
70 Commits
Author SHA1 Message Date
SimoandCursor 749dc237f1 fix(deploy): export PORT from .env before PM2 reload so health check matches
Co-authored-by: Cursor <[email protected]>
2026-07-30 18:33:38 +02:00
openhands 340ecb42c8 cleanup: remove old unused tooling and reference configs
Remove:
- @lhci/cli + lighthouserc.cjs (Lighthouse CI, never used in CI pipeline)
- @playwright/test + e2e/ tests + playwright.config.ts (E2E tests not used)
- setup/ directory (emulator/nitro reference install configs)
- Build artifacts: .next.prev/, coverage/, backups/
2026-07-30 18:05:44 +02:00
remco da390e447f chore(deps): update All dependencies 2026-07-30 17:01:53 +02:00
remco 1311d36933 chore(deps): update All dependencies 2026-07-30 00:00:20 +02:00
remco 65fae257ba chore(deps): update dependency @tanstack/react-virtual to ^3.14.9 2026-07-28 23:00:41 +02:00
openhands e08e366266 fix: remove orphaned @node-rs/argon2 and restore CI workflow
The hash-wasm package now handles both argon2id and bcrypt hashing,
making @node-rs/argon2 unused. Leaving it in package.json causes
native binary compilation failures on deploy servers (EACCES/build
errors), which breaks the deploy pipeline entirely.

Also restore .gitea/workflows/ci.yaml so CI pipelines run again.
2026-07-28 22:32:56 +02:00
SimoandCursor e644362d09 chore(deps): update dependency isomorphic-dompurify to v3
Co-authored-by: Cursor <[email protected]>
2026-07-28 20:51:46 +02:00
remco 9177230dc2 chore(deps): update dependency isomorphic-dompurify to ^1.13.0 2026-07-28 18:00:36 +00:00
openhands 9c0b339736 chore: update typescript configuration for typescript 7 compatibility 2026-07-28 19:19:28 +02:00
openhands a513d9b7bd Migrate dependencies: bcrypt→@node-rs/argon2, sanitize-html→isomorphic-dompurify, remove nodemailer/next-view-transitions 2026-07-28 19:03:04 +02:00
openhands 3827f3e686 Migrate from framer-motion to motion/react 2026-07-28 18:49:25 +02:00
openhands e408fdd5e6 chore(deps): update dependency framer-motion to ^12.43.0 2026-07-28 18:40:53 +02:00
remco 2d003a2101 chore(deps): update dependency resend to ^6.18.1 2026-07-28 13:01:23 +00:00
remco 2f5d2b6e09 chore(deps): update All dependencies 2026-07-28 10:00:31 +00:00
openhands 02280d0f42 fix: execute aliased tsc6 binary in typecheck script 2026-07-27 23:21:26 +02:00
openhands f43bb234ab fix: use pnpm exec for local tsc in typecheck script 2026-07-27 23:18:30 +02:00
openhands dacc4cadfd chore(deps): upgrade to typescript 7 bridge and clean up pnpm v11 workspace configs 2026-07-27 23:14:00 +02:00
remco 65f118c918 chore(deps): update All dependencies 2026-07-27 20:00:33 +00:00
remco 3f43a62243 chore(deps): update dependency eslint to v10.8.0 2026-07-27 19:03:11 +00:00
remco 5f98b949ad chore(deps): Pin dependencies 2026-07-27 20:46:27 +02:00
remco cab4280e63 chore(deps): Pin dependencies 2026-07-27 18:46:12 +00:00
openhands 7df37728aa fix(deps): update nodemailer to v9 to resolve SSRF vulnerability (GHSA-p6gq-j5cr-w38f) 2026-07-27 17:56:53 +02:00
openhands 423a33200e chore: improve tooling, linting, testing, and CI
- Add LICENSE file (CC BY-NC-SA 4.0)
- Add .nvmrc pinning Node 22
- Add Renovate config with daily schedule and Gitea Actions workflow
- Reduce ESLint max-warnings from 1000 to 50
- Re-enable Biome a11y/security recommended rules
- Fix Biome lint issues (a11y, hook deps, SVG labels, checkbox semantics)
- Improve CI: run on pushes to feat/fix branches, add pnpm audit
- Add Vitest coverage with v8 provider and thresholds
- Add E2E tests (auth, admin, navigation specs)
- Add admin-maintenance server action test
- Install @vitest/coverage-v8
- Ignore coverage/ directory
2026-07-27 17:03:09 +02:00
openhands c670227ad4 fix: downgrade typescript to 5.x and nodemailer to 8.x for peer dep compatibility + update lockfile 2026-07-25 17:37:23 +02:00
openhands 1acace49d0 refactor: full codebase overhaul — dead code removal, env validation, logger migration, date consolidation, Prisma schema cleanup, button consistency, useEffect deps, test coverage
- env.ts: added 10 missing Zod-validated env vars (imager, paypal currency, argon2/bcrypt params)
- Migrated 6 modules from process.env to validated env.* (auth, proxy-auth, paypal, password, redis, imager, moderation, alert, logger)
- Replaced console.warn/error with pino logger in 9 server-side modules
- Removed 50+ dead exports (SWF wrappers, coalesceHotelName, signIn, isStaff re-export, formatTimestamp, Skeleton/SkeletonCard, 4 unused housekeeping sections)
- Consolidated date formatting: 28 files migrated to shared formatDate() from @/lib/format-date
- Wired 4 radio/settings API routes through cached siteSettings service instead of raw Prisma queries
- Added getMany()/getAll() helpers to SiteSettings service
- Removed 88 dead Prisma model definitions (schema 2763→1846 lines)
- Created admin action-helper.ts with wrapAction() for standardized error handling
- Fixed useEffect dependency arrays in 4 data-heavy components
- Replaced raw btn CSS classes with shadcn Button component across admin pages
- Stripped dead i18n namespaces (common, pages.client) from all 22 translation files
- Removed 2 dead scripts (create-release.sh, check-local-imports.ts)
- Fixed knip.json configuration
- Added 7 new test suites: format-date, paypal, moderation, alert, webhook, action-helper, and fixed password.test.ts for env mocking
- All 358 tests passing across 72 test files
- TypeScript: 0 errors
2026-07-25 17:33:06 +02:00
openhands 3773c6cb29 chore: switch from standalone to normal next start
- Remove output:standalone from next.config.ts
- Remove postbuild standalone copy script
- Change start script from standalone/server.js to next start
- Update PM2 to run pnpm start
2026-07-24 13:57:21 +02:00
openhands 5fa342018d chore: remove dead code and unused dependencies
- Delete 4 unused files detected by knip
- Remove lint-staged, eslint-config-prettier, plausible-tracker
- Clean up knip.json entry patterns
2026-07-24 11:59:50 +02:00
openhands a058a6e923 Rename deploy script to avoid pnpm conflict 2026-07-23 18:59:38 +02:00
openhands 5913328a53 Switch to PM2, add deploy script
- Replace tmux with PM2 process manager
- Add deploy script (pnpm deploy = build + pm2 reload)
- PM2 auto-starts on boot via systemd (pm2-root.service)
- Remove old atom-nexst.service (direct next start)
2026-07-23 18:50:46 +02:00
openhands 83356b9a9c Polish home, register, and login pages
- Add pixel font to headings across all pages
- Improve stats icons (online-friends.png, friends.png)
- Fix features icons (star.gif → navigation/me.png)
- Replace top bar logo with lighthouse.png
- Add read-more arrow overlay on news cards
- Add Nitro client CTA section
- Add Discord link in top bar
- Add view-all link to online users section
- Add Reveal scroll animations to register/login
- Add Habbo gradient headers to register/login sidebars
- Add gradient headers to register/login form boxes
- Switch start script to standalone server
- Add postbuild script to copy static files
2026-07-23 18:17:16 +02:00
openhands 57f85f5453 chore: add professional tooling (husky, lint-staged, playwright, lighthouse, eslint) 2026-07-21 23:36:54 +02:00
SimoandCursor 2ff08e5127 chore: patch deps, CSP style nonces, otplib 13, and PR CI
Co-authored-by: Cursor <[email protected]>
2026-07-21 20:46:02 +02:00
SimoandCursor 964c8b5f5a fix: pin TypeScript 5.9 until Next.js supports TS 7
Co-authored-by: Cursor <[email protected]>
2026-07-21 20:39:14 +02:00
SimoandCursor d2120987b0 perf: replace bcryptjs with native bcrypt for password hashing
Co-authored-by: Cursor <[email protected]>
2026-07-21 20:37:02 +02:00
SimoandCursor 830d252346 chore: upgrade Zod 4, Vitest 4, and TypeScript 7
Bump major tooling stacks and adapt Zod error APIs (issues/flattenError) plus tsconfig paths for TS 7 baseUrl removal.

Co-authored-by: Cursor <[email protected]>
2026-07-21 20:34:29 +02:00
SimoandCursor 9b47668fe9 chore: CSP script nonces, deploy health check, dead-code cleanup
Add per-request CSP nonces (drop script unsafe-inline), post-deploy /api/health gate, bump next-auth to beta.32, and remove unused motion/cache/permission helpers.

Co-authored-by: Cursor <[email protected]>
2026-07-21 20:27:08 +02:00
SimoandCursor c46dadeda4 chore: harden deps, env validation, admin errors, and redis warnings
Align nodemailer with Auth.js peers, bump patch deps, validate env on deploy builds, add admin error boundary, and warn when Redis is missing in production.

Co-authored-by: Cursor <[email protected]>
2026-07-21 20:19:05 +02:00
SimoandCursor c865e6f699 chore: upgrade Next.js to 16.2.11 for July security release
Co-authored-by: Cursor <[email protected]>
2026-07-21 20:06:48 +02:00
openhands 2beba07ba5 feat: enable React Compiler, optimizePackageImports for lucide-react, add loading states for (site) and client routes 2026-07-20 14:25:12 +02:00
openhands f53d25e0a5 feat: add view transitions, smooth scroll, bundle analyzer, SSE radio stream, and AnimatePresence animations 2026-07-20 14:06:43 +02:00
SimoandCursor 1abbf3fde7 fix(deploy): sync rooms Prisma types and harden checkout against stale host files
next build failed on host-local rooms.ts using Prisma without import while tsc incremental passed; force non-incremental typecheck and verify src matches HEAD.

Co-authored-by: Cursor <[email protected]>
2026-07-18 20:06:34 +02:00
openhands 3c9c1311ec chore: remove dead code flagged by knip
Remove 19 unused source files (no importers anywhere in src/):
- src/actions/admin-permissions.ts, admin-radio.ts, admin-user-edit.ts,
  admin-users.ts (functionality lives in @/actions/users and
  @/actions/permissions)
- src/components/admin/confirm-action.tsx, page-header.tsx
- src/components/motion-elements.tsx
- src/lib/format-date.ts
- src/lib/catalog-categories/* (incl. re-export barrel)
- src/lib/foundation/{index,database,middleware,validation}.ts (errors/action
  kept, still imported directly)
- src/lib/services/imager/{avatar-renderer,memory-cache}.ts
- src/lib/services/nitro-assets.ts

Update admin-operations-contract test to drop the two removed action-file
gates (their permission coverage already exists in users.ts/permissions.ts).

Add knip.json for repeatable dead-code audits.

Verified: tsc --noEmit clean, next build succeeds, full test suite green
(301/301).
2026-07-18 19:08:17 +02:00
SimoandCursor 09f1bc2bd6 Add production observability: Sentry, pino, and sharp badge encoding.
Sentry is opt-in via DSN env vars; logger uses structured pino JSON in prod; badge uploads are normalized to GIF with sharp.

Co-authored-by: Cursor <[email protected]>
2026-07-17 23:09:57 +02:00
SimoandCursor ef2c3324b4 Prune unused deps, bump safe minors, add server-only guards.
Remove unused translate/jpeg types packages; refresh patch updates; mark Redis/site-settings/gamedata hotel as server-only with a Vitest stub.

Co-authored-by: Cursor <[email protected]>
2026-07-17 22:53:56 +02:00
SimoandCursor 25f01b61b3 Migrate UI primitives from Radix to Base UI.
Co-authored-by: Cursor <[email protected]>
2026-07-17 18:31:07 +02:00
SimoandCursor 8bc4264f43 Replace monolithic radix-ui with scoped @radix-ui packages.
Co-authored-by: Cursor <[email protected]>
2026-07-17 18:20:27 +02:00
openhands a3b077c488 feat: add smooth site-wide animations with framer-motion
- Add framer-motion and tailwindcss-animate for transitions
- Add page transitions via AnimatePresence in the site layout
- Convert nav dropdown and mobile menu to animated motion components
- Add entry animation to the radio player widget
- Add reveal/stagger animations to the home page views
- Add shared motion utilities and reusable animated components
2026-07-16 20:58:18 +02:00
openhands 045dc06a1f fix: resolve type errors and migrate pnpm settings to pnpm-workspace.yaml
- Move pnpm.onlyBuiltDependencies/overrides from package.json to pnpm-workspace.yaml (clears pnpm WARN)
- Allow useServerAction run() to accept actions returning void
- Make adminAction/authAction input optional so no-schema actions can be called without args
- Return ActionResult from updateBcPage
- Fix categoryPageMap value type (number | undefined)
- Declare DbService.queryCount field
- Use definite assignment for release in withFurniDataLock
- Narrow pair type in theme-contrast test
2026-07-13 22:10:50 +02:00
openhands df38dccbf1 style: format code biome 2026-07-13 21:57:41 +02:00
openhands 6ddfcafa67 Fix placeholders in machine translations and add Russian translation 2026-07-12 22:37:52 +02:00