Skip to content

fix(pages): resolve 37 verified bugs across the app (1 critical, 9 medium, 27 low)#144

Merged
ma7moudalysalem merged 1 commit into
mainfrom
fix/page-audit-37-bugs
Jul 7, 2026
Merged

fix(pages): resolve 37 verified bugs across the app (1 critical, 9 medium, 27 low)#144
ma7moudalysalem merged 1 commit into
mainfrom
fix/page-audit-37-bugs

Conversation

@ma7moudalysalem

Copy link
Copy Markdown
Owner

An adversarially-verified audit of every non-dashboard page (19 feature areas, find → refute-against-code) surfaced 37 real bugs. All fixed here, grounded in real data / real server behavior — no fabricated values reintroduced.

🔴 Critical

  • Scholarship Edit form could never be saved. The edit-mode form.reset() omitted the required listingMode enum (its <select> only renders in create mode), so the zod resolver silently blocked every submit — no toast, no error, no network call. Reset now seeds listingMode + externalApplicationUrl.

🟠 Correctness (9)

Browse funding/level filters → single-select (shown state now matches what the server applies) · reject-reason relabelled "required" (EN+AR) · consultant no-show button gated to the real 6h post-session window · consultant earnings sum all captured payments + only the consultant's payee rows · chat re-joins thread + re-seeds presence after SignalR reconnect and clears "online" on peer disconnect · document chip counts from an unfiltered source · AI chatbot RAG citations persist (from MetadataJson) · admin can restore hidden resources (admin-gated includeHidden) · onboarding queue paginated.

🟡 Polish / i18n / states (27)

Raw PascalCase enums translated EN+AR (notification types, privacy type, profile status + verification, chat roles, audit filter +7 actions, onboarding validation, 404) · real error+retry states (billing, redaction-audit) · external status changes recorded on the FR-APP-19 timeline · monotonic student booking timeline · resource bookmark cards show description+tags · author sees rejection reason · progress bar hidden on author preview · removed a fabricated "Verified safe" badge and a fake completion-ratio "growth" pill · EN reply/comment pluralisation · recommendation funding amount rendered · false "Closed" pill fixed · login surfaces real lockout/inactive messages · locale-aware list separators · StipendOnly/Other filterable · 404 cards gated by role.

Verification

  • Fixed in parallel across 6 disjoint file groups (no two touch the same file).
  • Client tsc -b clean; eslint --max-warnings 0 clean on all changed files; all 16 edited locale JSONs parse.
  • Server dotnet build succeeds (5 .cs changes: external-status event, resource search/bookmark DTOs, AI session sources); the one affected unit test updated (SearchResourcesQueryHandler now takes ICurrentUserService) and its 3 tests pass.

…dium, 27 low)

An adversarially-verified audit of every non-dashboard page surfaced 37 real
defects. All fixed here, grounded in real data / real server behavior.

CRITICAL
- Scholarship Edit form could never be saved: the edit-mode form.reset() omitted
  the required `listingMode` enum (its <select> only renders in create mode), so
  the zod resolver silently blocked every submit. Reset now seeds listingMode +
  externalApplicationUrl, keeping the form valid.

Correctness (medium)
- Browse funding-type/level filters made single-select so the highlighted+counted
  state matches what the server actually applies (was: all-but-first dropped).
- Reject-reason prompt relabelled "required" (EN+AR) — it always was.
- Consultant "mark no-show" button gated to the real 6h post-session window.
- Consultant earnings now sum ALL captured payments (not the first 100) and only
  the consultant's own payee rows.
- Chat re-joins the open thread + re-seeds presence after a SignalR reconnect;
  header presence clears when the peer goes offline.
- Document category chip counts derived from an unfiltered source (no collapse).
- AI chatbot RAG source citations persist (surfaced from MetadataJson via the DTO)
  instead of vanishing on refetch/reopen.
- Admin: hidden resources restorable from the Published tab (admin-gated
  includeHidden); onboarding queue paginated (was locked to page 1).

Polish / i18n / states (low)
- Raw PascalCase enums translated (EN+AR): notification types, privacy request
  type, profile account-status + verification badges, chat compose roles, audit
  action filter (+7 missing actions), onboarding validation messages, 404 page.
- Real error+retry states for billing, redaction-audit (were blank/empty-on-error).
- External application status changes now recorded on the FR-APP-19 timeline;
  student booking timeline made monotonic/status-truthful.
- Resource bookmark cards show description + tags (DTO extended); author sees the
  rejection reason on reopen; reading-progress bar hidden on author preview.
- Removed a fabricated "Verified safe" community badge and a fabricated
  completion-ratio "growth" pill on student analytics.
- EN reply/comment counts pluralised; funding amount rendered on recommendations;
  false "Closed" pill fixed for deadline-less recs; login surfaces real
  lockout/inactive messages; locale-aware list separators; StipendOnly/Other
  funding types now filterable; 404 suggestion cards gated by role.
Copilot AI review requested due to automatic review settings July 7, 2026 21:06
@ma7moudalysalem ma7moudalysalem merged commit 789968f into main Jul 7, 2026
1 check passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@ma7moudalysalem ma7moudalysalem deleted the fix/page-audit-37-bugs branch July 7, 2026 21:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants