Move reroute_check and map_update to Dispatch::Rerouting #1177

Closed
opened 2026-10-19 22:22:15 +00:00 by jared · 2 comments
Owner

Problem

Two Implementation controllers act on one dispatch, found by its id. Implementation::Acceptance#reroute_check calls Dispatch.pending!(dispatch_id) and rescues the Dispatch lookup errors (implementation/acceptance.rb:23-28). Implementation::MapUpdating#map_update does the same (implementation/map_updating.rb:10-16). Their only callers are the command table rows in boot/commands.rb:70 and :74. Ruling S11 moves both commands to Dispatch. The Implementation and Dispatch association pair stays as an accepted cycle, and Implementation::CompletionIntake stays in Implementation.

Reproduce

n/a: structure-wave move, nothing to reproduce

Approach

Required work:

  1. Create plugins/os-sdlc/lib/os_sdlc/dispatch/rerouting.rb as OsSdlc::Dispatch::Rerouting, with reroute_check(root, dispatch_id) and map_update(root, dispatch_id:, **fields) moved unchanged from Implementation::Acceptance and Implementation::MapUpdating. — check: present class Rerouting in plugins/os-sdlc/lib/os_sdlc/dispatch/rerouting.rb
  2. Delete reroute_check from plugins/os-sdlc/lib/os_sdlc/implementation/acceptance.rb and move plugins/os-sdlc/lib/os_sdlc/implementation/map_updating.rb away (git mv into the new file's history where possible). — check: absent Dispatch.pending! in plugins/os-sdlc/lib/os_sdlc/implementation/acceptance.rb
  3. Point boot/commands.rb:70 and :74 at Dispatch::Rerouting. — check: absent MapUpdating in plugins/os-sdlc/lib/**/*.rb
  4. Move plugins/os-sdlc/tests/controller/implementation/map_update_test.rb to plugins/os-sdlc/tests/controller/dispatch/rerouting_test.rb and update its constants.

Acceptance criteria

  1. Given the suite, when run after the change, then it passes with no new failures.
  2. Given the lib tree, when bin/crc-cycle-edges runs, then the edge Implementation -> Dispatch no longer lists implementation/acceptance.rb:24 or implementation/map_updating.rb:11.
  3. Given an unknown dispatch id, when os-sdlc reroute-check or os-sdlc map-update runs, then it prints the same error and exits 1 as before.

Owner sketch

class OsSdlc::Dispatch::Rerouting
  def initialize(io)
  def reroute_check(_root, dispatch_id)
  def map_update(_root, dispatch_id:, **fields)
end

Non-goals

Implementation::CompletionIntake and the Sequel association pair do not change. The fixture TSVs under plugins/os-sdlc/tests/fixtures/crc_shares/run2/ keep the old names.

Origin

  • Trigger: os-sdlc CRC run 3, structure-ruling wave step 1, close row C3 (bin/crc-cycle-edges after the lopsided cuts S1 to S8)
  • Improvised this session: none
  • Chain: concept cycle Dispatch <-> Implementation ← implementation/acceptance.rb:24, implementation/map_updating.rb:11 ← DESIGN (docs/crc/os-sdlc/wave0/structure-rulings.tsv S11)
  • Root candidate: none found; searched reroute_check, map_update, MapUpdating, Rerouting, CompletionIntake
  • Where: plugins/os-sdlc/lib/os_sdlc/implementation/map_updating.rb
  • Ledger: docs/crc/os-sdlc/ledger.tsv
  • Rulings: docs/crc/os-sdlc/wave0/structure-rulings.tsv
  • Session: 2e167079-f404-4139-9cfa-6c0c937ce9f0
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-sdlc-run-3/2e167079-f404-4139-9cfa-6c0c937ce9f0.jsonl

VERDICT: CREATE

## Problem Two Implementation controllers act on one dispatch, found by its id. `Implementation::Acceptance#reroute_check` calls `Dispatch.pending!(dispatch_id)` and rescues the Dispatch lookup errors (implementation/acceptance.rb:23-28). `Implementation::MapUpdating#map_update` does the same (implementation/map_updating.rb:10-16). Their only callers are the command table rows in boot/commands.rb:70 and :74. Ruling S11 moves both commands to Dispatch. The Implementation and Dispatch association pair stays as an accepted cycle, and `Implementation::CompletionIntake` stays in Implementation. ## Reproduce n/a: structure-wave move, nothing to reproduce ## Approach Required work: 1. Create `plugins/os-sdlc/lib/os_sdlc/dispatch/rerouting.rb` as `OsSdlc::Dispatch::Rerouting`, with `reroute_check(root, dispatch_id)` and `map_update(root, dispatch_id:, **fields)` moved unchanged from `Implementation::Acceptance` and `Implementation::MapUpdating`. — check: present `class Rerouting` in `plugins/os-sdlc/lib/os_sdlc/dispatch/rerouting.rb` 2. Delete `reroute_check` from `plugins/os-sdlc/lib/os_sdlc/implementation/acceptance.rb` and move `plugins/os-sdlc/lib/os_sdlc/implementation/map_updating.rb` away (git mv into the new file's history where possible). — check: absent `Dispatch.pending!` in `plugins/os-sdlc/lib/os_sdlc/implementation/acceptance.rb` 3. Point boot/commands.rb:70 and :74 at `Dispatch::Rerouting`. — check: absent `MapUpdating` in `plugins/os-sdlc/lib/**/*.rb` 4. Move `plugins/os-sdlc/tests/controller/implementation/map_update_test.rb` to `plugins/os-sdlc/tests/controller/dispatch/rerouting_test.rb` and update its constants. ## Acceptance criteria 1. Given the suite, when run after the change, then it passes with no new failures. 2. Given the lib tree, when `bin/crc-cycle-edges` runs, then the edge Implementation -> Dispatch no longer lists `implementation/acceptance.rb:24` or `implementation/map_updating.rb:11`. 3. Given an unknown dispatch id, when `os-sdlc reroute-check` or `os-sdlc map-update` runs, then it prints the same error and exits 1 as before. ## Owner sketch ```ruby class OsSdlc::Dispatch::Rerouting def initialize(io) def reroute_check(_root, dispatch_id) def map_update(_root, dispatch_id:, **fields) end ``` ## Non-goals `Implementation::CompletionIntake` and the Sequel association pair do not change. The fixture TSVs under `plugins/os-sdlc/tests/fixtures/crc_shares/run2/` keep the old names. ## Origin - Trigger: os-sdlc CRC run 3, structure-ruling wave step 1, close row C3 (bin/crc-cycle-edges after the lopsided cuts S1 to S8) - Improvised this session: none - Chain: concept cycle Dispatch <-> Implementation ← implementation/acceptance.rb:24, implementation/map_updating.rb:11 ← DESIGN (docs/crc/os-sdlc/wave0/structure-rulings.tsv S11) - Root candidate: none found; searched reroute_check, map_update, MapUpdating, Rerouting, CompletionIntake - Where: plugins/os-sdlc/lib/os_sdlc/implementation/map_updating.rb - Ledger: docs/crc/os-sdlc/ledger.tsv - Rulings: docs/crc/os-sdlc/wave0/structure-rulings.tsv - Session: 2e167079-f404-4139-9cfa-6c0c937ce9f0 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-sdlc-run-3/2e167079-f404-4139-9cfa-6c0c937ce9f0.jsonl VERDICT: CREATE
Author
Owner

Work started on branch crc-os-sdlc-run-3 (os-sdlc run 3 worktree), structure-change map.

Work started on branch crc-os-sdlc-run-3 (os-sdlc run 3 worktree), structure-change map.
Author
Owner

Resolution

Done: S11 applied: Implementation::MapUpdating moved to Dispatch::Rerouting with reroute_check from Implementation::Acceptance; commands.rb points at Dispatch::Rerouting; map_update_test moved to tests/controller/dispatch/rerouting_test.rb.

Evidence: fe2a8e9d (Runner commit, gate green, 2249 runs); 71051dff deletes the old test path and brief/lookup.rb that the Runner commits left tracked. Implementation 89.

Follow-ups: none

## Resolution **Done:** S11 applied: Implementation::MapUpdating moved to Dispatch::Rerouting with reroute_check from Implementation::Acceptance; commands.rb points at Dispatch::Rerouting; map_update_test moved to tests/controller/dispatch/rerouting_test.rb. **Evidence:** fe2a8e9d (Runner commit, gate green, 2249 runs); 71051dff deletes the old test path and brief/lookup.rb that the Runner commits left tracked. Implementation 89. **Follow-ups:** none
jared closed this issue 2026-10-19 22:40:10 +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#1177
No description provided.