"""languages: add kinds_json column to musehub_intel_languages Stores the per-language symbol-kind breakdown (e.g. {'function': 1346, 'class': 1447}) produced by LanguagesProvider on every push. Previously this data was discarded; now it drives the kind-chip row on the languages intel page. Revision ID: 0014 Revises: 0013 """ from __future__ import annotations from typing import Union import sqlalchemy as sa from alembic import op from sqlalchemy.dialects import postgresql revision: str = "0014" down_revision: Union[str, None] = "0013" branch_labels = None depends_on = None def upgrade() -> None: op.add_column( "musehub_intel_languages", sa.Column( "kinds_json", postgresql.JSONB(astext_type=sa.Text()), nullable=True, comment="kind → count breakdown, e.g. {'function': 1346, 'class': 1447}", ), ) def downgrade() -> None: op.drop_column("musehub_intel_languages", "kinds_json")