openhands
cb4a6a8f3e
Fix theme editor lint warnings
...
Local Build and Deploy / deploy (push) Successful in 59s
- Remove unused eslint-disable directive in preset swatches
- Add safe eslint-disable for controlled bgKey lookup in ColorField renderer
2026-07-13 20:06:48 +02:00
openhands
acc820284b
Add live contrast preview to theme editor for guaranteed readability
...
Local Build and Deploy / deploy (push) Successful in 1m0s
- New client ColorField component shows a live 'Aa' text preview on the
relevant background and a WCAG contrast ratio badge (✓ / ⚠)
- Flags low-contrast (<4.5:1) text fields with a red border and a
one-click 'Use readable color' fix
- Map each text color to the background it sits on (body text -> surface,
button text -> button color, navbar text -> navbar, admin text -> canvas)
2026-07-13 20:04:58 +02:00
openhands
17894db3e9
Improve theme editor clarity with labels and descriptions
...
Local Build and Deploy / deploy (push) Successful in 1m20s
- Add a description to every color field explaining what it affects
- Regroup colors into Page & text / Buttons & links / Gradients with
explanatory section intros for both light and dark mode
- Add section intros for light, dark, and admin (HK) modes
- Widen color field layout and show descriptions under each label
2026-07-13 19:58:38 +02:00
openhands
a16d9859e8
Add admin HK color customization fields to theme editor
...
Local Build and Deploy / deploy (push) Successful in 58s
- Add 6 new admin color DB keys (admin_canvas, admin_surface, admin_text,
admin_text_muted, admin_border, admin_sidebar_bg) that override the
derived admin palette
- Extract adminPaletteCss() from themePaletteCss() for reuse
- Generate admin CSS variables in both :root and html.dark with overrides
- Persist admin color settings via saveTheme action
- Add Admin panel (HK) section to /admin/theme with color pickers
2026-07-13 19:49:19 +02:00
openhands
4dcf6fdce8
Fix admin sidebar colors: use consistent dark sidebar instead of navbar colors for professional look
Local Build and Deploy / deploy (push) Successful in 1m0s
2026-07-13 19:32:27 +02:00
openhands
17722acc69
Add global mobile-friendly CSS rules
Local Build and Deploy / deploy (push) Successful in 1m30s
2026-07-13 19:29:17 +02:00
openhands
3fe3846ad5
Fix blurry mobile menu: use GPU-friendly opacity+transform instead of max-height transition
Local Build and Deploy / deploy (push) Successful in 1m1s
2026-07-13 19:26:02 +02:00
openhands
debee7300e
Fix admin sidebar contrast: muted text now visually distinct from regular text
Local Build and Deploy / deploy (push) Successful in 59s
2026-07-13 19:21:53 +02:00
openhands
adbd651350
Add mobile sidebar toggle for admin panel
Local Build and Deploy / deploy (push) Successful in 1m5s
2026-07-13 19:17:27 +02:00
openhands
7b67ef893c
Fix admin sidebar height, language dropdown overflow, pagination wrap, nav dropdown min-width
Local Build and Deploy / deploy (push) Successful in 58s
2026-07-13 19:12:28 +02:00
openhands
a241448e9e
Revert admin sidebar toggle, fix hamburger position directly
Local Build and Deploy / deploy (push) Successful in 1m4s
2026-07-13 19:02:09 +02:00
openhands
53b760a815
Add admin sidebar toggle on mobile, fix table wrapping, fix grids
Local Build and Deploy / deploy (push) Successful in 50s
2026-07-13 18:52:13 +02:00
openhands
c7768d8668
Move hamburger to right, fix nav overflow, add auto language detection
Local Build and Deploy / deploy (push) Successful in 1m4s
2026-07-13 18:20:04 +02:00
openhands
eba61d2fb9
Fix mobile responsive issues
...
Local Build and Deploy / deploy (push) Successful in 53s
- Remove duplicate home link in mobile nav
- Remove overflow-hidden clipping main content
- Improve mobile menu scrolling and spacing
- Make top-header currencies wrap on small screens
- Reduce site-header height on mobile
- Add global mobile CSS overrides for tables, padding, fonts
2026-07-13 18:10:16 +02:00
openhands
bef458dbf8
Rename executeRaw → executeRawUnsafe to make SQL injection risk explicit
...
Local Build and Deploy / deploy (push) Successful in 1m1s
The method wraps Prisma's which trusts the caller
to use ? placeholders. The Unsafe suffix is a naming convention
that signals 'review caller for parameterization'.
2026-07-13 12:41:11 +02:00
openhands
e5ae51bff7
Add NFC normalization to all FormData inputs across 41 server actions
...
Local Build and Deploy / deploy (push) Successful in 59s
All user-supplied string values from FormData now go through
String.prototype.normalize('NFC') to prevent Unicode homoglyph
attacks and canonicalization bypasses. NFC is idempotent for
already-normalized strings, so this is a pure security improvement
with zero behavioral change for legitimate users.
2026-07-13 12:21:37 +02:00
openhands
e2fc7ea1a4
Complete security hardening: zero-migration foundation, edge headers, rate-limit atomics, body limits
...
Local Build and Deploy / deploy (push) Successful in 58s
- Make @/lib/safe-action re-export from foundation layer so all 13+
existing server actions instantly get request tracing, rate limiting,
and structured error handling without any code changes
- Add HSTS, CSP, X-Frame-Options, X-Content-Type-Options to edge proxy
(src/proxy.ts) — ran at Cloudflare/Vercel edge for all non-asset routes
- Fix rate-limit.ts race condition: compute newCount before assignment
to shrink the read-modify-write window; add memory-key prefix to
avoid collisions with Redis keys
- Add request body size limit (10 MB default) to api-handler.ts with
per-route override via maxBodyBytes option
- Remove unused imports and clean up backward-compat types
2026-07-13 12:09:43 +02:00
openhands
f6ad030c5b
Add EpicNext CMS foundation layer and fix critical security gaps
...
Local Build and Deploy / deploy (push) Successful in 1m1s
- Create src/lib/foundation/ (860 LOC, 9 files): typed action wrappers,
DbService with health checks, CSRF validation, safe redirects,
AsyncLocalStorage request tracing, branded types, reusable Zod schemas
- Migrate moderation.ts and user-settings.ts to foundation patterns
- Fix abuse-guard.ts: bound in-memory Maps with LRU eviction (was unbounded)
- Fix access-guard.ts: separate try/catch per check, log degradation
instead of blanket fail-open
- Replace raw redirect() calls with safeRedirect() in guard.ts and
permissions.ts to prevent open-redirect attacks
- Add CSRF validation to api-handler.ts for mutating methods
- Add canonicalizeFormData() utility for FormData input sanitization
2026-07-13 12:03:49 +02:00
openhands
8bf1aa2fa7
Use translations for emulator page (was hardcoded Italian)
Local Build and Deploy / deploy (push) Successful in 58s
2026-07-12 23:14:35 +02:00
openhands
5ae29e2a58
Add i18n support for import page and translations tabs
Local Build and Deploy / deploy (push) Successful in 1m7s
2026-07-12 23:11:59 +02:00
openhands
574a499e14
Change language switcher search placeholder to English
Local Build and Deploy / deploy (push) Successful in 1m3s
2026-07-12 23:04:33 +02:00
openhands
7b85f8f3db
Make admin CMS translation language tabs horizontally scrollable
Local Build and Deploy / deploy (push) Successful in 1m4s
2026-07-12 23:02:59 +02:00
openhands
187e008914
Add search to language switcher dropdown, remove translation script
Local Build and Deploy / deploy (push) Successful in 1m6s
2026-07-12 22:58:40 +02:00
openhands
72a3284ddd
Fix Cyrillic-translated HTML tags in Serbian and Bulgarian translations
Local Build and Deploy / deploy (push) Successful in 49s
2026-07-12 22:54:27 +02:00
openhands
6ddfcafa67
Fix placeholders in machine translations and add Russian translation
Local Build and Deploy / deploy (push) Successful in 54s
2026-07-12 22:37:52 +02:00
openhands
b5179c682f
Limit language switcher dropdown height with scrollbar
Local Build and Deploy / deploy (push) Successful in 1m8s
2026-07-12 21:55:17 +02:00
openhands
efe467d352
Add 12 more languages: ro, hu, cs, sk, da, no, el, bg, hr, sr, uk, ru
Local Build and Deploy / deploy (push) Successful in 1m0s
2026-07-12 21:52:22 +02:00
openhands
395b43081c
Add Turkish language support
Local Build and Deploy / deploy (push) Successful in 1m6s
2026-07-12 21:47:50 +02:00
openhands
e3b792f5a3
Add Portuguese, Polish, and Swedish language support with flags
Local Build and Deploy / deploy (push) Failing after 1m7s
2026-07-12 21:45:35 +02:00
openhands
0bf4a9367a
Add missing Italian translations for admin nav: import, sounds, translations
Local Build and Deploy / deploy (push) Successful in 1m5s
2026-07-12 21:37:04 +02:00
openhands
6933fb77d5
Add admin import overview page and extend CMS translations to all 6 locales
Local Build and Deploy / deploy (push) Successful in 51s
2026-07-12 21:28:16 +02:00
openhands
2e4ed76121
style: format code with prettier
Local Build and Deploy / deploy (push) Successful in 49s
2026-07-12 21:07:34 +02:00
remco
e85e4d74ea
revert fb8e77bb68
...
Local Build and Deploy / deploy (push) Successful in 1m11s
revert style: clean up code with prettier and eslint
2026-07-12 21:02:03 +02:00
openhands
27de078f54
chore: ignore local gitea symlink in working tree
Local Build and Deploy / deploy (push) Successful in 1m10s
2026-07-12 20:58:12 +02:00
Simo
65e942b268
Update README.md
Local Build and Deploy / deploy (push) Successful in 1m16s
2026-07-12 20:54:51 +02:00
openhands
fb8e77bb68
style: clean up code with prettier and eslint
2026-07-12 20:31:05 +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
Simo
c0ffc74f9b
fix: externalize lzma for import build
Local Build and Deploy / deploy (push) Successful in 49s
2026-07-12 19:15:08 +02:00
Simo
eb759f54bf
feat: connect guarded asset import api
2026-07-12 19:12:25 +02:00
Simo
3497df9dfd
feat: add asset import services
2026-07-12 19:12:25 +02:00
Simo
4b596226e0
fix: complete acl management
2026-07-12 19:12:24 +02:00
Simo
667ec9af4c
test: define acl and import backend contracts
2026-07-12 19:01:28 +02:00
Simo
63ab21616c
docs: define acl and import backend work
2026-07-12 19:00:47 +02:00
Simo
84e4123f09
fix: use semantic colors across admin pages
Local Build and Deploy / deploy (push) Successful in 49s
2026-07-12 18:50:45 +02:00
Simo
0fe482009c
fix: isolate shared admin styling
2026-07-12 18:50:44 +02:00
Simo
4ce35e91fb
feat: add semantic admin palette
2026-07-12 18:47:23 +02:00
Simo
d4bcf89449
test: enforce admin theme isolation
2026-07-12 18:46:16 +02:00