Merge Backlog::IssueShow::CommandFailed into Backlog::TrackerCommandFailed #1038

Open
opened 2026-10-16 19:24:07 +00:00 by jared · 0 comments
Owner

Problem

Two exception classes mean one failure, "the tracker command failed". IssueShow rescues TrackerCommandFailed and re-raises IssueShow::CommandFailed with the same message, so the CLI must rescue each class by name.

Observed

Evidence (plugins/os-backlog): lib/backlog/issue_show/command_failed.rb:5; lib/backlog/tracker_command_failed.rb:4; lib/backlog/issue_show.rb:27-28, 47-48 (rescue and re-raise), 34, 43, 54 (raise); lib/backlog/cli_command_wiring.rb:40 rescues IssueShow::CommandFailed, six other rescues there use TrackerCommandFailed; tests/issue_show_forgejo_test.rb:17. Rulings R4, follow-up 1.

Reproduce

n/a: structural duplication found in a crc-refactor tuning run; no runtime command reproduces it.

Acceptance criteria

  1. issue_show/command_failed.rb deleted; issue_show.rb raises TrackerCommandFailed and the two re-raise blocks are gone; cli_command_wiring.rb:40 rescues TrackerCommandFailed; the test asserts the merged class; grep for IssueShow::CommandFailed is empty; os-backlog tests and lint pass.

Skeptic: VERDICT: CREATE — the duplication is real and ruling R4 deferred the merge as a follow-up.

Origin

  • Trigger: crc-refactor tuning run on plugins/os-backlog, branch crc-os-backlog-2026-10-16 (ledger docs/crc/os-backlog/ledger.tsv, rulings docs/crc/os-backlog/rulings.md).
  • Improvised this session: none
  • Chain: duplicate exception class in plugins/os-backlog ← ruling R4 deferred the merge (docs/crc/os-backlog/rulings.md) ← DESIGN
  • Root candidate: none beyond this ticket
  • Where: plugins/os-backlog/lib/backlog/issue_show/command_failed.rb
  • Session: a5e278ab-89aa-4ed6-adb4-b70820788f0c
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-backlog-2026-10-16/a5e278ab-89aa-4ed6-adb4-b70820788f0c.jsonl
## Problem Two exception classes mean one failure, "the tracker command failed". `IssueShow` rescues `TrackerCommandFailed` and re-raises `IssueShow::CommandFailed` with the same message, so the CLI must rescue each class by name. ## Observed Evidence (plugins/os-backlog): lib/backlog/issue_show/command_failed.rb:5; lib/backlog/tracker_command_failed.rb:4; lib/backlog/issue_show.rb:27-28, 47-48 (rescue and re-raise), 34, 43, 54 (raise); lib/backlog/cli_command_wiring.rb:40 rescues `IssueShow::CommandFailed`, six other rescues there use `TrackerCommandFailed`; tests/issue_show_forgejo_test.rb:17. Rulings R4, follow-up 1. ## Reproduce n/a: structural duplication found in a crc-refactor tuning run; no runtime command reproduces it. ## Acceptance criteria 1. issue_show/command_failed.rb deleted; issue_show.rb raises `TrackerCommandFailed` and the two re-raise blocks are gone; cli_command_wiring.rb:40 rescues `TrackerCommandFailed`; the test asserts the merged class; grep for `IssueShow::CommandFailed` is empty; os-backlog tests and lint pass. Skeptic: VERDICT: CREATE — the duplication is real and ruling R4 deferred the merge as a follow-up. ## Origin - Trigger: crc-refactor tuning run on plugins/os-backlog, branch crc-os-backlog-2026-10-16 (ledger docs/crc/os-backlog/ledger.tsv, rulings docs/crc/os-backlog/rulings.md). - Improvised this session: none - Chain: duplicate exception class in plugins/os-backlog ← ruling R4 deferred the merge (docs/crc/os-backlog/rulings.md) ← DESIGN - Root candidate: none beyond this ticket - Where: plugins/os-backlog/lib/backlog/issue_show/command_failed.rb - Session: a5e278ab-89aa-4ed6-adb4-b70820788f0c - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-backlog-2026-10-16/a5e278ab-89aa-4ed6-adb4-b70820788f0c.jsonl
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#1038
No description provided.