TB-18 — Permit Package Consolidation

Summary

Auto-detect when a project has files in both PERMITS/ and PLANS/ folders and merge them into a single permit_package.pdf. Triggered after any upload to either folder. Backend-only change using pypdf — no frontend UI modifications. Source files preserved, merged PDF registered with source=merged.

What it produced

  • permit_merge_service.py — auto-merge PERMITS/ + PLANS/ into permit_package.pdf
  • file-registry-service — registers merged permit packages with source=merged
  • Hook in portal_files.py upload flow to trigger merge after PERMITS/PLANS uploads

Connections