ignission / ignission/claude-code-ark

[web] 完了通知を「通った / 落ちた」に割る

Open
#404 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
2
Forks
0
Avg merge
1h 31m
Merged PRs (30d)
77

Description

次のタスク: 完了通知を「通った / 落ちた」に割る

問題

IDLE / READY / ERR / STOP の 4 状態がすべて同じ kind: "completed" になり、
通知文面も一律「Ark: 作業が完了しました / 実行が停止しました」になる。

離席して戻ったとき、どれが成功でどれが落ちたか開くまで分からない
待ち行列を作るなら、区別が無いと失敗を素通りして次へ進むので、こちらが先。

触る場所(すべて packages/web/src/lib/session-notifications.ts)

現状 変更
3 type SessionNotificationKind = "awaiting" | "question" | "completed" "failed" を追加
60-65 COMPLETED_STATUSES = {IDLE, READY, ERR, STOP} FINISHED = {IDLE, READY}FAILED = {ERR, STOP} に分割
96 kind: "completed" を返す 状態で "completed" / "failed" を返し分ける
169-172 case "completed" の文面 1 つ case "failed" を追加。tag も別にする(通知が上書きされないよう)

packages/web/src/hooks/useSessionNotifications.ts:65 の union も同じく "failed" を足す。
SessionNotificationKind を import して使えるなら、重複定義をやめる方がよい)

文面の案

completed: "Ark: 作業が完了しました" / "<label> が入力待ちに戻りました"
failed:    "Ark: 作業が失敗しました" / "<label> がエラーで停止しました"

STOP は「tmux ごと消えた」なので、ERR と分けるかは実装時に判断してよい。
分けるなら 3 種類(completed / failed / stopped)になる。

確認すること

  • 既存テスト 16 件(session-notifications.test.ts)を壊さない
  • 追加テスト
    • TOOL → IDLEcompleted
    • THINK → ERRfailed
    • TOOL → STOPfailed(または stopped
    • tag が種別ごとに別(通知が互いを上書きしない)
  • 変異テスト: FAILEDFINISHED に混ぜ戻す変異で、追加したテストが落ちること
  • pnpm check / pnpm test / pnpm build

守ること

  • CLAUDE.md.claude/rules/ の規約に従う
  • 実装したら codex にレビューさせる(実装者 ≠ レビュアー)
  • push と PR は作ってよい。マージは人間のゲート
  • CodeRabbit はレビュー上限に当たることがある。その場合は codex で代替し、PR に明記する

背景(読むと早い)

  • project_ark_direction(メモリ)— 4 軸とこのタスクが最優先である理由
  • .claude/rules/context-engineering.md — 機構を足す前の検査項目

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with packages/web/src/lib/session-notifications.ts and packages/web/src/hooks/useSessionNotifications.ts, then run the existing session-notifications.test.ts tests. Split IDLE/READY from ERR/STOP, add the failed notification kind and distinct tags and wording, and update or add tests for each transition. Done means pnpm check, pnpm test, and pnpm build pass without breaking the existing 16 tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.