[English](../../../releases/v0.1.50.md) | [한국어](./v0.1.50.md)

# clisbot v0.1.50

Released: 2026-04-28

`v0.1.50`는 `v0.1.43` 이후의 공개 릴리스입니다. `v0.1.44`는 내부 pre-release branch로 유지되었고 공개 update target으로 배포되지는 않았습니다.

## 요약

`clisbot`은 이제 실제 Slack / Telegram 업무에서 더 안전하고 실용적입니다. 공유 대화 공간 접근 규칙이 더 분명해졌고, 오래된 설치본은 직접 업데이트할 수 있으며, 긴 coding session은 실제 상태에 더 가깝게 복구되고, queued follow-up work는 정식 기능이 되었고, Telegram media와 더 풍부한 발신자 / 채팅 맥락 덕분에 일상적 채팅도 더 쉬워졌습니다.

## 하이라이트

- shared bot을 실제 group에 노출하기가 더 안전해졌습니다. 대화 공간 진입 허용과 sender policy가 분리됩니다.
- `0.1.50` 이전 설치본도 direct update가 가능합니다. clisbot이 compatible config shape를 자동 backup / update합니다.
- 긴 coding 작업 흐름의 운영이 더 차분해졌습니다. delayed trust prompt, 애매한 `/new` capture path, restart stop-timeout race가 실제 상태를 더 사실대로 반영하도록 처리됩니다.
- chat `/queue`와 `clisbot queues`를 통해 queued follow-up이 정식 제어 수단이 되었습니다.
- scheduled loop가 더 믿을 만해졌습니다. wall-clock schedule은 timezone intent를 보존하고, fresh Codex session은 prompt가 준비될 때까지 기다립니다.
- agent는 이제 더 읽기 쉬운 발신자 / 채팅 맥락을 받습니다.

## Persona별 하이라이트

### Personal User

- restart, trust-prompt, session continuity 동작이 덜 깨지므로 긴 coding session 운영이 쉬워짐
- `/queue`로 현재 run을 지켜보는 동안 다음 prompt를 쌓을 수 있음
- Telegram `voice` / `audio` 파일이 일반 attachment처럼 workspace로 들어감

### Shared Bot Owner

- group safety를 이해하기 쉬워짐: "이 group이 admit되었는가?"와 "그 안의 어떤 사람이 쓸 수 있는가?"가 분리됨
- 기존 설치본도 수동 migration 없이 `0.1.50`로 이동 가능
- topic / thread continuity가 더 엄격해져 잘못된 대화로 stale output이 새는 일이 줄어듦

### Operator

- `clisbot queues`로 in-chat follow-up에만 의존하지 않는 durable queue 제어면 확보
- `/whoami`, `/status`, runner debug 화면이 `sessionId` 상태를 더 정확히 보여 줌
- restart와 runner recovery를 더 믿기 쉬움

## Operator 영향

- 가장 눈에 띄는 이득:
  - 더 안전한 공유 대화 공간 기본값
  - 오래된 설치본에서의 direct upgrade
  - first-class queue control
  - runner continuity와 restart behavior를 더 사실대로 보여 주는 상태 노출
- normal update 기준 manual action은 없음
- 기존 `0.1.43`, 더 오래된 legacy, 내부 `0.1.44` pre-release config는 첫 읽기에서 backup 후 자동 update
- shared Slack / Telegram 대화 공간은 multi-user admission과 sender policy를 분리
- wall-clock loop는 resolved timezone을 고정

## Functional Changes

### Channels

#### Added

- Telegram `voice`, `audio` attachment를 agent workspace로 다운로드
- normal / steering / queue / loop 전반에 compact `Message context` 추가
- Slack / Telegram 발신자 / 채팅 맥락 표시 강화

#### Changed

- readable sender / 채팅 맥락을 위해 Slack manifest와 setup docs의 lookup scope 강화
- delayed work는 delivery 시점에 prompt envelope를 다시 빌드해 stale sender / 채팅 맥락 재사용을 방지

#### Fixed

- Telegram topic routing에서 `message_thread_id`를 더 authoritative하게 사용
- 잘못된 channel interaction으로 runner update / final이 섞이는 문제 수정
- 최신 prompt boundary를 우선하는 streaming extraction으로 오래된 pane content 누수 감소

### Auth

#### Added

- shared group route에서 runner ingress 전 `allowUsers` / `blockUsers` enforce
- `group:*` 기반 wildcard 공유 대화 공간 사용자 제어 추가

#### Changed

- multi-user 대화 공간 admission과 admit된 group 내부 sender policy를 분리
- `disabled`가 정말 완전한 silence임을 명확히 함

### Agents

#### Added

- 현재 routed session에 의도적으로 새 runner conversation을 여는 chat `/new`
- `StoredSessionEntry.queues` 아래 durable session-scoped queue item 추가

