Fix thesis seed metadata serialization

This commit is contained in:
Daniel Maddern 2026-08-16 16:43:27 +07:00
parent 6b1e520845
commit 334b3f43c2
2 changed files with 17 additions and 1 deletions

View file

@ -657,7 +657,9 @@ class VentureDiscoveryService:
for name, thesis, category, status in seeds:
existing = PortfolioThesis.objects.filter(canonical_name=name).first()
historical = self.historical_thesis_stats(name)
defaults = {"concise_thesis": thesis, "category": category, "status": status, "metadata": {"dogfood_seed": True, "historical": historical}}
historical_metadata = {key: value for key, value in historical.items() if key != "best_company"}
historical_metadata["best_company"] = historical["best_company"].title if historical["best_company"] else ""
defaults = {"concise_thesis": thesis, "category": category, "status": status, "metadata": {"dogfood_seed": True, "historical": historical_metadata}}
if historical["proposal_count"]:
defaults.update({"proposal_count": historical["proposal_count"], "best_ic_score": historical["best_ic_score"], "best_company": historical["best_company"]})
if existing is None:

View file

@ -193,6 +193,20 @@ def test_v03_thesis_registry_mandate_and_territory_allocation() -> None:
assert mandate.opportunity_territories[-2:] == [OpportunityTerritory.OPEN_CATEGORY, OpportunityTerritory.OPEN_CATEGORY]
def test_v03_registry_seed_historical_metadata_is_json_serializable() -> None:
svc = service()
proposal = svc.generate_single_company(svc.create_v0_mandate())
proposal.title = "RFP Historical Candidate"
proposal.description = "AI RFP response drafting for SaaS teams."
proposal.proposed_solution = "RFP proposal automation."
proposal.save(update_fields=["title", "description", "proposed_solution", "updated_at"])
svc.seed_dogfood_thesis_registry()
thesis = PortfolioThesis.objects.get(canonical_name="AI RFP response automation for B2B SaaS")
assert isinstance(thesis.metadata["historical"]["best_company"], str)
def test_v03_novelty_gate_blocks_hard_exclusion_and_allows_soft_exception() -> None:
svc = service()
cohort = svc.prepare_cohort(size=2)