Simo and Cursor
e644362d09
chore(deps): update dependency isomorphic-dompurify to v3
...
CI / check (pull_request) Failing after 10s
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
CI / check (pull_request) Failing after 11s
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m25s
2026-07-28 18:00:36 +00:00
openhands
9c0b339736
chore: update typescript configuration for typescript 7 compatibility
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 5s
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
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 27s
2026-07-28 19:03:04 +02:00
openhands
3827f3e686
Migrate from framer-motion to motion/react
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 2m4s
2026-07-28 18:49:25 +02:00
openhands
e408fdd5e6
chore(deps): update dependency framer-motion to ^12.43.0
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m36s
2026-07-28 18:40:53 +02:00
remco
2d003a2101
chore(deps): update dependency resend to ^6.18.1
CI / check (pull_request) Successful in 51s
CI / check (push) Successful in 58s
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m35s
2026-07-28 13:01:23 +00:00
remco
2f5d2b6e09
chore(deps): update All dependencies
CI / check (pull_request) Successful in 1m6s
CI / check (push) Successful in 36s
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m37s
2026-07-28 10:00:31 +00:00
openhands
02280d0f42
fix: execute aliased tsc6 binary in typecheck script
CI / check (push) Failing after 51s
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 16s
2026-07-27 23:21:26 +02:00
openhands
f43bb234ab
fix: use pnpm exec for local tsc in typecheck script
CI / check (push) Failing after 15s
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 12s
2026-07-27 23:18:30 +02:00
openhands
dacc4cadfd
chore(deps): upgrade to typescript 7 bridge and clean up pnpm v11 workspace configs
CI / check (push) Failing after 58s
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 11s
2026-07-27 23:14:00 +02:00
remco
65f118c918
chore(deps): update All dependencies
CI / check (pull_request) Successful in 48s
CI / check (push) Successful in 1m0s
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m38s
2026-07-27 20:00:33 +00:00
remco
3f43a62243
chore(deps): update dependency eslint to v10.8.0
CI / check (pull_request) Successful in 1m8s
CI / check (push) Successful in 1m9s
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m56s
2026-07-27 19:03:11 +00:00
remco
5f98b949ad
chore(deps): Pin dependencies
CI / check (push) Successful in 1m9s
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m58s
2026-07-27 20:46:27 +02:00
remco
cab4280e63
chore(deps): Pin dependencies
CI / check (pull_request) Successful in 1m5s
CI / check (push) Successful in 1m18s
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 2m8s
2026-07-27 18:46:12 +00:00
openhands
7df37728aa
fix(deps): update nodemailer to v9 to resolve SSRF vulnerability (GHSA-p6gq-j5cr-w38f)
CI / check (push) Successful in 58s
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m56s
2026-07-27 17:56:53 +02:00
openhands
423a33200e
chore: improve tooling, linting, testing, and CI
...
CI / check (push) Failing after 14s
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 2m38s
- 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
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 28s
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
...
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 8s
- 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
...
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 2s
- 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
...
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m51s
- 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
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 1m55s
2026-07-23 18:59:38 +02:00
openhands
5913328a53
Switch to PM2, add deploy script
...
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 2m8s
- 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
...
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m49s
- 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)
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 6s
2026-07-21 23:36:54 +02:00
Simo and Cursor
2ff08e5127
chore: patch deps, CSP style nonces, otplib 13, and PR CI
...
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m35s
Co-authored-by: Cursor <[email protected] >
2026-07-21 20:46:02 +02:00
Simo and Cursor
964c8b5f5a
fix: pin TypeScript 5.9 until Next.js supports TS 7
...
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m35s
Co-authored-by: Cursor <[email protected] >
2026-07-21 20:39:14 +02:00
Simo and Cursor
d2120987b0
perf: replace bcryptjs with native bcrypt for password hashing
...
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 58s
Co-authored-by: Cursor <[email protected] >
2026-07-21 20:37:02 +02:00
Simo and Cursor
830d252346
chore: upgrade Zod 4, Vitest 4, and TypeScript 7
...
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 52s
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
Simo and Cursor
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
Simo and Cursor
c46dadeda4
chore: harden deps, env validation, admin errors, and redis warnings
...
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m39s
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
Simo and Cursor
c865e6f699
chore: upgrade Next.js to 16.2.11 for July security release
...
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m27s
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
Local Build and Deploy / deploy (push) Successful in 1m19s
2026-07-20 14:25:12 +02:00
openhands
f53d25e0a5
feat: add view transitions, smooth scroll, bundle analyzer, SSE radio stream, and AnimatePresence animations
Local Build and Deploy / deploy (push) Successful in 1m24s
2026-07-20 14:06:43 +02:00
Simo and Cursor
1abbf3fde7
fix(deploy): sync rooms Prisma types and harden checkout against stale host files
...
Local Build and Deploy / deploy (push) Failing after 1m19s
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
...
Local Build and Deploy / deploy (push) Successful in 1m7s
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
Simo and Cursor
09f1bc2bd6
Add production observability: Sentry, pino, and sharp badge encoding.
...
Local Build and Deploy / deploy (push) Successful in 1m9s
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
Simo and Cursor
ef2c3324b4
Prune unused deps, bump safe minors, add server-only guards.
...
Local Build and Deploy / deploy (push) Failing after 15s
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
Simo and Cursor
25f01b61b3
Migrate UI primitives from Radix to Base UI.
...
Local Build and Deploy / deploy (push) Successful in 54s
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:31:07 +02:00
Simo and Cursor
8bc4264f43
Replace monolithic radix-ui with scoped @radix-ui packages.
...
Local Build and Deploy / deploy (push) Successful in 55s
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
...
Local Build and Deploy / deploy (push) Successful in 53s
- 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
...
Local Build and Deploy / deploy (push) Failing after 56s
- 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
Local Build and Deploy / deploy (push) Failing after 46s
2026-07-13 21:57:41 +02:00
openhands
6ddfcafa67
Fix placeholders in machine translations and add Russian translation
Local Build and Deploy / deploy (push) Successful in 54s
2026-07-12 22:37:52 +02:00
Simo
0cd753c735
fix: restore complete admin feature dependencies
2026-07-11 21:15:54 +02:00
Simo
5b4228261a
Reapply "Add missing admin action files and navigation links"
...
This reverts commit 4d515bc400 .
2026-07-11 20:52:56 +02:00
Simo
4d515bc400
Revert "Add missing admin action files and navigation links"
...
This reverts commit 41be6835bf .
2026-07-11 20:37:56 +02:00
openhands
41be6835bf
Add missing admin action files and navigation links
...
- Add 11 missing server action files: badges, bulk-users, catalog, catalog-bc, catalog-items, import-badges, import-furni, multi-account-detect, permissions, rooms, soundtracks
- Add missing admin navigation links: tickets, sounds, translations, import, radio sub-pages
- Add translation keys for all new navigation items
2026-07-11 12:01:05 +02:00
openhands
942bc6fc8d
Security hardening, code quality, and ESLint setup
...
- Remove production DB dump (db_backup_*.sql) and update.log from git tracking
- Add DB backups to .gitignore
- Replace all console.log/console.error with structured logger module
- Translate Dutch error messages to English (link-discord.ts)
- Remove dead code blocks (register-form.tsx false && pattern)
- Add ESLint flat config with TypeScript, React, Next.js, jsx-a11y, and security plugins
- Add Prettier config
- Add eslint-plugin-security for security-aware linting
- Fix all 119+ ESLint warnings across the codebase:
- Resolve security/detect-object-injection with safe access patterns
- Resolve security/detect-non-literal-fs-filename with path traversal validation
- Replace <img> with next/image <Image> component
- Remove unused variables and imports
- Replace non-null assertions with proper type guards
- Replace <a> with <Link> for internal navigation
- Use next/script Script component for external scripts
- Fix setState-in-useEffect anti-patterns (navbar-color-picker, logo-generator, theme-switcher)
- Add lint and format scripts to package.json
All checks: typecheck ✓, tests 58/58 ✓, lint 0 errors 0 warnings ✓
2026-07-10 22:48:22 +02:00
openhands
c5db7f5156
fix: production hardening — migration script, security fixes, structured logging, API docs, component splitting
...
- Create apply-migrations.ts and jobs-worker.ts scripts (package.json references)
- Convert badge leaderboard from $queryRawUnsafe to $queryRaw with Prisma.sql templates
- Fix OAuth email binding: add oauth_require_link site setting, skip 2FA-protected accounts
- Add per-user 2FA rate limiting (5/30s) to prevent TOTP brute-force
- Add structured JSON logger with levels (debug/info/warn/error)
- Split 341-line HomePage into GuestView + UserView components
- Add OpenAPI v3.1 spec at /api/openapi.json
- Add LOG_LEVEL env var, regenerate Prisma client
- Add mysql2 dependency for migration scripts
- All 58 tests pass, typecheck clean
2026-07-08 13:06:02 +02:00