From 3ba1deccbfc124f952b5744afb075b85bc8d1e5f Mon Sep 17 00:00:00 2001 From: policyengine-bot Date: Thu, 18 Dec 2025 13:15:52 +0000 Subject: [PATCH 1/2] Fix parameter search and seeding issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two critical fixes for the MCP workflow: 1. Remove caching from /parameters endpoint - The @cache decorator was ignoring the search parameter - All queries returned the same cached result - Search functionality was completely broken 2. Seed ALL parameters, not just labeled ones - Previous filter excluded core tax system parameters - UK basic_rate and similar parameters were missing - Users couldn't create policies for fundamental reforms These changes enable the complete UK basic rate analysis workflow. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- scripts/seed.py | 9 +++------ src/policyengine_api/api/parameters.py | 2 -- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/scripts/seed.py b/scripts/seed.py index 6974ed2..5fdf3a3 100644 --- a/scripts/seed.py +++ b/scripts/seed.py @@ -205,12 +205,9 @@ def seed_model(model_version, session) -> TaxBenefitModelVersion: f" [green]✓[/green] Added {len(model_version.variables)} variables" ) - # Add parameters (only user-facing ones: those with labels or gov.* params) - parameters_to_add = [p for p in model_version.parameters if p.label is not None] - console.print( - f" Filtered to {len(parameters_to_add)} user-facing parameters " - f"(from {len(model_version.parameters)} total)" - ) + # Add all parameters - users need to search by name to find policy levers + parameters_to_add = model_version.parameters + console.print(f" Adding all {len(parameters_to_add)} parameters") with logfire.span("add_parameters", count=len(parameters_to_add)): # Build list of parameter dicts for bulk insert diff --git a/src/policyengine_api/api/parameters.py b/src/policyengine_api/api/parameters.py index 55c90f4..3bb34bc 100644 --- a/src/policyengine_api/api/parameters.py +++ b/src/policyengine_api/api/parameters.py @@ -9,7 +9,6 @@ from uuid import UUID from fastapi import APIRouter, Depends, HTTPException -from fastapi_cache.decorator import cache from sqlmodel import Session, select from policyengine_api.models import Parameter, ParameterRead @@ -19,7 +18,6 @@ @router.get("/", response_model=List[ParameterRead]) -@cache(expire=3600) # Cache for 1 hour def list_parameters( skip: int = 0, limit: int = 100, From 112125705af7b421e75b3c715700b41b6e18b7b5 Mon Sep 17 00:00:00 2001 From: policyengine-bot Date: Thu, 18 Dec 2025 14:04:10 +0000 Subject: [PATCH 2/2] Revert seeding filter to only include labeled parameters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As requested by @nikhilwoodruff, revert the seeding filter change while keeping the cache fix for the /parameters endpoint. The filter was deliberately designed to only include user-facing parameters (those with labels), not all parameters. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- scripts/seed.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/seed.py b/scripts/seed.py index 5fdf3a3..6974ed2 100644 --- a/scripts/seed.py +++ b/scripts/seed.py @@ -205,9 +205,12 @@ def seed_model(model_version, session) -> TaxBenefitModelVersion: f" [green]✓[/green] Added {len(model_version.variables)} variables" ) - # Add all parameters - users need to search by name to find policy levers - parameters_to_add = model_version.parameters - console.print(f" Adding all {len(parameters_to_add)} parameters") + # Add parameters (only user-facing ones: those with labels or gov.* params) + parameters_to_add = [p for p in model_version.parameters if p.label is not None] + console.print( + f" Filtered to {len(parameters_to_add)} user-facing parameters " + f"(from {len(model_version.parameters)} total)" + ) with logfire.span("add_parameters", count=len(parameters_to_add)): # Build list of parameter dicts for bulk insert