Notes Future feature ideas & observations from testing (12) ▸
Global silent-failure pattern. Forms across the app (login, employee create, department create, leave request, grievance, and more) show no toast or inline error when the API rejects a submission — the form just sits there. A single global "show the API's error message" interceptor would fix a large chunk of the bugs found in this pass at once.
"Fill Test Data" is broken on the New Employee form specifically — clicking it does nothing, while the identical feature works correctly on Department, Job Description, Onboarding, and most other forms. Worth a quick fix since it's clearly a shared dev-tool component with one broken wiring.
Guided tour "skip" only persists in localStorage, not synced to the account via the existing /api/v1/me/tours endpoint. It reappears on a different browser or after clearing site data. Worth wiring the Skip/Next actions to that endpoint so it's a true per-account preference.
Access Control matrix ships with "Enforcement OFF." That's an honest, clearly-labeled state — but worth flagging to product/eng to decide a rollout plan for turning it on, since right now the fine-grained category permissions are preview-only.
E-Sign is fully inert without ESIGN_ENCRYPTION_KEY, but the .env.example comment describes it as merely "optional." Worth documenting more clearly that omitting it disables the feature entirely (New Request does nothing), so it's not mistaken for a bug in every fresh environment.
IT ticket assignment has no seeded assignable users and the dropdown just shows nothing with no explanation. A "no IT staff configured yet — add one in Users" empty-state message would make this self-explanatory instead of looking broken.
HR Helpdesk ships with zero ticket categories, so the required Category field can never be filled out of the box — the feature is unusable until someone manually seeds categories. Consider seeding sensible defaults the way IT Helpdesk categories already are.
Leave blackout periods are entirely non-functional — the database table doesn't exist. This is a straightforward missing-migration fix, not a logic bug.
Workshops have no single-item fetch endpoint — only list/create/update/delete exist on the backend, so the dedicated detail page can never load any workshop. A GET /community/workshops/:publicId would fix it.
The legacy /pm/it-helpdesk/manage redirect can hang on "Redirecting…" forever and block further navigation until forced. Update: re-verified in a later session — this now redirects cleanly with no hang. Appears fixed; leaving this note for history.
A stray --muted override in pm.css paints hover states the wrong colour across the whole Project Engine. globals.css correctly defines --muted: #F2F2F2 (a pale surface tint) for the bg-muted utility, but pm.css redefines --muted a second time inside .pm-scope — which wraps the entire Project Engine — to #6b7399, the exact value of --muted-foreground (body text colour). First spotted on My Score's "Points earned"/"Points lost" chips: hovering fills the whole chip with a flat slate-grey slab instead of a subtle tint. Confirmed via computed styles in both light and dark mode. Fix is small: delete the two --muted: … lines from .pm-scope in pm.css (they're clearly meant to be --text-muted, which already exists one line above for this exact purpose) and repoint whatever admin-panel/workflow-builder rule needed it.
Projects table (list view) drifts from the documented list-page pattern in three small ways. Status renders as plain text instead of a colour-coded .status-pill, so nothing pops when scanning a long list. The Actions column uses four full text-label buttons (Details / Workflow / Edit / Cancel Project) instead of the documented icon-button cluster, which is why it eats roughly 40% of the table's width. And for a standalone default-template project, the Type / Category / Template columns often all say some form of the same word. None of these break anything — just drift from spec worth tidying in one pass.