Skip to content

入力受付に # チャンネル名Tab補完と直近ログ再表示を追加#142

Merged
hideack merged 3 commits into
masterfrom
feature/channel-completion-recent
Jun 21, 2026
Merged

入力受付に # チャンネル名Tab補完と直近ログ再表示を追加#142
hideack merged 3 commits into
masterfrom
feature/channel-completion-recent

Conversation

@hideack

@hideack hideack commented Jun 20, 2026

Copy link
Copy Markdown
Owner

概要

CLI 起動時の入力受付に、チャンネル名の Tab 補完と、確定チャンネルの直近ログ再表示を追加します。

# を入力して Tab を押すとチャンネル名候補が列挙され、チャンネル名が一意に確定(展開)されると、そのチャンネルの直近受信ログを表示し直します。

使い方

> #          ← Tab で全チャンネル候補を一覧
  #general  #random  #dev-team  #incident
> #dev[Tab]  ← 一意なら #dev-team に展開
> #dev-team  ← Enter で直近ログ再表示(SQLite優先・既定20件)
--- Show recent (#dev-team) ---
2026-06-20 12:01:03 |  #dev-team |  alice | ...
--- finish ---
> #dev-team 50   ← 件数指定も可能

変更内容

  • lib/cli.js: readline に completer を渡せるようにし、# 始まりの入力を channelRecent ハンドラへルーティング
  • lib/core.js:
    • channelCompleter: # 入力時にチャンネル名候補を列挙
    • showRecent: 確定チャンネルの直近ログを再表示。SQLite優先channel_id 未解決時は labelKey で引き、MCP由来の #claude 等も取得可)、無効/失敗時はメモリバッファにフォールバック
    • #channel N で件数指定にも対応

補完候補のソース

  1. util.channels — Slack API 由来のチャンネル
  2. util.buffer# キー — 今セッションで受信したチャンネル(MCP post_to_stream 含む)
  3. injectedChannelLabels — 過去セッションで SQLite に記録された注入チャンネル(起動時に getInjectedChannelLabels で取得)

これにより、別途実装した MCP で受信した注入チャンネル(#claude 等)も補完候補に含まれ、SQLite 履歴も引けます。

テスト

  • test/sqlite_logger_test.jsgetInjectedChannelLabels のテストを4件追加
  • npm test(lint + mocha): 62 passing / lint クリーン

🤖 Generated with Claude Code

hideack and others added 3 commits June 20, 2026 22:22
- cli.js: readline に completer を渡せるようにし、# 始まり入力を
  channelRecent ハンドラへルーティング
- core.js: channelCompleter で # 入力時にチャンネル名候補を列挙
  (util.channels に加え、MCP由来など util.buffer の # キーも対象)
- core.js: showRecent で確定チャンネルの直近ログを再表示。SQLite優先
  (channel_id 未解決時は labelKey で引き MCP由来 #claude 等も取得可)、
  無効/失敗時はメモリバッファにフォールバック
- #channel N で件数指定にも対応

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- sqlite-logger.js: getInjectedChannelLabels を追加。channel_id が
  "#" 始まり(MCP等の注入チャンネル)を DISTINCT で取得
- core.js: 起動時に SQLite から注入チャンネルラベルを読み込み、
  channelCompleter の候補に追加。今セッション未受信の #claude 等も
  Tab 一覧に出るようになる
- sqlite_logger_test.js: getInjectedChannelLabels のテストを追加

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- core.js: synthetic(post_to_stream注入)メッセージのチャンネル列に
  [MCP] プレフィックスを付与(既存cyanも併用)。removeEscapeSequencesで
  色は落ちるがタグはログ/SQLite/TSVに残り grep 可能

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@hideack hideack merged commit 41a92fd into master Jun 21, 2026
2 checks passed
@hideack hideack deleted the feature/channel-completion-recent branch June 21, 2026 00:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant