"""tasks.context_summary 列(§8.8 Phase 2 阈值结构化摘要).

Revision ID: 0021
Revises: 0020
Create Date: 2026-07-09

给 tasks 加 context_summary(TEXT NULL):窗口中段折叠后的结构化摘要。
Session.load 时若非空,在 system 之后注入一条仅内存的「前情摘要」消息;
与 context_base_idx(0019)配套 —— 折叠 = 摘要写这列 + base 推进到切点。
原始消息仍全量留 messages 表(边界而非删除),web 端照旧翻完整历史。
NULL = 从未折叠,行为与 0019 之前完全一致。additive,无数据迁移。
"""
from typing import Sequence, Union

import sqlalchemy as sa
from alembic import op


revision: str = "0021"
down_revision: Union[str, None] = "0020"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    op.add_column(
        "tasks",
        sa.Column("context_summary", sa.Text(), nullable=True),
    )


def downgrade() -> None:
    op.drop_column("tasks", "context_summary")
