Raise on git failure in CRC census and commit listing #1627

Closed
opened 2026-11-06 21:12:46 +00:00 by jared · 3 comments
Owner

Problem

Crc::Census::Settings#changed_paths and Crc::Ledger::Commits::Commit.listed rescue OsGit::Error and return []. A git failure looks like no changes. Tests pin this behavior. The fail-loudly rule requires a raise.

Reproduce

n/a: design ticket; the rescue clauses are visible in the two files.

Approach

Required work:

  1. Remove the OsGit::Error rescue from changed_paths — check: absent rescue OsGit::Error in plugins/os-sdlc/lib/os_sdlc/crc/census/settings.rb
  2. Remove the OsGit::Error rescue from listed — check: absent rescue OsGit::Error in plugins/os-sdlc/lib/os_sdlc/crc/ledger/commits/commit.rb

Acceptance criteria

  1. Given a git failure while listing changes since a ref, when changed_paths runs, then OsGit::Error propagates.
  2. Given a git failure while listing a commit's changes, when Commit.listed runs, then OsGit::Error propagates.

Origin

  • Trigger: follow-up to #1592 (os-git migration).
  • Improvised this session: none
  • Chain: git failure reads as no changes ← rescue returns [] ← DESIGN (crc/census/settings.rb, crc/ledger/commits/commit.rb)
  • Root candidate: none found; searched census/settings, changed_paths, Commit.listed, OsGit::Error
  • Where: plugins/os-sdlc/lib/os_sdlc/crc/census/settings.rb, plugins/os-sdlc/lib/os_sdlc/crc/ledger/commits/commit.rb
  • Session: 5b14a4ef-91b2-45c0-a729-baa17682a39a
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/5b14a4ef-91b2-45c0-a729-baa17682a39a.jsonl

VERDICT: CREATE

## Problem `Crc::Census::Settings#changed_paths` and `Crc::Ledger::Commits::Commit.listed` rescue `OsGit::Error` and return `[]`. A git failure looks like no changes. Tests pin this behavior. The fail-loudly rule requires a raise. ## Reproduce n/a: design ticket; the rescue clauses are visible in the two files. ## Approach Required work: 1. Remove the `OsGit::Error` rescue from `changed_paths` — check: absent `rescue OsGit::Error` in `plugins/os-sdlc/lib/os_sdlc/crc/census/settings.rb` 2. Remove the `OsGit::Error` rescue from `listed` — check: absent `rescue OsGit::Error` in `plugins/os-sdlc/lib/os_sdlc/crc/ledger/commits/commit.rb` ## Acceptance criteria 1. Given a git failure while listing changes since a ref, when `changed_paths` runs, then `OsGit::Error` propagates. 2. Given a git failure while listing a commit's changes, when `Commit.listed` runs, then `OsGit::Error` propagates. ## Origin - Trigger: follow-up to #1592 (os-git migration). - Improvised this session: none - Chain: git failure reads as no changes ← rescue returns [] ← DESIGN (crc/census/settings.rb, crc/ledger/commits/commit.rb) - Root candidate: none found; searched census/settings, changed_paths, Commit.listed, OsGit::Error - Where: plugins/os-sdlc/lib/os_sdlc/crc/census/settings.rb, plugins/os-sdlc/lib/os_sdlc/crc/ledger/commits/commit.rb - Session: 5b14a4ef-91b2-45c0-a729-baa17682a39a - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/5b14a4ef-91b2-45c0-a729-baa17682a39a.jsonl VERDICT: CREATE
Author
Owner

os-git integration track, 2026-11-09: this ticket changes only plugins/os-sdlc/lib/os_sdlc/crc/ and its tests. The mutation track owns those files during the #1645 work, so the os-git track does not edit them. Predicted ruling: the mutation track does this ticket with #1645, because both change how these sites meet OsGit. No OsGit change is needed: OsGit::Error already raises on git failure.

os-git integration track, 2026-11-09: this ticket changes only `plugins/os-sdlc/lib/os_sdlc/crc/` and its tests. The mutation track owns those files during the #1645 work, so the os-git track does not edit them. Predicted ruling: the mutation track does this ticket with #1645, because both change how these sites meet `OsGit`. No `OsGit` change is needed: `OsGit::Error` already raises on git failure.
Author
Owner

Owner: the mutation track (session bc5ad309, 2026-11-09). The os-sdlc side lands with #1645, because both change the os-sdlc git call sites in crc/. The os-git track does not edit plugins/os-sdlc/lib.

Owner: the mutation track (session bc5ad309, 2026-11-09). The os-sdlc side lands with #1645, because both change the os-sdlc git call sites in crc/. The os-git track does not edit plugins/os-sdlc/lib.
Author
Owner

Resolution

Done: A git failure raises in the CRC census and the commit listing; tests first with the git fake

Evidence: main 8ff51e84 (merged in 38b3284d)

Follow-ups: none

## Resolution **Done:** A git failure raises in the CRC census and the commit listing; tests first with the git fake **Evidence:** main 8ff51e84 (merged in 38b3284d) **Follow-ups:** none <!-- os-backlog kind: resolution -->
jared closed this issue 2026-11-09 20:46:03 +00:00
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#1627
No description provided.