Skip to content

feat(lanes): --dispatch 가 task 목록을 받아 라운드에 맡긴 task 만 적어요 (v0.7.4) - #27

Merged
bluecheat merged 1 commit into
mainfrom
feat/lanes-dispatch-task-list
Oct 3, 2026
Merged

bluecheat merged 1 commit into
mainfrom
feat/lanes-dispatch-task-list

Conversation

@bluecheat

@bluecheat bluecheat commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

문제

lanes-dispatch.sh --dispatch 가 레인 이름만 받아서, 그 레인의 미완료 task 전부에 디스패치: 시각을 찍었어요. 라운드마다 레인의 일부만 워커에 맡기면 원장이 그걸 표현하지 못했어요. --dispatch T071,T072 를 주면 "레인 'T071,T072' 에 미완료 task 가 없어요" 로 거부됐어요.

실측

더나눔운동 사이트 spec(레인 5개 · 워커 4개 동시)에서 이런 일이 있었어요.

  • WEB 레인 T022~T029 는 09:14 에 디스패치로 적혔는데, 실제 워커는 10:31 에 떴어요.
  • T061~T064 는 아무도 안 맡았는데 --status 의 dispatched_unreported 와 tasks-gate.sh 의 "보고 안 받은 디스패치" 에 들어가서 경보가 흐려졌어요.

변경

  • --dispatch <레인 | T010,T011>: --report 와 같은 모양이에요.
    • 레인 이름을 주면 기존과 똑같이 동작해요.
    • task 목록을 주면 그 task 들만 디스패치해요. 목록은 전부 미완료여야 하고 같은 레인에 배정돼 있어야 해요. 없는 ID · 완료/보류 · 레인 없음 · 여러 레인이면 exit 1 이고 파일은 그대로예요 (--assign 과 같은 트랜잭션).
    • 이미 디스패치된 task 를 다시 지정하면 시각을 갱신하고 보고: 를 지운 뒤 warnings 에 적어요. 중복 ID 는 한 번만 처리해요.
    • 파일 소유 충돌 검사는 그 task 들이 속한 레인을 기준으로 해요.
  • (선택 항목) mark-task.sh --task T010,T011: 트랜잭션이라 하나라도 없거나 중복이면 아무것도 바꾸지 않아요. 이미 켜진 task 는 unchanged_tasks 에 적어요. result 에 tasks·lines·changed_tasks·unchanged_tasks 를 더했고, 단일 ID 일 때의 기존 필드는 그대로예요.
  • 문서: lane-mode.md §2 가 task 목록 디스패치를 기본으로 안내해요. lane §6, spec-implement §5, 스크립트 README, 스크립트 헤더의 Usage·설명도 같이 고쳤어요.
  • 버전: 0.7.4 로 올리고 changelog 를 더했어요.

검증

$ bash tests/smoke.sh   # macOS bash 3.2.57
✓ 모든 smoke 검증 통과   (exit 0, ✓ 738)
  • §38 에 3건을 더했어요. 목록에 있는 task 만 기록되는지, 잘못된 목록 4종이 거부되고 파일이 그대로인지, 재디스패치 때 시각 갱신·보고 삭제·warnings 가 되는지 봐요.
  • §59 에 2건을 더했어요. 하나라도 없는 ID 가 있으면 아무것도 바뀌지 않는지, 이미 켜진 task 는 건너뛰고 중복 ID 는 한 번만 처리하는지 봐요.
  • 로컬에 shellcheck 가 없어서 shellcheck 는 돌리지 못했어요. smoke 의 bash -n 검사는 통과했어요.

🤖 Generated with Claude Code

https://claude.ai/code/session_015TshVdvCw3iHGj81WMDoMG

--dispatch 가 레인 이름만 받아 그 레인의 미완료 task 전부에 디스패치 시각을 찍었어요. 실사용(레인 5개 ·
워커 4개)에서 8 task 가 실제 기동보다 77분 먼저 적혔고, 아무도 안 맡은 4 task 가 dispatched_unreported 와
완료 게이트 경보에 섞였어요.

- lanes-dispatch --dispatch <레인 | T010,T011>: 목록이면 전부 미완료 · 같은 레인이어야 하고 아니면 exit 1 +
  무변경. 이미 디스패치된 task 는 시각 갱신 · 보고 지움 · warnings
- mark-task --task T010,T011: 트랜잭션, 이미 켜진 것은 unchanged_tasks
- lane-mode §2 · lane §6 · spec-implement §5 · 스크립트 README
- smoke §38 3건 · §59 2건, changelog 0.7.4

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015TshVdvCw3iHGj81WMDoMG
@bluecheat
bluecheat force-pushed the feat/lanes-dispatch-task-list branch from 7f8b4cf to 92b8ccb Compare October 3, 2026 14:09
@bluecheat bluecheat changed the title feat(lanes): --dispatch 가 task 목록을 받아 라운드에 맡긴 task 만 적어요 (v0.7.3) feat(lanes): --dispatch 가 task 목록을 받아 라운드에 맡긴 task 만 적어요 (v0.7.4) Oct 3, 2026
@bluecheat
bluecheat merged commit 9ac98f3 into main Oct 3, 2026
2 checks passed
@bluecheat
bluecheat deleted the feat/lanes-dispatch-task-list branch October 3, 2026 14:11
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