openhands
7a41775c7e
fix: disable route prefetching app-wide to avoid spurious requests
...
Wrap next/link in a shared Link component that ships prefetch=false by
default, so no route is ever prefetched (viewport or hover) anymore, and
drop the DNS prefetch hint. Removes hidden background requests that were
the source of intermittent issues.
2026-08-29 19:27:13 +02:00
openhands
ae1393d3e3
refactor: clean up duplicate imports and dead code
...
- 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
51ef7602ca
perf: migrate pages to Cache Components via root layout opt-out
...
Remove the per-route 'export const instant = false' opt-outs now that the root layout carries the single Cache Components opt-out. Child pages inherit the opt-out, so admin/mod/radio leaf pages that only access cached or DB data stay instant while runtime-dependent pages remain dynamic. Update the staff-smoke contract test to assert the root-layout contract.
2026-08-07 18:51:45 +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
Simo and Cursor
2cd0863cb8
refactor(db): migrate app pages and APIs from Prisma facade to Drizzle (2)
...
Co-authored-by: Cursor <[email protected] >
2026-08-01 14:15:28 +02:00
Simo and Cursor
3ac5d6f4f6
chore(ops): strip redundant force-dynamic and probe Redis in ops health
...
Co-authored-by: Cursor <[email protected] >
2026-07-30 21:33:40 +02:00
openhands
17847545dd
Improvements: remove dead config, fix ESM, add URL validation, unify types, add missing logging
...
- Remove .prettierrc (dead config, Biome replaces Prettier)
- Rename lighthouserc.json to lighthouserc.cjs with module.exports for ESM compat
- Add logger.warn to empty catch blocks in auth, register, site-settings, prisma-cache, redis, security, rate-limit
- Unify ActionResult type: action-helper.ts uses 'ok' consistent with safe-action-shared.ts
- Add noUnusedLocals + noUnusedParameters to tsconfig + fix 25 pre-existing unused vars
- Replace barrel export src/types/index.ts with direct @/types/common imports
- Make trustHost conditional (development only) in auth.ts
- Add pre-flight URL validation to update-Nitrov3.sh to catch image.library.url misconfigurations
- Improve NITRO_IMAGE_LIBRARY_URL content validation in pre-flight & post-compute checks
2026-07-26 20:28:11 +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
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
5e8a13a84f
fix: resolve all biomaly lint errors and warnings across CMS
...
- Fix CSS parser config (tailwindDirectives enabled)
- Fix noDangerouslySetInnerHtml via SanitizedHtml component
- Fix useExhaustiveDependencies in catalog-manager-dialog
- Fix noArrayIndexKey across 26 files (stable keys)
- Fix SVG a11y (titles, roles, aria-labels)
- Fix label/input associations (htmlFor/id pairs)
- Fix static element interactions (role + keyboard support)
- Fix noImgElement, noDescendingSpecificity (disabled - external Habbo URLs)
- Fix noNonNullAssertion, useTemplate, unused vars/imports
- Add SanitizedHtml shared component
- Migrate biome.json to 2.5.4 schema
2026-07-20 17:41:53 +02:00
Simo and Cursor
a798999440
Refresh Suggest hotel label from live CMS setting.
...
Avoid stale SSR/Redis cache keeping Suggest IT after habbo_gamedata_hotel changes.
Co-authored-by: Cursor <[email protected] >
2026-07-17 22:36:10 +02:00
Simo and Cursor
d1baaf798a
Add multi-hotel Habbo gamedata locale in CMS settings.
...
Furni name suggestions, import enrichment, and badge texts now follow habbo_gamedata_hotel instead of hardcoded habbo.it.
Co-authored-by: Cursor <[email protected] >
2026-07-17 22:28:18 +02:00
Simo and Cursor
b52e25578d
Harden catalog admin: fix translate/quick-add, RCON sync, and confirm UX.
...
Restore broken Quick Add search, correct Translate saves to items_base and FurnitureData, reparent page deletes, sync RCON on create/toggle/BC mutations, and replace native confirms/prompts with dialogs.
Co-authored-by: Cursor <[email protected] >
2026-07-17 21:12:58 +02:00
Simo and Cursor
d7405238ea
Use Habbo currency PNGs for admin credits, duckets, and diamonds icons.
...
Co-authored-by: Cursor <[email protected] >
2026-07-17 18:16:01 +02:00
openhands
df38dccbf1
style: format code biome
2026-07-13 21:57:41 +02:00
openhands
2e4ed76121
style: format code with prettier
2026-07-12 21:07:34 +02:00
remco
e85e4d74ea
revert fb8e77bb68
...
revert style: clean up code with prettier and eslint
2026-07-12 21:02:03 +02:00
openhands
fb8e77bb68
style: clean up code with prettier and eslint
2026-07-12 20:31:05 +02:00
Simo
84e4123f09
fix: use semantic colors across admin pages
2026-07-12 18:50:45 +02:00
Simo
f0b4bc1630
fix: enforce semantic contrast across admin
2026-07-12 15:14:15 +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
b058a3827b
Fix theme consistency, i18n completeness, CSS variable naming, and hardcoded strings
2026-07-09 18:13:22 +02:00
openhands
befa4ec282
Translate admin panel to all 6 languages
2026-07-04 21:21:15 +02:00
Simo
e96b606e1e
Add remaining public + admin pages (parallel build, 26 files)
...
Built via two parallel agent workflows reading the real Prisma schema, then
integrated + verified.
Public: /shop (categories + storefront), /community hub, /rankings (top by
credits), /staff, /photos (camera_web gallery), /help (categories + rules),
/help/tickets (auth-gated user tickets + create), /settings (auth-gated, update
motto via RCON).
Admin: /admin/catalog (+[id] items), /admin/radio (shouts/apps/schedules +
delete shout), /admin/teams (CRUD), /admin/permissions (read), /admin/wordfilter
(CRUD + RCON push), /admin/ip (whitelist/blacklist CRUD), /admin/applications
(list + dismiss), /admin/logs (chat/command/alert read), /admin/achievements
(read). Server actions all staff-gated.
Header + admin nav extended. Verified: tsc exit 0, vitest 48/48, next build
exit 0 (33 routes); curl-probed every route — public 200/<main>, auth+admin
correctly 307-redirect when unauthorized.
2026-06-28 13:24:55 +02:00