innercontext/backend
Piotr Oleszczyk 3ef1f249b6 fix(api): handle dict vs object in build_product_context_summary
When products are loaded from PostgreSQL, JSON columns (effect_profile,
context_rules) are deserialized as plain dicts, not Pydantic models.

The build_product_context_summary function was accessing these fields
as object attributes (.safe_with_compromised_barrier) which caused:
AttributeError: 'dict' object has no attribute 'safe_with_compromised_barrier'

Fix: Add isinstance(dict) checks like build_product_context_detailed already does.
Handle both dict (from DB) and object (from Pydantic) cases.

Traceback from production:
  File "llm_context.py", line 91, in build_product_context_summary
    if product.context_rules.safe_with_compromised_barrier:
  AttributeError: 'dict' object has no attribute...
2026-03-06 10:34:51 +01:00
..
alembic feat(api): implement Phase 2 token optimization and reasoning capture 2026-03-06 10:26:29 +01:00
innercontext fix(api): handle dict vs object in build_product_context_summary 2026-03-06 10:34:51 +01:00
tests style: apply black and isort formatting 2026-03-06 10:17:00 +01:00
.env.example fix: load .env via python-dotenv; SQLite default for local dev 2026-02-26 20:51:13 +01:00
.python-version Initial commit: backend API, data models, and test suite 2026-02-26 15:10:24 +01:00
alembic.ini feat(backend): add Alembic migrations 2026-02-28 20:14:57 +01:00
db.py Initial commit: backend API, data models, and test suite 2026-02-26 15:10:24 +01:00
main.py style: apply black and isort formatting 2026-03-06 10:17:00 +01:00
pyproject.toml chore(backend): enable psycopg binary dependency 2026-03-04 21:46:38 +01:00
README.md Initial commit: backend API, data models, and test suite 2026-02-26 15:10:24 +01:00
skincare.yaml Initial commit: backend API, data models, and test suite 2026-02-26 15:10:24 +01:00
test_query.py refactor(llm): optimize Gemini config profiles for extraction and creativity 2026-03-03 21:24:23 +01:00
uv.lock chore(backend): enable psycopg binary dependency 2026-03-04 21:46:38 +01:00

See the root README for setup and usage instructions.