feat: enhance expert invitation handling with case-insensitive matching and session management

This commit is contained in:
X-iZhang
2026-08-07 16:42:40 +01:00
committed by Xi Zhang
parent ab1a6b0062
commit aff63ccd65
10 changed files with 159 additions and 23 deletions
+11
View File
@@ -170,6 +170,17 @@ class TestExpertToggle:
assert ctx.channel_runtime.active_teams == ["idea-brainstorm"]
assert any("Invited expert: idea-brainstorm" in text for text, _ in ui.lines)
async def test_invite_matches_name_case_insensitively(self):
"""Execute honours the same case-insensitive match as completion."""
ctx, ui = _make_ctx()
with patch(
"EvoScientist.tools.skills_manager.list_expert_skills",
return_value=[_FakeSkillInfo(name="idea-brainstorm")],
):
await ExpertCommand().execute(ctx, args=["Idea-Brainstorm"])
assert ctx.channel_runtime.active_teams == ["idea-brainstorm"]
assert any("Invited expert: idea-brainstorm" in text for text, _ in ui.lines)
async def test_toggle_dismisses_when_already_invited(self):
ctx, ui = _make_ctx(active_teams=["idea-brainstorm"])
with patch(