Commit Graph
100 Commits
Author SHA1 Message Date
openhands 7fc7412f18 Remove experimental Next.js config options
staleTimes, optimizePackageImports, and staticGenerationMaxConcurrency
were all experimental-only in Next.js 16. Removed them:

- staleTimes: router cache defaults are sufficient
- optimizePackageImports: Turbopack already tree-shakes lucide-react
- staticGenerationMaxConcurrency: mitigated by DATABASE_POOL_SIZE=5

Eliminates the 'Experiments (use with caution)' warning for our custom
options. Only clientTraceMetadata remains (Next.js framework default).
2026-07-23 19:50:17 +02:00
openhands dae381e07c Persist .next/cache across deploys for faster rebuilds
Each deploy creates a fresh worktree and deletes .next, losing the
Turbopack build cache. Now restore .next/cache from the live site
into the stage before pnpm build, so Next.js can do incremental
compilation. After cutover the cache persists in the live .next/ for
the next deploy.
2026-07-23 19:33:12 +02:00
openhands 7dbca4117c Fix BCRYPT_ROUNDS override — use function to read env at call time
BCRYPT_ROUNDS was a module-level const evaluated at import time,
so env overrides in tests or CI had no effect. Changed to function
that reads process.env on each call. Also lowered hardcoded
bcryptHash(..., 10) in test to use env var with fallback 4.

