You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of #250 (ADE 표면 메타 · 1축 Workbench 후행 범위) · 선행 = #251
배경
#251 체크포인트 2 스펙이 Codex 승인(2R)되면서 범위 판정이 함께 확정됐다 — 안 1(크로스 프로세스 권위·리스 계층 유지) + 후반 범위 sub-issue 분리. 실측 기준선(이 레포 PR당 코드 순증 평균 1,447행·최대 1,918행)으로 1축 전체가 69 PR 규모라, 단일 이슈에서 굴리면 C1C5 에서 확립한 「체크포인트 단위 리뷰」 입도가 붕괴한다.
primary 배지 1 + 차단 사유 칩 N — 현행 단일 배지 렌더(ProjectPanel.tsx:373-375)를 그대로 쓰면 broken ∧ 활성 저널에서 사유 하나가 소실된다
액션 8종(run·chat·prepare-integration·re-prepare·abandon·archive·delete-record·reconcile) — 버튼 활성의 유일 근거는 배지가 아니라 인가 결과
카드 그리드는 선례 없음(auto-fill 0곳) → 신규 클래스. .panel 재사용·.stack 금지(nth-child(6) stagger 한계). 상태 배지는 benchStatusColor 신설(오케 Task 네임스페이스 오염 방지)
§W-14 bench invoke 채널 6 — 전부 scope:'both', push 0(§W-13: 신규 push 채널은 B1 커서 계약을 깨 재접속마다 hasEventGap 오탐이 상시화된다)
기본 탭 변경의 필수 동반 수정 3건(실측 — 그 외 e2e 8파일은 탭을 명시 클릭하므로 안전)
e2e/approval-hold.web.e2e.ts:55 앞 세션 탭 클릭 삽입
src/renderer/App.test.tsx:17,23-25 mockFleet 에 bench 목록 목 추가 + 주석 갱신
e2e/mobile-responsive.web.e2e.ts:16
ProjectPanel.tsx benchId 스코프화(R-2) — bench 런 이벤트는 projectId 를 실으므로 자동 필터가 성립하지 않는다. 라이브 이벤트 핸들러 3분기 + getRunActivity 하이드레이션 두 경로. 누락 시 CI 가 잡지 못하는 조용한 회귀
완료 조건 (스펙 §3 해당 행)
T39b — bench 런 진행 중 레거시 ProjectPanel 의 running 잠금·자동 선택 미발생(라이브 + 하이드레이션)
T50 — 기본 탭 = '작업' 단언 + 동반 수정 3건 무회귀
T51 — [data-bench-badge] 정확히 1개 · [data-bench-chip] == 차단 사유 수
Part of #250 (ADE 표면 메타 · 1축 Workbench 후행 범위) · 선행 = #251
배경
#251 체크포인트 2 스펙이 Codex 승인(2R)되면서 범위 판정이 함께 확정됐다 — 안 1(크로스 프로세스 권위·리스 계층 유지) + 후반 범위 sub-issue 분리. 실측 기준선(이 레포 PR당 코드 순증 평균 1,447행·최대 1,918행)으로 1축 전체가 6
9 PR 규모라, 단일 이슈에서 굴리면 C1C5 에서 확립한 「체크포인트 단위 리뷰」 입도가 붕괴한다.이 이슈 = 표면(UI + 채널 배선). 코어(#251)가 랜딩한 뒤 착수한다.
범위
스펙
docs/superpowers/specs/2026-07-23-ade-workbench-spec.md기준:TABS배열·useState기본값) 코드 리터럴 고정ProjectPanel.tsx:373-375)를 그대로 쓰면broken ∧ 활성 저널에서 사유 하나가 소실된다run·chat·prepare-integration·re-prepare·abandon·archive·delete-record·reconcile) — 버튼 활성의 유일 근거는 배지가 아니라 인가 결과auto-fill0곳) → 신규 클래스..panel재사용·.stack금지(nth-child(6) stagger 한계). 상태 배지는benchStatusColor신설(오케 Task 네임스페이스 오염 방지)scope:'both', push 0(§W-13: 신규 push 채널은 B1 커서 계약을 깨 재접속마다hasEventGap오탐이 상시화된다)e2e/approval-hold.web.e2e.ts:55앞 세션 탭 클릭 삽입src/renderer/App.test.tsx:17,23-25mockFleet 에 bench 목록 목 추가 + 주석 갱신e2e/mobile-responsive.web.e2e.ts:16ProjectPanel.tsxbenchId 스코프화(R-2) — bench 런 이벤트는projectId를 실으므로 자동 필터가 성립하지 않는다. 라이브 이벤트 핸들러 3분기 +getRunActivity하이드레이션 두 경로. 누락 시 CI 가 잡지 못하는 조용한 회귀완료 조건 (스펙 §3 해당 행)
[data-bench-badge]정확히 1개 ·[data-bench-chip]== 차단 사유 수비범위