Simo
ef94646d60
fix(i18n): persist CMS translations and validate message catalogs
CI / check (push) Successful in 1m14s
CI / deploy (push) Successful in 1m27s
2026-09-06 17:55:11 +02:00
Simo
816e3875c2
feat(admin): add production error center and refresh CMS dependencies
2026-09-05 19:53:09 +02:00
openhands
399c047515
fix: harden admin actions, search, sanitization and repo hygiene
...
CI / check (push) Successful in 1m21s
CI / deploy (push) Successful in 1m25s
- Split approve/dismiss application workflows with distinct audit logs,
rate-limited guards and real error logging
- Validate article status/date/id input and stop resetting publishedAt
on every update
- Validate guild updates (state, forum enums, non-empty name) behind
rate-limited guard
- Fix scheduled-article publishing (ignore NULL dates, set updatedAt,
type-safe predicates)
- Harden admin search API (LIKE escaping, query cap, per-user
rate limit, round-robin result cap) and fix search dialog
abort/res.ok/loading races
- Lock down HTML sanitizer to an allowlist profile and add XSS tests
- Improve mobile nav accessibility (unique id, dialog role, focus
management, scroll lock, outside close)
- Log swallowed server errors instead of silent catch blocks
- Remove dead eslint config, drop unused dompurify deps, restore knip
CI step, add Playwright config with smoke spec
2026-09-04 13:04:08 +02:00
openhands
30c95b1a5c
feat: comprehensive CMS improvements
...
CI / runtime-diagnostics (push) Skipped
CI / release (push) Skipped
CI / check (push) Failing after 0s
CI / deploy (push) Skipped
- Fix DOMPurify SSR crash (use isomorphic-dompurify)
- Fix SanitizedHtml to sanitize by default
- Add auth guards to studio/catalog maintenance pages
- Add update/edit to vouchers CRUD
- Add update/edit to rare-values CRUD
- Add approve workflow to applications page
- Add edit form to guilds detail page
- Add SEO metadata to all public pages (21 pages)
- Fix mobile nav accessibility (focus trap, aria attributes)
- Fix missing labels and table accessibility
- Add dynamic imports for heavy client components (6 components)
- Fix silent error swallowing (40+ locations)
- Add content scheduling for articles (publishAt, status)
- Wire up 12 missing webhook notification triggers
- Add global search to admin panel
- Add bulk actions to admin users table
- Fix JSON formatting and a11y issues
2026-09-03 16:00:32 +02:00
openhands
a30e4af32e
feat: polish toolbar, live online count via SSE + emulator 3-state
...
CI / runtime-diagnostics (push) Skipped
CI / check (push) Successful in 30s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m5s
- Add emulator status 3-state (unknown/green/red) with tooltip
- Extract shared primary button style/constants for DRY toolbar code
- Add emulatorUnknown translations to all 25 locales
- Bump Next.js to 16.3.4
- Fix RCON delivery timeout caching (15s TTL / shared across clients)
- Who's-online tooltip throttled to max 1 request per 30s
2026-09-02 21:34:30 +02:00
openhands
c023436413
fix: align pnpm-workspace.yaml overrides with package.json specifiers
...
CI / runtime-diagnostics (push) Skipped
CI / check (push) Successful in 28s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m2s
The CI frozen-lockfile check was failing because pnpm-workspace.yaml
overrides had older version specifiers than package.json. Update overrides
for sharp, postcss, and @types/react-dom to match, and regenerate lockfile.
2026-09-01 17:52:35 +02:00
openhands
d602ee59c7
chore: update all dependencies to latest versions
...
CI / runtime-diagnostics (push) Skipped
CI / check (push) Failing after 11s
CI / release (push) Skipped
CI / deploy (push) Skipped
- lucide-react 1.33.0 → 1.38.0
- mysql2 3.23.4 → 3.24.2
- next-intl 4.13.7 → 4.14.1
- otplib 13.4.1 → 13.5.0
- react-hook-form 7.85.0 → 7.87.0
- resend 6.21.0 → 6.25.0
- zod 4.4.3 → 4.5.4
- sharp 0.35.3 → 0.35.4
- @biomejs/biome 2.5.9 → 2.5.11
- @types/node 26.2.0 → 26.4.0
- @types/react-dom 19.2.4 → 19.2.5
- knip 6.32.2 → 6.33.0
- lint-staged 17.3.0 → 17.4.1
- tsx 4.23.12 → 4.23.13
- pnpm 11.24.0 → 11.25.0
2026-09-01 17:38:25 +02:00
Simo
b1ddda66ff
Revert "Merge pull request 'Complete Housekeeping migration and /ase cutover' ( #52 ) from codex/housekeeping-complete into main"
...
CI / check (push) Successful in 27s
CI / release (push) Skipped
CI / deploy (push) Successful in 43s
This reverts commit 488b6e57c4 , reversing
changes made to b506b4499a .
2026-08-30 21:31:34 +02:00
Simo
2b8f73a91d
feat(housekeeping): cut over administration to ase
2026-08-30 20:35:22 +02:00
openhands
3baac5e885
chore: update nextjs and react to latest versionb to fix cve eploits
CI / check (push) Successful in 28s
CI / release (push) Skipped
CI / deploy (push) Successful in 43s
2026-08-29 21:30:44 +02:00
openhands
ca59a1065f
perf: use lzma-wasm for SWF decompression and drop vite
...
CI / check (push) Successful in 28s
CI / release (push) Skipped
CI / deploy (push) Successful in 59s
Replace the pure-JS lzma decoder with lzma-wasm (Rust/WASM, base64-inlined,
zero-alloc decompress), giving an order-of-magnitude speedup on furni
imports. Remove the obsolete lzma type shim and the redundant top-level
vite dev dependency, which nothing imports directly.
2026-08-29 19:27:27 +02:00
openhands
94b0b65ca0
Remove unused dependencies flagged by Knip
CI / check (push) Successful in 26s
CI / release (push) Skipped
CI / deploy (push) Successful in 38s
2026-08-25 22:28:02 +02:00
openhands
e06596391e
Fix Turbopack module resolution for lzma and restore path imports
2026-08-25 22:19:59 +02:00
openhands
e6dd22a4de
Update all packages to the latest versions for Epicnextcms
CI / check (push) Successful in 26s
CI / release (push) Skipped
CI / deploy (push) Successful in 42s
2026-08-22 14:41:01 +02:00
openhands
5668493485
chore: update dependencies to latest versions within version ranges
...
CI / check (push) Failing after 7s
CI / release (push) Skipped
CI / deploy (push) Skipped
Run pnpm update; bumped 21 packages, removed 20. App still typechecks and
passes Biome.
2026-08-22 13:42:07 +02:00
openhands
0b4fc4559e
chore: update dependencies and lockfile to latest stable versions
CI / check (push) Successful in 31s
CI / release (push) Skipped
CI / deploy (push) Successful in 49s
2026-08-18 21:02:57 +02:00
openhands
e76c530e4f
Fix TypeScript errors and implement furniture import ID integrity with 18+ age verification
...
CI / check (push) Successful in 29s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m2s
- Add termsAccepted and ageVerified columns to User table
- Update register schema with new boolean fields
- Fix register form age verification checkbox (th -> t)
- Fix furni-import spriteId declaration order
- Fix batch route variable naming (id -> spriteId)
- Fix catalog-audit import path and ensure correct types
- Hardened import with per-item id conflict checks
- Added audit option for FurnitureData.json spriteId conflicts
- Updated tagline to include Leeftijdsvereiste: 18+
2026-08-14 16:37:00 +02:00
openhands
dc9e5a567c
chore: update project dependencies and configurations
CI / check (push) Successful in 32s
CI / release (push) Skipped
CI / deploy (push) Successful in 44s
2026-08-14 10:20:25 +02:00
openhands
9463c8d4da
fix: update Vite to version 8.2.1
CI / check (push) Successful in 36s
CI / release (push) Skipped
CI / deploy (push) Successful in 51s
2026-08-11 20:35:36 +02:00
openhands
e867b675fc
fix: replace jsonc with jsonc-parser and cleanup build config
2026-08-11 16:50:10 +02:00
openhands
b1ac2e1331
fix: move @next/bundle-analyzer to runtime deps for next start
CI / check (push) Successful in 33s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m8s
2026-08-09 12:47:40 +02:00
openhands
ae1393d3e3
refactor: clean up duplicate imports and dead code
...
CI / check (push) Successful in 24s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m7s
- Merge type and value imports from the same module into single imports
- Remove dead import-badges action (flow uses /api/admin/import/badges)
- Remove unused babel-plugin-react-compiler devDependency
- Remove stray test.txt file
- Update knip config: track css imports, drop redundant ignore entries
- Update contract test to drop obsolete dead-action assertion
2026-08-09 11:51:26 +02:00
openhands
bdcf1451f8
Revert "chore(deps): update dependency tsx to ^4.23.6"
...
CI / check (push) Failing after 9s
CI / release (push) Skipped
CI / deploy (push) Skipped
This reverts commit b892786ff8 .
2026-08-05 11:11:12 +02:00
openhands
dc8fb8a6ed
feat: speed up admin clone import and enable Cache Components
...
- Clone import: defer FurnitureData.json writes and append all entries in a
single batched write instead of one read-modify-write per item, removing
the main serialization bottleneck for large batches.
- Clone import: raise SSE batch concurrency cap from 5 to 10 and bump the
clone client/route default from 2 to 6.
- Add a flush hook to runSseBatch so callers can batch deferred work before
batch_complete is emitted, and surface flush errors as an error event.
- Enable Next.js Cache Components (instant: false opt-out) and silence the
related build warnings in next.config.ts.
- Switch isomorphic-dompurify to dompurify and refresh dependencies.
2026-08-05 11:10:16 +02:00
remco
b892786ff8
chore(deps): update dependency tsx to ^4.23.6
CI / check (pull_request) Failing after 8s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
CI / check (push) Failing after 8s
CI / release (push) Skipped
CI / deploy (push) Skipped
2026-08-05 02:00:27 +00:00
openhands
b06f27ef89
chore: update dependencies
2026-08-04 21:27:09 +02:00
openhands
b87c9a5b8d
chore: remove puppeteer CF bypass (not working for Leet/Hubbly/Habblet)
...
CI / check (push) Failing after 14s
CI / release (push) Skipped
CI / deploy (push) Skipped
Cloudflare has strengthened protection on these hotels.
Puppeteer-based bypass returns HTML instead of JSON.
cloudscraper has dependency issues with Node.js v26.
Reverted to simple HTTP fetch with clear error messages.
2026-08-04 18:45:10 +02:00
openhands
5c60ce364c
chore: remove cf-fetch.ts (puppeteer CF bypass not working for Leet/Hubbly/Habblet)
...
Cloudflare has strengthened protection on these hotels.
Puppeteer-based bypass returns HTML instead of JSON.
cloudscraper has dependency issues with Node.js v26.
Reverting to simple HTTP fetch with clear error messages.
2026-08-04 18:42:20 +02:00
openhands
9fbfd2f51a
chore: verify clone sources with Cloudflare bypass test script; remove broken Hubbly URLs
...
CI / check (push) Successful in 26s
CI / release (push) Skipped
CI / deploy (push) Successful in 55s
Verified working sources via puppeteer Cloudflare bypass test:
- Habbo (GitHub) - 200
- Wibbo - 200 furnidata, 403/403 nitro/icons
- Hubba.cc - 200 furnidata, 404 nitro
- Leet - 200 304 304 (all working)
- Habblet City - 200 200 200 (all working)
- Soda Ho - 200 furnidata, 404 nitro/icons
Cloudflare-blocked sources removed (habba.io, habcrush.pw, fobba.net, etc)
Hubbly URLs removed (all 404) pending verification
Added test-cf.ts script for future source validation
2026-08-04 17:28:01 +02:00
Simo
1f4aadb3d7
chore: remove Sentry integration
CI / check (push) Successful in 21s
CI / release (push) Skipped
CI / deploy (push) Successful in 53s
2026-08-01 22:12:31 +02:00
Simo and Cursor
ba82789166
chore(db): finish Prisma cutover to Drizzle Kit tooling
...
CI / check (push) Failing after 9s
CI / release (push) Skipped
CI / deploy (push) Skipped
Move CMS SQL to drizzle/migrations, drop prisma packages/schema, wire drizzle-kit scripts, and regenerate schema names from src/db/schema.ts.
Co-authored-by: Cursor <[email protected] >
2026-08-01 15:02:21 +02:00
openhands
56061e41d4
refactor: replace Prisma ORM runtime with Drizzle ORM facade
...
CI / check (push) Failing after 12s
CI / deploy (push) Skipped
CI / release (push) Skipped
- Replace Prisma client runtime with Drizzle ORM (zero Prisma engine/query engine in production)
- Add Prisma-compatible facade (@/lib/prisma-facade.ts) backed by Drizzle for backwards compatibility
- Runtime queries route through Drizzle ORM; @prisma/client is now devDependency (types only)
- Remove @prisma/adapter-mariadb dependency; delete prisma-pool.ts and types/prisma.ts
- New Drizzle schema layer: src/db/schema.ts (176 tables) and src/lib/db.ts (connection)
- Update README documenting the dual-layer ORM architecture
- Restore src/generated/ gitignore (build artifact for local type generation)
- 0 TypeScript errors, 583 tests passing
The facade intentionally uses `any` types to match the Prisma Client API surface,
allowing existing code to run unmodified while routing queries through Drizzle at runtime.
2026-07-31 14:11:03 +02:00
remco
9d1c71d926
chore(deps): update dependency lint-staged to ^17.3.0
CI / check (pull_request) Successful in 21s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
CI / check (push) Successful in 22s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m14s
2026-07-31 09:04:53 +00:00
remco
744e224fd0
chore(deps): update dependency knip to ^6.30.0
CI / check (pull_request) Successful in 21s
CI / deploy (pull_request) Skipped
CI / release (pull_request) Skipped
CI / check (push) Successful in 22s
CI / release (push) Skipped
CI / deploy (push) Successful in 58s
2026-07-31 08:00:29 +00:00
remco
a2acac2c4c
chore(deps): update All dependencies
CI / check (pull_request) Successful in 22s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
CI / check (push) Successful in 22s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m10s
2026-07-30 22:00:34 +00:00
openhands
d805e54053
fix: update postcss override to 8.5.25 for lockfile consistency
...
CI / check (push) Successful in 25s
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m15s
CI / deploy (push) Failing after 10s
- Update pnpm-workspace.yaml postcss override to ^8.5.25
- Sync lockfile with package.json postcss update
2026-07-30 20:02:11 +02:00
openhands
583d05eee9
feat: modernize with Next.js 16 standalone output, remove redundant babel compiler, update postcss
...
CI / check (push) Failing after 6s
Deploy / release (push) Skipped
CI / deploy (push) Skipped
Deploy / deploy (push) Failing after 5s
- Remove babel-plugin-react-compiler (Next.js 16 has built-in reactCompiler)
- Update postcss to 8.5.25
- Add output: 'standalone' to next.config.ts for smaller/faster deployments
- Update ecosystem.config.cjs to use standalone server.js
2026-07-30 20:00:31 +02:00
Simo and Cursor
749dc237f1
fix(deploy): export PORT from .env before PM2 reload so health check matches
...
CI / check (push) Successful in 26s
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 2m6s
Co-authored-by: Cursor <[email protected] >
2026-07-30 18:33:38 +02:00
openhands
8c193936f6
chore: update pnpm-lock.yaml after removing @lhci/cli and @playwright/test
CI / check (push) Successful in 20s
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 1m32s
2026-07-30 18:09: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
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
db39fb335c
chore: successfully migrate atomcms-next to typescript 7
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m6s
2026-07-28 19:30:10 +02:00
openhands
15a76ffe84
chore: lockfile update for typescript 7
Deploy / release (push) Skipped
Deploy / deploy (push) Failing after 43s
2026-07-28 19:22:32 +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