chore(profile): drop dead curator columns from UserProfile
Drift-audit Group 7: learned_summary, observations_raw, and observations_updated_at were populated by the curator/LLM-profile machinery removed in the Phase-8 pivot. Nothing has written them since and the profile API returned permanently-empty fields. Remove them from the model + to_dict and drop the columns (migration 0062). Verified zero frontend/backend/test consumers. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,41 @@
|
|||||||
|
"""drop dead UserProfile curator columns
|
||||||
|
|
||||||
|
Revision ID: 0062
|
||||||
|
Revises: 0061
|
||||||
|
Create Date: 2026-06-02
|
||||||
|
|
||||||
|
learned_summary, observations_raw, and observations_updated_at were written by
|
||||||
|
the curator/LLM-profile machinery removed in the Phase-8 MCP pivot. Nothing has
|
||||||
|
populated them since; the profile API returned permanently-empty fields. Drop
|
||||||
|
the columns.
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
from sqlalchemy.dialects import postgresql
|
||||||
|
|
||||||
|
|
||||||
|
revision = "0062"
|
||||||
|
down_revision = "0061"
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade() -> None:
|
||||||
|
op.drop_column("user_profiles", "learned_summary")
|
||||||
|
op.drop_column("user_profiles", "observations_raw")
|
||||||
|
op.drop_column("user_profiles", "observations_updated_at")
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade() -> None:
|
||||||
|
op.add_column(
|
||||||
|
"user_profiles",
|
||||||
|
sa.Column("observations_updated_at", sa.DateTime(timezone=True), nullable=True),
|
||||||
|
)
|
||||||
|
op.add_column(
|
||||||
|
"user_profiles",
|
||||||
|
sa.Column("observations_raw", postgresql.JSONB(), nullable=True),
|
||||||
|
)
|
||||||
|
op.add_column(
|
||||||
|
"user_profiles",
|
||||||
|
sa.Column("learned_summary", sa.Text(), nullable=True),
|
||||||
|
)
|
||||||
@@ -1,6 +1,4 @@
|
|||||||
from datetime import datetime
|
from sqlalchemy import ForeignKey, Integer, Text
|
||||||
|
|
||||||
from sqlalchemy import DateTime, ForeignKey, Integer, Text
|
|
||||||
from sqlalchemy.dialects.postgresql import ARRAY, JSONB
|
from sqlalchemy.dialects.postgresql import ARRAY, JSONB
|
||||||
from sqlalchemy.orm import Mapped, mapped_column
|
from sqlalchemy.orm import Mapped, mapped_column
|
||||||
|
|
||||||
@@ -27,13 +25,6 @@ class UserProfile(Base, TimestampMixin):
|
|||||||
interests: Mapped[list[str] | None] = mapped_column(ARRAY(Text), nullable=True)
|
interests: Mapped[list[str] | None] = mapped_column(ARRAY(Text), nullable=True)
|
||||||
# {days: ["Mon","Tue",...], start: "09:00", end: "17:00"}
|
# {days: ["Mon","Tue",...], start: "09:00", end: "17:00"}
|
||||||
work_schedule: Mapped[dict | None] = mapped_column(JSONB, nullable=True)
|
work_schedule: Mapped[dict | None] = mapped_column(JSONB, nullable=True)
|
||||||
# LLM-consolidated summary of learned preferences
|
|
||||||
learned_summary: Mapped[str | None] = mapped_column(Text, nullable=True)
|
|
||||||
# [{date: "YYYY-MM-DD", bullets: "..."}, ...]
|
|
||||||
observations_raw: Mapped[list | None] = mapped_column(JSONB, nullable=True)
|
|
||||||
observations_updated_at: Mapped[datetime | None] = mapped_column(
|
|
||||||
DateTime(timezone=True), nullable=True
|
|
||||||
)
|
|
||||||
|
|
||||||
def to_dict(self) -> dict:
|
def to_dict(self) -> dict:
|
||||||
return {
|
return {
|
||||||
@@ -45,11 +36,4 @@ class UserProfile(Base, TimestampMixin):
|
|||||||
"tone": self.tone or "casual",
|
"tone": self.tone or "casual",
|
||||||
"interests": self.interests or [],
|
"interests": self.interests or [],
|
||||||
"work_schedule": self.work_schedule or {},
|
"work_schedule": self.work_schedule or {},
|
||||||
"learned_summary": self.learned_summary or "",
|
|
||||||
"observations_count": len(self.observations_raw or []),
|
|
||||||
"observations_updated_at": (
|
|
||||||
self.observations_updated_at.isoformat()
|
|
||||||
if self.observations_updated_at
|
|
||||||
else None
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user