CI: BCRYPT_ROUNDS=2. Password test suite: 1860ms → 29ms.
2026-07-23 19:30:47 +02:00
openhands 331a18e9c7 Add BCRYPT_ROUNDS env override, use 4 in CI
- Bcrypt rounds now configurable via BCRYPT_ROUNDS env var (default 12)
- CI/deploy use BCRYPT_ROUNDS=4 for faster tests
- Argon2 test: 1161ms → 17ms (already done)
- Password test suite: 1860ms → 1330ms
2026-07-23 19:24:52 +02:00
openhands f7551166c5 Speed up tests: lower argon2 params in CI, env overrides
- Allow ARGON2_MEMORY_SIZE, ARGON2_ITERATIONS, ARGON2_PARALLELISM env overrides
- Use m=1024,t=1 in tests (was m=65536,t=4 → ~1s per hash)
- Set fast params in CI and deploy workflows
2026-07-23 19:21:24 +02:00
openhands b6ba554386 Fix deploy error handler: cd to safe dir before pm2 2026-07-23 19:16:34 +02:00
openhands aabf14aaf9 Fix deploy workflow tests for PM2 2026-07-23 19:14:47 +02:00
openhands 9226558aa0 Optimize deploy script
- Zero-downtime PM2 reload instead of stop+start
- Keep .next.prev backup until after health check
- Add standalone static file verification
- Remove duplicate sleep
- Clean up naming
2026-07-23 19:13:06 +02:00
openhands d9e95c823a Update deploy to use PM2, add .next.prev to gitignore 2026-07-23 19:09:05 +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 71a3b0a400 Add date and holiday detection to clock 2026-07-23 18:37:32 +02:00
openhands eb603b50a9 Add live clock to top bar 2026-07-23 18:32:45 +02:00
openhands b9c09f58d3 Use CMS logo in top bar, improve switcher area
- Replace lighthouse.png fallback with cms_logo from site settings
- Add glass-morphism container around Discord/Language/Theme switchers
- Apply to index, register, and login pages
2026-07-23 18:25:38 +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 a82cf7d2a1 Add top bar with hotel logo, language switcher, and theme toggle 2026-07-23 17:06:46 +02:00
openhands 4457117fa9 Premium index page redesign with hubbly icons, Habbo gradient headers, login sidebar, scroll animations 2026-07-23 16:52:08 +02:00
openhands 24c4279a7e Update duckets icon from hubbly.pw 2026-07-23 16:46:20 +02:00
openhands 36d9046a8d Revert "Replace PNG icons with Habbo-style SVG pixel art icons across index, nav, and mobile nav"
This reverts commit ac16df98c3.
2026-07-23 16:40:41 +02:00
openhands ac16df98c3 Replace PNG icons with Habbo-style SVG pixel art icons across index, nav, and mobile nav
- Create 20 Habbo-style pixel-art SVG icon components (home, user, catalog, star, community, games, enter, news, online, camera, chat, clock, heart, arrow, cog, furni, diamond, credits, duckets, rank)
- Update index page: replace all PNG icon references, add pixel font headings, add Habbo-style gradient section headers
- Update navigation: replace all PNG nav icons with Habbo SVG icons
- Update NavDropdown: accept ReactNode icon instead of string path
- Update mobile-nav: replace PNG brand icon with HabboHome SVG
2026-07-23 16:36:32 +02:00
openhands 1e77398a7c Add all missing translation keys to all 22 languages (English baseline) 2026-07-22 20:59:05 +02:00
openhands 5be5405bc9 Add missing translations for all 21 languages (home/register/login keys) 2026-07-22 20:45:30 +02:00
openhands dfc768c232 Add missing Dutch translations for stats/features keys on index 2026-07-22 20:35:17 +02:00
openhands db46453912 Use next_header.jpg as index hero background 2026-07-22 20:27:23 +02:00
openhands 6a16029839 Add missing Dutch translations for register/login/home keys 2026-07-22 19:44:34 +02:00
openhands 782271a31b Premium polish: enhanced toolbar, glass cards, Habbo bg panels, animations 2026-07-22 19:30:54 +02:00
openhands 7aec61d1a5 Add theme + language toolbar to index, register, login pages 2026-07-22 19:15:34 +02:00
openhands 11004626c7 Add newest registered users section to index, register, login pages 2026-07-22 18:56:46 +02:00
openhands 6b2819aa20 Hide all top bars for unauthenticated users 2026-07-22 18:40:09 +02:00
openhands ffd434485e Hide navigation bar for unauthenticated users 2026-07-22 18:39:22 +02:00
openhands c90b6decc8 Hero buttons: Enter → Register, Nitro → Login 2026-07-22 18:31:54 +02:00
openhands 94c02d9ee6 Redesign register + login pages: glass cards, Habbo bg hero panels 2026-07-22 18:31:10 +02:00
openhands 0520041d1e Redesign homepage: cleaner Habbo layout, glass cards, hero with hotel bg, removed clutter 2026-07-22 18:28:12 +02:00
openhands 5c1b35de7e Use Atom as default hotel name fallback on /me page 2026-07-22 18:20:18 +02:00
openhands 5e46dc387d Redirect logged-in users from / to /me 2026-07-22 18:14:50 +02:00
openhands 2438f4f7a8 Add Enter hotel button to /me page 2026-07-22 18:12:40 +02:00
openhands fb039b725f Fix dropdown z-index by using negative z-index on clouds instead of overriding all children 2026-07-22 16:12:21 +02:00
openhands c2de6cab10 Fix dropdowns falling behind site content due to CSS layer priority 2026-07-22 14:56:50 +02:00
openhands 1ffd46713a Redesign login, register, me pages with premium layout and i18n 2026-07-22 14:42:01 +02:00
openhands 063ac9ec40 refactor: clean premium design, fix header banner, remove clutter 2026-07-22 14:26:36 +02:00
openhands e2dab9d184 feat: premium polish with animations, glassmorphism, staggered reveals 2026-07-22 14:18:24 +02:00
openhands 8fa59d9d19 feat: incorporate design elements from habbo.nl, hubbly.pw, leet.ws 2026-07-22 14:12:55 +02:00
openhands 5fe01532ca feat: add Habbo sky background and pixel-font logo 2026-07-22 14:07:33 +02:00
openhands eb60f1a762 refactor: complete unique redesign of home and register pages 2026-07-22 13:58:58 +02:00
openhands fb0687ec71 feat: redesign home and register pages with professional Habbo-style layout 2026-07-22 13:52:23 +02:00
openhands b0ad3a128e fix: resolve turbopack NFT warning and disable Sentry telemetry 2026-07-21 23:49:23 +02:00
openhands 3608cb50cc fix: disable Next.js telemetry and enable build cache 2026-07-21 23:44:26 +02:00
openhands 6985b3e6ea fix: add REDIS_URL to .env and .env.example 2026-07-21 23:42:49 +02:00
openhands 5d0983fe41 fix: exclude e2e directory from vitest 2026-07-21 23:39:42 +02:00
openhands 077bc9afc0 chore: update pnpm-lock.yaml for new dev dependencies 2026-07-21 23:38:04 +02:00
openhands 57f85f5453 chore: add professional tooling (husky, lint-staged, playwright, lighthouse, eslint) 2026-07-21 23:36:54 +02:00
openhands 87bda8dbef feat: add Magic Hotel style index and register pages 2026-07-21 20:42:37 +02:00
openhands 827595ef00 fix: mobile responsiveness for all admin pages
- DataTable: overflow-x-auto on table wrapper (affects users, rooms, tickets)
- Radio: overflow-x-auto wrappers around all 3 tables (shouts, applications, schedules)
- Catalog items: responsive grids (grid-cols-1 sm:grid-cols-3) in Add/Edit dialogs
- Catalog tabs: TabsList overflow-x-auto for narrow screens
- Import clone: pagination flex-wrap to prevent overlap on small screens
2026-07-21 16:52:58 +02:00
openhands d189bb5af4 fix: mobile responsive improvements
- Audit: responsive summary cards (grid-cols-2 mobile, p-3), responsive empty states
- Repair-icons/sync-all: log area horizontal scroll (overflow-x-auto, whitespace-nowrap)
- Upload furni: tighter mobile padding (p-4 sm:p-5)
- Nitro client: compact toolbar on mobile (smaller buttons, tighter gap, top-2/left-2)
2026-07-21 16:47:02 +02:00
openhands 43dacea672 fix: add auth error detection to sync-all client 2026-07-21 15:39:38 +02:00
openhands e4b6d5db21 fix: detect auth errors in SSE clients
Audit and repair-icons clients now check the Content-Type before reading the
stream. If the server returns JSON (e.g. CSRF/permission error), the error
message is shown as a toast instead of silently consuming the response as
an empty SSE stream.
2026-07-21 15:37:52 +02:00
openhands bebd65c056 fix: refactor audit to SSE streaming, improve error handling
- Changed from blocking JSON endpoint to SSE streaming (like sync-all/repair-icons)
- Progress updates during each audit phase with item counts
- Proper error handling with typed AuditEvent for every failure path
- AbortController support for the client
- Shows real-time progress for each check section
2026-07-21 15:33:15 +02:00
openhands 19e4e10b1d feat: add catalog audit page
Checks for:
- items_base entries without catalog_items (not purchasable)
- catalog_items referencing non-existent items_base
- Items without .nitro or icon files on disk
- Duplicate classnames
- Items missing from all configured clone sources
2026-07-21 15:24:58 +02:00
openhands 90107c83d5 fix: rewrite repair-icons with proper error handling and progress
- Wrap all DB/file operations in try-catch, send error events via SSE
- Report skipped/progress events for items that already have icons
- Add 'started' event with total count so the UI shows real-time progress
- Catch route-level errors and stream them instead of returning JSON
- Use log line content as React key instead of array index
2026-07-21 15:04:43 +02:00
openhands 13cb5f8670 fix: use admin theme CSS variables in upload-furni-client
Replace hardcoded border-gray-300 and text-yellow-* classes
with semantic admin theme tokens (border-input, --admin-warning).
2026-07-21 14:56:38 +02:00
openhands 804daeffca feat: add .nitro upload + sync-all + repair-icons features
- Upload .nitro bundles directly with full DB, catalog, and furnidata integration
- Generate SQL migration files on upload (optional)
- Auto-sync missing furniture from all configured clone sources (SSE batch)
- Repair missing icons by extracting from local .nitro or downloading from sources
- All behind ASSETS_IMPORT permission
2026-07-21 14:53:26 +02:00
openhands c9144dc293 fix: improve health check reliability in do_restart
- Use nc -z directly instead of fragile bash /dev/tcp
- Fall through to ss and /dev/tcp as additional fallbacks
- Check emulator health immediately before first sleep
- Show emulator journal log on health check failure
- Increment ERRORS count on failure so exit code reflects it
2026-07-21 14:12:49 +02:00
openhands 7fc53396b4 fix: menu links use bare slugs (Gitea auto-prefixes href with user-content-) 2026-07-20 21:03:02 +02:00
openhands c0975f8a43 fix: scope deploy contract test to deploy job; menu links use Gitea user-content anchors 2026-07-20 20:59:37 +02:00
openhands 43a624bbe7 docs: add self-contained setup reference configs (emulator + nitro) and bold-link buttons 2026-07-20 20:54:26 +02:00
openhands c4532dd340 style: use inline style for release buttons (Gitea strips class) 2026-07-20 20:47:07 +02:00
openhands 039b46d12b docs: expand release wizard with emulator/Nitro/Catalogus steps + buttons 2026-07-20 20:43:43 +02:00
openhands 43ca6dc4b0 fix: add explicit plain-id anchors so the release menu jumps to sections 2026-07-20 20:38:50 +02:00
openhands 45b7a1d9ef test: add explicit anchor for System Requirements to verify Gitea keeps id 2026-07-20 20:35:38 +02:00
openhands a741e6103d fix: menu anchors use Gitea user-content- prefix so TOC links work 2026-07-20 20:31:34 +02:00
openhands 6e27d9c4fe docs: expand release notes with menu, requirements, install wizard, usage 2026-07-20 20:25:45 +02:00
openhands e5de0b53d4 fix: single JSON-encode release body so newlines render (no literal \n) 2026-07-20 20:21:33 +02:00
openhands cb91fbef6c chore: cleaner release notes (cap changelog, concise initial release) 2026-07-20 20:15:44 +02:00
openhands 9617e59747 chore: remove obsolete catalogus pack-trigger proposal 2026-07-20 20:05:42 +02:00
openhands d103316945 refactor: drop pack.yaml; v*-tag release now includes linked repo URLs + commits 2026-07-20 20:04:45 +02:00
openhands 7ac5ed3155 ci: trigger lightweight pack rebuild 2026-07-20 20:02:11 +02:00
openhands a6b708080c refactor: lightweight pack — bundle CMS only, link other repos via MANIFEST (URL+commit) 2026-07-20 20:02:07 +02:00
openhands d675a842e8 ci: trigger pack rebuild (catalogus full) 2026-07-20 19:50:59 +02:00
openhands a1ba13c1b5 fix: catalogus full clone (no sparse), fix manifest ver/status grep collision 2026-07-20 19:50:53 +02:00
openhands 981f5a5998 ci: trigger pack rebuild (english manifest) 2026-07-20 19:46:21 +02:00
openhands e16cf9b28f i18n: manifest + release notes in English 2026-07-20 19:46:19 +02:00
openhands 31ce548c65 ci: trigger pack rebuild (manifest) 2026-07-20 19:44:41 +02:00
openhands 5c83f1e788 feat: clear MANIFEST.md in pack + readable release notes (component/version/status per pack) 2026-07-20 19:44:36 +02:00
openhands 04ed515af7 ci: trigger full pack rebuild (cache cleared) 2026-07-20 19:39:17 +02:00
openhands 5a7d0ab16c fix: guard assemble step (fail if component missing/empty) so pack never ships incomplete 2026-07-20 19:39:13 +02:00
openhands f74b610eda ci: trigger pack rebuild (valid tag name) 2026-07-20 19:34:02 +02:00
openhands 57511872a2 fix: compute PACK_VERSION in bash (env: did not expand $(date), caused invalid tag -> 500) 2026-07-20 19:33:57 +02:00
openhands 99d806984f ci: trigger pack rebuild (release diag) 2026-07-20 19:29:26 +02:00
openhands e9bd85ea09 diag: surface GITEA_API/REPO and pack-body bytes in release step to isolate 500 2026-07-20 19:29:22 +02:00
openhands d0612c6aac ci: trigger pack rebuild (use gitea.* vars) 2026-07-20 19:25:44 +02:00
openhands 7bc7e5e7ad fix: revert pack release API vars to gitea.* (proven working in deploy.yaml) 2026-07-20 19:25:40 +02:00
openhands ae9c762539 ci: trigger pack rebuild (release endpoint fix) 2026-07-20 19:18:13 +02:00
openhands 3e1597fd62 fix: hardcode GITEA_API/GITEA_REPO (gitea.* vars produced 500 on release create) 2026-07-20 19:18:09 +02:00
openhands cbd87d490b ci: trigger pack rebuild (release diagnostics) 2026-07-20 19:14:14 +02:00
openhands 997b74129e fix: harden release step (validate vars, per-curl http codes, diagnostics) to debug exit 3 2026-07-20 19:14:09 +02:00
openhands 614d351a7c ci: trigger pack rebuild (emulator subdir) 2026-07-20 19:10:07 +02:00
openhands 3fcd1e1018 fix: build emulator from Emulator/ subdir (pom.xml lives there, not repo root) 2026-07-20 19:10:03 +02:00
openhands eda03c7f96 ci: trigger pack rebuild (clone retries) 2026-07-20 19:07:07 +02:00
openhands c4a0c607bf fix: retry all repo clones + fail loudly on missing pom/package.json (emulator clone was silently empty) 2026-07-20 19:07:03 +02:00
openhands acdbcdf36e ci: trigger pack rebuild (render before nitro) 2026-07-20 19:02:56 +02:00