feat: persist feature research and versioned alpha assessments
This commit is contained in:
@@ -348,6 +348,7 @@ class CatalogDataset(Base):
|
||||
|
||||
class CatalogEntry(Base):
|
||||
"""Immutable published snapshots; staging rows remain invisible until batch completion."""
|
||||
|
||||
__tablename__ = "catalog_entries"
|
||||
batch_id: Mapped[str] = mapped_column(ForeignKey("catalog_batches.id"), primary_key=True)
|
||||
id: Mapped[str] = mapped_column(String(200), primary_key=True)
|
||||
@@ -389,6 +390,7 @@ class TemplateInput(Base):
|
||||
|
||||
class CatalogResource(Base):
|
||||
"""Read-only upstream metadata snapshots; local annotations live separately."""
|
||||
|
||||
__tablename__ = "catalog_resources"
|
||||
key: Mapped[str] = mapped_column(String(250), primary_key=True)
|
||||
kind: Mapped[str] = mapped_column(String(30), index=True)
|
||||
@@ -406,6 +408,7 @@ class OperatorNote(Base):
|
||||
|
||||
class ResearchAsset(Base):
|
||||
"""Stable identity for typed templates, feature plans, views and workflow definitions."""
|
||||
|
||||
__tablename__ = "research_assets"
|
||||
id: Mapped[str] = mapped_column(String(36), primary_key=True)
|
||||
kind: Mapped[str] = mapped_column(String(30), index=True)
|
||||
@@ -426,6 +429,7 @@ class ResearchRevision(Base):
|
||||
|
||||
class ResearchExperiment(Base):
|
||||
"""Immutable generated candidates; never masquerade as platform Alpha records."""
|
||||
|
||||
__tablename__ = "research_experiments"
|
||||
id: Mapped[str] = mapped_column(String(36), primary_key=True)
|
||||
name: Mapped[str] = mapped_column(String(200))
|
||||
@@ -436,3 +440,21 @@ class ResearchExperiment(Base):
|
||||
candidates: Mapped[list] = mapped_column(JSON)
|
||||
evidence: Mapped[dict] = mapped_column(JSON)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=now)
|
||||
|
||||
|
||||
class ResearchEvaluation(Base):
|
||||
__tablename__ = "research_evaluations"
|
||||
id: Mapped[str] = mapped_column(String(36), primary_key=True)
|
||||
alpha_id: Mapped[str | None] = mapped_column(ForeignKey("alphas.id"), index=True)
|
||||
experiment_id: Mapped[str | None] = mapped_column(ForeignKey("research_experiments.id"), index=True)
|
||||
report: Mapped[dict] = mapped_column(JSON)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=now)
|
||||
|
||||
|
||||
class ResearchParent(Base):
|
||||
"""Queryable edges; parent snapshots remain authoritative in the experiment."""
|
||||
|
||||
__tablename__ = "research_parents"
|
||||
child_id: Mapped[str] = mapped_column(ForeignKey("research_experiments.id"), primary_key=True)
|
||||
parent_kind: Mapped[str] = mapped_column(String(30), primary_key=True)
|
||||
parent_id: Mapped[str] = mapped_column(String(100), primary_key=True, index=True)
|
||||
|
||||
Reference in New Issue
Block a user