test(demo): QA step 4 견고화 및 multi-turn 확장 - #105
Merged
Conversation
Solar/Pi가 잡담("안녕" 등) 질문에 free-form 자연어를 반환할 때
parseModeResult가 JSON.parse 실패로 throw하던 문제를 수정한다.
docs/07: "QA 출력: JSON 강제 없음" 계약에 따라 qa mode에서
JSON 파싱 실패 시 원문을 answerMarkdown으로 wrapping해 반환한다.
report/checklist_explanation은 기존 엄격한 JSON 계약을 유지한다.
- agent/src/agentModeParser.ts: qa 조기 분기 + plain-text fallback
- agent/test/agentServiceModeContract.test.mjs: 테스트를 올바른 계약 반영으로 갱신
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- /qa navigate 후 page.reload()로 DemoSessionProvider 재마운트 → qaStockOptions refetch - select options waitForFunction으로 명시적 대기 후 삼성전자 선택 - input selector를 placeholder 의존에서 마지막 text input 방식으로 교체 - assistant 응답 도착 시그널을 body.innerText 길이 기반으로 강화 (90s timeout) - 2턴째 질문(단기 위험 신호) 추가 및 응답 대기 적용 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
agent 계약(docs/07-pi-agent-contracts.md)은 conversationKey를
\"${user_id}::${corp_code}\" 형식의 string으로 정의하지만,
backend가 dict를 전달해 agentHttpCore.ts 검증에서 에러 발생.
qa_routes.py: conversation_key 생성을 f-string으로 변경
agent_qa_runtime.py: 파라미터 타입 annotation을 str | None으로 수정
test_qa_routes_prior_turns.py: 테스트 assertion을 string 형식에 맞게 갱신
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
type+delay로 React onChange 트리거, placeholder 정확매칭으로 locator 안정화
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/qanavigate 후page.reload()+waitForLoadState('networkidle')로 DemoSessionProvider 재마운트 →qaStockOptionsrefetch 보장 (A)waitForFunction으로 select options 채워질 때까지 명시적 대기 후 삼성전자 선택 (corp_code 기반, fallback 유지) (B/C)body.innerText길이 기반으로 강화 (90s timeout) (E)Test plan
pnpm exec tsc --noEmit— TypeScript no errorspnpm exec playwright test e2e/demo.spec.ts --headed로 수동 트리거🤖 Generated with Claude Code