Frau/Sohn mentions in the user line must still reach the popup if OpenRouter only tags the food reading or misses the person.
Co-authored-by: Cursor <cursoragent@cursor.com>
Senses grow from confirmations instead of a word list, so a later local pipeline can decide homonyms on a short passage. Default stays semantic. Local detect waits longer, and the reverse-proxy timeout is documented so Dev does not 504 first.
Co-authored-by: Cursor <cursoragent@cursor.com>
Saved presets keep URL and model per stage so detect can switch to Ollama without re-entering settings or sending plaintext to OpenRouter.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep KANSHO_ENV=production and require an explicit operator flag instead of treating Prod as Development. Promote to Prod only via merge commit on main.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Introduced a new set of non-identity entity types (FOOD, DISH, MEAL, CUISINE, FOODSTUFF, INGREDIENT) that are omitted from detection results without causing contract violations.
- Updated the `DetectionStats` class to track omitted non-identity types.
- Modified validation logic to ensure that food-related mentions are not treated as identity types, preserving the context of mentions as either PERSON or omitted.
- Enhanced tests to verify the correct handling of food homonyms and ensure that invalid entity types are recorded appropriately without causing errors.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use host ports 3006/8005 and 3096/8096 so Kansho does not collide with Bookstack on 3005 or the sister products.
Co-authored-by: Cursor <cursoragent@cursor.com>
USB and NAS are unavailable on this machine; the zip is the only path for personal SQLite and media. Provider keys stay out of git.
Co-authored-by: Cursor <cursoragent@cursor.com>
SQLite restore stays wave 1; Docker and Postgres stay wave 2. Session bootstrap for the switch is environment_handover.md plus the laptop and home work orders.
Co-authored-by: Cursor <cursoragent@cursor.com>
A 400-character entry prefix plus plan regex could reopen a completed yesterday as if it were still pending. Openings now take plans only from yesterday's user dialogue, never from saved entries, and skip space recency in the first call.
Co-authored-by: Cursor <cursoragent@cursor.com>