Commit Graph
891 Commits
Author SHA1 Message Date
Simo 50598472ad fix(polls): enforce shared persistence invariants 2026-09-02 22:03:26 +02:00
Simo c841595458 fix(housekeeping): canonicalize live cutover links 2026-09-02 21:53:19 +02:00
Simo 1f10e15c1c test(housekeeping): verify polls vertical
CI / runtime-diagnostics (pull_request) Skipped
CI / check (pull_request) Successful in 45s
CI / deploy (pull_request) Skipped
CI / release (pull_request) Skipped
2026-09-02 20:48:35 +02:00
Simo 766e7e20c8 fix(housekeeping): clear poll question options 2026-09-02 20:17:28 +02:00
Simo 51eecd0e72 feat(housekeeping): add dedicated polls workflow 2026-09-02 20:06:26 +02:00
Simo 5edaa0254c fix(housekeeping): retain unchecked command fields 2026-09-02 19:46:19 +02:00
Simo 3b2012e704 feat(housekeeping): retain invalid command input 2026-09-02 19:38:38 +02:00
Simo f64b4d67b4 fix(housekeeping): isolate poll question mutations 2026-09-02 19:24:03 +02:00
Simo de7cc42ddf fix(polls): canonicalize transaction lock order 2026-09-02 19:09:50 +02:00
Simo e9680775f9 fix(housekeeping): lock poll questions by primary key 2026-09-02 18:54:58 +02:00
Simo 6e16b948e6 fix(housekeeping): align poll deletion lock order 2026-09-02 18:45:50 +02:00
Simo b4193bea6c fix(housekeeping): lock poll mutation snapshots 2026-09-02 18:38:25 +02:00
Simo 3e52965292 fix(housekeeping): protect poll destructive actions 2026-09-02 18:30:35 +02:00
Simo dba58cad4f feat(housekeeping): load complete poll operator data 2026-09-02 18:16:25 +02:00
Simo de94b47cae fix(housekeeping): harden poll response paging 2026-09-02 18:02:54 +02:00
Simo cbc3075e5a feat(housekeeping): define typed poll query contract 2026-09-02 17:52:41 +02:00
Simo e69633b753 test(polls): cover merged partial updates 2026-09-01 22:29:16 +02:00
Simo abb04f8362 refactor(polls): centralize question semantics 2026-09-01 22:15:44 +02:00
Simo 5ca15d3f81 Merge remote-tracking branch 'origin/main' into codex/housekeeping-rebuild-stepwise
# Conflicts:
#	src/lib/admin-theme-source-audit.test.ts
2026-09-01 21:10:17 +02:00
Simo d6235c37a1 feat(housekeeping): complete content events workflow 2026-09-01 21:08:26 +02:00
openhands 58c35a2920 feat: enforce no hardcoded colors across entire CMS
CI / runtime-diagnostics (push) Skipped
CI / check (push) Successful in 32s
CI / release (push) Skipped
CI / deploy (push) Successful in 58s
Added scripts/check-admin-colors.mjs — scans all src/ files for:
- text-white, text-black (use theme text vars)
- bg-white, bg-black (use theme background/overlay vars)
- bg/text/border/ring with gray/slate/zinc/stone palette
- bg/text/border/ring with red/green/blue/etc palette

