fix: auto-naming for 24h time format (#1374)
* fix: auto-naming for 24h time format needs_auto_name() required AM/PM suffix for default frontend-generated names like 'deepseek-v4-flash 17:46:02'. Frontend uses toLocaleTimeString() which outputs 24h format in most locales — so the regex never matched and auto-naming silently skipped. Made AM/PM optional and added re.IGNORECASE for 'am'/'pm'. * test: add regression tests for needs_auto_name (24h + 12h + custom) --------- Co-authored-by: Calculator Dev <dev@calculator.local>
This commit is contained in:
committed by
GitHub
parent
41d2767b30
commit
ec3b8b42ae
@@ -121,7 +121,7 @@ def needs_auto_name(name: str) -> bool:
|
||||
if name.startswith("Chat:") or name == "Chat":
|
||||
return True
|
||||
# Default frontend name: "modelname HH:MM:SS AM/PM"
|
||||
if re.match(r'^.+ \d{1,2}:\d{2}:\d{2}\s*(AM|PM)$', name):
|
||||
if re.match(r"^.+ \d{1,2}:\d{2}:\d{2}(\s*(AM|PM))?$", name, re.IGNORECASE):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
29
tests/test_chat_helpers.py
Normal file
29
tests/test_chat_helpers.py
Normal file
@@ -0,0 +1,29 @@
|
||||
import pytest
|
||||
from routes.chat_helpers import needs_auto_name
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name,expected", [
|
||||
# 24h format (the bug this PR fixes)
|
||||
("deepseek-v4-flash 14:05:33", True),
|
||||
("qwq 17:46:02", True),
|
||||
("gemma3 23:59:59", True),
|
||||
("claude-sonnet 4 0:00:00", True),
|
||||
|
||||
# 12h format (was already working)
|
||||
("deepseek-v4-flash 2:05:33 PM", True),
|
||||
("qwq 06:46:02 AM", True),
|
||||
("claude-sonnet-4 8:05:17 am", True),
|
||||
|
||||
# empty / default
|
||||
("", True),
|
||||
(" ", False),
|
||||
("Chat: something", True),
|
||||
|
||||
# custom titles – should NOT trigger auto-naming
|
||||
("custom title", False),
|
||||
("CW Decoder for STM32", False),
|
||||
("my chat about python", False),
|
||||
("Fix the login bug", False),
|
||||
])
|
||||
def test_needs_auto_name(name, expected):
|
||||
assert needs_auto_name(name) == expected, f"needs_auto_name({name!r}) should be {expected}"
|
||||
Reference in New Issue
Block a user