Aha. Aqui está o que aconteceu. Parece que foi porque ambos usamos IA e ela é estúpida e preguiçosa. Uma explicação alternativa é que foi má sorte, mas parece que o Claude (foi o que eu usei) não recebe um carimbo de hora e data (NÃO É LEGAL, Claude), apenas um carimbo de data e depois adiciona um contador, então ambos estávamos trabalhando no mesmo dia.
Aqui estão as últimas migrações que foram executadas:
up 20260316000001 Create discourse citationwizard openalex api keys
up 20260316000002 Create discourse citationwizard api key daily snapshots
up 20260316071735 Rename automation api key scope resource
up 20260316071736 Rename ai api key scope resource
up 20260316071737 Rename data explorer api key scope resource
up 20260319000000 ********** NO FILE **********
up 20260319000001 Create discourse citationwizard user lookup events
up 20260319000002 Create discourse citationwizard citation wizard sessions
up 20260319033623 ********** NO FILE **********
up 20260319055039 ********** NO FILE **********
E o discourse-citationwizard (que suporta https://www.citationwizard.net/, uma ferramenta de citação/referência para acadêmicos) fez uma migração no mesmo dia. Eu achei aquela migração suspeita, mas não imaginei que haveria implicações como essas…
Então é por isso que plugins/discourse-ai/db/migrate/20260319000001_create_ai_agent_mcp_servers.rb não pode ser executado.
E eu tive a má sorte de minha migração ter sido executada primeiro (é mais fácil alterar meu código do que o seu). Estou tentando agora ver se consigo renomear minhas migrações na tabela de migração…