| US1: Streaming Chat |
AssistantChatPanel |
AgentChat.Model |
FX_AgentChat.Model.SendMessage.Valid |
submit("/chat") |
T015, T017 |
T018, T019 |
Test.AgentChat.Model |
| US1: Cancel |
AssistantChatPanel |
AgentChat.Model |
FX_AgentChat.Model.CancelGeneration |
submission.cancel() |
— |
T020 |
Test.AgentChat.Model |
| US1: Reconnect |
AssistantChatPanel |
AgentChat.Model |
— |
Client.connect() |
— |
T022 |
Test.AgentChat.Model |
| US2: Tool Selection |
/agent |
AgentChat.Tools |
— |
FastAPI REST via native @tool |
T026, T028, T097 |
T031 |
Test.AgentChat.Tools |
| US2: Tool Context Budget |
/agent |
AgentChat.Tools |
— |
Hybrid get_tools_for_query() before create_agent() |
T098, T099, T105 |
— |
Test.AgentChat.Tools, Test.IntentKeyword.Edges |
| US2: HITL Confirm |
/agent |
AgentChat.Model |
FX_AgentChat.Model.ResumeConfirm |
submit("/chat",...,[convId,"confirm"]) |
T029, T100 |
T031 |
Test.AgentChat.Model |
| US2: HITL Deny |
/agent |
AgentChat.Model |
FX_AgentChat.Model.ResumeDeny |
submit("/chat",...,[convId,"deny"]) |
T029, T100 |
T031 |
Test.AgentChat.Model |
| US2: Negation Guard |
/agent |
AgentChat.ToolResolver |
— |
fast_confirmation_tool() regex pre-check |
T104 |
— |
Test.IntentKeyword.Edges |
| US3: Tool Visibility |
AssistantChatPanel |
AgentChat.Model |
— |
— |
— |
T040, T041 |
Test.AgentChat.ToolCallCard |
| US4: Context |
/agent |
AgentChat.LangGraph |
— |
thread_id=conversation_id + PostgreSQL persistence/checkpoints |
T045 |
— |
Test.AgentChat.LangGraph |
| US5: List Conversations |
ConversationList |
AgentChat.Model |
FX_AgentChat.Conversations.ListValid |
GET /api/assistant/conversations |
T052, T053 |
T059 |
Test.AgentChat.Api |
| US5: List Empty |
ConversationList |
AgentChat.Model |
FX_AgentChat.Conversations.ListEmpty |
GET /api/assistant/conversations |
T052 |
T059 |
Test.AgentChat.Api |
| US5: Load History |
AssistantChatPanel |
AgentChat.Model |
FX_AgentChat.History.Valid |
GET /api/assistant/history |
T054 |
T019 |
Test.AgentChat.Api |
| US5: Delete/Archive |
ConversationList |
AgentChat.Model |
FX_AgentChat.Delete.Valid |
DELETE /api/assistant/conversations/{id} |
T055 |
T058 |
Test.AgentChat.Api |
| US5: Delete Not Owner |
ConversationList |
— |
FX_AgentChat.Delete.NotOwner |
DELETE /api/assistant/conversations/{id} |
T055 |
— |
Test.AgentChat.Api |
| US6: File Upload |
AssistantChatPanel |
AgentChat.Model |
FX_AgentChat.Document.ParsePdf.Valid |
submit("/chat", {text, files}) |
T065, T066 |
T068, T069 |
Test.AgentChat.Document |
| US6: PDF Encrypted |
— |
AgentChat.Document |
FX_AgentChat.Document.ParsePdf.Encrypted |
— |
T065 |
— |
Test.AgentChat.Document |
| US6: XLSX Password |
— |
AgentChat.Document |
FX_AgentChat.Document.ParseXlsx.PasswordProtected |
— |
T065 |
— |
Test.AgentChat.Document |
| —: Debug Info |
/agent |
AgentChat.Model |
— |
UI-derived state |
T101 |
T073 |
Browser snapshot |
| —: DEV Mode Transport |
/agent |
AgentChat.GradioApp |
— |
/api/agent/gradio same-origin proxy |
T102 |
T073 |
Browser snapshot + run tests |
| —: Service Auth |
— |
— |
FX_AgentChat.ServiceToken.Valid |
POST /api/auth/service-token |
T080 |
— |
Test.AgentChat.Api |
| —: Rejected Paths |
— |
AgentChat.Model |
FX_AgentChat.Model.RejectedPath |
— |
— |
— |
Test.AgentChat.Model.RejectedPaths |