fix(hermes): make triage session titles unique
This commit is contained in:
parent
37ac5ff11f
commit
33df446a68
@ -30,14 +30,14 @@ TRIAGE_PARENT_TITLE = "Automated triage"
|
|||||||
TRIAGE_MESSAGE_PREFIX = "A static-analysis finding, not a build failure."
|
TRIAGE_MESSAGE_PREFIX = "A static-analysis finding, not a build failure."
|
||||||
|
|
||||||
|
|
||||||
def _triage_title(message: str) -> str:
|
def _triage_title(message: str, session_id: str) -> str:
|
||||||
"""Create a concise label from Ariadne's stable incident contract."""
|
"""Create a concise label from Ariadne's stable incident contract."""
|
||||||
match = re.search(r"for incident ([^\s]+)\.", message)
|
match = re.search(r"for incident ([^\s]+)\.", message)
|
||||||
if not match:
|
if not match:
|
||||||
return "Automated triage run"
|
return f"Automated triage run · {session_id[-8:]}"
|
||||||
parts = match.group(1).split("/")
|
parts = match.group(1).split("/")
|
||||||
label = " · ".join(parts[1:3]) if len(parts) >= 3 else match.group(1)
|
label = " · ".join(parts[1:3]) if len(parts) >= 3 else match.group(1)
|
||||||
return f"Sonar · {label}"
|
return f"Sonar · {label} · {session_id[-8:]}"
|
||||||
|
|
||||||
|
|
||||||
def migrate_triage_group(connection: sqlite3.Connection) -> int:
|
def migrate_triage_group(connection: sqlite3.Connection) -> int:
|
||||||
@ -75,7 +75,7 @@ def migrate_triage_group(connection: sqlite3.Connection) -> int:
|
|||||||
WHERE id = ?
|
WHERE id = ?
|
||||||
AND parent_session_id IS NULL
|
AND parent_session_id IS NULL
|
||||||
""",
|
""",
|
||||||
(TRIAGE_PARENT, _triage_title(str(message or "")), session_id),
|
(TRIAGE_PARENT, _triage_title(str(message or ""), session_id), session_id),
|
||||||
)
|
)
|
||||||
changed += cursor.rowcount
|
changed += cursor.rowcount
|
||||||
return changed
|
return changed
|
||||||
|
|||||||
@ -96,7 +96,7 @@ RUNS_AFTER = ''' run_id = f"run_{uuid.uuid4().hex}"
|
|||||||
if incident and parent_session_id == default_parent:
|
if incident and parent_session_id == default_parent:
|
||||||
parts = incident.group(1).split("/")
|
parts = incident.group(1).split("/")
|
||||||
label = " · ".join(parts[1:3]) if len(parts) >= 3 else incident.group(1)
|
label = " · ".join(parts[1:3]) if len(parts) >= 3 else incident.group(1)
|
||||||
db.set_session_title(session_id, f"Sonar · {label}")
|
db.set_session_title(session_id, f"Sonar · {label} · {session_id[-8:]}")
|
||||||
|
|
||||||
# Approval queues gate host-side tool execution and must be isolated
|
# Approval queues gate host-side tool execution and must be isolated
|
||||||
'''
|
'''
|
||||||
|
|||||||
@ -1101,7 +1101,10 @@ def test_automated_triage_sessions_are_grouped_without_touching_interactive_runs
|
|||||||
"SELECT parent_session_id FROM sessions WHERE id = 'interactive-run'"
|
"SELECT parent_session_id FROM sessions WHERE id = 'interactive-run'"
|
||||||
).fetchone()
|
).fetchone()
|
||||||
assert parent == (module.TRIAGE_PARENT_TITLE,)
|
assert parent == (module.TRIAGE_PARENT_TITLE,)
|
||||||
assert triage == (module.TRIAGE_PARENT, "Sonar · bstein_home · python:S2208")
|
assert triage == (
|
||||||
|
module.TRIAGE_PARENT,
|
||||||
|
"Sonar · bstein_home · python:S2208 · iage-run",
|
||||||
|
)
|
||||||
assert interactive == (None,)
|
assert interactive == (None,)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user