Schema reconciliation + index hygiene, and the weekly base-image refresh #243

Merged
bvandeusen merged 17 commits from dev into main 2026-08-31 08:34:55 -04:00
Showing only changes of commit 8f1ac0c96a - Show all commits
+25 -6
View File
@@ -131,13 +131,32 @@ jobs:
mkdir -p /tmp/versions_held mkdir -p /tmp/versions_held
mv alembic/versions/*.py /tmp/versions_held/ 2>/dev/null || true mv alembic/versions/*.py /tmp/versions_held/ 2>/dev/null || true
DB_NAME=fc_gen alembic revision --autogenerate -m "baseline" || true DB_NAME=fc_gen alembic revision --autogenerate -m "baseline" || true
# Printed in full rather than uploaded. ci-requirements.md records # Printed rather than uploaded: ci-requirements.md records that this
# that this runner cannot do actions/upload-artifact@v4+, and the # runner cannot do actions/upload-artifact@v4+, and the repo dropped
# repo dropped the action entirely in 2026-05; the job log is the # the action entirely in 2026-05, so the job log is the retrieval
# retrieval channel that is actually proven here. # channel actually proven here.
echo "===== BEGIN CANDIDATE BASELINE =====" #
cat alembic/versions/*.py # base64, not the raw file. A plain `cat` of the ~33KB candidate was
# TRUNCATED MID-LINE by the runner on run 4964 — it stopped inside
# `sa.Column('mime', sa.String(length=128)` and carried straight on
# to the next traced command, with the step still green. A silent
# cut in the middle of a schema definition is the worst possible
# failure here, because the truncated text still looks like a
# plausible file.
#
# base64 at a fixed narrow width gives many short lines instead of
# few long ones, and — the actual point — a checksum and a line
# count that make truncation DETECTABLE rather than invisible.
set +x
F=$(ls alembic/versions/*.py | head -1)
B64=$(base64 -w 120 "$F")
echo "===== BEGIN CANDIDATE BASELINE (base64) ====="
echo "$B64"
echo "===== END CANDIDATE BASELINE =====" echo "===== END CANDIDATE BASELINE ====="
echo "candidate-sha256: $(sha256sum "$F" | cut -d' ' -f1)"
echo "candidate-bytes: $(wc -c < "$F")"
echo "candidate-b64-lines: $(echo "$B64" | wc -l)"
set -x
# Put the tree back exactly as it was; this job never mutates state. # Put the tree back exactly as it was; this job never mutates state.
rm -f alembic/versions/*.py rm -f alembic/versions/*.py
mv /tmp/versions_held/*.py alembic/versions/ 2>/dev/null || true mv /tmp/versions_held/*.py alembic/versions/ 2>/dev/null || true