Files
gitea-agent-testbed/docs/project-structure.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.5 KiB

프로젝트 구조

애플리케이션 구현

  • src/chat_tui/app.py
    • RESPONSE_MESSAGES: 수정하지 않는 고정 응답 목록
    • ChatApp.on_input_submitted: 입력 trim, 유효성 판정, 난수 응답 선택, 상태 갱신 및 대화 항목 표시
    • ChatApp.submitted_inputs: 정규화된 사용자 메시지 세션 상태
    • ChatApp.selected_responses: 메시지별 선택 응답 세션 상태
    • 기존 Textual 위젯 구성과 Escape, Ctrl+Q 종료 바인딩

응답 기능은 별도 서비스나 외부 모듈을 만들지 않고 현재 단일 TUI 애플리케이션의 제출 이벤트 처리에 배치한다. 난수 선택은 표준 라이브러리 random.choice를 직접 사용한다.

테스트

  • tests/test_app.py
    • 사용자 메시지와 응답의 제출 순서 및 화면 순서
    • random.choice 결과 제어와 호출 인자
    • trim된 입력 저장
    • 공백 입력 무시
    • 입력창 초기화
    • Escape 종료 요청

테스트는 Textual의 run_test()를 사용해 실제 위젯 트리와 이벤트 흐름을 검증하고, 난수 선택만 unittest.mock.patch로 제어한다.

문서

  • docs/requirements/req-001_project-scaffold.md: 기능 범위와 수용 기준
  • docs/data-model.md: 응답 목록과 세션 상태 모델
  • docs/interface-contract.md: 제출 이벤트와 화면 표시 계약
  • docs/project-structure.md: 기능 구성 요소와 책임
  • docs/runtime-flow.md: 실행 시나리오와 처리 순서