후속 메시지를 잃지 않기: Claude Code, Codex, OpenCode 세션을 위한 지속 큐와 인터럽트

세션이 바쁘거나 오프라인일 때도 메시지를 잃거나 메모에 두 번째 "그림자 계획"을 만들지 않고 휴대폰에서 후속 메시지를 보내는 실용적인 방법.

기준 버전
CLI
0.2.17
프리뷰 ref
a2c45c8

세션을 실수로 탈선시키는 흔한 원인은 잘못된 지시를 보내는 게 아닙니다.

올바른 지시를 잘못된 때에 보내는 것입니다.

세션이 작업 중(또는 오프라인/재개 중)일 때 휴대폰에서 후속 메시지를 보내면, 세 가지 중 하나가 일어납니다.

  • 메시지가 허공으로 사라진다
  • 예상보다 늦게 도착한다(세션이 이미 여러 결정을 내린 뒤)
  • 믿을 수 없어서 메모에 두 번째 "그림자 계획"을 쓰고, 이제 조율 문제가 생긴다

원하는 건 신뢰할 수 있고 예측 가능한 동작입니다.

후속 메시지를 안전하게 큐에 넣고, 마음이 바뀌면 편집하고, 정말 "인터럽트"하고 싶을 때만 지금 보내고 싶다.

요약

  1. 무엇이 필요한지 정합니다:
    • Pending until ready(순서가 있고 편집 가능한 후속 메시지), 또는
    • Interrupt & send now(현재 턴을 멈춤)
  2. 지속 큐가 없다면 안전한 대안은 후속 메시지를 다른 곳에 적어 두고, 세션이 준비되었다고 확신할 때만 보내는 것입니다.
  3. Happier는 이를 직접 해결하는 한 가지 방법으로, 세션과 함께 저장되는 pending 큐(큐 추가/편집/순서 변경/삭제/지금 보내기)가 있습니다.

문제 (쉽게 말하면)

노트북 앞에 없을 때 작업을 진행시키는 수단은 후속 메시지입니다.

하지만 대부분의 도구는 "메시지 보내기"를 받는 쪽이 항상 준비된 것처럼 다룹니다.

실제로 받는 쪽은 자주 이런 상태입니다.

  • 턴 진행 중
  • 연결 끊김
  • 로컬 제어와 원격 제어 사이 전환 중
  • 비활성 상태에서 재개 중

그래서 타이밍을 명시적으로 다루는 워크플로가 필요합니다.

일반적인 방법과 트레이드오프

  • 그냥 보내고 기도하기: 의외로 깨지기 쉽습니다.
  • 메모/Slack에 적고 나중에 보내기를 기억하기: 되지만 두 번째 큐를 관리하게 됩니다.
  • 머신에 SSH로 들어가 직접 개입하기: 강력하지만 휴대폰으로 본격적인 작업을 하게 됩니다.

이 문제의 산업용 버전은 지속 워크플로 엔진(Temporal)이나, 지속 스레드와 인터럽트를 갖춘 에이전트 오케스트레이션 프레임워크(LangGraph)로 해결합니다.

Happier는 코딩 에이전트를 크로스 디바이스로 실행하고 오케스트레이션하는 오픈 소스 앱이며, 그 큐는 일상에서 쓰는 실용판입니다.

Happier가 처음이라면 (무엇이고 어디서 받는지)

Happier를 처음 본다면: Claude Code, Codex, OpenCode 같은 세션을 위한 오픈 소스 컴패니언 앱(모바일/웹/데스크톱)입니다.

워크플로: 세션은 신뢰하는 머신에서 실행되고, Happier는 휴대폰에서 후속 메시지를 보내는 곳이며, 세션이 준비되지 않았을 때는 진짜 큐가 있습니다.

설정하기:

혼란의 90%를 해결하는 두 가지 모드

모드 A: Pending until ready

이럴 때:

  • 생각이 여러 개다
  • 순서를 지키고 싶다
  • 실행 전에 편집하고 싶다

모드 B: Interrupt & send now

이럴 때:

  • "하던 걸 멈추고 이것부터 답해"
  • 안전을 위한 개입
  • 시간이 중요한 수정

함정은 모드 B를 기본값으로 쓰는 것입니다. 불필요한 흔들림이 생깁니다.

Happier 워크플로 (pending 큐)

Happier의 pending 큐는 중요한 점을 명시적으로 다룹니다. 세션이 준비되지 않았을 수 있다는 점입니다.

pending 메시지는:

  • 순서가 있다
  • 편집할 수 있다
  • 세션과 함께 저장된다

표시되는 곳:

  • 세션 목록의 pending 배지
  • 세션 안의 Pending (N) 표시

할 수 있는 동작:

  • 위/아래로 이동
  • 편집
  • 삭제
  • 지금 보내기

로컬↔원격 전환처럼 큐를 자동으로 처리하면 안 되는 경우를 위한 Discarded messages 영역도 있습니다.

스티어링 및 attach/로컬 제어와의 관계

스티어링과 pending 큐는 서로 다른 문제를 해결합니다.

  • 스티어링은 "진행 중인 턴에 끼워 넣기"용(지원되는 경우)
  • pending 큐는 "실행 전, 순서 있고 편집 가능한 메시지"용

attach/로컬 제어 흐름 중에는 앱에서 보낸 메시지가 세션이 원격 처리를 재개할 준비가 될 때까지 pending 상태로 있는 것이 정상입니다.

문제 해결

후속 메시지가 실행되지 않음

확인할 것:

  • 세션이 오프라인/재개 중인가?
  • 메시지가 pending에 머물러 있는가?
  • 지금 로컬 제어(attach) 상태인가?

자꾸 실수로 세션을 인터럽트함

기본 Message sending 설정을 큐 우선 모드로 바꾸고, 지금 보내기는 의도할 때만 쓰세요.

관련 가이드

mobilemessagesqueueclaudecodexopencodeworkflows
마지막 업데이트: 2026-10-26