mirror of
https://github.com/smkrv/ha-text-ai.git
synced 2026-07-21 22:54:00 +08:00
Security: - Add SSRF protection via HTTPS-only endpoint validation with private IP blocking - Mask API keys in all log output via safe_log_data() - Sanitize error responses to prevent internal detail leakage - Remove API key pre-population in config flow forms - Harden service schemas with input length limits and type coercion Bug fixes: - Fix temperature=0 rejected due to Python falsy value bug (0 or default) - Fix fire-and-forget race condition in coordinator init (5 async_create_task → awaited async_initialize) - Fix rate limit state not resetting after successful API calls - Fix ConnectionError incorrectly setting is_rate_limited=True - Fix _rotate_history calling async method via sync executor - Fix shutil.move blocking event loop in history migration - Fix async_shutdown removing wrong key from hass.data - Replace os.rename with shutil.move for cross-device safety Improvements: - Add asyncio.Lock for request serialization - Replace async_timeout with stdlib asyncio.timeout (Python 3.12+) - Use SupportsResponse.OPTIONAL for ask_question and get_history services - Use Platform.SENSOR enum instead of string literal - Add strings.json for HA translation framework - Update DEFAULT_ANTHROPIC_MODEL to claude-sonnet-4-6 - Retry only transient errors (429, timeout) in API client Cleanup: - Remove dead code: unused schemas, imports, sync_write_history, check_memory, check_connection - Remove icon copying code from async_setup - Remove unused dependencies from manifest (anthropic, openai, certifi, async-timeout) - Remove empty manifest arrays (bluetooth, mqtt, ssdp, usb, zeroconf) - Fix duplicate JSON keys in 5 translation files - Fix Serbian translation: "Прекључено" → "Искључено" for disconnected state Bump version to 2.4.0
20 lines
519 B
JSON
20 lines
519 B
JSON
{
|
|
"domain": "ha_text_ai",
|
|
"name": "HA Text AI",
|
|
"after_dependencies": ["http"],
|
|
"codeowners": ["@smkrv"],
|
|
"config_flow": true,
|
|
"dependencies": [],
|
|
"documentation": "https://github.com/smkrv/ha-text-ai",
|
|
"integration_type": "service",
|
|
"iot_class": "cloud_polling",
|
|
"issue_tracker": "https://github.com/smkrv/ha-text-ai/issues",
|
|
"loggers": ["custom_components.ha_text_ai"],
|
|
"requirements": [
|
|
"aiofiles>=23.0.0",
|
|
"aiohttp>=3.8.0"
|
|
],
|
|
"single_config_entry": false,
|
|
"version": "2.4.0"
|
|
}
|