Skip to content

[Phase 2] agentdesk web 세션 인터랙션 — 메시지 주입 + 컬러/라이브 터미널 (deferred, Phase 1 머지 후) #827

Description

@kunkunGames

Problem

  • Phase 1은 read + interrupt만 제공. 양방향 인터랙션(메시지 전송)과 CLI 충실도(컬러/진짜 라이브 스트림)는 invasive해 분리됨. 세션별 write 인가가 양쪽 코드 모두 부재.

Desired Outcome

  • 세션으로 메시지 전송(Send 활성화), CLI 컬러, 진짜 라이브 터미널(xterm), 세션별 write 인가 모델까지 확장.

Scope

  • P1 POST /api/sessions/{key}/message → session_key→ChannelId 해석 + Intervention enqueue(turn_orchestrator.rs:1256, Intervention+QueuePersistenceContext = net-new orchestration, 유일 invasive 조각), readiness gating(ready_for_input/composer-ready) 준수, raw send_keys 금지 → v1 disabled Send 박스 활성화
  • P1 CLI 컬러: tmux-output에 escapes 쿼리파라미터 additive(capture_pane_with_escapes 스왑, tmux.rs) + 클라 ANSI→HTML
  • P2 진짜 라이브 터미널: xterm.js + 증분 PTY 바이트스트림 + raw key 입력(jinn 패리티, 최소변경 봉투 벗어남, 신규 의존성)
  • P2 세션별 write 인가 모델 설계(세션별 소유권 — 상속 아닌 설계)
  • P2 토큰델타 스트리밍 + claude 외 멀티프로바이더(codex_tui 등) 커버리지
  • SoT PRD: ~/PRD/repos/agentdesk/session-chat-cli-view/ (P1/P2 TASK)

Non-goals

  • Phase 1 머지 전 착수 금지(의존성)
  • readiness gating 우회한 raw send_keys 금지

Acceptance Criteria

  • Send가 readiness gating을 거쳐 라이브 세션에 메시지 주입, raw send_keys 미사용
  • 세션별 write 인가 모델이 설계·적용되어 교차 세션 탈취 방지
  • CLI 컬러/라이브 스트림이 동작(escapes 또는 xterm 경로)

Verification

  • message 주입 readiness 레이스 E2E(턴 누락·TUI 깨짐 없음)
  • 인가 모델 테스트(타 세션 write 거부)
  • blockers/open-questions 선확인: session_key→ChannelId 유효성, DispatchedSession/SessionPanel session_key 보유, Postgres(session_transcripts) 보장, /api/docs 라우트 카탈로그

Assignment Hint

  • coder was explicitly provided in the request.

Related Cards / Context

  • None specified.

Parent

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions