Agent Zero
fd4a1ec4ce
Check Cross-Plugin Imports / check (push) Waiting to run
fix(migrations): F40 (Astra P1) — Plugin-Migrationen tracken SHA-256-Content-Hash, Drift wird sichtbar
...
Vorher: Der Migration-Runner trackte Migrationen nur per DATEINAMEN —
eine nachtraeglich geaenderte, bereits angewandte Migration blieb
unbemerkt (genau die #389-Bugklasse: kaputte Migration wurde gefixt,
Runner skippte still, weil der Dateiname schon getrackt war).
Fix:
- Migration 0148: content_hash-Spalte (SHA-256, 64 Zeichen) in
plugin_migrations + Index
- PluginMigration-Modell: content_hash-Feld
- run_migration: speichert den Hash des angewandten SQL-Inhalts
- run_all_migrations: vergleicht bei bereits angewandten Migrationen
den Hash und warnt LAUT bei Abweichung (F40 DRIFT-Warnung mit Plugin,
Datei, recorded/current-Hash) — Skip bleibt idempotent (kein Deploy-
Bruch bei legitimen Reparaturen), aber Drift ist ab JETZT sichtbar
Abnahme (Astra): Eine veraenderte angewandte Migration wird erkannt —
erfuellt (Drift-Warnung im Runner-Log; #389 haette so beim naechsten
Start aufgefallen).
Verifikation: Syntax OK, ruff clean, alembic heads = 0148.
2026-09-18 13:01:25 +02:00
..
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 18:20:09 +02:00
2026-07-31 18:20:09 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-04 00:31:47 +00:00
2026-07-31 19:16:11 +02:00
2026-07-04 01:32:13 +00:00
2026-07-04 08:12:39 +00:00
2026-07-07 07:44:02 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 18:20:09 +02:00
2026-07-31 19:16:11 +02:00
2026-07-17 00:59:41 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 18:20:09 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-25 21:03:46 +02:00
2026-07-25 21:03:46 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 18:20:09 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 18:20:09 +02:00
2026-07-31 19:16:11 +02:00
2026-07-25 21:03:46 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-26 00:42:31 +02:00
2026-07-25 21:03:46 +02:00
2026-07-26 03:02:25 +02:00
2026-07-26 03:17:40 +02:00
2026-07-26 03:22:40 +02:00
2026-07-26 21:41:23 +02:00
2026-07-26 20:49:15 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-29 01:28:13 +02:00
2026-07-29 01:30:25 +02:00
2026-07-29 01:30:25 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-29 03:10:26 +02:00
2026-07-31 19:16:11 +02:00
2026-07-29 12:28:08 +02:00
2026-07-29 12:40:15 +02:00
2026-07-29 12:30:00 +02:00
2026-07-31 18:20:09 +02:00
2026-07-29 12:46:50 +02:00
2026-07-29 12:49:15 +02:00
2026-07-29 12:49:15 +02:00
2026-07-29 13:19:21 +02:00
2026-07-29 16:12:04 +02:00
2026-07-29 16:36:51 +02:00
2026-07-29 16:49:09 +02:00
2026-07-31 19:16:11 +02:00
2026-07-31 19:16:11 +02:00
2026-07-29 18:38:06 +02:00
2026-07-31 18:20:09 +02:00
2026-07-31 19:16:11 +02:00
2026-07-29 23:33:56 +02:00
2026-07-29 23:42:25 +02:00
2026-07-30 00:06:43 +02:00
2026-07-30 00:15:58 +02:00
2026-07-30 00:20:20 +02:00
2026-07-30 00:47:43 +02:00
2026-07-31 19:16:11 +02:00
2026-07-30 10:16:26 +02:00
2026-07-31 01:31:41 +02:00
2026-08-04 15:11:28 +02:00
2026-07-31 09:02:40 +02:00
2026-07-31 18:20:09 +02:00
2026-07-31 12:04:27 +02:00
2026-07-31 22:15:29 +02:00
2026-07-31 22:23:38 +02:00
2026-08-01 23:04:15 +02:00
2026-08-02 23:25:54 +02:00
2026-08-03 13:29:16 +02:00
2026-08-03 16:14:43 +02:00
2026-08-03 13:29:16 +02:00
2026-08-03 13:29:16 +02:00
2026-08-03 14:10:04 +02:00
2026-08-03 14:21:43 +02:00
2026-08-03 19:18:09 +02:00
2026-08-03 22:32:03 +02:00
2026-08-03 23:14:26 +02:00
2026-08-04 00:18:06 +02:00
2026-08-04 09:27:10 +02:00
2026-08-04 22:42:25 +02:00
2026-08-04 22:57:37 +02:00
2026-08-04 23:02:28 +02:00
2026-08-04 23:24:39 +02:00
2026-08-06 00:56:19 +02:00
2026-08-06 01:05:33 +02:00
2026-08-06 23:14:29 +02:00
2026-08-06 11:32:14 +02:00
2026-08-06 11:36:38 +02:00
2026-08-06 11:36:38 +02:00
2026-08-06 12:05:09 +02:00
2026-08-06 13:23:58 +02:00
2026-08-06 13:23:58 +02:00
2026-08-06 13:43:47 +02:00
2026-08-13 16:28:55 +02:00
2026-08-23 21:36:56 +02:00
2026-08-23 21:36:56 +02:00
2026-08-23 21:36:56 +02:00
2026-08-23 21:36:56 +02:00
2026-08-17 16:57:50 +02:00
2026-08-23 21:36:56 +02:00
2026-08-18 00:29:58 +02:00
2026-08-18 11:55:43 +02:00
2026-08-23 21:36:56 +02:00
2026-08-19 16:30:27 +02:00
2026-08-23 21:36:56 +02:00
2026-08-20 13:47:35 +02:00
2026-08-20 22:29:22 +02:00
2026-08-21 01:34:48 +02:00
2026-08-21 01:58:46 +02:00
2026-08-21 02:39:00 +02:00
2026-08-21 10:05:47 +02:00
2026-08-23 21:36:56 +02:00
2026-08-21 13:34:54 +02:00
2026-08-23 21:36:56 +02:00
2026-08-23 21:36:56 +02:00
2026-08-23 21:36:56 +02:00
2026-08-23 18:35:50 +02:00
2026-08-24 08:06:19 +02:00
2026-08-29 09:49:16 +02:00
2026-08-30 16:21:34 +02:00
2026-09-18 08:46:27 +02:00
2026-09-18 08:53:54 +02:00
2026-09-18 11:43:05 +02:00
2026-09-18 13:01:25 +02:00