fix: add explicit foreign_keys to all branching model relationships

SQLAlchemy can't resolve ambiguous FK paths when tables have
multiple cross-references. All relationships now specify foreign_keys.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
chihlasm
2026-03-24 15:20:46 +00:00
parent 9813c96ca2
commit cb758ad4fd
3 changed files with 6 additions and 6 deletions

View File

@@ -30,6 +30,6 @@ class ForkPoint(Base):
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc))
# Relationships
session: Mapped["AISession"] = relationship("AISession")
parent_branch: Mapped["SessionBranch"] = relationship("SessionBranch")
trigger_step: Mapped[Optional["AISessionStep"]] = relationship("AISessionStep")
session: Mapped["AISession"] = relationship("AISession", foreign_keys=[session_id])
parent_branch: Mapped["SessionBranch"] = relationship("SessionBranch", foreign_keys=[parent_branch_id])
trigger_step: Mapped[Optional["AISessionStep"]] = relationship("AISessionStep", foreign_keys=[trigger_step_id])

View File

@@ -44,7 +44,7 @@ class SessionHandoff(Base):
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc))
# Relationships
session: Mapped["AISession"] = relationship("AISession")
session: Mapped["AISession"] = relationship("AISession", foreign_keys=[session_id])
handed_off_by_user: Mapped["User"] = relationship("User", foreign_keys=[handed_off_by])
source_branch: Mapped[Optional["SessionBranch"]] = relationship("SessionBranch")
source_branch: Mapped[Optional["SessionBranch"]] = relationship("SessionBranch", foreign_keys=[source_branch_id])
claimed_by_user: Mapped[Optional["User"]] = relationship("User", foreign_keys=[claimed_by])

View File

@@ -36,4 +36,4 @@ class SessionResolutionOutput(Base):
updated_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc))
# Relationships
session = relationship("AISession")
session = relationship("AISession", foreign_keys="SessionResolutionOutput.session_id")