land: views-cold-build-cleanup

Merged
AF
7d ago
+1518-41

Accepted agent delivery; branch-keyed search descriptor included.


Summary by cubic

Cold view builds now reclaim unpublished databases and SQLite sidecars after failures, cancellation, and restart, while private outputs use less disk I/O.

  • Private cold builds write with relaxed journaling and sync once during finalize, so publication no longer needs a WAL keeper handoff.
  • Unpublished derived files and sidecars are removed on error, panic, publication rejection, or cancellation, and swept once at view startup after a crash; first-load cleanup only removes artifacts it created, and first-load names embed a pid and process-start token so equal-manifest builders never share a destination.
  • Deferred index rebuilding remains a test-only benchmark control; production keeps secondary indexes live based on paired measurements.

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge; no new blocking issue was found.

Summary

Cold builds use fewer disk writes and remove unpublished databases and SQLite sidecars after failure, cancellation, or restart.

  • New cold view builds write with less disk work before publication.
  • Failed or interrupted view builds leave fewer abandoned files behind.
  • Prepared view generations stay protected while builders publish them.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Create private build name] --> B[Build database]
  B --> C[Sync database]
  C --> D[Pin and write manifest]
  D --> E[Attempt pointer update]
  E --> F{Published?}
  F -->|Yes| G[Keep published files]
  F -->|No| H[Remove unpublished files]
  B -->|Error or panic| H
  I[Restart] --> J[Sweep abandoned files]

Reviews (5) · Last reviewed commit: "mason: pin prepared v2 generations again..." · Reviewed by Greptile