Sets content_hash to NULL for build_log packages so the partial unique
index ene_pkg_hash_idx does not prevent multiple ingestions of the same
build output. Each build session now gets its own package row. Also makes
receipt/ingest_event inserts idempotent with ON CONFLICT DO NOTHING.
Adds 4-Infrastructure/shim/lake_build_ingest.py, a pure-I/O shim that:
- runs `lake build <target>` in the Semantics directory,
- parses job count, error count, warnings, and status,
- inserts a session, package, receipt, and ingest_event into the
ENE database on neon-64gb (arxiv-pg container).
The script contains no admissibility logic and no Float arithmetic.
Tested with `lake build Semantics.NKHodgeFAMM` — 8316 jobs, 0 errors,
session d1ea53db2185df87dd41497da12101f5.