Commit Graph
100 Commits
Author SHA1 Message Date
Simo 57c3fe601a Merge pull request 'fix(admin): chat/command logs crash on ignored Prisma models' (#13) from fix/admin-chat-command-logs into main
Local Build and Deploy / deploy (push) Successful in 59s
Reviewed-on: #13
2026-07-18 22:25:52 +02:00
SimoandCursor 3dcd100c9f Fix admin trade logs: wrong Prisma model and missing relations.
Load room_trade_log via SQL with user joins; status is always completed (no column in DB).

Co-authored-by: Cursor <[email protected]>
2026-07-18 22:25:38 +02:00
SimoandCursor afeabdad1b Fix admin chat/command logs crashing on missing Prisma models.
chatlogs_room and commandlogs are @@ignore (no client delegates); load them via raw SQL with user joins instead of fetchAdminList(chatLog/commandLog).

Co-authored-by: Cursor <[email protected]>
2026-07-18 22:24:10 +02:00
Simo ef0d673cfe Merge pull request 'feat(admin): collapsible sidebar nav groups' (#12) from feat/admin-nav-collapse into main
Local Build and Deploy / deploy (push) Successful in 1m7s
Reviewed-on: #12
2026-07-18 22:15:50 +02:00
SimoandCursor 518ed14a83 Add collapsible admin sidebar nav groups with persistence.
Category headers toggle open/closed; state is stored in localStorage and the active route group stays expanded.

Co-authored-by: Cursor <[email protected]>
2026-07-18 22:15:33 +02:00
Simo 4628511bae Merge pull request 'feat(admin): feature-first nav + soft light mode' (#11) from feat/admin-feature-nav into main
Local Build and Deploy / deploy (push) Successful in 1m7s
Reviewed-on: #11
2026-07-18 22:07:29 +02:00
SimoandCursor dd806d2527 Reorganize admin nav by feature and soften light mode.
Sidebar lists one entry per feature; keep hub tabs only for sibling views (events, tickets, ranks/permissions, moderation, radio, analytics, devops). Soft cool-gray light canvas/surface replaces harsh white.

Co-authored-by: Cursor <[email protected]>
2026-07-18 22:06:41 +02:00
Simo 022fbfa223 Merge pull request 'feat(i18n): observability - analytics + log tables (+ events/polls detail)' (#10) from feat/observability-i18n into main
Local Build and Deploy / deploy (push) Successful in 59s
Reviewed-on: #10
2026-07-18 21:52:36 +02:00
Simo 9a4976f588 Merge branch 'main' into feat/observability-i18n 2026-07-18 21:52:24 +02:00
SimoandCursor bcbdca841b i18n observability hub: analytics pages and log tables.
Translate analytics overview/activity/economy plus peak-hours/revenue charts, and audit/chat/commands/trades DataTables (en/nl/it). Includes prior events/polls detail i18n.

Co-authored-by: Cursor <[email protected]>
2026-07-18 21:51:55 +02:00
Simo 1f925711bc Merge pull request 'feat(i18n): events/polls detail + form chrome' (#9) from feat/events-polls-detail-i18n into main
Local Build and Deploy / deploy (push) Successful in 59s
Reviewed-on: #9
2026-07-18 21:51:27 +02:00
SimoandCursor a25008deb5 i18n events/polls detail pages, forms, and empty sections.
Align detail headers with admin chrome, translate stats/forms/breadcrumbs, and use admin-empty for prizes, winners, registrations, and questions.

Co-authored-by: Cursor <[email protected]>
2026-07-18 21:46:52 +02:00
Simo dd9c5e70c2 Merge pull request 'feat(i18n): events/polls admin table columns' (#8) from feat/events-polls-table-i18n into main
Local Build and Deploy / deploy (push) Successful in 1m0s
Reviewed-on: #8
2026-07-18 21:43:48 +02:00
SimoandCursor 8009491245 i18n events and polls admin DataTable columns.
Wire column headers, search placeholders, and status/type labels through pages.admin.events/polls (en/nl/it), matching tickets-table.

Co-authored-by: Cursor <[email protected]>
2026-07-18 21:43:27 +02:00
Simo 3bf63b17de Merge pull request 'fix(sentry): silence build warning without auth token' (#7) from fix/sentry-no-auth-token-warning into main
Local Build and Deploy / deploy (push) Successful in 1m10s
Reviewed-on: #7
2026-07-18 21:40:17 +02:00
SimoandCursor 549a2fab5c Silence Sentry build warnings when no auth token is set.
Skip release creation alongside source-map upload so production compile does not warn about missing SENTRY_AUTH_TOKEN.

Co-authored-by: Cursor <[email protected]>
2026-07-18 21:32:25 +02:00
Simo 0aa60f8ec5 Merge pull request 'feat(admin): hub polish - headers, events/polls, empty states' (#6) from feat/admin-hub-polish into main
Local Build and Deploy / deploy (push) Successful in 1m26s
Reviewed-on: #6
2026-07-18 21:29:19 +02:00
SimoandCursor 3cb8b92cb3 Polish admin hub pages: drop duplicate headers, align CTAs and empties.
Remove redundant titles under AdminHubChrome, style events/polls create flows with admin chrome + i18n, and standardize empty states / teams form classes.

Co-authored-by: Cursor <[email protected]>
2026-07-18 21:28:15 +02:00
Simo 0582eed5ab Merge pull request 'perf(deploy): restore .next/cache between deploys' (#5) from feat/deploy-restore-next-cache into main
Local Build and Deploy / deploy (push) Successful in 1m19s
Reviewed-on: #5
2026-07-18 21:17:16 +02:00
Simo 0fcdd45fdc Merge branch 'main' into feat/deploy-restore-next-cache 2026-07-18 21:17:01 +02:00
Simo 580ee197a7 Merge pull request 'feat(catalog): Visual Manager polish (stats, deletes, newPageParent)' (#4) from feat/vm-polish into main
Local Build and Deploy / deploy (push) Successful in 1m25s
Reviewed-on: #4
2026-07-18 21:16:46 +02:00
Simo 4646f88eee Merge pull request 'fix(i18n): Dutch shop / transactions / vouchers admin keys' (#3) from feat/nl-shop-i18n into main
Local Build and Deploy / deploy (push) Successful in 1m25s
Reviewed-on: #3
2026-07-18 21:16:32 +02:00
SimoandCursor 224ccd654b perf(deploy): keep .next/cache while clearing stale generated types
Nuclear src replace already guarantees clean sources; restoring the build cache speeds deploys without reintroducing sticky typecheck ghosts.

Co-authored-by: Cursor <[email protected]>
2026-07-18 21:15:52 +02:00
SimoandCursor 8d1cf86105 feat(catalog): SSR stats in Visual Manager, honest deletes, newPageParent
Pass DB totals into StatsBar, mirror Catalog Structure delete copy, and open New Page with ?newPageParent= for shop and BC.

Co-authored-by: Cursor <[email protected]>
2026-07-18 21:14:55 +02:00
SimoandCursor cd4233b430 fix(i18n): fill missing Dutch shop, transactions, and voucher admin keys
Align nl.json with en/it for admin shop orders columns and related payment hub labels.

Co-authored-by: Cursor <[email protected]>
2026-07-18 21:11:50 +02:00
Simo b7fd19b6d9 Merge pull request 'feat(catalog): Visual Manager BC + honest canEdit' (#2) from feat/visual-manager-bc-canedit into main
Local Build and Deploy / deploy (push) Successful in 1m27s
Reviewed-on: #2
2026-07-18 21:04:39 +02:00
SimoandCursor 7d50b72ade feat(catalog): Visual Manager for Builder Club with honest canEdit
Mount BC Visual Manager, thread catalogType through tree/editor actions, and stop hardcoding canEdit=true in items/translate tabs.

Co-authored-by: Cursor <[email protected]>
2026-07-18 21:03:07 +02:00
SimoandCursor 80c6559143 fix(deploy): stop hanging on per-file sticky-bit scan
Local Build and Deploy / deploy (push) Successful in 1m48s
Only clear paths that already have skip-worktree/assume-unchanged; keep nuclear src replace and content verify.

Co-authored-by: Cursor <[email protected]>
2026-07-18 20:34:34 +02:00
SimoandCursor d0f9b3ef95 fix(deploy): nuclear-replace src to defeat skip-worktree ghosts
Local Build and Deploy / deploy (push) Canceled after 9m26s
Host built a different event-form than HEAD while git looked clean; delete src, restore from git objects, and hash-verify every tracked blob.

Co-authored-by: Cursor <[email protected]>
2026-07-18 20:30:21 +02:00
SimoandCursor 968f6ff7db fix(deploy): unstick nitro Json typecheck and wipe poisoned .next cache
Local Build and Deploy / deploy (push) Failing after 1m21s
Host next build still saw Json on nitro while tsc passed; use any helpers, verify blob hash, and delete .next entirely before build.

Co-authored-by: Cursor <[email protected]>
2026-07-18 20:14:50 +02:00
SimoandCursor 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
SimoandCursor c053b8de87 fix(deploy): reclaim www-data ownership before git reset
Local Build and Deploy / deploy (push) Failing after 1m16s
Stale host sources survived reset when files were owned by www-data, leaving an old nitro editor with a removed Json type that failed typecheck.

Co-authored-by: Cursor <[email protected]>
2026-07-18 20:01:25 +02:00
SimoandCursor 1f552c2822 Polish public error and 404 screens with brand atmosphere.
Local Build and Deploy / deploy (push) Successful in 1m31s
Shared ErrorScreen composition, i18n for en/nl/it, Sentry on route errors, and a self-contained global-error fallback that matches the hotel gold theme.

Co-authored-by: Cursor <[email protected]>
2026-07-18 20:00:04 +02:00
SimoandCursor b22725d3a9 fix: type-safe nitro editor helpers and stabilize deploy build
Local Build and Deploy / deploy (push) Failing after 29s
Rewrite getNested/updateNested without fragile any/Json inference, clear stale .next types before build, and skip env refine during compile.

Co-authored-by: Cursor <[email protected]>
2026-07-18 19:57:33 +02:00
SimoandCursor 1273f9aa46 fix: typecheck event prizes form for deploy gate
Local Build and Deploy / deploy (push) Failing after 1m25s
Narrow prizeType to the Select union and keep badgeCode as a string so pnpm typecheck passes on the server.

Co-authored-by: Cursor <[email protected]>
2026-07-18 19:50:39 +02:00
SimoandCursor 557138e40b fix: admin panel resiste a fallimento cookie CSRF
Local Build and Deploy / deploy (push) Failing after 34s
Il layout admin non deve crashare se cookies().set() fallisce (__Host-/Secure dietro proxy). Fallback su csrf-token, meta solo con token valido.

Co-authored-by: Cursor <[email protected]>
2026-07-18 19:48:30 +02:00
SimoandCursor 2de3696993 Enforce admin CSRF, harden catalog translate, use CMS hotel name for PayPal.
Local Build and Deploy / deploy (push) Successful in 1m38s
Mutating withAdmin routes now require a double-submit CSRF token; translate is capped at 500 items with audit logging; PayPal descriptions prefer siteSettings hotel_name.

Co-authored-by: Cursor <[email protected]>
2026-07-18 19:38:42 +02:00
SimoandCursor 6b884ad25a Harden deploy gates, prod AUTH_SECRET, and Sentry error reporting.
Local Build and Deploy / deploy (push) Successful in 1m42s
Align onlyBuiltDependencies with the workspace, fail fast without AUTH_SECRET in production, and delete catalog_items via VARCHAR-safe SQL so page deletes do not leave orphans.

Co-authored-by: Cursor <[email protected]>
2026-07-18 19:32:15 +02:00
SimoandCursor 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
SimoandCursor 6c81af69ea Remove half-installed sentry/pino/sharp from the lockfile.
Local Build and Deploy / deploy (push) Successful in 1m2s
Keeps frozen-lockfile installs aligned with package.json after an interrupted dependency add.

Co-authored-by: Cursor <[email protected]>
2026-07-17 23:03:36 +02:00
SimoandCursor 6a830e7c5e Fix pnpm frozen-lockfile mismatch for postcss.
Local Build and Deploy / deploy (push) Failing after 16s
Align workspace override and lockfile specifier with package.json ^8.5.19.

Co-authored-by: Cursor <[email protected]>
2026-07-17 23:01:31 +02:00
SimoandCursor 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
SimoandCursor a798999440 Refresh Suggest hotel label from live CMS setting.
Local Build and Deploy / deploy (push) Successful in 56s
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
SimoandCursor 785c1b6976 Fix client bundle pulling Redis/Prisma via habbo gamedata hotel.
Local Build and Deploy / deploy (push) Successful in 54s
Keep hotel list helpers client-safe; load CMS setting only from a server module.

Co-authored-by: Cursor <[email protected]>
2026-07-17 22:30:46 +02:00
SimoandCursor d1baaf798a Add multi-hotel Habbo gamedata locale in CMS settings.
Local Build and Deploy / deploy (push) Failing after 33s
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
SimoandCursor 7bc0845932 Fix catalog items missing due to page_id VARCHAR mismatch.
Local Build and Deploy / deploy (push) Successful in 56s
Use raw SQL for counts/loads/creates/moves so Habbo DBs with VARCHAR page_id and no AUTO_INCREMENT still show and persist furni.

Co-authored-by: Cursor <[email protected]>
2026-07-17 22:21:49 +02:00
SimoandCursor 33a8a19820 Fix Visual Manager opacity and load categories like CatalogTree.
Local Build and Deploy / deploy (push) Successful in 55s
Use an opaque admin-canvas portal and lazy parentId fetches instead of mode=full, which fails on large catalogs. Search no longer loads the entire tree.

Co-authored-by: Cursor <[email protected]>
2026-07-17 22:09:01 +02:00
SimoandCursor 1d8efefce4 Fix Visual Manager empty categories: seed roots, harden tree API.
Local Build and Deploy / deploy (push) Successful in 56s
Seed root tabs from SSR, load the full tree without CLEAR_TREE races, coerce parent ids, and tolerate catalog_items page_id type mismatches so category pages actually appear.

Co-authored-by: Cursor <[email protected]>
2026-07-17 22:02:53 +02:00
SimoandCursor 8083012445 Remove unused tooltip imports from catalog root tabs.
Local Build and Deploy / deploy (push) Failing after 41s
Co-authored-by: Cursor <[email protected]>
2026-07-17 21:26:48 +02:00
SimoandCursor b668ab3547 Rebuild Visual Manager as portal overlay matching habbo-next UX.
Local Build and Deploy / deploy (push) Failing after 44s
Base UI Dialog broke the Radix-era full-viewport manager. Use a body portal shell like habbo-next behavior, without DialogTitle/Popup, so tree + editor mount and nested pickers stay usable.

Co-authored-by: Cursor <[email protected]>
2026-07-17 21:26:35 +02:00
Simo e7a6587b7f Delete directory 'docs/superpowers'
Local Build and Deploy / deploy (push) Successful in 1m11s
2026-07-17 21:26:05 +02:00
SimoandCursor f6871807c9 Fix Visual Manager for Base UI: layout, tree load, no nested dialogs.
Local Build and Deploy / deploy (push) Successful in 1m9s
Move trigger outside Dialog.Root, use portal confirms and inline create forms, and load the catalog tree atomically so the manager matches the designed full-viewport UX.

Co-authored-by: Cursor <[email protected]>
2026-07-17 21:21:40 +02:00
SimoandCursor 2ff5b47104 Harden catalog writes: bulk import batch + field allowlists.
Local Build and Deploy / deploy (push) Successful in 1m16s
Bulk import resolves names from items_base and refreshes RCON once. Page/item updates only accept an allowlisted field set.

Co-authored-by: Cursor <[email protected]>
2026-07-17 21:14:35 +02:00
SimoandCursor b52e25578d Harden catalog admin: fix translate/quick-add, RCON sync, and confirm UX.
Local Build and Deploy / deploy (push) Successful in 1m18s
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
SimoandCursor 11d3cf31cc Restore missing catalog admin API routes so Visual Manager works.
Local Build and Deploy / deploy (push) Successful in 1m10s
Co-authored-by: Cursor <[email protected]>
2026-07-17 20:57:55 +02:00
SimoandCursor ce8c3503e9 Fix language menu position by portaling out of sidebar overflow.
Local Build and Deploy / deploy (push) Successful in 1m16s
Co-authored-by: Cursor <[email protected]>
2026-07-17 20:50:41 +02:00
SimoandCursor 06610e9ae3 Migrate tickets and CFH lists to DataTable; confirm destructive mod actions.
Local Build and Deploy / deploy (push) Successful in 1m9s
Co-authored-by: Cursor <[email protected]>
2026-07-17 20:37:50 +02:00
SimoandCursor cbdea70f83 Improve shop hub: CurrencyIcon on packages/vouchers, DataTable for transactions.
Local Build and Deploy / deploy (push) Successful in 1m3s
Co-authored-by: Cursor <[email protected]>
2026-07-17 20:32:45 +02:00
SimoandCursor a2ca9b3c23 Add shared ConfirmDialog; upgrade wordfilter with client actions and toasts.
Local Build and Deploy / deploy (push) Successful in 1m6s
Co-authored-by: Cursor <[email protected]>
2026-07-17 20:28:43 +02:00
SimoandCursor 1039044e48 Improve admin UX: hub i18n, dynamic topbar, settings strings, staff logs DataTable.
Local Build and Deploy / deploy (push) Successful in 1m12s
Co-authored-by: Cursor <[email protected]>
2026-07-17 20:14:55 +02:00
SimoandCursor 49d204e85c Remove import/repair feature and related API routes.
Local Build and Deploy / deploy (push) Successful in 1m41s
Co-authored-by: Cursor <[email protected]>
2026-07-17 18:52:38 +02:00
SimoandCursor bb7d581084 Add exportPermissions and clean stray untracked src on deploy.
Local Build and Deploy / deploy (push) Successful in 1m13s
Co-authored-by: Cursor <[email protected]>
2026-07-17 18:48:34 +02:00
SimoandCursor 9b411e69b4 Fix CMS translations path to src/messages.
Local Build and Deploy / deploy (push) Failing after 1m5s
Co-authored-by: Cursor <[email protected]>
2026-07-17 18:43:34 +02:00
SimoandCursor d2c33145a2 Fix checkbox and switch styles after Base UI migration.
Local Build and Deploy / deploy (push) Successful in 1m2s
Co-authored-by: Cursor <[email protected]>
2026-07-17 18:35:44 +02:00
SimoandCursor 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
SimoandCursor 90cff7e5d5 Show full-body size=m avatars on admin users list.
Local Build and Deploy / deploy (push) Successful in 52s
Co-authored-by: Cursor <[email protected]>
2026-07-17 18:21:21 +02:00
SimoandCursor 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
SimoandCursor 741c3b5f51 Remove unused Lucide imports from economy analytics page.
Local Build and Deploy / deploy (push) Successful in 53s
Co-authored-by: Cursor <[email protected]>
2026-07-17 18:16:09 +02:00
SimoandCursor d7405238ea Use Habbo currency PNGs for admin credits, duckets, and diamonds icons.
Local Build and Deploy / deploy (push) Successful in 56s
Co-authored-by: Cursor <[email protected]>
2026-07-17 18:16:01 +02:00
SimoandCursor b42a313825 Fix transparent admin Select/Popover overlays and semantic surface tokens.
Local Build and Deploy / deploy (push) Successful in 52s
Co-authored-by: Cursor <[email protected]>
2026-07-17 18:10:52 +02:00
SimoandCursor 665d87cbf4 Harden analytics pages against missing tables and RSC dynamic imports.
Local Build and Deploy / deploy (push) Successful in 1m1s
Co-authored-by: Cursor <[email protected]>
2026-07-17 18:07:53 +02:00
SimoandCursor 63c7ff8570 Fix missing next/image import on radio AutoDJ page.
Local Build and Deploy / deploy (push) Successful in 56s
Co-authored-by: Cursor <[email protected]>
2026-07-17 18:03:07 +02:00
SimoandCursor d2c0619f2f Clean up admin hub UX: tabs, chrome, and redundant headers.
Local Build and Deploy / deploy (push) Failing after 53s
Wire orphan routes into hub tabs, group Radio into primary/tools rows, show theme/language once on desktop, and remove duplicate page titles under AdminHubChrome.

Co-authored-by: Cursor <[email protected]>
2026-07-17 18:01:01 +02:00
SimoandCursor 378705dd73 Add admin UX cleanup Phase 1 design spec.
Local Build and Deploy / deploy (push) Successful in 55s
Co-authored-by: Cursor <[email protected]>
2026-07-17 17:53:15 +02:00
SimoandCursor 8cce8837bc Serve avatars from Habbo imager instead of broken self-hosted proxy.
Local Build and Deploy / deploy (push) Successful in 56s
Co-authored-by: Cursor <[email protected]>
2026-07-15 21:51:02 +02:00
SimoandCursor 2c68fb7e5a Polish admin language dropdown layout and selection styles.
Local Build and Deploy / deploy (push) Successful in 54s
Co-authored-by: Cursor <[email protected]>
2026-07-15 21:46:54 +02:00
SimoandCursor ea07950374 Fix radio admin StatusCard icons showing as Unicode escapes.
Local Build and Deploy / deploy (push) Successful in 56s
Co-authored-by: Cursor <[email protected]>
2026-07-15 21:45:57 +02:00
SimoandCursor 7b6c02c07d Make admin light/dark mode follow real palettes end-to-end.
Local Build and Deploy / deploy (push) Successful in 55s
Light admin derives from the public light theme; dark keeps HK overrides. Remap inputs, cards, muted text, and kill the public wallpaper on admin so fonts and boxes stay readable in both modes.

Co-authored-by: Cursor <[email protected]>
2026-07-15 21:37:25 +02:00
SimoandCursor 94904f2ddb Add language picker to admin sidebar and topbar.
Local Build and Deploy / deploy (push) Successful in 55s
Reuse LanguageSwitcher with an admin-styled dropdown next to the theme toggle.

Co-authored-by: Cursor <[email protected]>
2026-07-15 21:33:11 +02:00
SimoandCursor 1e3eb86495 Add dark/light toggle to admin sidebar and topbar.
Local Build and Deploy / deploy (push) Successful in 55s
Reuse ThemeSwitcher with an admin variant (Sun/Moon) next to the staff profile and in the housekeeping header.

Co-authored-by: Cursor <[email protected]>
2026-07-15 21:32:05 +02:00
SimoandCursor 363c9b3d56 Reorganize admin into tabbed hubs with a condensed sidebar.
Local Build and Deploy / deploy (push) Successful in 57s
Replace the long flat nav with hub entries, shared AdminHubChrome tabs, and AdminPageShell. Existing URLs stay stable; Settings/Radio and other sections now share one chrome.

Co-authored-by: Cursor <[email protected]>
2026-07-15 21:29:36 +02:00
SimoandCursor 367f69a439 Decouple admin from public max-w-7xl via (site) route group.
Local Build and Deploy / deploy (push) Successful in 54s
Public chrome and width live only under (site). /admin and /client inherit the root layout alone, so housekeeping width is no longer tied to the public template.

Co-authored-by: Cursor <[email protected]>
2026-07-15 21:12:52 +02:00
SimoandCursor a1dc7ff0a7 Set admin max width to 96rem, wider than public 80rem.
Local Build and Deploy / deploy (push) Successful in 55s
Public site stays max-w-7xl; admin is ~20% wider and still centered, never full viewport.

Co-authored-by: Cursor <[email protected]>
2026-07-15 21:09:20 +02:00
SimoandCursor e892b0426a Cap admin shell at 75vw instead of full bleed.
Local Build and Deploy / deploy (push) Successful in 54s
Keeps housekeeping wider than the public max-w-7xl grid without stretching edge-to-edge on large screens.

Co-authored-by: Cursor <[email protected]>
2026-07-15 21:07:01 +02:00
SimoandCursor e101ea474e Fix rooms list crash and rebuild CMS settings UI.
Rooms queried the wrong Prisma model and a non-existent owner relation. Settings now use grouped managed fields plus a searchable advanced key/value panel.

Co-authored-by: Cursor <[email protected]>
2026-07-15 21:02:57 +02:00
SimoandCursor c186f51ae0 Widen admin by escaping the public max-w-7xl chrome.
Local Build and Deploy / deploy (push) Successful in 54s
Render /admin outside the site header/nav/footer grid so housekeeping uses the full viewport width.

Co-authored-by: Cursor <[email protected]>
2026-07-15 20:59:53 +02:00
SimoandCursor 0096c55f96 Fix theme switcher desync and auto-correct unreadable saved colors.
Local Build and Deploy / deploy (push) Successful in 53s
Sync dark-mode state from the DOM after mount so admin text no longer needs a double toggle, and normalize text/button colors against their surfaces on theme save.

Co-authored-by: Cursor <[email protected]>
2026-07-15 20:54:46 +02:00
SimoandCursor ed56bf0917 Fix multi-theme contrast: separate public tokens from admin remap.
Local Build and Deploy / deploy (push) Successful in 54s
Public cards no longer paint with always-dark admin surfaces, and admin pages fully remap background/text/surface so shadcn UI stays readable on the admin canvas.

Co-authored-by: Cursor <[email protected]>
2026-07-15 20:51:20 +02:00
SimoandCursor d7278c77f9 Fix automatic readable text contrast for public and admin themes.
Local Build and Deploy / deploy (push) Successful in 55s
Derive admin/public text colors from WCAG contrast, unify ThemeVars CSS emission, and keep navbar overrides in sync with readable vars.

Co-authored-by: Cursor <[email protected]>
2026-07-15 20:41:34 +02:00
SimoandCursor 9d4d409b77 Restore self-hosted /api/imaging/avatar (and badge) endpoints.
Local Build and Deploy / deploy (push) Successful in 54s
The clothing importer and imager helpers pointed at a missing route; proxy Habbo with disk/memory cache so avatars work again.

Co-authored-by: Cursor <[email protected]>
2026-07-15 20:41:18 +02:00
SimoandCursor 3403d3b19f Fix admin permissions bounce, prefixes APIs, and Italian UI leftovers.
Local Build and Deploy / deploy (push) Successful in 56s
Gate permissions on ACL manage + resolve super-admin from live user ranks, restore prefixes API routes, and anglicize hardcoded admin copy with nav i18n.

Co-authored-by: Cursor <[email protected]>
2026-07-15 20:33:00 +02:00
SimoandCursor 0e89d03940 Finish fine-grained ACL across remaining admin pages and actions.
Local Build and Deploy / deploy (push) Successful in 56s
Replace leftover requireStaff gates with module PERMS, drop hardcoded room rank thresholds, and expand contract tests so admin mutations cannot regress to dashboard-only checks.

Co-authored-by: Cursor <[email protected]>
2026-07-15 20:15:22 +02:00
SimoandCursor 3c8a8ff888 Extend fine-grained ACL to settings, content, shop, and radio.
Local Build and Deploy / deploy (push) Successful in 54s
Gate pages and mutations on module PERMS instead of dashboard-only staff checks, add radio view/edit slugs with migration 0015, and expand the operations contract tests.

Co-authored-by: Cursor <[email protected]>
2026-07-15 20:11:55 +02:00
SimoandCursor f2427b3483 Harden admin ACL on critical write paths.
Local Build and Deploy / deploy (push) Successful in 54s
Gate translations, RCON, and user mutations on SETTINGS_EDIT, RCON_EXECUTE, and USERS_EDIT instead of dashboard/rank checks; redirect the legacy user-edit URL to the guarded canonical page.

Co-authored-by: Cursor <[email protected]>
2026-07-15 20:07:15 +02:00
SimoandCursor bae543baf6 Fix admin regressions from Biome refactor: theme init, mobile nav, i18n.
Local Build and Deploy / deploy (push) Successful in 54s
Restore valid browser JS in theme-init, close mobile sidebar on navigation, and split autoDjForm title/trackTitle across locales.

Co-authored-by: Cursor <[email protected]>
2026-07-15 20:02:25 +02:00
Simo 65e942b268 Update README.md
Local Build and Deploy / deploy (push) Successful in 1m16s
2026-07-12 20:54:51 +02:00
Simo 60278b9e71 feat: add admin operations suite
Local Build and Deploy / deploy (push) Successful in 50s
2026-07-12 20:11:28 +02:00
Simo 21a61068fb test: define admin operations contracts 2026-07-12 20:01:25 +02:00
Simo dbb9cad01e docs: plan admin operations port 2026-07-12 20:00:46 +02:00
Simo f5ba556e29 docs: define admin operations port 2026-07-12 19:59:45 +02:00