Fixed 21 violations across 11 files:
- Overlays: bg-black/* → bg-foreground/*
- Text: text-white → text-primary-foreground
- Backgrounds: bg-white/10 → bg-background/10
- Green accents: bg-green-* → bg-primary
- Red accents: bg-red-* → bg-destructive

Integrated into:
- lint-staged: runs on every *.ts/*.tsx commit
- vitest: src/lib/no-hardcoded-colors.test.ts replaces old audit test
- Allowlist: shadcn/ui primitives (button, badge, dialog) + 4 graphical files
2026-09-01 19:33:50 +02:00
Simo f2e67ebace fix(studio): synchronize batch completion state
CI / runtime-diagnostics (pull_request) Skipped
CI / check (pull_request) Successful in 54s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
2026-09-01 19:24:15 +02:00
Simo 9f349c3343 Merge remote-tracking branch 'origin/main' into codex/housekeeping-rebuild-stepwise 2026-09-01 19:18:58 +02:00
openhands 0fa832d577 fix: replace hardcoded text-white with theme-destructive-foreground
CI / runtime-diagnostics (push) Skipped
CI / check (push) Successful in 38s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m9s
2026-09-01 19:18:00 +02:00
Simo b413e62085 chore: satisfy upgraded biome checks
CI / runtime-diagnostics (pull_request) Skipped
CI / check (pull_request) Successful in 58s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
2026-09-01 19:14:09 +02:00
openhands 844add04ef fix: confirm dialog is now a compact popup, not full-screen overlay
- Removed full-screen overlay backdrop (bg-black/95 + backdrop-blur)
- Dialog is centered via fixed left-1/2 top-1/2 -translate
- Compact design: max-w-sm, smaller text, smaller buttons
- Uses admin theme vars (admin-surface, admin-border, admin-text)
- Smooth scale+fade animation without overlay
2026-09-01 19:13:15 +02:00
openhands 93601e58e0 feat: Studio bulk ops, perf fixes, bug fixes, confirm dialog visibility
CI / runtime-diagnostics (push) Skipped
CI / check (push) Successful in 34s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m3s
Confirm Dialog:
- Overlay opacity 80% -> 95% (solid black)
- Card uses bg-surface with glow shadow ring-primary/40
- Added AlertTriangle icon for danger variant
- Removed backdrop-blur for maximum opacity

Studio features:
- Bulk delete: select imported items and delete in batch
- Bulk nitro regen: select items missing .nitro and regenerate all
- Added Trash2 and RefreshCw toolbar buttons for bulk actions

Performance:
- BatchProgress: React.memo + useMemo for entries/total/completed/percent
- BatchProgress: ETA interval uses useRef to avoid re-creation per completed
- CatalogRail: React.memo + useCallback for toggle
- Removed redundant double setBatchProgress calls
- Removed redundant new Map(initial) wrapping

Bug fixes:
- importBatch: stale batchDone closure always cleared progress panel (use ref)
- importBatch: added missing toast.error on HTTP failure
- bulkRegenNitro: now checks per-item results instead of marking all as succeeded
- single deleteItem: now removes classname from selected set
- retryFailed: clears progress panel on HTTP error and stream error
- Removed unused 'done' variable (2x) from cloneAllMissing/retryFailed

Lint:
- biome format fixes for selectedMissingNitro and setItems
2026-09-01 19:07:20 +02:00
Simo c7891b60c3 feat(housekeeping): adapt catalog studio workflow
CI / runtime-diagnostics (pull_request) Skipped
CI / check (pull_request) Failing after 11s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
2026-09-01 19:04:48 +02:00
openhands 4863f78795 fix: make confirm dialog fully opaque with solid background
CI / runtime-diagnostics (push) Skipped
CI / check (push) Successful in 50s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m6s
Replace bg-card with bg-background/100, upgrade shadow to 2xl, and
remove backdrop-blur on the dialog content to ensure maximum visibility.
2026-09-01 18:34:10 +02:00
openhands 52516a368d fix: skip heavy post-import consolidation on non-final clone chunks
CI / runtime-diagnostics (push) Skipped
CI / check (push) Successful in 38s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m2s
The flush after every 400-item chunk was running expensive operations
(reconcileOfferIds, rebuildCatalog, verifySpriteIds, rcon updates) which
caused the import to hang after ~800 items. Now only the final chunk
triggers the full consolidation. Also raised the per-request limit from
500 to 5000 items.
2026-09-01 18:29:06 +02:00
openhands d4fbbfa243 fix: make confirm dialog more visible with darker overlay and sharper shadow
CI / runtime-diagnostics (push) Skipped
CI / check (push) Successful in 33s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m18s
2026-09-01 18:24:00 +02:00
Simo 52e00854a2 Merge remote-tracking branch 'origin/main' into codex/housekeeping-rebuild-stepwise
# Conflicts:
#	.env.example
#	src/features/housekeeping/foundation/preview-route-contract.test.ts
2026-09-01 18:19:36 +02:00
openhands 1374bd332f Studio: add clone-all-per-hotel, per-item status detail, retry, ETA, and auto-translate
CI / runtime-diagnostics (push) Skipped
CI / check (push) Successful in 36s
CI / release (push) Skipped
CI / deploy (push) Successful in 1m14s
- Add 'Clone all missing' button for clone sources with confirmation dialog
- Show per-item status badges: nitro, furnidata, catalog entry
- Add status filters: missing furnidata, missing catalog entry
- Add ETA and percentage to batch progress bar
- Add retry button for failed items after batch import
- Auto-translate all languages after clone-all completes
- Fix statusFilter 'all' bug that incorrectly filtered imported items
- Bulk-load FurnitureData + catalog references for O(1) per-item checks
2026-09-01 17:29:12 +02:00
Simo fa33b4498e feat(housekeeping): complete article workflow
CI / check (pull_request) Failing after 11s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
2026-08-31 21:42:57 +02:00
Simo 1610aa1008 fix: keep server env out of avatar client bundle
CI / runtime-diagnostics (push) Skipped
CI / check (push) Successful in 33s
CI / release (push) Skipped
CI / deploy (push) Successful in 49s
2026-08-31 21:41:40 +02:00
Simo 5b190cb929 chore: expose rank editor error details
CI / runtime-diagnostics (push) Skipped
CI / check (push) Successful in 27s
CI / release (push) Skipped
CI / deploy (push) Successful in 43s
2026-08-31 21:32:25 +02:00
Simo 5f7875ff18 chore: log server rendering failures
CI / runtime-diagnostics (push) Skipped
CI / check (push) Successful in 27s
CI / release (push) Skipped
CI / deploy (push) Successful in 44s
2026-08-31 21:26:29 +02:00
Simo fc050bd3f8 feat(housekeeping): localize content route headings
CI / check (pull_request) Failing after 9s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
2026-08-31 21:07:17 +02:00
Simo 37ad27c5f3 fix: support legacy rank permission schema
CI / check (push) Successful in 27s
CI / release (push) Skipped
CI / deploy (push) Successful in 43s
2026-08-31 21:01:13 +02:00
Simo 384ede19c4 style: format rank permission regression test
CI / check (push) Successful in 27s
CI / release (push) Skipped
CI / deploy (push) Successful in 42s
2026-08-31 20:51:47 +02:00
Simo edfe878b2a fix: repair missing rank permission columns
CI / check (push) Failing after 8s
CI / release (push) Skipped
CI / deploy (push) Skipped
2026-08-31 20:49:51 +02:00
Simo 43470ebf82 feat(housekeeping): unify complete rebuild in gated preview
CI / check (pull_request) Failing after 10s
CI / deploy (pull_request) Skipped
CI / release (pull_request) Skipped
2026-08-31 20:37:51 +02:00
Simo 9af1e62655 feat: allow rank-gated housekeeping preview in production
CI / check (push) Successful in 29s
CI / deploy (push) Successful in 56s
CI / release (push) Skipped
2026-08-31 20:29:38 +02:00
openhands 1dc8d1d46f feat: add official furnidata sync button for importing all missing items
CI / check (push) Successful in 29s
CI / release (push) Skipped
CI / deploy (push) Successful in 55s
- API endpoint: /api/admin/import/official/sync-all
  - Fetches all official Habbo furnidata
  - Compares with database to find missing items
  - Imports missing items via SSE batch with progress reporting
  - 500 item limit for safety
  - Proper abort signal support
- Client component: OfficialSyncClient with progress UI
- Updated StudioSyncPage to include Official Furnidata sync option
- Uses existing importSingleFurni infrastructure
2026-08-31 20:24:46 +02:00
Simo 4ad007d241 Merge remote-tracking branch 'origin/main' into codex/housekeeping-rebuild-stepwise 2026-08-31 19:49:09 +02:00
openhands 2920a6521b feat: update StudioSyncPage with clone sync client
CI / check (push) Successful in 28s
CI / release (push) Skipped
CI / deploy (push) Successful in 56s
- StudioSyncPage toont nu Clone Sources en Official Furnidata opties
- Clone sync gebruikt bestaande SSE infrastructuur met 60s idle timeout
- DeOfficial Furnidata sectie is uitgeschreven voor toekomstige uitbreiding
2026-08-31 19:27:37 +02:00
Simo 19fb8be7fb feat(housekeeping): add localized route states
CI / check (pull_request) Successful in 30s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
2026-08-31 18:45:46 +02:00
Simo 2ed00bb949 feat(housekeeping): dispatch gated preview routes 2026-08-31 18:45:46 +02:00
Simo d8fb8edff6 fix(housekeeping): link only reachable preview routes 2026-08-31 18:45:45 +02:00
Simo 543607a80e feat(housekeeping): validate preview route runtime 2026-08-31 18:45:45 +02:00