Commit Graph
27 Commits
Author SHA1 Message Date
gtiandClaude Opus 5.5 6bcfac6497 fix: enforce NOT NULL on 20 server-defaulted timestamp columns
Audit of models vs fresh DB vs production (all at 0019): 20 columns are
NOT NULL in the models but nullable in the database, all timestamps with
DEFAULT now() created by 0011/0012/0014/0017 without nullable=False.

Classified DB_CONSTRAINT_MISSING: no application path writes NULL to
them (inserts omit them, updates set now; no raw SQL inserts), and there
were zero NULLs in production and in the development database (246,682
rows checked). The upgrade aborts without changing anything if any NULL
is present, instead of inventing a value.

After this revision a fresh database matches the models on nullability,
column types, PKs, FKs, uniqueness and checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 07:20:04 -03:00
gtiandClaude Opus 5.5 a11209d123 fix: make the migration chain runnable from an empty database
0001 called Base.metadata.create_all(), building the schema from the
current models, so on a fresh PostgreSQL 0002 collided on
datasets.raw_sha256 and `alembic upgrade head` could never run from zero.

0001 is now an explicit, frozen baseline: the seven base tables exactly as
the real history created them, before 0002/0006 extended them. Databases
already past 0001 never re-run it. Proof: a fresh `upgrade head` produces a
schema identical (pg_dump --schema-only) to the long-lived dev database.

0019 repairs a latent bug found by that comparison: 0006 used
server_default="now()" as a string, which PostgreSQL froze at the instant
the column was created, so every Agent and Job got the same created_at.
It also adds three indexes the models declare but no migration created.

central/tests/test_migration_baseline.py guards (via AST) against
migrations importing the models or using string timestamp defaults.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 00:30:51 -03:00
gti ce606b04cc fix: reconcile final control panel coverage UX 2026-09-22 23:04:53 -03:00
gti 50254772e4 fix: clarify unavailable legacy blocker resolution 2026-09-22 21:42:24 -03:00
gti c23782095c fix: keep migration and blocker SQL postgres-safe 2026-09-22 21:29:09 -03:00
gti c2507aee35 fix: show technical timestamps in tooltips 2026-09-22 21:05:39 -03:00
gti 4ba0fa8a53 test: complete control panel fixture UX coverage 2026-09-22 20:49:04 -03:00
gti 0eeb7d159c fix: close operational panel page review findings 2026-09-22 20:34:03 -03:00
gti a4d837f151 feat: refine operational control panel pages 2026-09-22 20:11:18 -03:00
gti 06f6d0f940 fix: enforce utf8 resolution limits 2026-09-22 19:20:45 -03:00
gti 516c71b932 fix: close task 3 resolution findings 2026-09-22 19:11:08 -03:00
gti 5180725238 feat: add safe blocker resolution workflow 2026-09-22 18:47:04 -03:00
gti 2ee271ca80 fix: close remaining task 2 review findings 2026-09-22 18:23:38 -03:00
gti e35417f044 fix: close task 2 operational review findings 2026-09-22 18:00:28 -03:00
gti d72971047b feat: add bounded operational view models 2026-09-22 17:34:47 -03:00
gti de571e3ac2 fix: fail closed weak password opt-in 2026-09-22 17:16:02 -03:00
gti 0846b9d1b0 feat: add operational panel presentation helpers 2026-09-22 16:59:05 -03:00
gti 35642959c0 fix: allow local development admin password 2026-09-22 16:31:33 -03:00
gti 6bdac245b9 fix: validate control panel runtime paths 2026-09-22 16:23:51 -03:00
gti 66b5888d80 feat: add blocker resolution action to panel 2026-09-22 15:38:55 -03:00
gti 301aac112e feat: add autonomous fiscal control panel 2026-09-22 15:36:12 -03:00
gti 3a36ac630b feat: close autonomous operations for blocked products 2026-09-22 14:51:54 -03:00
gti e3ac68c70e feat: add autonomous fiscal completion v1 2026-09-22 13:08:38 -03:00
OpenCode b10131953c feat: close pre-zai local blockers 2026-09-21 16:46:59 -03:00
OpenCode 84b08c2150 feat: complete pre-ai local completion v3 2026-09-21 16:30:27 -03:00
OpenCode 6731eeca08 chore: capture semantic pipeline baseline 2026-09-21 15:52:17 -03:00
OpenCode 9dcc263217 chore: establish project baseline 2026-09-21 15:51:47 -03:00