fix: fuzzy project resolution and guard against accidental project creation
- _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>
This commit is contained in:
@@ -80,7 +80,7 @@ async def _gather_internal(user_id: int) -> dict:
|
||||
# Calendar events today
|
||||
calendar_events = []
|
||||
try:
|
||||
if is_caldav_configured(user_id):
|
||||
if await is_caldav_configured(user_id):
|
||||
events = await list_events(user_id, start=today, end=today)
|
||||
calendar_events = [
|
||||
f"{e.get('summary', 'Event')} at {e.get('dtstart', 'unknown time')}"
|
||||
|
||||
Reference in New Issue
Block a user