Changelog
feat: M3-b malpractice policy PDF vault (Blob + Postgres)
April 15, 2026Branch feat/m3-b-malpractice-policy-storagePR #2462 min readAI Generated
feat: M3-b malpractice policy PDF vault (Blob + Postgres)
Automated summary for branch feat/m3-b-malpractice-policy-storage. This post is generated on push; commit it with your changes.
Commits
- 4f2fa27f chore(webapp): sync PR blog post (include 1d7b9a17)
- 1d7b9a17 chore(webapp): sync PR blog post (after 26a0e955)
- 26a0e955 chore(webapp): sync PR blog post (post-push)
- 766b18cd chore(webapp): sync PR blog post (hook tail)
- 64f4e8bf chore(webapp): sync PR blog post (final commit line)
- bdce1a70 chore(webapp): sync PR blog post diff stat
- 64f7faba chore(webapp): sync PR blog post (commit list)
- 30a89290 chore(webapp): sync PR blog post after push
- 1d405154 chore(webapp): sync PR blog post; changelog Refs #246
- 2f015e7a docs: pre-push adversarial review for M3-b malpractice policy vault
- 16aee637 feat: M3-b malpractice policy PDF vault (Blob + Postgres)
Files changed
CHANGELOG.md | 1 +
.../added-m3-b-malpractice-policy-vault.md | 1 +
.../2026-04-15-m3-b-malpractice-policy-storage.md | 25 +++
docs/adversarial-review/reviews/TLDR.md | 1 +
docs/roadmap.md | 4 +-
plans/m3-malpractice-insurance.md | 11 +-
.../015_malpractice_policy_documents.sql | 20 ++
services/rust-api/src/api/mod.rs | 3 +
.../rust-api/src/api/v1/malpractice_policies.rs | 203 +++++++++++++++++++++
services/rust-api/src/api/v1/mod.rs | 1 +
services/rust-api/src/repositories/blob.rs | 10 +-
services/rust-api/src/repositories/mod.rs | 4 +-
services/rust-api/src/repositories/postgres.rs | 79 +++++++-
.../manifest.json | 14 ++
.../versions/ai.md | 46 +++++
webapp/e2e/malpractice-policies-api.spec.ts | 44 +++++
.../malpractice-policies-client.tsx | 168 +++++++++++++++++
.../account/malpractice-insurance/page.tsx | 11 +-
webapp/src/app/api/malpractice-policies/route.ts | 29 +++
.../app/api/malpractice-policies/upload/route.ts | 29 +++
20 files changed, 681 insertions(+), 23 deletions(-)
How this works
This file is produced by webapp/tools/sync-pr-blog-post.ts. Add a versions/human.md file in the same folder to publish a human-written alternative; the site will show tabs for AI Draft and Human when both exist.