feat(project-files): add rendered delivery and indexed search

Merged
MZ
3d ago
+4448-545

Summary

  • Add authorized Project file rendering, inline content, previews, and indexed search.
  • Recheck current owner access, source revisions, and embedded-file identities before delivering rendered bytes. Preserve provenance and invalidate compiled artifacts when their inputs change.
  • Apply opaque/excerpt admission before reading and after revalidation; withhold stale search previews. Failed reads preserve shared deterministic render caches.
  • Rebase the rendering/search slice onto staging after #9016, retaining streaming source downloads and buffered previews. Keep Project API/CLI documentation unpublished until launch.

Type of Change

  • Feature / refactor

Testing

  • Latest repair: 85 focused database integration checks and 66 unit tests passed, covering observer refusal, private CLI provenance round trips, registry admission, and HEAD without compilation. Earlier focused delivery/search/cache checks also passed.
  • Prior real-app delivery/rendering run: 15 checks passed, including browser cache reuse, authenticated HEAD, DOCX/PPTX/PDF rendering, asset-revision cache invalidation, and foreign/archived dependency rejection.
  • Scoped type check introduced no errors beyond the existing test baseline. Scoped formatting and strict API validation passed.
  • Pre-deployment source fixtures prepared and verified; post-deployment staging validation remains pending. Full repository checks run in hosted CI.

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Focused tests added/updated and passing
  • No new warnings introduced
  • Full hosted CI passed
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

Review stack

#9015 and #9016 are merged. This PR contains only rendering/search and targets staging. #9018 adds bulk transfers; #9019 adds sharing. Rebase each following slice after its parent merges. #8610 is superseded by this stack.