proposal-system/web
Adam Moussa 57122ee702 fix: web medium findings (WEB-M2, M5, M6, M7, M10, M13)
WEB-M2: 401 interceptor now dispatches Redux logout action to clear
auth state, not just localStorage.

WEB-M5: CreateProposalRequest uses typed ServiceCategory and Priority
unions aligned with shared/api-contracts contract.

WEB-M6: Vendor PDF upload validates MIME type (application/pdf),
file extension (.pdf), and max size (25 MB) before accepting.

WEB-M7: AdminWorkspace shows error Alert with retry button when
proposal fetch fails, instead of rendering empty workspace.

WEB-M10: State transition buttons (Approve, Send, Revise) are
disabled with explanatory tooltips when proposal is not in the
correct state for that transition.

WEB-M13: ToastContainer moved inside BrowserRouter so toasts
render in the correct React tree context.
2026-05-27 18:18:44 -04:00
..
src fix: web medium findings (WEB-M2, M5, M6, M7, M10, M13) 2026-05-27 18:18:44 -04:00
.env.example Implement Phases 2-5: Frontend, AI/RAG, PDF Generation (#22) 2026-05-17 13:06:23 -04:00
index.html Update theme: Inter font, flat AppBar, refined palette, 6px radius, polished component defaults 2026-05-27 18:17:48 -04:00
package-lock.json test: bootstrap test infrastructure with critical coverage (QA-C1 through QA-C6) 2026-05-27 18:18:44 -04:00
package.json test: bootstrap test infrastructure with critical coverage (QA-C1 through QA-C6) 2026-05-27 18:18:44 -04:00
tsconfig.json Initial scaffold: monorepo structure, CDK stacks, CI/CD, domain model 2026-05-16 18:40:46 -04:00
vite.config.ts Implement Phases 2-5: Frontend, AI/RAG, PDF Generation (#22) 2026-05-17 13:06:23 -04:00
vitest.config.ts test: bootstrap test infrastructure with critical coverage (QA-C1 through QA-C6) 2026-05-27 18:18:44 -04:00