#### Fixed

- stale runner reuse와 `/status` 기반 `sessionId` persistence 개선
- ambiguous resume / `/new` failure 시 stored session id 보존

### Runners

#### Changed

- release-owned runner startup default를 persisted config에서 pruning
- Gemini compatibility status를 fully compatible로 정정

#### Fixed

- native runner timer recognition 보강
- stale pane content와 active preview 경계 처리 개선

### Control

#### Added

- `clisbot queues list|status|create|clear`
- `routes clear-policy`
- `clisbot inspect`, `clisbot watch` shorthand
- `runner inspect --latest`, `--index <n>`

#### Changed

- wall-clock loop creation은 timezone / next run / exact retry command를 보여 주고 처음에는 confirm을 요구
- `runner inspect` 기본 `--lines`를 100으로 설정

### Configuration

#### Added

- 오래된 설치본에서 `0.1.50`로 올릴 때 automatic config backup / migration / validation / stage logging
- app-wide / scoped timezone command

#### Changed

- 저장 bot config를 `directMessages`, `groups` + raw id / `*` 구조로 표준화
- CLI route id를 `dm:<id>`, `group:<id>`, `topic:<chatId>:<topicId>`로 표준화

#### Fixed

- legacy exact shared route가 `policy: disabled`로 잘못 normalize되는 문제 수정
- wildcard ordering과 Telegram topic mode persistence 관련 문제 수정

### DX

#### Added

- schedule / reminder 요청 시 agent가 `clisbot loops --help`를 보도록 하는 AI-discoverable guidance

#### Changed

- README, setup docs, release docs, task docs, CLI help를 현재 route id / timezone / Gemini status와 정렬

## Non-Functional Changes

### Stability

#### Changed

- 느린 Slack Socket Mode handshake를 위해 channel startup timeout handling 완화
- calendar loop record에 resolved timezone 고정

#### Fixed

- loop 첫 prompt 제출, startup window, stale-runner resume, cross-topic isolation, preview timer preservation, delayed workspace-trust handling, restart false-failure 등을 개선

### Security

#### Security

- disabled topic message가 parent group route로 fallback하지 못하게 강화
- 민감한 action 전 read-only permission check guidance 강화
- admitted group에서 `blockUsers` precedence 유지

### Architecture Conformance

#### Changed

- topic identity, sender / 채팅 맥락 prompt context, route policy, loop delivery를 channel/configuration/agents 경계와 정렬

## Update Notes

```text
Update path: direct
Manual action: none
Risk level: low
Automatic config update: yes
Breaking change: no
```

기존 `0.1.43`, legacy, 내부 `0.1.44` config는 첫 읽기에서 `~/.clisbot/backups/` 아래에 backup을 남긴 뒤 자동 업데이트됩니다.

권장 stable install:

```bash
npm install -g clisbot@0.1.50
clisbot restart
```

## Pre-Release History

- `v0.1.50-beta.1`: shared route, timezone, automatic config update, Gemini compatibility, default template, Telegram audio, prompt-context 작업의 첫 beta
- `v0.1.50-beta.2`: native CLI `Working...` timer 보존, 최신 prompt boundary 중심 streaming extraction 강화
- `v0.1.50-beta.3`: loop creator metadata 추가, release-owned runner startup default pruning
- `v0.1.50-beta.9`~`beta.11`: session ownership / runner isolation / trust-prompt / restart false-failure 관련 안정화
- `v0.1.50-beta.12`: root README 랜딩 다듬기, npm downloads / MIT badge 추가, 그리고 베트남어·중국어·한국어 문서 거울 트리와 용어 정합성 추가 정리
- `v0.1.50-beta.13`: loop별 progress-message override 제어 추가, inherit-vs-override 동작을 설명하는 loop CLI help / 문서 정리, queue id를 포함한 queue 생성 알림 개선, 그리고 repo-local `web-diff-review` skill 복사본 및 Tailscale 접근 가이드 반영
- `v0.1.50-beta.14`: 이미 mention된 Slack 메시지가 sender allowlist 때문에 조용히 막히지 않도록 mention gating을 수정하고, 그 mention-path 동작에 대한 회귀 테스트를 추가

## Validation

- targeted route / config / prompt-context / Telegram / tmux / Slack manifest test
- `bunx tsc --noEmit`
- `bun run check`
- `bun run build`

## Links

- [릴리스 가이드](../updates/releases/v0.1.50-release-guide.md)
- [업데이트 가이드](../updates/update-guide.md)
- [마이그레이션 인덱스](../migrations/index.md)
- [라우트와 채팅 표면](../user-guide/channels.md)
- [CLI 명령](../user-guide/cli-commands.md)
- [권한과 역할](../user-guide/auth-and-roles.md)
