Files
gitea-agent-testbed/docs/runtime-flow.md
T
code-agent 52dd589f8c code-agent: implement issue 4
Approval-Correlation: 0543bb321a84cb936bc0ac4988615840
Plan-SHA256: 437a85f68d151ed4db780511812834041cfec5e7cf021fb77e238d5a6196e6fb
Base-SHA: 256be64ac7
2000-01-01 00:00:00 +00:00

1.7 KiB

런타임 흐름

정상 입력 시나리오

  1. 애플리케이션이 #user-input에 포커스를 둔다.
  2. 사용자가 입력하고 Enter를 누른다.
  3. Input.Submitted 이벤트에서 입력값을 strip()한다.
  4. 입력창 값을 즉시 빈 문자열로 초기화한다.
  5. trim 결과가 유효하면 사용자 메시지를 세션 상태에 기록한다.
  6. random.choice(RESPONSE_MESSAGES)가 고정 응답 하나를 선택한다.
  7. 선택 응답을 세션 상태에 기록한다.
  8. 대화 영역에 사용자 메시지 Label을 추가한다.
  9. 사용자 메시지 바로 뒤에 응답 Label을 추가한다.
  10. 대화 영역을 마지막 항목으로 스크롤한다.

여러 번 제출하면 각 사용자 메시지와 응답 쌍이 제출 순서대로 누적된다.

공백 입력 시나리오

  1. 사용자가 공백만 포함한 값을 제출한다.
  2. 입력값을 strip()한다.
  3. 결과가 빈 문자열임을 확인한다.
  4. 입력창은 비우되 상태, 난수 선택 결과 및 대화 영역은 변경하지 않는다.

종료 시나리오

  • Escape를 누르면 기존 종료 바인딩이 실행된다.
  • Ctrl+Q를 누르면 기존 종료 바인딩이 실행된다.
  • 두 동작 모두 quit 액션을 통해 애플리케이션 종료를 요청한다.

검증 시나리오

자동 테스트는 결정 가능한 random.choice 결과를 사용해 다음을 확인한다.

  • 입력 trim 결과가 사용자 메시지로 저장되고 표시되는지
  • 사용자 메시지 다음에 응답이 표시되는지
  • 공백 입력에서 random.choice가 호출되지 않는지
  • 입력창이 제출 후 비워지는지
  • 기존 종료 동작이 유지되는지