Skip to content

Commit d380b1b

Browse files
committed
docs(plan): record the round outcome, including what was wrong
Closes the unit with what actually happened rather than what was planned. Three of this round's own mistakes are recorded, because they are the reusable part: the lidge-jun#796 fix started as a placeholder space with no evidence behind it and would have 400'd live; the lidge-jun#764 fix introduced a 7-second wait on every stop for every platform; and the first lidge-jun#758 test drove a branch that delegates to a helper already consulting the registry, so its ablation could not fail. An independent reviewer caught all three, and making ablation a habit is what surfaced the last two. Also records the disposition of everything left open with the reason -- owner judgement, security review, bridge-level work, missing provider evidence, or its own cycle -- so the next round starts from a list rather than a re-triage.
1 parent c3424e9 commit d380b1b

1 file changed

Lines changed: 85 additions & 0 deletions

File tree

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# 040 — 라운드 결과
2+
3+
`000`이 세운 판정 매트릭스가 실제로 어떻게 끝났는지 기록한다. 계획과 다른 부분이
4+
있고, 다른 이유가 더 중요하다.
5+
6+
기준: 브랜치 `codex/260731-pr-merge-round`, `origin/dev`에서 분기.
7+
게이트: macmini-cf에서 6240 pass / 0 fail.
8+
9+
## 닫은 것
10+
11+
### 이미 dev에 있던 7건 (`010`)
12+
13+
#736 #752 #743 #610 #734 #777 #533. 전부 근거 커밋을 명시하고 닫았다.
14+
#736은 머지했으면 `decodeSchtasksOutput()`을 지워서 #722를 다시 열었을 것이다.
15+
16+
이슈: #722 #733 #606 #721 닫음. #572 #759는 부분이라 유지.
17+
18+
### 랜딩 후 닫은 6건
19+
20+
| PR | 커밋 | 손댄 것 |
21+
|---|---|---|
22+
| #774 | `bfa1a599c` | 없음 |
23+
| #772 | `5d7ab0cb7` | 없음 |
24+
| #783 | `f72610027` | 없음 |
25+
| #769 | `0856b0cb7` | 없음 |
26+
| #768 | `ba77eb8e9` | 디렉터리 가드, PATH 케이싱 테스트 |
27+
| #771 | `13a76a38a` | 없음 (#768이 충돌 해소) |
28+
29+
이슈: #754 #709 #767 #696 닫음.
30+
31+
### 우리가 다시 만든 것
32+
33+
- **#725** (`a6d472e3f`) — #790`/api/logs` 계약을 깨고 테스트가 무력했다.
34+
`/api/settings`만 써서 배열 계약과 GUI 레이아웃을 둘 다 보존. #790 닫음.
35+
- **#796** (`2eebd9268`) — Ark 구조화 content. **실제 엔드포인트 미검증.**
36+
- **#735 절반** (`38f711beb`) — 잘린 tool call이 완료로 보고되던 것.
37+
- **#758** (`3f7a50458`) — registry 기본값을 fetch 경계에서도 존중.
38+
- **#764 절반** (`2d0c6a99c`, `5530b8c63`, `c3424e9ae`) — stop 검증.
39+
40+
## 열어둔 것과 이유
41+
42+
**오너 판단 필요**: #735 나머지 절반(#773이 왜 리버트됐는지 기록 없음),
43+
#793(같은 이유).
44+
45+
**보안 리뷰 필요**: #766/#782, #760/#779. 둘 다 수용 경로를 넓힌다.
46+
#782에는 별개 버그도 있다 — 디렉터리 하드닝 결과가 버려져 `/api/settings`
47+
미검증을 verified로 보고할 수 있다.
48+
49+
**bridge 작업 필요**: #658, #765 잔여. `021` 참고.
50+
51+
**preset 증거 미달**: #751(증거 완비, 리뷰만 갱신하면 됨), #747 #653 #611 #776.
52+
53+
**자체 사이클 필요**: #757 #581 #715 #707 #671 #569 #557 #644 #746 #750 #745 #763.
54+
55+
## 이 라운드에서 틀렸던 것 세 가지
56+
57+
기록해두는 게 낫다. 같은 실수를 반복하지 않으려면.
58+
59+
**1. #796을 공백으로 고치려 했다.** "빈 문자열이 거부되니 non-empty면 되겠지"로
60+
갔는데 근거가 없었다. 에러가 가리키는 `input.content.text`는 중첩 경로고,
61+
구조화된 배열을 요구하는 것이었다. 로컬 테스트는 통과했을 것이고 실제
62+
엔드포인트에서 그대로 400이 났을 것이다. 지금도 미검증이라 그렇게 표기했다.
63+
64+
**2. #764 수정이 회귀를 만들었다.** 검증 루프가 모든 플랫폼에서 매번 7초를
65+
기다리게 했다. launchd/systemd는 unload 후 자식을 되살리지 않으므로 Windows
66+
전용 문제 때문에 나머지 사용자 전원이 매번 7초를 물 뻔했다.
67+
68+
**3. #758 첫 테스트가 무력했다.** ablation이 실패하지 않아 확인해보니 주입된
69+
executor 분기를 타고 있었고, 그 분기는 이미 registry를 보는 헬퍼에 위임한다.
70+
실제 discovery 경로를 타도록 다시 썼다.
71+
72+
셋 다 독립 리뷰어가 잡았다. ablation을 습관으로 돌린 것이 2번과 3번을 드러냈다.
73+
74+
## 배운 것
75+
76+
**"CLEAN하게 머지된다"가 "머지해도 된다"가 아니다.** #736이 그 증거다.
77+
patch-id가 다른데 결함은 없어진 경우 — 메인테이너가 같은 문제를 다르게 고친
78+
것이고, 이때 PR을 머지하면 더 나은 구현을 되돌린다.
79+
80+
**테스트가 통과하는 것과 결함을 잡는 것은 다르다.** #790의 테스트는 두 응답
81+
형태를 다 허용해서 프로덕션 변경을 되돌려도 통과했다. ablation 없이는 안 보인다.
82+
83+
**같은 결함을 두 번 못 고치면 멈춰야 한다.** #765 스트리밍 검증에서 두 번
84+
거부당한 뒤 세 번째를 시도하지 않고 되돌렸다. 진짜 수정 지점이 bridge였고
85+
그건 어댑터 PR의 범위가 아니었다.

0 commit comments

Comments
 (0)