Commit Graph
20 Commits
Author SHA1 Message Date
Afonso Coutinho 1a3179c0a2 fix: shared MCP truncate() crashes on None/non-string tool output (#1605) 2026-06-03 08:35:54 +09:00
Afonso Coutinho 158ebb6984 fix: _sanitize_export_filename crashes on a non-string session name (#1607) 2026-06-03 08:35:47 +09:00
Afonso Coutinho 7ad44a7731 fix: validate_caldav_url crashes with TypeError on a non-string URL (#1608) 2026-06-03 08:35:16 +09:00
Afonso Coutinho 6d2cb99f6f fix: mcp CLI _serialize crashes when stored env JSON is a list (#1609) 2026-06-03 08:35:09 +09:00
Afonso Coutinho 7f88baee9a fix: APIKeyManager.load crashes app startup on a corrupt/wrong-shape api_keys.json (#1565) 2026-06-03 08:11:37 +09:00
Afonso Coutinho c495ec31f6 fix: rag add_directory records the dir so list/remove can see it (#1369) 2026-06-03 03:37:33 +09:00
Afonso Coutinho 48578fd05c fix: systemd service should serve on port 7000 to match Docker/setup/README (#1297) 2026-06-03 02:04:37 +09:00
Afonso Coutinho 094f8198e5 fix: rag remove_directory expands ~ so it matches the indexed path (#1305) 2026-06-03 02:01:13 +09:00
Afonso Coutinho ff2372f0f7 fix: agent_input_token_budget wrongly treated as a secret and unsettable from chat (#1294)
* fix: don't classify agent_input_token_budget as a secret (token must be a suffix)

* test: agent_input_token_budget is settable from chat
2026-06-03 01:53:47 +09:00
Afonso Coutinho b281e0a681 fix: manage_tasks create handles an explicit null prompt without crashing (#1290) 2026-06-03 01:40:21 +09:00
Afonso Coutinho e213aba2df fix: claim_ownerless actually claims ownerless documents (was a no-op self-update) (#1288) 2026-06-03 01:38:38 +09:00
Afonso Coutinho 62d4ddf9be fix: list_emails honors unresponded_only without requiring unread_only (#1287) 2026-06-03 01:35:00 +09:00
Afonso Coutinho a571d1a834 fix: 2FA bypassed when enabled but TOTP secret is missing (fail-open) (#1286)
* fix: fail closed when 2FA is enabled but the TOTP secret is missing

* test: totp_verify fails closed when secret missing, passes when 2FA off
2026-06-03 01:26:47 +09:00
Afonso Coutinho 4751e14e0e fix: merging consecutive user messages corrupts multimodal (image) content (#1277)
* fix: preserve multimodal content blocks when merging consecutive user messages

* test: consecutive user-message merge keeps multimodal image blocks
2026-06-03 01:21:57 +09:00
Afonso Coutinho 88c45dc197 fix: owner-less document query passes bare False to SQLAlchemy filter() (#1281)
* fix: use SQL false() for owner-less document query (filter(False) raises in SQLAlchemy 2.x)

* test: owner-less document query doesn't pass a bare False to filter
2026-06-03 01:20:43 +09:00
Afonso Coutinho 6854bc1a64 fix: uploaded files with no extension become permanently unresolvable (#1275)
* fix: accept extensionless upload ids so files like Dockerfile resolve

* test: upload id validation accepts extensionless ids
2026-06-03 01:16:30 +09:00
Afonso Coutinho e863f21d98 fix: research query misclassifies 'whatsapp'/'however' as questions (#1247)
* fix: detect question words as whole words, not prefixes

* fix: same question-word prefix bug in the services search copy

* test: question-word detection rejects prefix lookalikes
2026-06-03 01:10:06 +09:00
Afonso Coutinho 86bc5d698b fix: calendar check-in digest drops events 7-8 days out (#1249)
* fix: close 1-day gap in calendar digest windows (events ~7-8 days out)

* test: calendar digest windows are contiguous and cover 7-8 day events
2026-06-03 01:03:58 +09:00
Afonso Coutinho 336a468035 fix: Anthropic responses with multiple text blocks lose all but the first (#1255)
* fix: concatenate all Anthropic text blocks, not just the first

* test: Anthropic response parsing concatenates text blocks
2026-06-03 00:57:20 +09:00
Afonso Coutinho a266935591 fix: email pre-retrieval ignores contacts (reads non-existent email/phone keys) (#1241)
* fix: match known email senders against the contact 'emails' list

* fix: build contact-match snippets from emails/phones lists
2026-06-03 00:39:31 +09:00