"""Add proposer_signature and proposer_public_key to musehub_proposals. Every proposal carries an Ed25519 signature by the proposer over the canonical PROPOSE message — binding their cryptographic identity to the specific act of opening this proposal. Revision ID: 0048 Revises: 0047 """ from __future__ import annotations import sqlalchemy as sa from alembic import op revision: str = "0048" down_revision: str = "0047" branch_labels = None depends_on = None def upgrade() -> None: op.add_column( "musehub_proposals", sa.Column("proposer_signature", sa.Text(), nullable=True), ) op.add_column( "musehub_proposals", sa.Column("proposer_public_key", sa.Text(), nullable=True), ) def downgrade() -> None: op.drop_column("musehub_proposals", "proposer_public_key") op.drop_column("musehub_proposals", "proposer_signature")