a58dbe79f2
- _resolve_project now uses reverse-substring + SequenceMatcher (≥0.55) so partial names like "Famous Supply" match "Famous Supply Co." reliably - create_project runs similar-project checks before the confirmed gate so confirmed=true can't bypass them; threshold lowered to 0.55 to catch abbreviated names - Error messages on project-not-found no longer suggest create_project, directing the model to list_projects first - Tool description updated to explicitly prohibit calling create_project in response to a lookup failure - tasks.py: fire-and-forget embedding update on create/update - briefing_pipeline.py: await is_caldav_configured (was sync call) - notes.py: remove erroneous duplicate count_query filter Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>