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
66b606961b
docs(housekeeping): plan content polls vertical
CI / runtime-diagnostics (pull_request) Skipped
CI / check (pull_request) Successful in 38s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
2026-09-01 21:53:02 +02:00
Simo
aa7f263e8a
docs(housekeeping): design content polls vertical
CI / runtime-diagnostics (pull_request) Skipped
CI / check (pull_request) Successful in 37s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
2026-09-01 21:36:35 +02:00
Simo
b20adfeee5
docs(housekeeping): complete events delivery checklist
CI / runtime-diagnostics (pull_request) Skipped
CI / check (pull_request) Successful in 37s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
2026-09-01 21:17:16 +02:00
Simo
bffdc9b5e9
docs(housekeeping): record events verification
CI / runtime-diagnostics (pull_request) Skipped
CI / check (pull_request) Successful in 37s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped
2026-09-01 21:14:42 +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
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
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
9a0b6e091a
ci: inspect permission value limits
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:19:06 +02:00
Simo
e3a4726648
ci: register permission diagnostics command
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:15:14 +02:00
Simo
75b85dcdd9
ci: probe permission page database reads
CI / runtime-diagnostics (push) Skipped
CI / check (push) Failing after 27s
CI / release (push) Skipped
CI / deploy (push) Skipped
2026-08-31 21:13:03 +02:00
Simo
a11575bae3
ci: add manual runtime diagnostics
CI / runtime-diagnostics (push) Skipped
CI / check (push) Successful in 27s
CI / release (push) Skipped
CI / deploy (push) Successful in 42s
2026-08-31 21:09:06 +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