CEO App-Audit UX Wave — 2026-07-13
CEO$(cat App-Audit/tmp/page-3209-updated.html UX| Wavejq —-Rs 2026-07-13
Context: On 2026-07-13, CEO Alem reported "Nemamo logout dugme u aplikaciji!" and requested a full audit of app.bilko.cloud for missing industry-standard functions. The audit surfaced 3 real issues, all addressed on demo environment (revision bilko-web-demo--0000039, image demo-8db65b55).
Finding 1: Logout Affordance — MC #105556
Status: RESOLVED
Root Cause
Logout functionality always existed and worked correctly (user dropdown menu → "Odjava", data-testid=logout-button). However, on narrow screens (mobile/tablet), the user-menu trigger button had its text label and chevron icon set to hidden sm:inline, leaving only a bare avatar circle visible. This did not visually communicate that the element was a clickable menu, causing the CEO to be unable to locate the logout function.
Fix
File:apps/web/components/top-bar.tsxCommit:9944dd71Pull Request:PR139 → merged as791f6db6Change:User-menu trigger is now rendered as a bordered pill containing avatar + truncated name + chevron at ALL breakpoints:max-w-[9.5rem]belowsmbreakpointmax-w-[14rem]atsmand above
Logout logic itself was not modified.
Verification
Verifier: Angie Jones (Proveo)
Method: Live Playwright UAT at two viewport widths (375px mobile, 1280px desktop)
Result: PASS
Evidence: /Users/makinja/system/evidence/app-audit-uat/ (screenshots 01-narrow.png, 02-wide.png)
Finding 2: Admin Users Page — English-Only + Custom 404 — MC #105557
Status: RESOLVED
Root Cause
The /admin/users page ("Korisnici i uloge") was rendered entirely in English while the rest of the application was in Croatian. Additionally, the default Next.js 404 page displayed English fallback text.
Fix
File:apps/web/app/(dashboard)/admin/users/page.tsx+ 5 locale files (en,hr,bs,sr-Latn,sr-Cyrl) + newapps/web/app/not-found.tsxCommit:d6adeb3dPull Request:PR140 → merged as727b6866Change:~20 UI strings moved touseTranslations('adminUsersPage')37 translation keys added per localeNewnotFoundnamespace for custom 404 pageCustom Croatian 404 page with "Stranica nije pronađena" heading and CTA "Natrag na kontrolnu ploču"
Verification
Linguistic Verifier: Dževad Jahić (Lexicon)
Method: HR terminology validation review
Result: PASS
Evidence: ~/system/evidence/105557/dzevad-hr-validation.md
Functional Verifier: Angie Jones (Proveo)
Method: Live UAT on demo environment
Result: PASS
Page renders in Croatian: "Korisnici i uloge", "Članovi tima", "Aktivan", "Matrica dozvola po ulogama"Navigating to/nonexistentdisplays custom 404 with "Stranica nije pronađena" and CTA "Natrag na kontrolnu ploču"
Note: Role names and permission keys are intentionally left as untranslated technical identifiers.
Finding 3: Dead Table Row Click — MC #105558
Status: IN PROGRESS (CodeCraft investigating)
Root Cause
Confirmed runtime bug: clicking table rows in Fakture (Invoices) and Kontakti (Contacts) tables does NOT navigate to the detail page on deployed bundle, despite source code having <TableRow onClick={() => router.push(...)}> and cursor-pointer class.
Investigation
Assigned to: CodeCraft (lee-robinson)
Status: Root-cause investigation in local production build
Finding: Angie Jones live-tested and confirmed native <tr> click event fires and bubbles, but React synthetic onClick does not trigger navigation. Suspected causes: hydration mismatch, Next.js router delegation issue, or event handler binding failure in production bundle.
This is the third "live ≠ code" case discovered on 2026-07-13.
Follow-Up Noted (Not a Blocker)
Bare /demo Dead-End:
Navigating directly to /demo (without ?country= parameter) results in an error message "Odaberi državu za demo" instead of presenting a country picker UI. This is not a blocker but worth a UX decision if raw /demo links are shared externally.
Summary
Live Environment: demo.bilko.cloud revision bilko-web-demo--0000039 (image demo-8db65b55)
Evidence Archive: /Users/makinja/system/evidence/app-audit-uat/