From ca7edadcf498ec4286af6d58ad7f54dfe73ead1d Mon Sep 17 00:00:00 2001 From: J Date: Mon, 13 Jul 2026 15:34:45 +0800 Subject: [PATCH] chore(attribution): renumber migrations to 167-173 after syncing main Merged latest main (which took 166_project_dates) and shifted the attribution migration series off the 166 collision: 166->167 agent_task_attribution, 167->168 accountable_user, 168->169 rule_version, 169->170 rule_version_index, 170->171 fail_closed, 171->172 trigger_publisher, 172->173 invariant_check. Updated the internal cross-references in the migration comments accordingly. Fixes TestMigrationNumericPrefixesStayUniqueAfterLegacySet on the merge tree. Co-authored-by: multica-agent --- ...tribution.down.sql => 167_agent_task_attribution.down.sql} | 0 ...k_attribution.up.sql => 167_agent_task_attribution.up.sql} | 0 ...user.down.sql => 168_agent_task_accountable_user.down.sql} | 0 ...ble_user.up.sql => 168_agent_task_accountable_user.up.sql} | 4 ++-- ...e_version.down.sql => 169_autopilot_rule_version.down.sql} | 0 ..._rule_version.up.sql => 169_autopilot_rule_version.up.sql} | 0 ...dex.down.sql => 170_autopilot_rule_version_index.down.sql} | 0 ...n_index.up.sql => 170_autopilot_rule_version_index.up.sql} | 0 ...own.sql => 171_workspace_attribution_fail_closed.down.sql} | 0 ...ed.up.sql => 171_workspace_attribution_fail_closed.up.sql} | 0 ...sher.down.sql => 172_autopilot_trigger_publisher.down.sql} | 0 ...ublisher.up.sql => 172_autopilot_trigger_publisher.up.sql} | 0 ...ql => 173_agent_task_attribution_invariant_check.down.sql} | 0 ....sql => 173_agent_task_attribution_invariant_check.up.sql} | 4 ++-- 14 files changed, 4 insertions(+), 4 deletions(-) rename server/migrations/{166_agent_task_attribution.down.sql => 167_agent_task_attribution.down.sql} (100%) rename server/migrations/{166_agent_task_attribution.up.sql => 167_agent_task_attribution.up.sql} (100%) rename server/migrations/{167_agent_task_accountable_user.down.sql => 168_agent_task_accountable_user.down.sql} (100%) rename server/migrations/{167_agent_task_accountable_user.up.sql => 168_agent_task_accountable_user.up.sql} (96%) rename server/migrations/{168_autopilot_rule_version.down.sql => 169_autopilot_rule_version.down.sql} (100%) rename server/migrations/{168_autopilot_rule_version.up.sql => 169_autopilot_rule_version.up.sql} (100%) rename server/migrations/{169_autopilot_rule_version_index.down.sql => 170_autopilot_rule_version_index.down.sql} (100%) rename server/migrations/{169_autopilot_rule_version_index.up.sql => 170_autopilot_rule_version_index.up.sql} (100%) rename server/migrations/{170_workspace_attribution_fail_closed.down.sql => 171_workspace_attribution_fail_closed.down.sql} (100%) rename server/migrations/{170_workspace_attribution_fail_closed.up.sql => 171_workspace_attribution_fail_closed.up.sql} (100%) rename server/migrations/{171_autopilot_trigger_publisher.down.sql => 172_autopilot_trigger_publisher.down.sql} (100%) rename server/migrations/{171_autopilot_trigger_publisher.up.sql => 172_autopilot_trigger_publisher.up.sql} (100%) rename server/migrations/{172_agent_task_attribution_invariant_check.down.sql => 173_agent_task_attribution_invariant_check.down.sql} (100%) rename server/migrations/{172_agent_task_attribution_invariant_check.up.sql => 173_agent_task_attribution_invariant_check.up.sql} (96%) diff --git a/server/migrations/166_agent_task_attribution.down.sql b/server/migrations/167_agent_task_attribution.down.sql similarity index 100% rename from server/migrations/166_agent_task_attribution.down.sql rename to server/migrations/167_agent_task_attribution.down.sql diff --git a/server/migrations/166_agent_task_attribution.up.sql b/server/migrations/167_agent_task_attribution.up.sql similarity index 100% rename from server/migrations/166_agent_task_attribution.up.sql rename to server/migrations/167_agent_task_attribution.up.sql diff --git a/server/migrations/167_agent_task_accountable_user.down.sql b/server/migrations/168_agent_task_accountable_user.down.sql similarity index 100% rename from server/migrations/167_agent_task_accountable_user.down.sql rename to server/migrations/168_agent_task_accountable_user.down.sql diff --git a/server/migrations/167_agent_task_accountable_user.up.sql b/server/migrations/168_agent_task_accountable_user.up.sql similarity index 96% rename from server/migrations/167_agent_task_accountable_user.up.sql rename to server/migrations/168_agent_task_accountable_user.up.sql index b22ef53508..4fa2bdf056 100644 --- a/server/migrations/167_agent_task_accountable_user.up.sql +++ b/server/migrations/168_agent_task_accountable_user.up.sql @@ -1,7 +1,7 @@ -- Human Attribution, Phase 1 — split the accountable human off originator_user_id -- (MUL-4302, decided by Bohan on the MUL-4302 thread). -- --- Migration 166 stamped provenance (originator_source, evidence, lineage) ONTO +-- Migration 167 stamped provenance (originator_source, evidence, lineage) ONTO -- originator_user_id, treating that one column as both "who authorized this run" -- and "who is accountable for it". Those are two different questions with two -- different lifetimes, and collapsing them onto one column is a latent hazard: @@ -39,7 +39,7 @@ -- lock). -- -- NULL does NOT mean "pre-migration row" here. Unlike originator_source (which --- every new enqueue path now stamps non-NULL, migration 166), accountable_user_id +-- every new enqueue path now stamps non-NULL, migration 167), accountable_user_id -- is legitimately NULL on NEW rows too, whenever the row's audit source resolved -- no human yet: run_only autopilot writes originator_source='unattributed' with a -- NULL accountable until rule_owner lands, and any classified-unattributed path is diff --git a/server/migrations/168_autopilot_rule_version.down.sql b/server/migrations/169_autopilot_rule_version.down.sql similarity index 100% rename from server/migrations/168_autopilot_rule_version.down.sql rename to server/migrations/169_autopilot_rule_version.down.sql diff --git a/server/migrations/168_autopilot_rule_version.up.sql b/server/migrations/169_autopilot_rule_version.up.sql similarity index 100% rename from server/migrations/168_autopilot_rule_version.up.sql rename to server/migrations/169_autopilot_rule_version.up.sql diff --git a/server/migrations/169_autopilot_rule_version_index.down.sql b/server/migrations/170_autopilot_rule_version_index.down.sql similarity index 100% rename from server/migrations/169_autopilot_rule_version_index.down.sql rename to server/migrations/170_autopilot_rule_version_index.down.sql diff --git a/server/migrations/169_autopilot_rule_version_index.up.sql b/server/migrations/170_autopilot_rule_version_index.up.sql similarity index 100% rename from server/migrations/169_autopilot_rule_version_index.up.sql rename to server/migrations/170_autopilot_rule_version_index.up.sql diff --git a/server/migrations/170_workspace_attribution_fail_closed.down.sql b/server/migrations/171_workspace_attribution_fail_closed.down.sql similarity index 100% rename from server/migrations/170_workspace_attribution_fail_closed.down.sql rename to server/migrations/171_workspace_attribution_fail_closed.down.sql diff --git a/server/migrations/170_workspace_attribution_fail_closed.up.sql b/server/migrations/171_workspace_attribution_fail_closed.up.sql similarity index 100% rename from server/migrations/170_workspace_attribution_fail_closed.up.sql rename to server/migrations/171_workspace_attribution_fail_closed.up.sql diff --git a/server/migrations/171_autopilot_trigger_publisher.down.sql b/server/migrations/172_autopilot_trigger_publisher.down.sql similarity index 100% rename from server/migrations/171_autopilot_trigger_publisher.down.sql rename to server/migrations/172_autopilot_trigger_publisher.down.sql diff --git a/server/migrations/171_autopilot_trigger_publisher.up.sql b/server/migrations/172_autopilot_trigger_publisher.up.sql similarity index 100% rename from server/migrations/171_autopilot_trigger_publisher.up.sql rename to server/migrations/172_autopilot_trigger_publisher.up.sql diff --git a/server/migrations/172_agent_task_attribution_invariant_check.down.sql b/server/migrations/173_agent_task_attribution_invariant_check.down.sql similarity index 100% rename from server/migrations/172_agent_task_attribution_invariant_check.down.sql rename to server/migrations/173_agent_task_attribution_invariant_check.down.sql diff --git a/server/migrations/172_agent_task_attribution_invariant_check.up.sql b/server/migrations/173_agent_task_attribution_invariant_check.up.sql similarity index 96% rename from server/migrations/172_agent_task_attribution_invariant_check.up.sql rename to server/migrations/173_agent_task_attribution_invariant_check.up.sql index 25e7a4c856..bb7477a362 100644 --- a/server/migrations/172_agent_task_attribution_invariant_check.up.sql +++ b/server/migrations/173_agent_task_attribution_invariant_check.up.sql @@ -18,11 +18,11 @@ -- raised by Elon). `NOT VALID` skips the initial scan, but Postgres STILL checks a -- pre-existing row whenever a later UPDATE touches it — even an UPDATE that leaves the -- attribution columns alone. Cross-deployment stale queued/running tasks predate --- `167_agent_task_accountable_user`, so they carry (originator_user_id set, +-- `168_agent_task_accountable_user`, so they carry (originator_user_id set, -- accountable_user_id NULL); their next claim / complete / cancel by the new backend -- would fail a bare invariant CHECK. -- --- `originator_source` was added by `166` with no default/backfill, so a NULL there does +-- `originator_source` was added by `167` with no default/backfill, so a NULL there does -- NOT strictly mean "row predates the migration" — it means the row was written by a -- writer that does not populate attribution: (a) rows created before this PR's -- migrations; (b) during a rolling deploy, NEW rows an older, not-yet-replaced backend