From 0a77215facff2c78b627f1450abf3e71d6d45d91 Mon Sep 17 00:00:00 2001 From: chihlasm Date: Sat, 21 Mar 2026 01:23:33 +0000 Subject: [PATCH] fix(db): widen ai_sessions.status column from varchar(20) to varchar(30) 'requesting_escalation' is 23 characters, exceeding the varchar(20) limit. This caused a StringDataRightTruncationError 500 on escalate. Co-Authored-By: Claude Opus 4.6 --- ..._widen_ai_sessions_status_to_varchar_30.py | 36 +++++++++++++++++++ backend/app/models/ai_session.py | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 backend/alembic/versions/f0aad74ea51b_widen_ai_sessions_status_to_varchar_30.py diff --git a/backend/alembic/versions/f0aad74ea51b_widen_ai_sessions_status_to_varchar_30.py b/backend/alembic/versions/f0aad74ea51b_widen_ai_sessions_status_to_varchar_30.py new file mode 100644 index 00000000..364c1893 --- /dev/null +++ b/backend/alembic/versions/f0aad74ea51b_widen_ai_sessions_status_to_varchar_30.py @@ -0,0 +1,36 @@ +"""widen ai_sessions status to varchar 30 + +Revision ID: f0aad74ea51b +Revises: b8d2f4a6c091 +Create Date: 2026-03-21 01:21:03.742028 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = 'f0aad74ea51b' +down_revision: Union[str, None] = 'b8d2f4a6c091' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + op.alter_column( + "ai_sessions", "status", + type_=sa.String(30), + existing_type=sa.String(20), + existing_nullable=False, + ) + + +def downgrade() -> None: + op.alter_column( + "ai_sessions", "status", + type_=sa.String(20), + existing_type=sa.String(30), + existing_nullable=False, + ) diff --git a/backend/app/models/ai_session.py b/backend/app/models/ai_session.py index bc023278..c2722df0 100644 --- a/backend/app/models/ai_session.py +++ b/backend/app/models/ai_session.py @@ -85,7 +85,7 @@ class AISession(Base): # ── Session state ── status: Mapped[str] = mapped_column( - String(20), nullable=False, default="active", index=True, + String(30), nullable=False, default="active", index=True, ) confidence_tier: Mapped[str] = mapped_column( String(20), nullable=False, default="discovery",