- 472-2 · 4 · 5 · 6 = 아래 줄 모두 끝 · 체크 - 477-3 = 사용자 확정(docs 는 raw 만 · 문서 사이트 · 위키 안 씀) · 체크 - PLAN.md(git 밖) 1525 → 145 줄 · 남은 미체크 19 그대로 · CODEX 절 안 만짐 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
356 KiB
계획서 완료 이관 (10-24 · 요구 336)
절 이름만 = 끝난 절 통째 · 「(일부)」 = 끝난 줄만 · 남은 줄은 PLAN.md.
335. CAD 입력 보강 — 상세 검토 (요구 225-3 · 브레인 · 코드 X) — (일부 · 남은 줄은 PLAN.md)
- 335-1 검토 — 오토캐드 71 가지 대 우리(있음 2 · 일부 28 · 없음 41) · 흠 12(급한 셋 = Ctrl 조합이 명령 글자로 쌓임 · 보기 전용이 그립 · Delete · 특성으로 고쳐짐 · 그립 누름만으로 점 밀림) · 묶음 일곱 · 정할 것 14 — 근거 docs/raw/조사/2026-10-15_335_CAD입력보강_검토.md(부록1 오토캐드 · 부록2 우리 현황).
- 335-3 재조사 — 새 입력 방법 53 줄(쓸모 상 20 · 우리 없음 38) · 새 흠 H13 치수 글 = 종이 길이 · H14 B07 횡단 좌우 = B06 거울(둘 다 코드 확인) · 묶음 ⑧ 실제 값 입력 · ⑨ 기기 무관 입력 · ⑩ 임도 표기 도구 · 새 차례 · 정할 것 15~23 —
docs/raw/조사/2026-10-15_335_재조사_CAD입력.md· 부록3 원문. - 335-4 다시 조사(335-3 범위 어긋남) — 오토캐드 마우스 · 키보드 조작 146(명령 31) 대 우리 있음 26 · 일부 69 · 없음 51(보강 쓸모 상 40) · 흠 30(H1
H12 남음 + N1N18 · 급한 일곱) · 묶음 일곱(⓪ 흠 → ② 명령 중 키 → ⑤ 명령 옵션 → ① 숫자 → ③ 마우스 → ④ 단축키 → ⑥ 켬끔 · 어림 28 일) · 정할 것 24 —docs/raw/조사/2026-10-15_335_다시조사_오토캐드마우스키보드.md· 부록4.
336. M02 외부 일위대가 — 이름 맞춤 개선 상세 검토 (요구 225-4 · 브레인 · 코드 X) — (일부 · 남은 줄은 PLAN.md)
- 336-1 검토 — 실측 세 파일 126 줄: 1순위 41% → 지금 71% · 다섯 안 60% → 87% · 이름 다듬기 · 손 사전은 효과 0 또는 해로움 · 묶음 넷(① 근거 쪽 서버 고침 = 1순위 86% · 다섯 안 94% ② 고르기 창 손질 ③ 회사별 맞춤 기억 넓히기 ④ STmate 꼴 읽기 = 실무 내역 9 중 6 이 올리기부터 막힘) · 정할 것 11 — 근거 docs/raw/조사/2026-10-15_336_외부일위대가_이름맞춤_검토.md(부록1 실측 · 부록2 바깥 방법).
- 336-3 재검토 — 원본 로직 안 고침 · 맞춤 쪽 묶음 쌓기로 1순위 71.4 → 92.9% · 다섯 안 86.5 → 96.8% · 호표 조합 맞음 9.6 → 75.9% · 편의대로 바꾼 꼴 확인(이름 116 · 묶음 40 · 품 바꿈 32 / 126) · 묶음 ① 근거 고침 ② 로직 지문 ③ 조합 풀이 ④ 조건부 기억 ⑤ 읽기 넓힘 ⑥ 고르기 창 · 정할 것 풀림 4 · 새 4 —
docs/raw/조사/2026-10-15_336_재검토_로직조합맞춤.md· 부록3 원문. - 336-4 목적 다시 고민 — 목적 = 실무 엑셀 일위대가를 우리 사전조합(로직 + 옵션 + 수량)으로 옮김 · 고른 짝은 별칭 장부 · 확인한 줄만 들어감 · 228 확인(옵션만으로 엑셀 품 그대로 58% · 덧셈 20% · 원문 대조 14 = 우리가 원문과 같음) · 묶음 A 확인 규칙 + 확인 창 → B 인용 조항 맞대기 → C 별칭 장부 → D 지문 + 옵션 찾기 → E 한 줄 여러 로직 → F STmate · 거창 · 기본안 다섯 —
docs/raw/조사/2026-10-15_336_목적다시_외부일위대가.md· 부록4.
365. 평면 > 종단 <> 횡단 한 방향 · 캐시 · 고리 (요구 240-4 · 8 · sub7 · Opus high)
- 정함(브레인): 계산 길 하나 = 평면(노선) → 종단 → 횡단 · 종단 ↔ 횡단은 지금처럼 서로 실시간 · 횡단은 평면을 안 움직임(예외 356-3 중심점 ◀▶ = 평면 입력 · 같은 입구 한 바퀴) · 묶음 주인 = 페이지(B05 · B06 어느 쪽으로 들어와도 · 새로고침도 초안 기준) · B05 오른쪽 횡단 판 = 묶음 횡단 · 고리 = 입력 지문 대 파생 지문 · 다르면 한 바퀴 · 최대 3 · 넘으면 알림 · 끄는 동안 선만 · 놓을 때 한 바퀴 · 근거
docs/raw/조사/2026-10-17_365_요구240_분석.md1장. - 365-1 묶음을 페이지가 세움(B06 바로 열기 · 새로고침 = 초안 셈) · 초안 동안 저장 노선 횡단 캐시 안 덮음 — 확인: B06 바로 열기 + 노선 초안 → B06 카드 = 초안 측점 · 계획고 시험 · 새로고침 뒤 같음.
- 365-2 횡단 고침 → 묶음 cross 입력(초안 동안 B06 고침 보임) · 들어올 때 · 바뀐 뒤 지문 고리 — 확인: 바퀴 수 시험(같은 입력 = 0 바퀴 · 넘으면 알림).
- 365-3 B05 오른쪽 횡단 판 = 묶음 횡단(서버 cross-preview 지움 · 노선 · 계획고 바뀔 때마다) — 확인: 판 계획고 = B06 카드 계획고.
- 365-4 한 바퀴 정리 — 계획고 한 번 = 횡단 계산 한 벌 · B06 다시 그림 한 틀 한 번 · 중심점 좌우 = 묶음 한 바퀴 — 확인: 바퀴 · 그림 횟수 · 끌기 · ▲▼ 시간 전후. — 검증완료 — test_365 12 · 관련 555 통과 · typecheck 0 · ORCA 검증_sub7 · 끌기 놓음 1바퀴 124~156 ms · 저장 ▲ 1바퀴 125 ms(cross 5.4) · 초안 ▲ 94 ms · B06 고침 1바퀴 116 ms · 들어올 때 0바퀴 · B06 새로고침 = 측점 · 계획고 같음(세월교 곁 면적은 먼저 연 보기 따라 다름 · 남음) · 판 20+0 = 카드 · 세션 상세 = 저장 노선.
- 365-5 들어온 화면 무관 같은 면적 · 초안 소단 고침 — 확인: B05 먼저 · B06 먼저 · 새로고침 면적 같음. — 검증완료 — test_365 14 · 관련 574 통과(남 3 = 323-9 · 369-2 · 367-3 몫) · typecheck 0 · ORCA 검증_sub7 B05 끌기 · B06 먼저 · B05 먼저 새로고침 = 67 측점 계획고 · 절토 · 성토 같음(±0.01) · 열 때 1바퀴 414~451 ms · 초안 소단 = 구조물 구간 · 쪽 깊이 고침 1바퀴(Node 시험) · 세션 비우고 탭 닫음.
366. B05 평면 — 등고선 자물쇠 · 도구줄 · R 일반측점 (요구 240-1 · 3 · 11 · sub1 · Opus high)
- 정함(브레인): 자물쇠 = 가닥을 고른 때만 클릭 자리 옆(잠긴 높이 가닥을 다시 고르면 풀기 자물쇠 · 다음 클릭 · 휠 · 떠남에 숨김) · 도구줄 = [?] | ↶ ↷ | 3D | ⟲ ⟳ · 1m 등고선 · 절/성토선 · 거리 재기 | 측점 스냅(분석 지형은 있을 때 맨 오른쪽) · [맞춤] 지움(처음 열 때 맞춤은 그대로) · 측점 스냅 켬 = 곡선 가운데(MC)를 가까운 일반측점에(놓을 때 · 고친 IP 부터 끝까지 IP 를 들어오는 접선 따라 ±간격/2 · 고정 IP 안 움직임 · 못 놓는 곡선은 그대로 + 상태줄 「측점 밖 곡선 N개」) · 끔 = 자유 · 추천 [적용] 땐 안 맞춤 · 근거 2장.
- 366-1 등고선 자물쇠 고른 때만 — 확인: test_353_2 고쳐 씀 · 지나기만 = 안 뜸.
- 검증완료 — 지나기 안 뜸 · 고른 가닥 클릭 옆 · 잠금 뒤 빈 곳 · 다른 높이 = 숨김 · 고름 유지 · 같은 높이 = 풀기 · 휠 · 떠남 0.7 s 숨김.
- 366-2 평면 도구줄 순서 · 구분선 · [맞춤] 지움 · [?] 도구줄로 — 확인: 순서 · 구분선 4 시험 + 화면.
- 검증완료 — 화면 차례 그대로 · [?] 펼침 · 회전 동작 · 밝음/어두움.
- 366-3 측점 스냅 = R 일반측점(새 logic 파일 · 상태줄) — 확인: MC % 간격 ≈ 0 · 고정 IP 그대로 · 곡선 수 ≤ 측점 수 Node 시험 + 화면 IP 끌기.
- 검증완료 — 켬 = 측점 밖 곡선 26 → 3(앞 30 m 에 몰린 셋) · 맞춘 23곡선 MC 잔차 ≤ 0.009 m · 시종점 그대로 · IP 밂 ≤ 8.8 m · IP 끌기 = 앞 IP 그대로 · 끔 = 끈 IP 하나만 · 되돌려 원래 1078.0 m.
367. 종단 판 — 유토곡선 · 창 분할 · 자유지정 되돌리기 · 녹색 (요구 240-2 · 23 · 18 · 19 · sub2 · Opus high)
- 정함(브레인): 유토곡선 = 늘 전체 맞춤 보기(측점 연계 보기 · 스크롤 동기 · 측점선 지움) · 기본 = 횡단 기준 + 토량 분배 켬(저장 범례 판 올려 새 기본) · [토량 분배] = 분배 그림(평형선 · 띠 · 장비 도형) 보임/숨김 · [도형 위치 초기화] = [횡단 기준] 왼쪽 · [창 분할] = 펼친 때만(접으면 손잡이만) · 자유지정 동안 ↶ ↷ · Ctrl+Z · Ctrl+Shift+Z = 자유지정 안에서만(범위 · 시작 · 점 한 걸음씩 · 끝 = 큰 이력 한 걸음 · 막히면 열린 채) · 자유지정 선 · 점 · 미리보기 = 녹색(--color-success) · 범위 띠 보라 · 기울기 넘음 빨강 그대로 · 근거 3장.
- 367-1 유토곡선 보기 · 기본값 · 버튼 자리 — 확인: test_354_1 · 354_3 고쳐 씀 + 화면.
- 367-2 [창 분할] 펼친 때만 — 확인: 접음 = 단추 없음 · 높이 0 시험.
- 367-3 자유지정 되돌리기 · 다시하기 — 확인: helper_215_1 ⑥(점 둘 → ↶ → ↷ → 새 클릭이 ↷ 지움 · 큰 이력 안 건드림).
- 367-4 자유지정 녹색 — 확인: 밝음 · 어두움 색 시험.
- 367-5 종단 판 접은 뒤 횡단 카드 누름 — 확인: 접은 뒤 카드 자리 elementFromPoint = 카드
- 검증완료 — 까닭 = 종단 판 높이 transition(07-28 ·
294151f862부터 · 367-2 무관)이 그려지지 않는 탭에서 시작을 못 해 접어도 820px 그대로 → column 이 누름 받음 · transition 지움 · 시험 옛 CSS 실패 · 새 CSS 통과 · 화면(검증_sub2 · 5177) 펼침 820 · 접음 1 즉시 · 카드 네 자리 = 카드 · 진짜 누름 카드 고름 · 유토 판 열린 채 · 어두움 · B05 평면 같음.
- 검증완료 — 까닭 = 종단 판 높이 transition(07-28 ·
- 367-6 유토 손잡이 · 범례 안 겹침 — 확인: 범례 단추 셋 elementFromPoint = 단추
- 검증완료 — 범례 자리 = 손잡이 오른쪽부터 · 좁으면 줄 바꿈 · 시험(360 · 434 · 700 · 1162px) 단추 셋 + 손잡이 = 자기 · 1162 한 줄 · 옛 CSS 360 에서 [횡단 기준] 실패 · 화면(검증_sub2 · 5177) B06 · B05 좁은 칸 434 = 셋 줄 · 넓은 칸 1162 = 지금 한 줄 · 진짜 누름 [토량 분배] 끔 · 켬 · [횡단 기준] 누름 닿음 · 어두움 같음.
- 검증완료(367): 시험 · typecheck 통과 · 화면(검증_sub2 · 5177) 유토 폭 1162 = 칸 폭 · 측점선 0 · 범례 [도형 위치 초기화][횡단 기준][토량 분배] 기본 켬 · 접음 높이 0 · [창 분할] 숨김 · 자유지정 ↶↷ · Ctrl+Z · Ctrl+Shift+Z · Backspace · 새 클릭 ↷ 지움 · 비어도 큰 이력 안 감 · Enter = 큰 이력 한 걸음 · 선 · 점 밝음 #1f8a4c · 어두움 #3fbb6f · 띠 보라 · 넘음 빨강.
368. 종단 R 넣기 · 원지반 점 횡단 · 추가 측점 (요구 240-20 · 21 · sub6 · Opus high)
- 정함(브레인): 직선 안 측점 ▲▼ = 그 점에 R(기본 L) · 좌우 다음 R 점(없으면 시점 · 종점)이 축 · 사이 점 새 직선 위(355 「직선 안쪽 = 그대로」 뒤집음 · 꼭짓점 아닌 자리도 같은 규칙) · 원지반선 아무 점 클릭(도구 꺼진 때 · 정수 m) → 종단 칸 안 작은 창 = 그 자리 임시 횡단(지금 계획선 · 브라우저 같은 계산 · 격자 없으면 서버 미리보기) + [측점 추가] · [삭제] · [닫기] · 추가 측점 = 일반측점(카드 이름 빈칸 · 이름 「12+7」) · 종단 세로선 = 일반측점 색 점선 · B06 횡단 목록에 섬 · 노선 바뀌면 관 · 구조물처럼 좌표로 따라감 · 같은 m 이면 막음 · 끌기 없음 · 삭제 = 작은 창 + 우클릭 · [저장] 한 번 · 근거 4장.
- 368-1 ▲▼ 직선 안 = 그 점 R · 이웃 R 축(Pivot) — 확인: helper_355_1 ③ 바꿈 · ④ 더함.
- 검증완료 — test_355_1 5 통과(직선 안 80 · 꼭짓점 아닌 70: +0.1 · 축 40 · 100 그대로 · 사이 점 새 직선 위 오차 < 1e-6) · 193_1 · 234_1 · 344_2 · 349_0v 통과.
- 368-2 추가 측점 자료 · 심기(측점 한 벌 짝 TS ↔ 서버) · [저장] · 좌표 따라감 — 확인: 거울 시험 test_272_1 · 322_3 · 344_3 에 추가 측점 경우.
- 검증완료 — 거울 272_1 · 322_3 · 344_3(추가 측점 경우 · 같은 m 관 이김) · test_368_2(정수 m · 좌표 · 노선 +10 m 따라감) · 저장 차례 · 묶음 넷 다시 지음 통과 · 322_0_golden 1 실패 = 표 고르기 목록(borrow_pit) — 이 일과 무관.
- 368-3 원지반 점 작은 창 · 임시 횡단 · [측점 추가] · 점선 · 우클릭 삭제 — 확인: 시험 + 화면(추가 → B06 카드 → 삭제 → 되돌리기).
- 검증완료 — 검증_sub6 화면: 원지반 27 m 누름 = 작은 창 「1+7」 · [측점 추가] = 점선(일반측점 색 rgb 184,134,11 · 5 3) · ▲ = 27 키 하나 · B06 카드 1+7 이름 빈칸 · [저장] 뒤 새 탭 그대로 · 우클릭 「측점 삭제」 · 되돌리기 · 다시하기 · 2+0 자리 [측점 추가] 막힘 · 어두움 · 작은 창 그림 = 저장 계획선 기준(지금 계획선 브라우저 셈은 안 함) · 값 되돌림(추가 측점 · 27 계획고 · 옮겨진 기타 구조물 지움 · 관 초안 정수 m 맞춤은 저장됨).
- 368-4 작은 창 = 지금 계획선 — 확인: ▲ 뒤 창 계획고 = 카드 계획고
- 검증완료 — test_368_4(측점 틀 · 반경 · 확폭 = 추가 측점 묶음 측점) · 322_0 golden 다시 뜸 통과 · 검증_sub6 화면: 27 m 창 계획고 869.728(= 묶음) → 1+0 ▲(저장 안 함) 뒤 869.968 바로 바뀜 · [측점 추가] 뒤 B06 카드 869.9677(차 < 0.001 · 사면 11.72 · 절토 2.76 · 성토 13.07 같음) · 저장 안 함(서버 그대로).
- 368-5 test_323_9_save_redraw 깨짐 = 가짜 저장 단계에 plusStations 빠짐(진짜 GET → 오류 알림) — 확인: helper 에 가짜 단계 · 코드 안 고침.
- 검증완료 — test_323_9 세 파일 · test_368_2 · test_design_store_save 22 통과(기대 차례 그대로).
369. 배수 구조물 자리 — 기본 = 세류선 교차만 · [자동 제안] 두 방식 (요구 240-7 · sub5 · Opus high)
- 정함(브레인): 자동설계 · 노선 [저장] · 추천 [적용] · 스냅샷 없는 [초기화] · [배관 배치 초기화] = 세류선 교차 자리만(100 m 보충 · 오목 보충 끔) · 배수유역 머리 [자동 제안] → ① 전체 자동(세류선 + 100 m 규칙으로 다시 · 같은 자리 관 속성 · id 유지) ② 지정 포함 추가(지금 관 그대로 + 빈 구간 보충) · 결과 = 초안(캐시) · [저장] 때 정본 · 되돌리기 한 걸음 · 제안 목록 [적용] = 관경 · 시설만(관 자리는 [자동 제안]) · 새 관 = 등록부 기본값 · 간격 100 m(env) · 이미 저장된 관 · 초기값 그대로 · 근거 7장(지식DB 배수시설_배치.md:55,60 교차점 필수 · 간격 보충).
- 369-1 서버 auto 칸(없음 = 세류선만 · all · add) · 노선 저장 오목 보충 끔 · 새 관 기본값 — 확인: 세 모드 시험 · test_346_3 고쳐 씀.
- 검증완료 — test_369_drainage_auto 6 · test_346_3 두 벌 25 · 배수유역 시험 12 벌 81 통과 · typecheck 통과.
- 369-2 배수유역 [자동 제안] 두 방식 · 제안 [적용] = 관경 · 시설만 — 확인: 화면(① · ② · 되돌리기 · [저장] 뒤 정본).
- 검증완료 — 검증_sub5 화면: 초기화 관 1 → ② 관 11(새 관 Ø1000) · ① 관 11(세월교 352 m · 같은 자리 관경 유지) · 되돌리기 · 다시하기 한 걸음씩(세월교 되살아남) · [적용] = 시설만 · 어두운 화면 · 시험 349 · 347 · 369 통과.
- 369-3 [업데이트] 진짜 누름 — 확인: 관 표지 위 단추 누름 = 계산 시작
- 검증완료 — 검증_sub5 화면: 관 표지 7 을 [업데이트] 한가운데 아래로 옮기고 진짜 누름 → pointerdown · pointerup · click 모두 옴 · drainage/live 1회 · 세부유역 11 · [자동 제안] 켜짐 · test_369_3 2(옛 코드 = 실패 재현) · 347_2 · 349 흐름 15 통과 · typecheck 통과.
- 369-4 배수유역 판 홀로 서기 — 369-2 가
B05_Profile_UI_Drainage_Live.ts에서 종단_Profile_History를 직접 가져옴(test_b05_drainage_side 실패) →_Panel_Types약속(콜백 · 창구)으로. 확인: test_b05_drainage_side 통과 · 되돌리기 화면 그대로.- 검증완료: test_b05_drainage_side 4 · test_369_drainage_auto · test_346_4 · test_349 · 판 · SideTool 시험 160 통과 · typecheck 0 · Panel
pageReplaying도 약속(isReplaying)으로 · 화면 = 브레인 마무리(검증 대기).
- 검증완료: test_b05_drainage_side 4 · test_369_drainage_auto · test_346_4 · test_349 · 판 · SideTool 시험 160 통과 · typecheck 0 · Panel
370. B06 사면 이동 · 멈춤 · 선 고름 공용 칸 (요구 240-13 · 14 · 22 · sub4 · Opus high)
- 정함(브레인): 사면 이동 = 옮긴 노견에서 절/성 판정(짝 두 벌) → 넘어가면 그 쪽 사면 기울기로 원지반까지 · 측구 = 자동 판정 따름(사용자가 켠 측구 유지) · ◀▶ 가 절도 성도 아닌 점(노견 끝 = 원지반)을 지나면 그 점에 한 번 섬 · 쪽마다 설계선 ∩ 원지반 교차점 손잡이(늘 보임 · 고르면 ◀▶) · 절 ↔ 성 넘어가도 고름 유지 · 암 경계선 = 고름 · 방향키 ▲▼ · 세로 끌기(놓을 때 한 번) · 아래 띠 왼쪽 칸 = 공용 칸(안 고르면 암 ▲▼ · 고르면 그 선 제목 · 버튼 · 값 한 줄) · 우측 위 라벨 · 떠 있는 선 조정창 걷음(구조물 조정창 그대로) · 근거 5 · 6장.
- 370-1 절 ↔ 성 넘어감 판정 차례(TS ↔ 파이썬 짝) — 확인: 거울 사례 「마루 너머 = 성토 1:n」.
- 370-2 멈춤 · 교차점 손잡이 · 고름 이어받기 — 확인: Node 시험 + 화면.
- 370-3 암 경계선 고름 · 키 · 끌기 · 공용 칸 — 확인: test_137 · 179_1 · 318 고쳐 씀 + 화면(밝음 · 어두움).
- 검증완료 — 시험 98 · typecheck 통과 · 검증_sub4 화면: 34+0(계획고 +1.0 임시) ◀▶ 1.3 → 1.356 멈춤 → 양측 성토 · 우 성토 1:n · 교차점 고름 유지 · 암 ▲▼ −0.5 → −0.3(계획고 그대로) · 끌기 −2.1 한 번 · 어두움 · 바꾼 값은 탭 캐시째 버림(저장 안 함) · 검증 대기.
- 370-4 멈춤 자리에서 못 넘어감 — 브레인 화면: 검증_브레인232 54+0 좌 ◀ = 0.9 → 0.936 멈춤 뒤 ◀ 계속 눌러도 0.936(넘어가지 않음). 까닭:
extendStop멈춤값 0.001 m 반올림이 교차 앞에 떨어지면 남은 틈 > 1e-4 → 다음 걸음이 같은 교차를 다시 찾아 now 그대로. 고침: 멈춤 자리 판정을 379-1 「절·성토 없음」(±5 mm)과 같게 — 지금 자리가 그 안이면 next 그대로. 확인: helper_370_2 에 「반올림이 교차 앞」 사례(54+0 같은 꼴 · 0.936 다음 걸음 = 1.036) + 화면. - 검증완료(370-4) — 잣대 상수 ON_GROUND_M 하나(extendStop · edgeOnGround) · helper 2.736 → 2.836(옛 잣대면 ≈ 2.737) · test_370_2 · 370_3 · 318 · 173 36 통과 · typecheck · 화면은 브레인 합친 뒤(검증_sub4 교차 측점 없음) · 검증 대기.
- 370-5 넘어간 사면이 원지반과 못 만나면 고름이 풀림 — 브레인 화면: 검증_브레인232 54+0 좌 ◀ 0.94 멈춤 → 1.00 넘어감(370-4 통과) · 성토 사면 「사면 미교차」(20 m 안 못 만남 · 교차점 손잡이 없음) → 고름 풀려 공용 칸이 「암 경계」로 바뀜 · 같은 자리 단추를 계속 누르면 암 경계가 움직임(브레인이 실제로 −0.5 → −0.8 움직임 · ↺ 되돌림). 고침: 교차점 손잡이가 없으면 같은 쪽 사면 선(성토 키)으로 고름 이어받기 · 그것도 없으면 고름 유지한 채 ◀▶ 남김(암 경계로 넘기지 않음). 확인: 시험(손잡이 없는 넘어감) + 화면.
- 검증완료(370-5) — pickedLineAt 이어받기 = 같은 키 → 같은 쪽 손잡이 → 같은 쪽 첫 절·성토 사면 선(손잡이 키 고름도) · 시험 370_2 등 154 통과 · typecheck · ORCA 5179 검증_sub4 0+0 좌 손잡이 고름 ◀ +7.5 m = 「⚠ 사면 미교차」 · 손잡이 사라짐 → 공용 칸 「사면 이동 (좌)」 ◀↺▶ 유지(암 경계 아님) · ◀ 한 번 더 +7.6 · ↺ = 2.30 m 손잡이 고름 되돌아옴 · 캐시 지움 · 「둘 다 없음 = 고름만 유지」 갈래는 안 만듦(넘어간 성토 사면은 설계선 끝까지 그려져 늘 있음) · 검증 대기.
371. B06 벽 성토 이음 · 관 기울기 글 · 맹암거 하단 (요구 240-15 · 16 · 24 · sub8 · Opus high)
- 정함(브레인): 같은 벽 형상(관보호공 · 흙막이 · 옹벽 · BOX · 세월교 흙막이 · 다단 · 돌쌓기) 성토 위 이음 = 윗면 사면 쪽 끝에서 0.1 m · 바닥 추가 성토 시작 = 전면 경사 ∩ 하단 수평선(벽 발끝) · 기본 벽 자리 = 새 이음 기준(노폭 연장 0 유지) · 세월교 · 박스 수평공간 그대로 · 관 글 = 「… L=8 m (7.6), S=2.5%」(소수 한 자리 · 툴팁 매설 경사 지움 · B07 도면 안 넣음) · 맹암거 = 노면 표준(낮은 쪽 한 경사 · 측구 없음) · 암거 경사 = 맹암거 영역 하단 경계(높은 쪽 노면 끝 − 높이에서 경사로) · 3D · B07 같은 함수 따라감 · 근거 5 · 6장.
- 371-1 벽 성토 이음 0.1 m · 바닥 시작 · 기본 자리 — 확인: test_b06_wall_shape_unified · helper_79/80/186_1 + 서버 묶음 다시 지음.
- 정함(브레인 답): 다단 사이 시작 = 늘 윗단 발끝(원지반 무관) · 마지막 벽 → 끝 구간 · 관 유출 벽 = 발끝이 지반 위에 뜬 벽만 발끝 · 선 · 묻힌 벽은 옛 시작(기준선 ∩ 전면).
- 검증완료 — 벽 · 관 · 다단 시험 137 통과(test_322_0_golden 1 실패는 고치기 전 코드도 같음 · 371 무관) · 관 길이 7.9 → 7.5 · 5.8 → 5.4 m · 화면(검증_sub8 4+5) 윗면 끝 ↔ 성토 이음 0.100 m · 윗면 폭 0.675 m.
- 371-2 관 글 S= — 확인: 글 시험(세월교 · 박스 없음).
- 검증완료 — test_371_2_pipe_slope_text 4 통과(「…, L=8 m (7.5), S=0.9%」 · 역경사 S=0.0% · 관 숨김 글 없음) · test_225_1 통과 · 화면 4+5 「L=8 m (7.9), S=0.9%」 · 툴팁 매설 경사 없음 · 세월교 글 S 없음 · 어두움 읽힘.
- 371-3 맹암거 노면 표준 · 하단 = 암거 경사 — 확인: test_288 · 349_0n 고쳐 씀 + B07 묶음.
- 검증완료 — test_288 · 349_0n · 314 · 286_1 27 통과(노면 5 % · 암거 3 % · 높이 1 m 하단 = 99.15 에서 3 % · 성토 교점 −4.39 m) · 묶음 셋 다시 지음 · test_52_6 1 실패는 M02 기본 3 % 탓(371 무관) · 화면 2+0 맹암거(저장 안 함 · 지움) 노면 3 % · 암거 8 % 하단 8.01 % · 높은 쪽 깊이 1.000 m · 경사 비면 하단 3.0 %(노면 평행).
- 371-4 흠 아님(가린 B군 옛 종류 · 사람은 못 고름 — underdrain = 표 형상 none · 목록 hidden(223-2) · 드롭다운 option.hidden · 스크립트 select --value 가 고른 길 · 그리는 맹암거 = A군 cross_underdrain) · B06 폼으로 넣은 맹암거가 카드에 안 나옴 — 브레인 화면: 검증_브레인232 B06 구조물 배치 B · 맹암거 · 시작 6+0 · 종료 7+0 [추가] = 목록 「6+0~7+0 맹암거」 · 초안 type_id underdrain · options {} · 6+0 · 7+0 카드 · 상세 맹암거 그림 0 · 측구 그대로(새로고침 뒤도). 371-3 화면(2+0 · 저장 안 함)은 나왔음 — 길 차이 가림(높이 · 경사 빈 값 · 폼 길 · 다시 그림 차례) · 흠이면 고침. 확인: 화면(폼 길 · 높이 · 경사 빈 값/있음).
372. 이름 · M02 실무자료 · CAD 글 (요구 240-10 · 5 · 6 · 9 · sub3 · Sonnet high)
- 정함(브레인): 페이지 이름 「종단설계」 → 「노선설계」(좌측 패널 제목 · ☰ 단계 · 진행 표시 · 안내 · 메일 · 도움말 제목 · 영문 Route Design) · 하단 「종단 보기」 → 「노선 보기」(Route view) · 종단 그래프 · 종단면 · 단축키 「B05 종단」은 그대로 · M02 실무자료 [저장] 사전조합 = 로그인한 사람 개인 층(화면 층 무관 · [삭제]는 화면 층 쓰기 권한 때만) · 회사 · 마스터는 가져오기 길 · 그 복사에서 실무자료 표시 · 전국자재 지킴 · 단가산출 지정 영역 = B~F 열 · CAD 글 = 조합 없으면 종류 이름만(측점 맨 위 한 번 · 같은 측점 같은 종류 한 줄 · 저장된 칸 그대로) · 근거 2 · 6 · 8장.
- 372-1 이름 바꿈 — 확인: 글 시험 짝(design_view_parity) + 화면. 검증완료 — 시험 통과 · 화면(B05 「노선설계」 · B06 「노선 보기」 · 진행 표시 「노선설계」).
- 372-2 M02 개인 전용 · B~F · 복사 때 본뜬 지킴 — 확인: test_m02_hopyo_screen · seam 고쳐 씀 · 다른 층 화면에서 [저장] = 개인 층에 생김. 검증완료 — 시험 통과 · 화면은 개인 층 엑셀 보기 창만(회사 · 마스터 층에 실무자료 파일 없음 · 올리기 금지라 다른 층 [저장]은 시험으로만).
- 372-3 CAD 글 종류 이름 — 확인: test_265 · 166_1 짝(TS ↔ 파이썬). 검증완료 — 시험 통과 · 8+13 세월교 상세 CAD 글 = 「세월교」.
373. B08 거리이정표 — 연결 없이 주소 · 경로 저장 · 녹색 점 (요구 240-12 · sub3 다음 · Sonnet high)
- 정함(브레인): 경로 탭 지도 = 연결 없어도 소재지 넣기(지도 누름 · [소재지] = 등록 창 재사용) · 연결 = 거리 · 경로 좌표(소수 5자리 · 점 줄임) 캐시 → [저장] 때 정본 · 다시 이으면 옛 거리 · 선 지우고 새 값(실패 = 빈칸 + 까닭) · 안 이은 기준점에 이으면 「시점 미연결」 · 녹색 연결 점 크게(r 6 → 9 · 진하게) · 근거 8장.
- 373-1 주소 · 경로 저장 · 다시 이음 표시 — 확인: 시험 + 화면(운반 자동 상자 주소 넣기). 검증완료 — 시험 통과(test_373 · 244_9 · 244_13) · 화면: 운반 자동 상자 지도 누름 = 주소 · 연결 = 4.9 km + 선 118점 저장 · 새로 고침 뒤 선 그대로(길찾기 0회) · 실패 = 빈칸 + 까닭 · 다시 이음 = 옛 거리 · 선 지움 · 시점 미연결 안내.
- 373-2 녹색 점 크기 — 확인: test_254_2 고쳐 씀. 검증완료 — 시험 통과 · 화면 밝음 · 어두움.
374. 돋보기 — 지금 보이는 화면 그대로 (요구 240-17 · sub2 다음 · Opus high)
- 정함(브레인): 복제 원본 = 화면 전체(body · 모달 포함) · 움직이는 동안 다시 뜨지 않음(멈춘 뒤 한 번) · 이동 = 합성층 · 모달 입력칸에선 Z 키 안 켬(우클릭 길게 누르기 그대로) · WebGL · CAD 칸은 빈칸(한계) · 근거 8장.
- 374-1 돋보기 원본 · 끊김 — 확인: helper_218_1 고쳐 씀 + 화면(모달 · 빠른 움직임).
- 검증완료(374): 시험 63 통과 · 화면 설명서 모달 안 확대 · 원 = html 아래(자기 복제 0) · 뜨기 66 ms 한 번 · 빠른 움직임 40걸음 최대 틀 25 ms · 50 ms 넘음 0 · 움직이는 동안 다시 뜸 0 · WebGL · CAD 칸 빈칸 = 한계.
375. 요구 240 마무리 — 합치기 · 브레인 화면 검증 · 아티팩트 (브레인)
- 정함(브레인): 요구 241 과 함께 끝에 한 번 — 검증 · 아티팩트 하나(385).
- 375-1 합치기 · 서버 묶음 · 고친 대상 시험 · typecheck — 확인: 묶음 다시 지음 · 시험 통과.
- 375-2 브레인 사용자처럼 브라우저 검증(요구 1~24 · 수치 · 사진) — 흠은 창에 고침 → 다시 잼.
- 375-3 아티팩트 보고(요구별 결과 · 수치 · 사진 · 정함 목록 · 남은 것).
- 검증완료(375 · 385와 함께) — 아래 385 줄.
376. B07 구조물 도면 컨테이너 (요구 241-1 · sub3 · Opus high)
- 정함(브레인): 좌측 패널 「구조물 도면」 카드(늘 카드) = B05 · B06 배치에 연결된 구조물 조합 도면을 조합 키로 중복 없이 한 장씩 단추(더한장은 장마다) · 열면 CAD 에 프로젝트 사본 도면 + 도각(도번 · 도면명) · 확정 가능 · 고치기는 M02/B08 · 09-13 「구조물도 B08 이관」 결정은 이 요구로 B07 에 다시 들임(B08 모달 그대로) · 근거
docs/raw/조사/2026-10-17_376_요구241_분석.md1장. - 376-1 서버 목록 · 단건(linked_snapshots · structure_frame · _drawing_list 맨 뒤 · _read_drawing 분기 · 확정본 kind) — 확인: 시험(조합 둘 · 같은 조합 두 배치 = 단추 하나 · 도면번호 안 밀림).
- 검증완료: test_376 7개 · 관련 시험 44 통과 · 8005 API 목록 맨 뒤 17번 · 단건 616 개체 + 가이드 · B09 인쇄 목록 중복 막음 한 줄.
- 376-2 좌측 카드 · 단추 · CAD 열기 — 확인: 화면(검증 프로젝트 조합 도면 열림 · 밝음 · 어두움).
- 검증완료: 검증_sub3 빈 카드 글 → B05 기슭막이 + 조합 SP3-000015 [저장] → 단추 1 · CAD 도면 + 도각(도면명 · SD-000006) · 밝음 · 어두움 · [확정] → 다른 도면 갔다 와도 확정본 · 되돌림(지움 · [저장] · 장부 흔적 지움) · B05 [저장]이 관 측점을 정수로 맞춰 횡단 5장 → 4장(B05 고유 동작 · 그대로 둠).
377. B07 전개도 (요구 241-2 · 3 · sub8 · Opus high)
- 정함(브레인): 서버 파이썬 생성기(DXF 에도 남게 무늬 = 기본 도형) · 묶음 = (구조물 종류 · 형태)마다 한 장(관보호공 = 배관 유입 · 유출 + 추가 흙막이 · BOX · 세월교 흙막이 = 각 그룹 · 흙막이 · 옹벽(wall_form) · 노면보호공 콘크리트 · 쇄석 포설) · 박스 = 종단 길이(거리 = 종점 − 시점) × 벽 높이 H(포장은 폭 B) · 양 끝 측점 「No.04+08」 · 「H=2.0」 · 아래 「L=6.0m」 · 우하단 표(측점 · 거리 · 높이/폭 · 면적 · 계) · 도각 · 길이 없는 것 빼고 「길이 미입력 N곳」 · 높이 빈칸 = 박스 + 「H=미입력」 · 추가 단 = 별도 박스 · 축척 자동 · 근거 1장 · 그림 docs/raw/요구_1017/그림_241_*.png.
- 377-1 전개도 자료 · 묶음 · 그림 생성기(새 파일) — 확인: 시험(측점 표기 · 묶음 · 거리 · 면적 · 계 = 그림 예 85 m × 3.5 = 297.5).
- 377-2 좌측 「전개도」 카드(하위 묶음) · CAD 열기 · 내보내기 — 확인: 화면 + DXF 내보내기 무늬 · 표 남음.
- 검증완료(377): test_241 13 통과 · typecheck · 검증_sub8 흙막이 · 옹벽 · 돌쌓기(메) · 포장 넣어 [저장] → 카드 5장 진짜 클릭 · 밝음/어두움 · 포장 No.22+00~No.26+05 85.0 m · DXF 무늬 선 9,709 · 표 글 남음 · 넣은 것 지우고 [저장] 되돌림(관 정수 측점 맞춤으로 횡단 장 5 → 4 = B05 저장 동작).
- 377-3 test_b07_cross_overlay_extent 기대값 어긋남 까닭 가림 — 371-1(벽 0.5 m 내려가 다단 없음 · 끝 선 짧아짐) 의도 바뀜 → 기대값 갱신(x_max 13.8216 → 10.4804 · y 범위 17.7502 → 15.8101).
- 검증완료(377-3): 371-1 TS 만 옛 판이면 옛 기대값 3 통과(까닭 확정) · build:b07-extent 다시 지음 · overlay_extent 3 · wall_shape_unified · 79 · 80 · 186_1 합 28 통과.
378. ☰ 서랍 — 폭 · 구분 · 홈페이지 메뉴 접기 (요구 241-4 · sub2 · Sonnet high)
- 정함(브레인): 폭 240 px · 바탕 --color-surface(패널과 다름) · 프로젝트 화면 오른쪽 가장자리 2 px 강조색 · 프로그램 · 회사소개 · 소식 · 교육 · 기술지원 = 접는 묶음(details · 기본 접힘 · 기억 안 함) · 근거 2장.
- 378-1 서랍 폭 · 바탕 · 가장자리 · 메뉴 접기 — 확인: test_device_drawer 고쳐 씀(묶음 순서 · 접힘 · 펼쳐도 서랍 열린 채 · 폭 < 패널 · 바탕 ≠ 패널) + 화면(밝음 · 어두움). 검증 대기 — 검증완료: 시험 2 통과(실제 브라우저 포함 · 폭 240 < 패널 · 바탕 ≠ 패널 · 접힘 기본 · summary 누름 = 펼침 + 서랍 유지) · typecheck 통과 · 커밋
1a96aa196· 화면 확인(밝음 · 어두움 · 좁은 폭)은 ORCA 탭 차례 못 받아 사용자 몫.
379. B06 — 교차점 = 사면처럼 · 좌상 표 지움 · 표고 상자 둘 (요구 241-5 · 6 · 7 · sub4 · Opus high)
- 정함(브레인): 절성토 없는 자리 교차점 = 마우스 올리면 사면과 같은 강조 · 누르면 사면과 같은 고름(제목 「사면 이동 좌/우」 · 「절·성토 없음 · 」 · ◀↺▶ · 방향키 · 원 8 px) — 올리기만으로 고르지는 않음 · 카드 좌상 면적표 지움(모달 표 그대로) · Y축 상자 둘 = 원지반고(녹색 = 원지반선 색) + 계획 중심고(보라 = 설계선 색 · 십자선 값) · 겹치면 원지반 상자만 비킴 · 값 그대로 · 근거 3장.
- 379-1 교차점 hover · 제목 · 정확히 0 자리 시험 — 확인: helper_370_2 section(stop) 경우 + 화면. 「절·성토 없음」 판정 = 노견 끝 = 원지반 ±5 mm(브레인 A).
- 379-2 카드 좌상 면적표 지움 — 확인: test_173 고쳐 씀 · 모달 표 그대로.
- 379-3 표고 상자 둘 · 겹침 비킴 — 확인: test_318 고쳐 씀(겹침 경우 원지반 y 만) + 화면.
- 검증완료 — 시험 28 통과 · typecheck · ORCA 5179 검증_sub4(올림 강조 · 누름 ◀↺▶ · 방향키 · 표 0 · 상자 색 = 선 색 밝음/어두움 · 겹침 ±16 px · 상세 창 · 되돌림) · 검증 대기.
- 379-4 합침 시험 셋 맞춤 — 까닭 = 시험이 옛 모양(helper_150 가짜 선택자가 370-3
:not(.b06-chart__rock-hit)못 읽음 · test_294_1 은 307 에서splitPipePick로 옮긴 길) · 화면 흠 아님 · 시험만 고쳐 씀. - 검증완료 — test_150 · 294_1 · 173 · 318 · 370_2 · 370_3 47 통과 · 검증 대기.
380. 사토장 · 토취장 — 횡단 그림 · 조절 없음 · 기존 측점만 · CAD 글 (요구 241-8 · sub5 · Opus high)
- 정함(브레인): 부품 처음값 사토장 형상 · 3D = 없음(횡단 그림 · 사토 단면 셈 · 3D 면 끔) · 자리 = 가까운 기존 측점(일반 · 구조물 · 추가) 맞춤(폼 · 끌기 · 우클릭 · 방향키) · 새 측점 안 심음 · 상세 모달 CAD 글에만 「사토장 · 부피」 줄(저장된 칸은 그대로) · 사토 단면 셈 코드 = B08 수량 · 유토 배분이 안 쓰면 지움(쓰면 남기고 보고) · 토취장은 사용자가 M02 에서 켬 · 근거 3장.
- 380-1 처음값 · 남은 사토 값 정리 · 죽은 길 — 확인: test_322_1 · 349_0n · spoil 시험 고쳐 씀 · B08 수량 시험.
- 380-2 기존 측점 맞춤 · CAD 글 — 확인: 시험(아무 m 입력 = 가까운 측점) + 화면(카드 그림 없음 · 모달 CAD 글).
- 검증완료(380 · 검증 대기): 시험 · typecheck 통과 · 화면 폼 47 m → 40 · 끌기 → 60 · 우클릭 33 m → 40 · 카드 사토 그림 0 · 모달 CAD 「사토장 부피 150㎥」 · 빈 부피 = 이름만 · 방향키 = 관만 옮겨 사토장 몫 없음.
- 380-3 노선 따라간 site(사토장 · 토취장) = 새 노선 일반 측점 맞춤(파이썬 · TS 짝) · test_322_2 마스터 판 독립 — 확인: test_380_3 거울 + 화면(노드 끌기 뒤 사토장 측점 = 기존 측점).
- 검증완료(380-3 · 검증 대기): 시험 · typecheck 통과 · 화면 노드 끌기 노선 1078 → 1099.3 m · 관 +21 m · 사토장 240 → 260(일반 측점 · 정수 따라감이면 261) · 저장 안 함 · 탭 닫음.
- 380-4 글만 있는 상세 CAD 맞춤 — 브레인 화면: 검증_브레인232 5+0 사토장(부피 빈 값) 상세 「표 위 CAD」 = 「NO.5」 · 「유용토운반작업장(사토장)」 두 줄이 크게 확대돼 둘째 줄 아래 잘림(4+16 배관 = 원 마크와 함께 보통 크기). 고침: 글만 있어도 다른 측점과 같은 글 크기 · 잘림 없음. 확인: 화면(사토장 · 부피 있음/없음 · 배관 측점 그대로).
- 검증완료(380-4 · 검증 대기): CAD 맞춤 최소 높이 16(B06 상세만) · 시험 cad fit-min-height 3 · note_cad 41 통과 · 화면 글 높이 2+0 사토장(빈 값) 20 px · 3+0(150㎥) 20 px · 4+5 배관 16 px(원 마크 · 긴 옵션 줄) · 모든 줄 칸 안(잘림 0) · 어두움 같음 · 저장 안 함 · 복구본 지움 · 탭 닫음.
381. B05 평면 — 되돌리기 아이콘 · 절성토선 색 · [측점] [기울기] · 교각점 (요구 241-9 · 10 · 11 · 14 · sub6 · Opus high)
- 정함(브레인): 되돌리기 · 다시하기 = 곧은 꼬리 갈고리(↩ ↪) 그림(평면 · 종단 도구줄 같이) · 절토 = 붉음(밝음 #e11d48 · 어두움 #ff6b6b) · 성토 = 청록(밝음 #0d9488 · 어두움 #2dd4bf) · 굵기 도로 끝 1.8 · 비탈 끝 2.6 · [측점] [기울기] = 절/성토선 왼쪽 켬끔(기본 켬 · 페이지 동안 · 측점 끄면 눈금 집기도 끔 · 시점 · 종점 이름표 남김 · 기울기 끄면 높이 요청 멈춤) · 교각점 반지름 6 · 집기 12 px · 맨 위에 그림 · 마우스 근처 = 고리 강조 · 겹치면 노드 중심 6 px 안 = 노드 · 밖 = 가까운 쪽(횡단 눈금과 한 함수) · 근거 4장.
- 381-1 아이콘 · 색 · 굵기 — 확인: chrome_modal · 346_2 시험 고쳐 씀.
- 381-2 [측점] [기울기] 켬끔 — 확인: 시험(끄면 눈금 집기 없음) + 화면.
- 381-3 교각점 크기 · 차례 · 맴돔 강조 · 집기 우선 — 확인: test_b05_routeedit_pick 통과 + 겹침 경우 시험.
- 검증완료(381 · sub6): 시험 102 통과 · typecheck · ORCA 5181 검증_sub6 — 맴돔 노드 grab · 눈금 pointer · 겹침 경계 노드/눈금 갈림 · 눈금 누름 = 12+0 횡단 · 노드 누름 = 고름(편집 없음) · [측점] 끔 = 눈금 사라짐 · 집기 없음 · [기울기] 끔 = 라벨 사라짐 · 어두움 절토 #ff6b6b · 성토 #2dd4bf · 바꾼 값 되돌림(계획노선 1078.0 m).
382. B05 우측 횡단 판 양식 · 평면 고름 연동 · 파란 법선 (요구 241-12 · 15 · sub7 · Opus high)
- 정함(브레인): 우측 판 = 패널 양식(ui_template_side_panels — 손잡이 · 머리 · 폭 끌기 · 열림 기억) · 자리는 지도 위 덮개 그대로(235-2) · 평면 = 공용 고름 한 칸 구독(일반측점 고르면 그 측점 횡단 판 · 눈금 강조 · 구조물 고르면 그 자리 마름모) · 평면 눈금 클릭 = 공용 고름에 적음 · 파란 법선 = 측점 열쇠로 들고 묶음 차례마다 다시 짚음 · 폭 = 그 측점 발자국 기록 비탈 끝 좌우 · 절성토 색 · 일반측점만 · 근거 4장.
- 382-1 우측 판 양식 — 확인: chrome_modal 시험 고쳐 씀 + 화면(덮개 · 폭 끌기 · 열림 기억).
- 382-2 고름 연동 · 법선 갱신 — 확인: 시험(노선 고친 뒤 법선 = 새 발자국 · 다른 보기 고름 = 평면 판) + 화면.
- 검증완료(382 · sub7): 시험 84 통과 · typecheck · ORCA 5182 검증_sub7 — 손잡이 폄 = 판 460 px 지도 위 덮개(지도 폭 그대로) · 끌기 611 px 기억 · 횡단 보기 다녀와도 열림 · 폭 그대로 · 접힘 = 손잡이만 · 눈금 클릭 = 고름 at 200 · 종단 10+0 강조 · 법선 grid:10 좌 19.8 성토 · 우 3.99 절토 = 발자국 선 끝 · 노드 끌기 뒤 좌 9.55 · 우 5.49 새 선 끝 · 이전 횡단 남음 · 종단 11+0 고름 = 평면 11+0 · 세월교 고름 = 8+15 마름모 · Esc = 법선 · 판 비움 · 밝음 색 확인 · 바꾼 값 되돌림(되돌리기 · 취향 키 지움).
383. R = 일반측점 기본 제약 · 노선 추천 · 방향키 · [재계산] (요구 241-13 · 16 · 18 · sub1 · Opus high)
- 정함(브레인): 「MC = 서로 다른 일반측점」 = 사용자 규칙(지식DB 근거 없음 · 곡선 간격 ≥ 20 m) · 새 초기 노선 = 서버가 맞춤 + 측점 스냅 켬 · 추천 = 후보마다 맞춘 선으로 고르기 · 쓸기(ALGO 5 · 측점 밖 0 후보 앞세움 · 남은 곳 「못 지킨 구간」) · 추천 [적용] = 스냅 켬 저장 · 옛 저장 프로젝트 깃발 그대로(말없이 측점 안 바뀜) · 손 편집 못 맞춘 곡선 = 그대로 + 개수 · 교각점 방향키 0.1 m(화면 축 · Shift ×10 · 누르는 동안 옮김 · 뗄 때 한 걸음 · 스냅이면 그때 맞춤 + 상태줄 「실제 이동 · 함께 밀린 IP」) · 평면을 누른 뒤 ▲▼ 는 종단으로 안 감 · [재계산] = 측점 맞춤 오른쪽 같은 줄 · 늘 보임(바꾼 것 있을 때만 켜짐) · 근거 5장.
- 383-1 초기 노선 맞춤 · 추천 후보 맞춤(ALGO 5) · [적용] 깃발 — 확인: 시험(새 사본 측점 밖 ≈ 0 · 옛 사본 깃발 · 측점 그대로).
- 검증완료 — 시험 153 통과 · 검증_sub1 새 초기 노선 곡선 25 · 측점 밖 0 · 추천 측점 밖 곡선 = 「못 지킨 구간」(station) · 첫 셈 74.6 s → 42.6 s · 검증 대기.
- 383-2 교각점 방향키 — 확인: 시험(0.1 m · 스냅 때 뗄 때 맞춤 · 종단 ▲▼ 안 샘) + 화면.
- 검증완료 — 시험 35 통과 · 화면(검증_sub1 · 5174) ▲ = 북 0.100 m · Shift+→ = 동 1.000 m · 스냅 켬 「실제 이동 0.4 m · 함께 밀린 IP 6곳」 · 「같은 측점」 안내 · 평면 누른 뒤 ▲▼ 종단 안 바뀜(종단 누른 뒤엔 바뀜) · 값 되돌림 · 검증 대기.
- 383-3 [재계산] 자리 — 확인: 화면(측점 맞춤 오른쪽).
- 검증완료 — 화면 측점 맞춤 오른쪽 8 px 같은 줄 · 늘 보임 · 칸 바꾸면 켜짐 → 재계산 뒤 꺼짐 · 밝음/어두움 · 비중 계산 「No.12+12.4 측점 밖 7.6m」 표기 · 검증 대기.
384. B05 · B06 한 페이지 · 캐시 공유 — 방법 제시 (요구 241-17 · 브레인 · 코드 X)
- 근거: 분석 6장(같은 자료 여러 벌 · 두 페이지처럼 도는 자리 열한 곳 · 목표 원칙 일곱 · 옮기는 차례 0~7).
- 384-1 사용자 답(요구 242) = 제안대로 반영 뒤 판단 · 편의성 · 보안 고려 → 386 · 387 · 388.
385. 요구 240 · 241 마무리 — 합치기 · 브레인 화면 검증 · 아티팩트 (브레인)
- 385-1 합치기 · 서버 묶음 · 고친 대상 시험 · typecheck.
- 385-2 브레인 사용자처럼 브라우저 검증(240 V21~V31 남은 것 + 241 목록) — 흠은 창에 고침 → 다시 잼.
- 385-3 아티팩트 보고 하나(240 · 241 요구별 결과 · 수치 · 사진 · 정함 목록 · 384 방법 제시 · 남은 것).
- 검증완료(385) — 합침 · 묶음 다섯 · CAD 앱 다시 지음 · typecheck 0 · 고친 대상 시험 통과(남은 실패 = 옛 302_1 · 254_1 · 52_6) · 브레인 화면 V1~V47 · 흠 넷(369-3 · 370-4 · 370-5 · 380-4) 고친 뒤 다시 잼 · 371-4 흠 아님 · 아티팩트 https://claude.ai/artifact/XAtt2TrSurCzPAygQhrCa5 · 검증 대기.
386. 한 페이지 ① — 기준 · 페이지 자료 줄 · 묶음 입력 · 저장 한 줄 (요구 242 · 384 실행 · sub7 · Opus high)
- 정함(브레인): 384 방법 그대로 · 차례 0 → 2 → 3 → 6 · 5단계(보기 = 그리는 쪽)는 미룸(화면 효과 없음 · 0 다시 잰 뒤) · 단계마다 test_365_page_pipeline + 바퀴(열 때 1 · 같은 입력 0) 통과가 문 · 근거
docs/raw/조사/2026-10-17_386_요구242_분석.md1장. - 386-0 기준 잼(코드 X) — 전환당 /api 수 · 전환 끝 ms · 열 때 바퀴(B05 먼저 · B06 먼저 · 새로고침) · 세션 글자 수 → 이 줄 아래 한 줄.
- 기준(5182 검증_sub7 · 두 번) — 열 때 /api B05 22
23 · B06 15(구조물 받기 둘 다 2) · 끝 B05 7.57.8 s · B06 2.14.1 s · 열 때 바퀴 B05 먼저 12 · B06 먼저 1 · 새로고침 B05 2 · B06 1 · 처음 다른 보기 = 바퀴 2 · /api 6(B05→B06) · 13(B06→B05) · 그 뒤 전환 /api 23(구조물 · 정의 판 · 관 또는 haul-plan) · 바퀴 0 · switchMs 54477 · 끝 0.5~1.0 s · 세션 1 876 116 자(section-detail 1 511 817).
- 기준(5182 검증_sub7 · 두 번) — 열 때 /api B05 22
- 386-2 페이지 자료 줄(새 design_page_data.ts · 저장분 한 번 · 노선 id 한 칸 · onShow 받기 지움 · 「계산 중」 점) — 확인: 전환당 /api 0 · 열 때 구조물 받기 1 · 새 test_384_2.
- 검증완료 — 시험 73 파일 통과(test_384_2 · test_365 포함) · typecheck · 묶음 둘 다시 지음 · 5182 검증_sub7 전환 /api 0(진짜 단추 · 저장 안 한 관 초안 그대로) · 열 때 구조물 받기 1 · 처음 다른 보기 /api 3(B05→B06) · 11(B06→B05) · 「계산 중」 점 열 때 0.3 s 켬 · 밝음/어두움 · 값 되돌림 · 노선 id 한 칸은 미룸(읽는 곳 = RC sub4 줄 · DPr 700 · VC 688) · 검증 대기.
- 386-3 묶음 입력 = 가게만(보기 측점 심기 · baseMoved 지움) — 확인: baseMoved 0 · 바퀴 그대로.
- 검증완료 — 묶음 planline 기준 = 입력이 심는 측점(design_pipeline_base · 보기 심기는 그림만) · test_384_3 · test_365 통과 · 5182 열 때 바퀴 B05 먼저 1 · B06 먼저 1 · 새로고침 1 · 처음 다른 보기 0(전 2) · 같은 입력 0 · 검증 대기.
- 386-6 [저장] 본문 보기 무관(B05 만 연 길 지움) — 확인: B05 만 연 [저장] 본문 = B06 다녀온 본문.
- 검증완료 — test_384_6 · 저장 시험 7 파일 통과 · 5182 검증_sub7 새 탭 B05 만 연 [저장] = 횡단 보기 숨긴 채 섬 → sections/304/save 본문 8 868 자 · 패치 67 = B06 다녀온 [저장] 본문 그대로(차이 칸 0) · 값 안 바꿈(같은 본문 두 번 · 구조물 판 도장 한 번) · 검증 대기.
- 386-2b 노선 id 한 칸(386-2 에서 뗌 · 읽는 곳 RC:99-117 · design_profile(700) · design_view_cross(688)) — 387 합친 뒤 sub7 · design_profile 먼저 쪼갬. 확인: 노선 id 출처 1 · test_365.
- 검증완료 — 칸 = design_page_route(채움 = 자료 줄 pageSectionContext 하나) · 읽는 곳 PA · VC · design_profile render · RC · 3D · 측점 그림 · design_profile 678줄(쪼갬 = design_profile_context) · test_384_2b · test_365 · min_cover_guard 포함 78 파일 통과 · typecheck · 묶음 넷 다시 지음 · 5182 검증_sub7 칸 304 = context 304 · 전환 /api 0 · 바퀴 그대로 · [저장](진짜 단추) sections/304/save 200 · 저장 뒤 첫 전환만 한 번 다시 받고 0 · 노선 초안(새 노선) 화면 조작은 못 함(시험 test_365 초안 시나리오로 갈음) · 값 안 바꿈 · 커밋
c77e44ab0· 검증 대기.
- 검증완료 — 칸 = design_page_route(채움 = 자료 줄 pageSectionContext 하나) · 읽는 곳 PA · VC · design_profile render · RC · 3D · 측점 그림 · design_profile 678줄(쪼갬 = design_profile_context) · test_384_2b · test_365 · min_cover_guard 포함 78 파일 통과 · typecheck · 묶음 넷 다시 지음 · 5182 검증_sub7 칸 304 = context 304 · 전환 /api 0 · 바퀴 그대로 · [저장](진짜 단추) sections/304/save 200 · 저장 뒤 첫 전환만 한 번 다시 받고 0 · 노선 초안(새 노선) 화면 조작은 못 함(시험 test_365 초안 시나리오로 갈음) · 값 안 바꿈 · 커밋
387. 한 페이지 ② — 세션 열쇠 · 횡단 다시 셈 창구 · 결과 층 (요구 242 · 384 실행 · sub4 · Opus high)
- 정함(브레인): 세션 직접 접근 0(등록부만 · 프로젝트 없는
b05:pipes걷음) · 되돌리기 사진 = 지금 프로젝트만 · 면적 얹기 한 곳(묶음 출력 · 화면이 공유 자료 안 고침) · 세션 section-detail = 저장 정본만 · 근거 1장. - 387-1 세션 직접 접근 → 등록부 — 확인: 새 test_384_1(design · UI_* 직접 sessionStorage 0) · test_290_1 · test_346_4.
- 검증완료 — 시험 81 통과 · typecheck 0 · 화면(검증_sub4) B05↔B06 관 10개 · 월류 폭 10.1 유지 · 되돌리기 셋 = 월류 폭 · 관 85 m 복귀 · 다른 프로젝트 칸 그대로 · 프로젝트 없는 열쇠 0 (
002d0e85a· 검증 대기).
- 검증완료 — 시험 81 통과 · typecheck 0 · 화면(검증_sub4) B05↔B06 관 10개 · 월류 폭 10.1 유지 · 되돌리기 셋 = 월류 폭 · 관 85 m 복귀 · 다른 프로젝트 칸 그대로 · 프로젝트 없는 열쇠 0 (
- 387-4 횡단 다시 셈 창구 하나 · 면적 한 곳 — 확인: 부르는 곳 1 · B05 만 연 면적 = B06 연 면적 ±0.01.
- 부르는 곳 1 · 화면 면적 쓰기 0 · ▲ 한 번 = 차례 1 · cross 1 · 되돌리기 원래 면적 · B05↔B06 오가도 같은 값(검증_sub4) —
6a3f9647f. - 덧(sub5 4+5 · 브레인 10+0): 셈 어긋남 아님 — 검증_sub4 노선 234 저장 상세로 브라우저 다시 셈 = 서버 [저장] 다시 셈 차례(설계 다시 냄 + 지표면 넓힘 + Node 면적 · 쓰기 없이) 66 측점 최대 차 0.0001 ㎡ · 저장분과 다른 16곳(구조물 · 연동 이웃)은 옛 코드로 낸 저장분 낡음.
- 남음 ⬜ 브레인 답 필요: B05 만 연 면적(절토 합 452.72) ≠ B06 연 뒤(434.58) — 관 옵션(벽 높이 · 형태 · 세월교 · BOX 폼) → 횡단 조정값 옮김(
B06_Section_UI_Page_Pipe_Options·bindPipeOptions)이 B06 보기를 열 때만 돎 · 구조물 측점만 다름 · 제안 = 그 옮김을 상세 가게 얹기(B06_Section_Section_Adjusts)로 내림.
- 부르는 곳 1 · 화면 면적 쓰기 0 · ▲ 한 번 = 차례 1 · cross 1 · 되돌리기 원래 면적 · B05↔B06 오가도 같은 값(검증_sub4) —
- 387-7 결과 층 정리 — 확인: 열 때 상세 JSON.parse 1 · 세션 글자 수 386-0 보다 줆.
- 검증완료 — 세션 상세 풂 1(test_384_7) · 세션 상세 = 받을 때 정본만(갈아끼움 · 되돌림 안 씀) · 세션 글자 수 화면 재기는 못 함(
01a4a54bd· 검증 대기).
- 검증완료 — 세션 상세 풂 1(test_384_7) · 세션 상세 = 받을 때 정본만(갈아끼움 · 되돌림 안 씀) · 세션 글자 수 화면 재기는 못 함(
- 387-4b 관 옵션 → 횡단 조정값 옮김(B06_Section_UI_Page_Pipe_Options · bindPipeOptions = B06 보기 열 때만 돎)을 상세 가게 얹기(새 B06_Section_Section_Adjusts)로 — 확인: B05 만 연 면적 = B06 연 뒤 면적(검증_sub4 절토 합 452.72 vs 434.58 → 같음) · 387-4 체크.
- 검증완료 — 시험 870여 통과(새 test_387_4b) · typecheck 0 · 화면(검증_sub4) B05 만 연 절토 · 성토 합 = B06 연 뒤 442.3726 · 824.768 · 관 옵션 2 → 2.1 뒤 둘 다 443.2174 · 되돌림 442.3726 · 어두움 정상(
111dd6a1d·9d3e6b242· 검증 대기). - 덧 갈림 둘도 같이 고침: 갈아끼운 상세를 그 차례 cross 가 못 봄(묶음 다 돈 뒤 한 번 더) · B06 폼 되보내기가 관 제원에 옵션 값을 그대로 씀(다시 셈 앞 형상 규칙으로 다시 얹음 · 집수정 높이 1.5 ↔ 2).
- 남음(별건): 관 초안 둔 채 다시 열기 = 서버 미리보기 측점 11곳이 섞여 다른 값(377.51 · B05 = B06 은 같음 · 종단 판 접힘이면 그리기 판정이 안 돎).
- 검증완료 — 시험 870여 통과(새 test_387_4b) · typecheck 0 · 화면(검증_sub4) B05 만 연 절토 · 성토 합 = B06 연 뒤 442.3726 · 824.768 · 관 옵션 2 → 2.1 뒤 둘 다 443.2174 · 되돌림 442.3726 · 어두움 정상(
- 387-8 관 초안 둔 채 다시 열면 서버 미리보기 측점 11곳 섞여 다른 값(절토 합 377.51 · B05 = B06 은 같음) · 종단 판 접혀 있으면 그리기 낡음 판정 안 돎(sub4 보고) — 원칙 4(보기가 숨어도 계산 · 판정은 돎 · 그림만 멈춤). 확인: 시험(접힌 종단 판 + 관 초안 다시 열기 = 펼친 때와 같은 값) + 화면.
- 검증완료 — 낡음 판정 = 상세 가게 몫(읽은 뒤 묶음 차례가 끝나면 화면 선 대비 낡음이면 cross 한 번 더 · 같은 낡음 한 번만) · 새 test_387_8 포함 시험 322 통과 · typecheck 0 · 묶음 다시 지음 · 화면(검증_sub4 · 같은 관 초안) 종단 판 접힘 · 펼침 둘 다 B05 = B06 = 368.6348 · 1012.4423 · 낡은 측점 0(미리보기 11곳) · 초안 원래대로 되돌림(
89728f83f· 검증 대기).
- 검증완료 — 낡음 판정 = 상세 가게 몫(읽은 뒤 묶음 차례가 끝나면 화면 선 대비 낡음이면 cross 한 번 더 · 같은 낡음 한 번만) · 새 test_387_8 포함 시험 322 통과 · typecheck 0 · 묶음 다시 지음 · 화면(검증_sub4 · 같은 관 초안) 종단 판 접힘 · 펼침 둘 다 B05 = B06 = 368.6348 · 1012.4423 · 낡은 측점 0(미리보기 11곳) · 초안 원래대로 되돌림(
388. 한 페이지 ③ — 보안 (요구 242 · sub5 · Opus high)
- 정함(브레인): 로그아웃 = 떠남 확인 먼저 → 서버 로그아웃 → 초안 · 결과 · 현재 프로젝트 · 지형 보관 지움 → 새로고침 · 계정 바뀜(같은 탭 다른 계정)도 같은 지움 · [확정] 면적 · 관 길이 = 서버 셈만(브라우저 값 안 받음 · 셈 실패 = 화면 경고) · 세션 넘침 = 결과 칸 비우고 다시 · 그래도 넘치면 안내 · 탭이 연 프로젝트 고정 · 근거 1장.
- 388-1 로그아웃 · 계정 바뀜 지움 — 확인: 새 test_384_s_logout_wipe + 화면(초안 있는 채 로그아웃 → 확인창 → 지워짐).
- 검증완료: 시험 6 · 5180 검증_sub5 확인창 [취소] 머묾 · [폐기] 세션 0 · 프로젝트 없음 · 401 · 지형 0 · 계정 바뀜 한 번 새로고침 · 밝음/어두움(검증 대기).
- 388-2 서버 정본 셈만 — 확인: 새 test_384_s_area_keys(면적 보내도 정본 = 서버 값) · test_b05_b06_save_roundtrip.
- 검증완료: 시험 7 · 5180 4+5 면적 999 보냄 → 정본 13.6928 · 0.6962 · 7.9(서버) · recomputed:true · 왕복 시험은 배정 프로젝트 없음으로 건너뜀(검증 대기).
- 388-3 세션 넘침 · 탭 프로젝트 고정 — 확인: 시험.
- 검증완료: test_384_s_logout_wipe 넘침 · 안내 · 고정 3건(검증 대기).
- 388-4 쓰기 권한 — 사용자 확정(251-1): 회사 프로젝트는 소속 사용자 전체 권한 · 지금 그대로 · 코드 고침 없음.
389. ☰ 정렬 · 서랍 간격 · 좌측 카드 기본 닫힘 (요구 242-1 · 2 · 3 · sub2 · Sonnet high)
- 정함(브레인): ☰ 중심 = 좌측 패널 제목 줄 중심(제목 줄 마우스 높이 48 → 52 · ☰ 자리 그대로) · 서랍 간격 = 8/12 체계(묶음 안 8 · 묶음 사이 12 + 선 + 12 · 줄 높이 마우스 40 · 손가락 44 · 글 왼쪽 16 · 로고 줄 = ☰ 높이 가운데) · 좌측 카드 = 모든 페이지 기본 닫힘(B05 · B06 구조물 배치 · 노선 추천 · B07 토적도 · 구조물 도면 · 전개도 · B08 넷 · B09 인쇄 둘 · M02 구조물 집계 양식 · 우클릭 추가 때 펴기는 그대로 · 접힌 카드 안 상세 펼침은 그대로) · 근거 2장.
- 389-1 ☰ 세로 정렬 — 확인: 화면 ☰ 중심 = 제목 줄 중심(마우스 · 손가락) · test_device_drawer. 검증완료(마우스 26=26 · 손가락 30=30 · 검증 대기)
- 389-2 서랍 간격 — 확인: 화면 간격 수치 · test_device_drawer · test_225_drawer_shortcuts. 검증완료(묶음 안 8 · 사이 12+선+12 · 줄 40/44 · 글 16 · 로고 줄 ☰ 가운데 · 검증 대기)
- 389-3 좌측 카드 기본 닫힘 — 확인: test_311_panel_folded 고쳐 씀 + 화면(페이지마다 첫 열기 닫힘). 검증완료(B05 · B06 · B07 · B08 · B09 인쇄 · M02 첫 열기 전부 닫힘 · 검증 대기)
390. B05 평면 도구줄 — 구분선 · 스냅 간격 · Ctrl+휠 회전 · 기울기 끔 (요구 242-4 · 11 · 16 · 17 · sub1 · Opus high)
- 정함(브레인): [측점 스냅] | 분석 지형 사이 구분선(분석 지형 숨으면 같이 숨김) · [측점 스냅] 오른쪽 「스냅 간격」 고르기(분석 지형 양식 · 0.1 m · 1 m · 10 m · 측점 No. · 기본 측점 No. · 프로젝트별 화면 기억 · 스냅 끄면 흐림) = 곡선 MC 를 그 간격 배수에 맞춤(허용 오차도 간격 따라 · 측점 값 정수 m 규칙 그대로 · 서버 초기 노선 · 추천 = 측점 No. 그대로) · Ctrl+휠 = 한 칸 5° 회전(단추 15° 그대로 · 손가락 · 트랙패드 벌림 빼고) · [기울기] 기본 꺼짐 · 근거 3장.
- 390-1 구분선 · [기울기] 기본 꺼짐 — 확인: test_b05_routeedit_initial · test_381_2 고쳐 씀.
- 검증완료 — 시험 90 통과 · 화면 구분선 5개(분석 지형 숨기면 앞 구분선 none) · [기울기] aria-pressed false · 밝음 · 어두움.
- 390-2 스냅 간격 고르기 — 확인: 시험(간격마다 MC 배수 · 측점 밖 개수 같은 간격) + 화면(1 m · 10 m 끌기 뒤 MC).
- 검증완료 — 검증_sub1 끌기 뒤 1 m 최대 어긋남 0.046 · 0.1 m 0.003 · 측점 밖 0 · 10 m · 측점 No. 못 맞춘 3곳 = 상태줄 3 · 스냅 끔 흐림 0.5 · 「0.1 m」 = 방향키 한 걸음(KEY_STEP_M) 상태줄 「실제 이동 0.1 m」.
- 390-3 Ctrl+휠 회전 — 확인: 시험(벌림 = 확대 그대로) + 화면 · 도움말 한 줄.
- 검증완료 — 화면 Ctrl+휠 한 칸 5° · 단추 15° · 트랙패드 벌림 · 맨 휠 = 확대(회전 0) · 도움말 「Ctrl+휠 = 돌리기(한 칸 5°)」 · 검증 대기.
- 390-4 스냅 상태줄 글 = 고른 간격 따라(브레인 화면: 간격 1 m 인데 「곡선 가운데(MC)를 일반측점에 맞췄습니다」 · RouteEdit.ts:266 · :538 고정 글) — 측점 No. = 지금 글 · 0.1 · 1 · 10 m = 「… m 배수에 맞췄습니다」. 확인: 시험 + 화면 글.
- 검증완료 — 간격별 글 시험(test_390_4) · test_366_3 · routeedit_initial · 224_2 56개 통과 · typecheck 통과 · 화면 글은 브레인 마무리 때.
- 390-5 스냅 간격 = 조작 단위(요구 243) — 정함(브레인): 스냅 켬이면 ① 방향키 한 번 = 고른 간격만큼(0.1 · 1 · 10 m · 측점 No. = 측점 간격 · Shift 안 씀) 옮기고 MC 를 그 간격 배수에 맞춤 ② 끌기 = 끄는 동안 맞춘 자리로 바로 보임(놓을 때만 아님) ③ MC 측점 값 = 고른 간격 정밀도(0.1 = 소수 한 자리 · 1 이상 = 정수 · 다른 측점은 정수 그대로 · 간격을 저장 노선에 같이 저장해 서버 측점 셈도 같은 값 · 파이썬 짝). 확인: 시험(간격별 방향키 걸음 · 끌기 미리보기 · MC 값 · 서버 짝 거울) + 화면(0.1 · 1 · 10 · 측점 No.).
- 검증완료 — 시험 435개 통과(test_390_5 33 · 383_2 · 366_3 · 224_2 · frame_mirror 등) · typecheck · 서버 묶음 다시 지음 · 화면(검증_sub1 · 5174): 방향키 두 번 = 0.1 m → MC 380.0 · 380.1 · 380.2 · 1 m → 380 · 381 · 382 · 10 m → 380 · 390 · 400 · 측점 No. → 120 · 100 · 끄는 동안 MC 눈금 19+0 · 놓은 뒤 같은 값 · 평면 눈금 19+0.2(0.1 때만 소수) · 밝음 · 어두움 · 저장 안 하고 되돌림.
391. B05 평면 그림 — 20 m 법선 · 곡선 3점 · 곡선 없는 교각점 삼각형 · 잠금 색 (요구 242-5 · 6 · 12 · 13 · 15 · sub6 · Opus high)
- 정함(브레인): 측점 맴돔 선 = 고른 선 = 중심선 좌우 20 m 고정 법선(하늘 #0ea5e9 · 짧은 12 px 선 지움 · 절성토 색은 발자국 선이 보여 줌) · 고른 곡선(교각점 · 호) = 호 굵게 + 교각점→BC · EC 접선 + BC · MC · EC 세 점(고름 하늘색) · 곡선 없는 교각점(155° 생략 · 손 지움 모두) = 같은 크기 삼각형(모양만) · 잠긴 노선 · 점 = 황금(밝음 #ca8a04 · 어두움 #facc15 · 굵기 4 + 흰 테) · 근거 4장.
- 391-1 맴돔 = 고름 20 m 법선 — 확인: test_381_3 · cross_width 고쳐 씀 + 화면.
- 391-2 곡선 3점 강조 · 삼각형 — 확인: 시험 + 화면(밝음 · 어두움).
- 391-3 잠금 색 — 확인: 시험(토큰 값) + 화면 대비.
- 검증완료(sub6) — 시험 66 통과 · typecheck · 화면(검증_sub6 · 맴돔 = 고름 좌우 20 m 각 212 px = 측점 20 m 간격 · 곡선 3점 · 삼각형 · 황금 잠금 · 밝음 · 어두움 · 바꾼 값 되돌림) ·
a0a29fd00· 검증 대기.
392. B05 하단 판 — 배수유역 기본 닫힘 · 높이 제어 10-14 방식 (요구 242-9 · 10 · sub8 · Opus high)
- 정함(브레인): 배수유역 판 기본 닫힘(옛 기억 한 번 버림 · B06 도 같이) · 높이 제어 = 10-14 판(
9edaec82e) 되살림 — 유토곡선 = 종단 칸 바닥 덮는 판 · 판 끌기 = 종단 · 유토 · 표 세 영역 같은 비율 · 유토 손잡이 = 판 위 경계 밖 표 손잡이와 나란히 · 접기 = 숨김 · 남김 = 유토 [창 분할](펼친 때만 · 235-7 「분리」 = 창 분리로 읽음) · 367-1 늘 전체 맞춤 · 367-5 · 354-3 · 325-2 · 근거 3장. - 392-1 배수유역 기본 닫힘 — 확인: 시험(기억 없음 = 닫힘) + 화면.
- 검증완료 — 옛 열쇠 "false" 버리고 닫힘 · 펼친 기억 B05 · B06 새로고침 유지 ·
ed3f454c6
- 검증완료 — 옛 열쇠 "false" 버리고 닫힘 · 펼친 기억 B05 · B06 새로고침 유지 ·
- 392-2 하단 판 높이 제어 10-14 방식 — 확인: 시험(세 영역 비례 · 손잡이 자리) + 화면(판 끌기 · 유토 끌기 · 접기 · 창 분할 · 밝음 · 어두움).
393. B05 우측 횡단 판 — 기본 접힘 · B06 횡단도 그대로 (요구 242-7 · 8 · sub3 · Opus high)
- 정함(브레인): 우측 「횡단」 판(사용자 말 「좌측 패널 횡단」 = 손잡이가 왼쪽에 있는 이 판) 기본 접힘(옛 기억 한 번 버림 · 측점 눈금 누르면 열리되 기억 안 함) · 「횡단」 · 「이전 횡단」 칸 = B06 횡단도 카드를 읽기 전용으로(구조물 · 포장 · 면적 · 축 · 종단 계획고 · 횡단 설계 반영 · 단면 사본 · B06 고름 안 건드림) · 종단 임시 횡단 창은 지금 그림 그대로 · 근거 5장.
- 393-1 기본 접힘 — 확인: test_b05_routeedit_chrome_modal 고쳐 씀 + 화면.
- 393-2 B06 횡단도 읽기 전용 — 확인: 시험 + 화면(구조물 있는 측점 = B06 카드와 같은 그림 · 평면 노선 고친 뒤 갱신 · B06 고름 그대로).
- 검증완료(sub3) — 시험 46 통과 · typecheck · 묶음 셋 다시 지음 · 화면(검증_sub3 · 옛 열림 기억 있어도 접힘 · 눈금 열림 기억 없음 · 손잡이만 기억 · 14+0 배수관 카드 요소 36 = B06 카드 같음(암 경계 포함) · 노드 끌기 뒤 위 성토 33.31㎡ · 아래 이전 40.08㎡ · B06 보라 선 고름 유지 · 밝음 · 어두움 · 바꾼 값 되돌림) · 저장 상세 = Section_Store 접근자(파이프라인 파일 700줄) ·
dec208f11·a3dd0a1cf·5f0e81345· 검증 대기.
- 검증완료(sub3) — 시험 46 통과 · typecheck · 묶음 셋 다시 지음 · 화면(검증_sub3 · 옛 열림 기억 있어도 접힘 · 눈금 열림 기억 없음 · 손잡이만 기억 · 14+0 배수관 카드 요소 36 = B06 카드 같음(암 경계 포함) · 노드 끌기 뒤 위 성토 33.31㎡ · 아래 이전 40.08㎡ · B06 보라 선 고름 유지 · 밝음 · 어두움 · 바꾼 값 되돌림) · 저장 상세 = Section_Store 접근자(파이프라인 파일 700줄) ·
- 393-3 우측 판 횡단 · 이전 횡단 칸 = 그래프만 칸 전체(요구 244) — 정함(브레인): 칸 제목 줄(「횡단 10+0」 · 「이전 횡단 10+0」)만 남기고 카드 머리(측점 · 거리 · 편측 성토 알약 · 성토사면) · 확대 단추 · 암 경계 줄 · 요약 줄 · 카드 테두리 걷음 · 그래프(축 · 표고 상자 · 노폭 글 포함)가 칸 폭 · 높이를 다 씀 · 판 폭 끌기 · 창 크기 따라 다시 그림. 확인: 시험 + 화면(밝음 · 어두움 · 판 폭 바꿈).
- 검증완료(sub3) — 시험 33 통과 · typecheck · 화면(검증_sub3 · 18+0 일반 · 14+0 배수관 집수정 · 그래프 409×407 = 칸 409×407 · 머리 · 발 · 줌 · 요약 없음 · 노선 고친 뒤 횡단 · 이전 횡단 둘 다 · 판 폭 끌어 559 로 다시 그림 · 밝음/어두움 · 되돌림) · f601bc301(검증 대기)
- 393-4 우측 판 제목 행 걷고 그림 영역으로 · 보기 폭 = B06 횡단 반폭 공유(요구 246) — 정함(브레인): 판 머리 「횡단」 행 · 칸 제목 행(「횡단 10+0」 · 「이전 횡단 10+0」) 모두 걷음 → 측점은 그래프 왼쪽 위 작은 글(「10+0」 · 「이전 10+0」)로 겹쳐 씀 · 손잡이 · 폭 끌기 그대로 · 그래프 가로 범위 기본 = B06 좌측 「횡단 반폭」 보기값(같은 값 한 벌 · B06 에서 바꾸면 B05 판도 따라감). 확인: 시험 + 화면(B06 반폭 바꾼 뒤 B05 판 범위 · 밝음 · 어두움).
- 검증완료(sub3) — 시험 39 통과 · typecheck · 화면(검증_sub3 · 판 머리 · 칸 제목 행 없음 · 측점 글 그림 칸 왼쪽 위 · 그래프 409×458 = 칸 409×459 · 기본 ±10 m = B06 입력칸 10 · B06 15 적용 뒤 다음 그림 ±15(px/m 16.55 → 11.03) · 33+0 일반 · 14+0 배관 · 밝음/어두움 · 반폭 되돌림(되돌리기 한 걸음 = B06 적용뿐 · 섞인 편집 없음)) ·
bd78a41c9· d4c8fecb8(검증 대기)
- 검증완료(sub3) — 시험 39 통과 · typecheck · 화면(검증_sub3 · 판 머리 · 칸 제목 행 없음 · 측점 글 그림 칸 왼쪽 위 · 그래프 409×458 = 칸 409×459 · 기본 ±10 m = B06 입력칸 10 · B06 15 적용 뒤 다음 그림 ±15(px/m 16.55 → 11.03) · 33+0 일반 · 14+0 배관 · 밝음/어두움 · 반폭 되돌림(되돌리기 한 걸음 = B06 적용뿐 · 섞인 편집 없음)) ·
- 393-5 우측 판 접힘 손잡이 = 지도 오른쪽 끝에 딱 붙임(요구 247 · 손잡이 오른쪽 빈 틈 0) — 확인: 화면 손잡이 오른쪽 끝 = 지도 오른쪽 끝(px) · 펼침 · 폭 끌기 그대로.
- 검증완료(sub3) — 시험 · 화면(접힘 손잡이 오른쪽 끝 = 지도 오른쪽 끝 · 틈 0 px(전 12) · 펼침 틈 12 그대로 · 폭 끌기 460 → 560 → 460 · 기억 되돌림) · 5c426ce4f(검증 대기)
394. 옛 시험 실패 셋 (241 답 · sub3 · Opus high)
- 정함(브레인): 302_1 · 302_4 = 기기 알아채기가 window 없는 곳에서 건너뛰게(제품 한 곳) · 254_1 = 옮긴 파일에서 찾게 · 52_6 = 마스터 실제 기본값에 안 기대게(마스터 값 = 사용자 편집
4baf49ba4) · 근거 6장. - 394-1 셋 고침 — 확인: test_302_1 · 302_4 · 254_1 · 52_6 통과.
- 검증완료: 넷 31 통과 · typecheck 통과 · 0fef92545(검증 대기).
- 394-2 test_b05_min_cover_guard — 367-3(
84876b747)이 applyEdits 가드를return false;로 바꿈(막히면 자유지정 열린 채) · 시험 글은 옛return;→ 시험 기대 고침(부르는 곳 한 곳 판정 그대로). 확인: 시험 통과. 검증완료(10 통과 · 검증 대기) - 394-3 test_152_3_chute_cut::test_성토만인_측점은_그대로 — pipeBase bands3d 2 → 1(메인 · 371 벽 성토 이음 무렵 추정) · 까닭 가림: 의도된 바뀜이면 시험 기대 고침(까닭 한 줄) · 흠이면 제품 고침. 확인: 시험 통과 + 까닭 한 줄.
- 까닭: 6ba26ee61(371-1 다단 사이 시작 = 윗단 발끝) — 배관 85.052 아랫단 0.5 m 내려가 끝 구간 묻힘 → 성토 + 3도 절토(의도된 바뀜 · 377-3 같은 갈래) · 시험 기대만 고침(제품 고침 없음).
- 검증완료: 그 앞 커밋 트리 helper = fill · fill 2 · 2 / 371-1 트리부터 fill · cut 2 · 1(까닭 확정) · 152_3 · 371_2 · wall_shape_unified · 139_4 · 띠 시험 합 42 통과 · typecheck 통과 · d1c863c05(검증 대기).
396. 요구 242 마무리 — 합치기 · 브레인 화면 검증 · 보고 (브레인)
- 396-1 합치기 · 서버 묶음 · 고친 대상 시험 · typecheck.
- 396-2 브레인 사용자처럼 브라우저 검증(242-1~17 · 한 페이지 전환 · 보안) — 흠은 창에 고침 → 다시 잼.
- 396-3 보고(요구별 결과 · 수치 · 정함 목록 · 388-4 · 395 결정 거리).
- 검증완료(396) — 합침 · 서버 묶음 다섯 · typecheck 0 · 고친 대상 시험 95 파일 585 통과(옛 실패 302_1 · 302_4 · 254_1 · 52_6 · min_cover · drainage_side · 152_3 모두 통과) · 브레인 화면 V1
V19 + 덧 요구 243247 통과 · 흠 하나(390-4 스냅 글) 고친 뒤 다시 잼 · 로그아웃 보안 확인 · 남은 결정 = 388-4 · 395-1 · 검증 대기.
397. B06 횡단 그래프 Ctrl+휠 확대 · 축소 (요구 245 · sub6 · Opus high)
- 정함(브레인): B06 횡단 카드(· 같은 카드를 쓰는 상세 모달) 그래프 위 Ctrl+휠 = 마우스 자리 중심 확대 · 축소(지금 + − ⤢ 단추와 같은 줌 상태 · 같은 한도) · Ctrl 없는 휠 = 페이지 스크롤 그대로 · 트랙패드 · 손가락 벌림도 같은 확대 · 브라우저 확대 막음(그래프 위만) · B05 우측 판(읽기 전용 · 393-3)은 빼도 됨.
- 397-1 Ctrl+휠 줌 — 확인: 시험(줌 상태 · 마우스 중심 · Ctrl 없는 휠 = 스크롤) + 화면(밝음 · 어두움 · 단추와 섞어 씀 · ⤢ 맞춤 복귀).
- 검증완료(sub6) — 시험 63 통과(397 · 공용 줌 쓰는 B06 상세 · B08 · 입력 방향) · typecheck · 화면(검증_sub6 · Ctrl+휠 = 마우스 자리 고정 1.15배 · 브라우저 확대 막음 · 맨 휠 = 안 막음 · 줌 그대로 · 핀치 · + 단추와 이어짐 · ⤢ 원배율 · 상세 모달 Ctrl+휠 · 밝음 · 어두움 · 되돌림) ·
15092ee2b· 검증 대기.
398. B05 평면 — 교점 옮기면 좌측 패널 열림 · 반지름 · 곡선 길이 바꿔도 그대로 (요구 248 · 249)
- 정함(브레인): 좌측 패널 저절로 펴기(09-04 「바깥에서 고르면 좌측 패널도」)는 사용자가 직접 고를 때만 · 노선 · 묶음이 다시 돌며 고름을 다시 칠할 때는 안 폄. 반지름 · 곡선 길이 = 꺾임점 창에서 넣으면 그 값으로 곡선이 바뀜(측점 스냅 켬이면 맞춤 뒤 값 · 못 지키면 상태줄 까닭).
- 398-1 교점 끌기 · 방향키 · 노선 고침 뒤 좌측 패널 안 열림(고른 관 · 구조물 있어도) — sub7 · 확인: 시험 + 화면(접힌 좌측 패널 · 관 고른 채 교점 끌기).
- 뿌리 = 노선 고침 뒤 다시 칠하기(관 따라가기 · 배수유역 다시 나눔 응답 · 고름 되살림)가 폼을 다시 실으며 펴기를 부름 · 고침 = 「사용자 고름」 한 칸(
design_user_pick· 진짜 누름 안 + 묶음 차례 없음)을 펴기 한 곳(design_sharedonReveal)이 봄. - 검증완료(sub7) — 시험 274 통과(새 test_398_1 · test_365 · 384_2 · 382-2 · 구조물 패널 · 233 · 116 등) · typecheck · 화면(검증_sub7 · 좌측 패널 접고 관 고른 채 교점 끌기 · 관 256→257 m 따라감 · 방향키 · 곡선 삭제 · 되돌리기 · Ctrl+Z · 보기 전환(초안 저장 안 함) = 펴짐 0 · 종단 알약 · 3D 측점 · 횡단 보기 알약 · 우클릭 추가 = 펴짐 1 · 밝음 · 어두움 · 세션 되돌림 차이 0) · 평면 눈금 · 마름모는 원래 좌측 폼을 안 엶(그대로) ·
017080108— 검증 대기.
- 뿌리 = 노선 고침 뒤 다시 칠하기(관 따라가기 · 배수유역 다시 나눔 응답 · 고름 되살림)가 폼을 다시 실으며 펴기를 부름 · 고침 = 「사용자 고름」 한 칸(
- 398-2 반지름 · 곡선 길이 입력이 곡선에 반영 — sub1 · 확인: 까닭 + 시험 + 화면(스냅 끔 · 켬 · 「고정」 켬 · 끔).
- 검증완료(sub1) — 까닭 = 접선은 앞뒤 직선 짧은 쪽 절반까지(서버 짝 같은 규칙)라 큰 R 이 조용히 눌림 + 창 칸은 넣은 값 그대로 보임 · 고침 = 칸은 그린 값 · 눌리면 상태줄 「반지름 60m → 23.2m(앞뒤 직선이 짧아 접선 자리 모자람)」 · 시험 12 통과(새 test_398_2) · typecheck · 화면(검증_sub1 · 진짜 마우스 · 18번째 꺾임점 스냅 끔 R 40 · 60 · L 18 · 25 그대로 · 스냅 켬 R 40 · 60 그대로 · L 17.85 · 25.07 · MC 600 · 16번째 꺾임점 40 · 60 → 23.2 · 빈 값 = 자동 12 · 길이 고정 켬 = 이웃 IP 3 m 옮겨도 L 25.07 · 끔 = 22.89 · 밝음 · 어두움 · 보기 · 접힘 되돌림 · 저장 노선 그대로) ·
054f716f0·156ee5e79— 검증 대기.
- 검증완료(sub1) — 까닭 = 접선은 앞뒤 직선 짧은 쪽 절반까지(서버 짝 같은 규칙)라 큰 R 이 조용히 눌림 + 창 칸은 넣은 값 그대로 보임 · 고침 = 칸은 그린 값 · 눌리면 상태줄 「반지름 60m → 23.2m(앞뒤 직선이 짧아 접선 자리 모자람)」 · 시험 12 통과(새 test_398_2) · typecheck · 화면(검증_sub1 · 진짜 마우스 · 18번째 꺾임점 스냅 끔 R 40 · 60 · L 18 · 25 그대로 · 스냅 켬 R 40 · 60 그대로 · L 17.85 · 25.07 · MC 600 · 16번째 꺾임점 40 · 60 → 23.2 · 빈 값 = 자동 12 · 길이 고정 켬 = 이웃 IP 3 m 옮겨도 L 25.07 · 끔 = 22.89 · 밝음 · 어두움 · 보기 · 접힘 되돌림 · 저장 노선 그대로) ·
- 398-3 어두움 테마 꺾임점 창 [곡선 삭제] · [✕] 단추 흐림(sub1 보고 · 옛 테마) — sub2 · 확인: 대비 4.5 이상 · 밝음 그대로. 검증완료(sub2 · 코드 변경 없음 — 어두움에서 새로 열면 글 · 테두리 b99aff / 바탕 251f38 = 대비 6.85 · 밝음 16.65 · 공용 토큰 그대로 · 흐림 원인 = 화면에서 테마를 바꾼 직후 단추 색 전환(0.12초)이 멈춘 상태에서만 옛 색(대비 1.06) · 새로 열면 정상 · 단추 둘 다 누를 수 있는 상태 · 되돌림 · 검증 대기)
- 398-4 안 함 — 사용자 251-2: 곡선 합치기는 추천 초기노선에서만 → 모든 노선에 걸리는 접선 규칙은 그대로(406 = 접선 규칙 없이).
- 검증완료(398) — 398-1(sub7
017080108· 접은 좌측 패널 교점 끌기 · 방향키 · 곡선 삭제 · 되돌리기 · 전환 = 펴짐 0 · 알약 · 3D · 우클릭 = 1) · 398-2(sub1054f716f0·156ee5e79· 넉넉한 자리 넣은 값 그대로 · 좁은 자리 그린 값 + 까닭) · 398-3 흠 아님(대비 6.85 · ORCA 색 전환 멈춤) · 메인 합침 · typecheck · 묶음 · 시험 150 통과 · 남은 결정 398-4 · 검증 대기.
399. B05 평면 구조물 측점 마커 · 1 m 옮김 · 정보 창 · 법선 (요구 250-2 · sub3 · Opus high)
- 정함(브레인): 구조물(관 · 구조물 · 사토장 등 측점 가진 것) 측점 = 평면 노선 위 마커(일반 측점 눈금과 다른 모양 · 스냅과 무관) · 노선 바뀌면 지금 규칙대로 좌표(x · y) 따라가고 누가거리 = 정수 m 로 다시 매김(사용자 말 「측점번호 유지 · 소수점 때문에 미세 이동」) · 마커 끌기 · 방향키 = 노선 따라 1 m 씩(정수 m) · 마커 고름 = 종단 아래 알약 정보 창과 같은 창 + 그 측점 횡단 법선(좌우 20 m · 391 과 같은 선) · 옮긴 값 = 초안(캐시) · [저장] 에서 정본.
- 399-1 마커 그리기 · 고름 · 정보 창 · 법선 — 확인: 시험 + 화면(관 · 구조물 · 밝음/어두움).
- 399-2 끌기 · 방향키 1 m 옮김 · 종단 · 횡단 따라감 — 확인: 시험(정수 m · 노선 밖 안 감) + 화면(옮긴 뒤 종단 알약 · B06 카드 측점).
- 검증완료(sub3) — 시험 test_399 11 · 관련 60 통과 · typecheck 0 · 화면(검증_sub3 · 마커 12 = 알약 12 · 색 차례 같음 · 세월교 1 · 배관 1 고름 = 정보 창(알약 벌룬 같은 줄) · 좌우 20 m 법선 · 좌측 목록 · 종단 알약 강조 · 알약 고름 → 평면 마커 · 끌기 +3 m(4+9 → 4+12 · 10+19 → 11+2) · 방향키 연달아 2 = +2 m · 종단 알약 4+14 · 오른쪽 횡단 4+14 · B06 카드 4+14(94.0 m) · 되돌리기 = 관 옮김 되돌림 · 어두움 · 저장 안 함 · 처음 자리 12 곳 · 노선 초안 없음) · 이 프로젝트는 관 · 세월교만(손 구조물 없음 · 구조물 길 = 시험) · 교각점 12 px 안 마커는 교각점이 먼저 집힘(정한 차례) ·
c3efa6dd7·9d72d15cf— 검증 대기.
400. 평면 고친 뒤 종단 편집 이어받기 (요구 250-2둘째 · sub6 · Opus high)
- 정함(브레인): 평면 고침 = 바뀐 구간만 종단 다시 · 안 바뀐 구간은 사용자 종단(직선화 · 자유지정 · 쉬프트 · ▲▼ 결과 = 계획고 VIP 와 그 편집)을 새 누가거리로 옮김(옛 노선 · 새 노선을 x · y 로 맞대어 같은 선 구간 찾기 · 옛 VIP 를 새 선에 투영) · 바뀐 구간 = 자동 설계로 다시 · 양 끝은 이어받은 VIP 에 맞물림(기울기 · 종단 곡선 규칙) · 평면 되돌리면 종단도 되돌림 · 서버 [저장] 도 같은 이월(파이썬 · TS 짝 또는 ② 서버 Node).
- 400-1 지금 흐름 · 이월 설계 — 확인: 분석 한 장(tmp) + 시험 설계.
- 검증완료(sub6) — 끊김 셋 = 측점 스냅이 뒤 교점을 밀어 1 mm 정점 비교로 뒤쪽 전부 「바뀐 구간」 · 민 키가 측점 밖이라 [저장] 이 버림 · 걸음마다 옮겨 걸음 수 따라 다름 · 같은 자리 = 옆 1.0 m(브레인 정함 10-17) · tmp/분석_400.md.
- 400-2 이월 구현 — 확인: 시험(먼 곳 교점 하나 옮김 = 바뀐 구간 밖 VIP 그대로 · 바뀐 구간만 다시) + 화면(종단 직선화 · 자유지정 뒤 교점 옮김).
- 검증완료(sub6) — 시험 test_400 19 · 344_2 · 349_0v · 346_3 · 365 · 346 · 349_0 · 356 · 367 · 368 통과(346_3 화면 도우미 6 오류 = 390-5 Apply 변경 뒤 도우미 미갱신 · 400 무관) · 스냅 켠 노선 옛 규칙 = 전 구간 다시 · 새 = 55 측점 중 39 이어받음 · typecheck · 묶음 · 화면(검증_sub6 · 진짜 마우스 · ▲ · 직선화 20
120 m · 자유지정 160220 m · 500540 m ▲ 뒤 18+0 교점 끌기 = 앞 014+0 계획고 그대로 · 뒤 460~580 m 같은 자리 계획고 차 0.04 m 안(길이 −2.6 m) · Ctrl+Z = 종단까지 되돌림 · 저장 안 하고 버림 = 저장 종단 그대로) ·a1097653e— 검증 대기. - 정함(브레인 · sub6 물음): 스냅 켠 노선은 교점 하나 고쳐도 뒤 교점이 MC 맞춤으로 옆으로 밀림 → 같은 자리 판정 = 옆 어긋남 1.0 m 까지(높이 = 옛 계획고 · 지반 = 새 것) · 상수 한 칸(바꿀 수 있음).
- 검증완료(sub6) — 시험 test_400 19 · 344_2 · 349_0v · 346_3 · 365 · 346 · 349_0 · 356 · 367 · 368 통과(346_3 화면 도우미 6 오류 = 390-5 Apply 변경 뒤 도우미 미갱신 · 400 무관) · 스냅 켠 노선 옛 규칙 = 전 구간 다시 · 새 = 55 측점 중 39 이어받음 · typecheck · 묶음 · 화면(검증_sub6 · 진짜 마우스 · ▲ · 직선화 20
401. 평면 가운데 단추 팬 튐 (요구 250-3 · sub1 · Opus high)
- 401-1 까닭 · 고침 — 확인: 시험 + 화면(가운데 단추 끌기 여러 번 · 끄는 중 바깥 나갔다 옴 · 휠 · Ctrl+휠 섞음 = 튐 0).
- 까닭: 팬이 누를 때 쥔 offset 에 「처음부터 민 만큼」을 덮어씀 — 끄는 중 휠(buttons 4 로 들어옴) · Ctrl+휠 회전 · 둘째 손가락이 바꾼 화면을 옛 값이 덮어 튐. 고침 =
_RouteEdit_Input걸음마다 지금 화면에 더함 · 시작 포인터만 · buttons 놓침 · 캡처 잃음에 팬 끝. - 검증완료: 시험 6(옛 코드 휠 27px · 둘째 손가락 224px · 캡처 잃음 90px → 0) · typecheck · 5174 검증_sub1 진짜 가운데 단추 끌기 4걸음 · 휠 섞음 · 회전 15° · 끄는 중 Ctrl+휠 = 그림 어긋남 ≤1.4px(화소 칸) · 왼 패널에서 놓고 들어옴 = 그림 그대로 · 보던 화면 기억 지움(노선 맞춤 · 0°)(검증 대기).
- 까닭: 팬이 누를 때 쥔 offset 에 「처음부터 민 만큼」을 덮어씀 — 끄는 중 휠(buttons 4 로 들어옴) · Ctrl+휠 회전 · 둘째 손가락이 바꾼 화면을 옛 값이 덮어 튐. 고침 =
- 401-2 test_346_3_route_save_screen 6 오류(390-5 Apply 바뀐 뒤 시험 도우미 미갱신 · sub6 보고) — sub1 · 확인: 시험 통과.
- 검증완료: 까닭 = 도우미가 옛
stationSnap()을 넘김(제품은snap()켬끔 · 간격 한 벌 — 맞음) · 도우미 맞춤 + 초안 stationSnapStep 칸 확인 · test_346_3 · test_390_4 · test_390_5 47 통과 · typecheck(검증 대기).
- 검증완료: 까닭 = 도우미가 옛
- 401-3 평면 곡선 R 글이 도구줄 [되돌리기] 단추를 덮어 누름이 안 감(sub6 보고 · Ctrl+Z 는 됨) — sub8 · 확인: 화면 단추 누름 · 글은 도구줄 아래로 · 누름 안 가로챔.
- 까닭: R 창(
.b05-routeedit__label) · 등고선 자물쇠 층 3 > 도구줄 · 횡단 판 층 2. 고침 = 둘 다 층 1(지도 위 표지 층). - 검증완료 — 시험 16 통과 · 5183 검증_sub8 곡선 지움 → R 창을 [되돌리기] 위로 끎(겹침) · 그 자리 맨 위 = 단추 · 진짜 누름 = 「되돌렸습니다 · 곡선 26곳」 · 저장 안 함 · 종단 판 접힘 되돌림(검증 대기).
- 까닭: R 창(
402. 프로젝트 다시 만들기 — 하나 파일 입력 · 전처리 시험 → 나머지 복제(같은 이름) (요구 250-4 · sub5 · Opus high)
- 정함(브레인): 지우기 전 백업(DB 프로젝트 행 · 자식 표 · storage 폴더 통째 · 되살리는 길 시험) · 원본 입력 파일 = 지금 프로젝트의 B03 원본 · 새 프로젝트 하나 = 화면 길(B02 등록 → B03 파일 입력 → B04 전처리 · 완료 메일 = 사용자 요청이라 감수) · 문제 없으면 나머지 = 복제 도구(db_management/tools_clone_project.py · storage 복사)로 지금 이름 · 주인 · 참여자 그대로 · 옛/새 id 표(OWNERS.md 검증_subN 갱신 거리 = 사용자에게 알림) · 지우기는 다른 창 화면 확인이 끝난 뒤 브레인 신호로.
- 402-1 목록 · 백업 · 되살리기 시험 · 복제 도구 시험(지우기 없음) — 확인: 표 + 백업 크기 · 시험 복제 하나 열림.
- 검증완료(402-1 · sub5): 16 개 · 모두 캐미팩토리 · B03 원본 한 벌(용화.las 외 8) · 백업 C:/Aislo_backup/1017_projects(50 GB · storage 16 + db_projects.json 21 표) · 되살리기 왕복 시험 · 시험 복제 둘 열림 뒤 지움 · 도구 tools_project_backup.py 새로 · 복제 도구 참여자 · 지형층 · --owner · --members.
- 정함(브레인 · ⚠ 데스크탑 임시 배포 같은 DB · storage PC 마다 따로 · 데스크탑 D: 에도 같은 16 폴더): 데스크탑 옛 폴더는 지우지 않음(검증 사용자 작업 보존 = 백업) · 새 프로젝트 storage 는 랩탑에서 만든 바탕 폴더 하나를 Tailscale 파일 보내기(Taildrop)로 데스크탑에 보내 데스크탑에서 storage 만 복제(새 id 15 + 바탕) · 지우기는 다른 창(sub3 · sub6 · sub4) 끝난 뒤.
- 402-1b storage 만 복제 길(복제 도구 --storage-only · 데스크탑에서 돌릴 차례) · Taildrop 작은 파일 시험(랩탑 → 데스크탑) · 데스크탑 D: 남은 자리 — 확인: 작은 파일 받음 · 시험 폴더 복제 열림.
- 검증완료(402-1b · sub5): --storage-only(283 파일 md5 = 통째 복제) · Taildrop 100 MB 12.8 초(3 GB ≈ 7 분 · tar 하나 · 데스크탑 Downloads 로 받음) · 데스크탑 D: 1615 GB 남음 · sub_desktop_1 storage = 임시 배포 storage 정션 · 데스크탑 돌리기 = 깃 싱크 뒤.
- 검증완료 — --storage-only 다시 만든 폴더 283 파일 md5 통째 복제와 같음 · B05 API 열림 · Taildrop 100 MB 12.8 초 MD5 같음(데스크탑 Downloads 에 저절로) · D: 1615 GB 남음 · tmp/402_데스크탑.md
- 검증완료 — 백업 C:/Aislo_backup/1017_projects 50 GB · 되살리기 왕복 B05 응답 같음 · 시험 복제 B05 열림 뒤 지움 · tmp/402_목록.md · tmp/402_계획.md
- 402-2 (브레인 신호 뒤) 지움 → 새 프로젝트 파일 입력 · 전처리 → 확인 — 확인: 전처리 단계 모두 끝 · B05 열림.
- 검증완료 — 옛 16 지움(DB 연쇄 + storage · 직전 덤프 db_projects_final.json · storage 백업 /MIR 같음) · 새 검증_랩탑메인 화면 길(B02 → B03 9 파일 업로드 46 s → 전처리 4 min → 자동 체인 B05·B06 1 min) · 단계 0·1 COMPLETE · 2·3 IN_PROGRESS(체인 설계상 「사용자 검토 대기」 · 옛 16 중 15 와 같음) · B05 노선 1080.2 m · 구조물 1(17+11 배관 = 세류선 교차 하나) · B06 횡단 57 · 오류 로그 없음 · tmp/402_new_b05.png · tmp/402_new_b06.png
- 402-3 복제로 나머지 같은 이름 — 확인: 목록 이름 · 주인 같음 · 각 B05 열림 · 옛/새 id 표.
- 검증완료 — 15 복제 · 이름 · 주인 · 참여자 옛과 같음 · 랩탑 8007 · 데스크탑 8000 B05 API 각 64/64 · storage 는 Synology Drive 로 랩탑 ↔ 데스크탑 동기화(데스크탑 16 폴더 296 파일 · 바이트 합 같음 · 옛 데스크탑 폴더도 동기화로 지워짐 = 랩탑 백업 + Synology 휴지통) · tmp/402_id표.md
403. 평면 곡선 없는 교각점(삼각) 각도 표기 (요구 250-5 · sub8 · Opus high)
- 403-1 삼각 자리에도 내각 · 교각 글(곡선 있는 자리와 같은 꼴) — 확인: 시험 + 화면.
- 검증완료 — 시험 12 통과 · typecheck · 화면(검증_sub8 21번째 꺾임점 곡선 삭제 → 「내각 128° · 곡선 없음」 한 줄 · 곡선 있을 때 128° 같음 · 밝음/어두움) · 저장 안 함 · 검증 대기.
404. R 곡선 합치기 — 의도 분석 · 제안 (요구 250-6 · sub4 · Opus high · 코드 X)
- 사용자 의도: 크게 하나의 곡선으로 표현할 수 있는 곳은 하나로 · 곡선 사이 직선 사라짐 · 최적 경로를 찾되 가능하면 노선 단순화.
- 404-1 제안(갈래 · 수치 · 전후 그림 · 지식DB 근거 · 398-4 접선 규칙과 관계) — 확인: 제안 글(tmp) · 브레인이 docs 로.
- 검증완료(404) — sub4
C:\Aislo_wt\sub_laptop_4\tmp\제안_404.md· 그림tmp/제안_404_<갈래>.png다섯 · 권장 ①b(같은 쪽 이웃 합치기 + 398-4 접선 규칙) = 곡선 평균 32 → 21 · 같은 쪽 짧은 직선 1517 → 37 · 기울기 · 토공 그대로 · ②단순화 · ③꺾임 벌점 탈락(기울기 망가짐 · 변화 없음) · 남은 결정 = 398-4 허락 · 측점 못 놓을 때 합치기 풀기 · 이탈 4 m · S자 직선 남김 · 검증 대기.
405. 요구 250 마무리 — 전역 싱크 · 합치기 · 브레인 화면 검증(새 프로젝트) · 아티팩트 (브레인)
- 405-1 전역 깃 싱크(작업 전).
- 405-2 합치기 · 묶음 · 시험 · typecheck.
- 405-3 브레인 화면 검증(399 · 400 · 401 · 403 · 새 프로젝트 전처리 · 복제) · 아티팩트 보고(242~250 · 결정 거리).
- 검증완료(405) — 전역 싱크(열세 폴더
614f12bb8) · 합침 · 묶음 다섯 · typecheck 0 · 시험 108 파일 694 통과 · 브레인 화면(옛 검증_브레인232 V1V19 · 243247 · 새 검증_브레인232 B05 · 마커 · 곡선 창) · 프로젝트 16 다시 만듦(랩탑 · 데스크탑 B05 16/16) · 아티팩트 https://claude.ai/artifact/G355tzL2xESFmk2z928ecz · 남은 결정 = 388-4 · 398-4 · 404(①b 결정 넷) · OWNERS.md id 갱신(사용자) · 검증 대기.
406. R 곡선 합치기 — 추천 초기노선 (요구 251-2 · 404 ① · sub4 · Opus high) — (일부 · 남은 줄은 PLAN.md)
- 406-1 합치기 단계(Pool
_trace뒤 · 측점 맞춤 앞 · 새 파일B05_Profile_Engine_RouteInitial_Merge.py) — 확인: 새 시험(같은 쪽 쌍 합침 · S자 안 합침 · 기울기 · 복도 · 계류 막힘). - 406-2 거리 한도 걷기(Radius
ROUTE_RECOMMEND_MAX_GAP_M· StationROUTE_STATION_SNAP_MAX_GAP_M→ 직접 잼) · MC = 일반측점 늘 놓임 ·ALGO_VERSION6 — 확인: test_224_4 등 고침 + 다섯 갈래 지금 대비 표(곡선 · 측점 밖 0 · 최대 기울기 · 토공). - 406-3 화면(검증_sub4 추천 → [적용] → B05 곡선 · MC 측점 · 종단 열림) — 확인: ORCA 수치.
- 검증완료(406) — sub4 · 시험 12 파일 109 통과 · 12 건너뜀(새 test_406_1 7 · 옛 test_224_4 · 351_2 · 364_5 · route_initial 등 고침 없이 통과 — 이탈 한도 판은 추적 · 새 초기 노선에 그대로) · typecheck 0 · 검증_sub4 v5 → v6: gradeline · earthwork · gentle 측점 밖 0 · 기울기 위반 5/4/4 → 1 · 같은 쪽 짧은 직선 15/17/14 → 8 · 최대 기울기 19.3/19.7/17.5 → 17.6 · 절성토 ±1 % · 곡선 30/38/33 → 33 · weighted 곡선 35 → 26 · 측점 밖 1 → 5 · ORCA 5179 기울기 최소 [적용] = 계획노선 1167.4 m · 곡선 33 · MC 33 곳 모두 서로 다른 일반측점 · 최소 R 12.35 · 종단 0+0~58+7 열림 · 오류 없음 → 적용 전으로 되돌림(DB 6표 · 파일 대조 같음) · 남은 물음 = weighted 측점 밖 5 · 세 갈래 같은 선(후보 하나) · 모달 「6m 안에서 밀고」 설명 · 검증 대기.
- 406-4 v6 남은 것(sub4 보고 · 표 sub4
tmp/406_수치.md) — 정함(브레인): ① 합칠 때 그 곡선 MC 를 기울기 지키며 측점에 놓을 수 있어야 합침(합친 뒤 풀기 아님 · weighted 측점 밖 ≤ v5) ② gradeline · earthwork · gentle 세 갈래가 같은 선(후보 하나만 남음) — v5 와 다른 까닭 찾아 v6 탓이면 갈래마다 다른 선 되살림 ③ 곡선 수가 덜 줄어든 까닭(합치기를 막은 검사별 개수 · 삼각 교점이 곡선으로 바뀐 수) 보고 ④ 추천 창 설명 「교각점을 6m 안에서 밀고」 고침 · 셈 30 → 66 s 는 기록만(기능 먼저) — sub4 · 확인: 시험 + 다섯 갈래 표 다시. - 검증완료(406-4) — sub4 · 커밋
28e4b0eaf· ALGO_VERSION 7 · ① 합칠 때 측점 놓기 잼(합친 곡선은 IP 밀어 놓은 꼴까지 잼 통과 · 놓을 수 없는 쌍 54 은 처음부터 안 합침) + 측점 맞춤이 합친 꼴 먼저 판에 측점 밖 생기면 옛 차례 판과 견줘 적은 쪽 → 다섯 갈래 측점 밖 ≤ v5(weighted 5 → 1) ② 세 갈래 같은 선 = 거름 규칙(기준 길보다 못 지킨 곳 많으면 뺌) · v6 은 기준 길이 5 → 1 로 좋아져 나머지(기울기 위반 27) 탈락 — 규칙 그대로 둠 · 기준 4 로 풀면 다른 선이나 위반 1 → 4(표) · 제약 지키는 지형(언덕 시험)은 세 갈래 다른 선 ③ 합치기 막힘(gentle 묶음 같은 쪽 쌍) 통과 20 · 토공 124 · 기울기 83 · 측점 54 · 전체 잣대 7 · 이격 6 · 복도 5 · 계류 · 최소 R 0 · 삼각 → 곡선 gradeline · earthwork 7 · gentle 3(꺾이는 곳 37 → 33) · 토공 폭 20 % 면 gentle 곡선 33 → 27 · 위반 1 → 3 — 폭 그대로 ④ 설명 글 고침 · 시험 12 파일 111 통과 · typecheck 0 · ORCA 5179 설명 새 문구 · 비중 계산 [적용] = 곡선 32 · 31 곳 측점 위 · 측점 밖 1(= v5) · 종단 0+054+10 열림 · 오류 없음 → 적용 전으로 되돌림(DB 6표 · 파일 대조 같음) · 셈 30 → 85 s 기록 · 검증 대기.
407. 곡선 측점 — MC 에 측점 없으면 더함 (요구 252-2 · sub6 · Opus high)
-
정함(브레인): 224-2(스냅 켬 · 호 안 일반측점 → MC 로 옮김) 그대로 · 그 밖에 MC 에 측점이 없으면(스냅 끔 · 짧은 호) MC 자리에 곡선 측점(새 종류
curve· 열쇠curve:<누가거리>· 이름 「No.5+7 (MC)」) · 값 = 스냅 간격 자릿수(390-5) · 일반측점 값과 같으면 안 더함 · BC · EC 안 더함 · 근거docs/raw/조사/2026-10-18_407_요구252_분석.md2장. -
407-1 측점 목록 짝(Core.py
generate_sections↔logic/B05_Profile_Sections_Stations.tsbuildStations· station_key 짝 · StationKind) · B06 종류 갈래 · 평면 눈금 — 확인: 거울 시험(344_3 둘) · 224_2 · 390_5 + 새 시험(스냅 끔 · 짧은 호 · 일반측점 위 MC = 안 더함). -
407-2 화면(검증_sub6 · 스냅 끔 / 켬 짧은 호 → 평면 눈금 · 종단 · B06 카드 · 오른쪽 횡단에 곡선 측점) — 확인: ORCA 수치.
- 검증완료(sub6) — 시험 381 통과 · typecheck · 화면(검증_sub6 · 저장 노선 = MC 모두 20 m 배수 → 곡선 측점 0 · R 12→17 스냅 끔 = 곡선 측점 17(19+17 (MC) 397.0m 카드 · 확폭 2.00) · 스냅 켬 0.1 · R 25 = 짧은 호 셋 398.4 · 438.4 · 478.4 · 평면 「21+18.4 (MC)」 · 오른쪽 횡단 438.4 · 밝음/어두움 · 되돌림) ·
fe893cfb8· 서버 묶음 다시 지음 필요(검증 대기)
- 검증완료(sub6) — 시험 381 통과 · typecheck · 화면(검증_sub6 · 저장 노선 = MC 모두 20 m 배수 → 곡선 측점 0 · R 12→17 스냅 끔 = 곡선 측점 17(19+17 (MC) 397.0m 카드 · 확폭 2.00) · 스냅 켬 0.1 · R 25 = 짧은 호 셋 398.4 · 438.4 · 478.4 · 평면 「21+18.4 (MC)」 · 오른쪽 횡단 438.4 · 밝음/어두움 · 되돌림) ·
-
407-3 구조물을 MC 위에 놓았다 빼면 노선 다시 저장 전까지 서버 종단에서 그 곡선 측점 빠짐(sub6 보고) — 정함(브레인): 구조물 저장 · 지움 때도 서버 측점 목록이 곡선 측점을 다시 셈(노선 저장 기다리지 않음) · sub6 · 확인: 시험(놓음 → 뺌 → 서버 종단 곡선 측점 있음).
-
407-4 가까운 측점(1.6 m)과 종단 측점 이름 겹침 — 정함(브레인): 겹치면 비켜 그림(지우지 않음) · sub6 · 확인: 화면(겹친 두 이름 다 읽힘) + 시험.
- 검증완료(sub6) — 시험 334 통과(새 407_3 · 407_4) · typecheck · 407-3 = [저장] 횡단 차례 측점 맞춤이 곡선 측점 어긋남도 셈 → 놓음 = 107 구조물 측점 하나 · 뺌 = 107 곡선 측점 되살아남 · 407-4 = 화면(검증_sub6 · 스냅 0.1 · R 25 → 「19+16 (MC)」 제자리 · 「20+0」 한 단 위(13 px) 등 일곱 쌍 · 밝음/어두움 둘 다 읽힘 · 되돌림) ·
5269859ee·e8f2ae02d·98755730e· 서버 묶음 다시 지음 필요(검증 대기)
- 검증완료(sub6) — 시험 334 통과(새 407_3 · 407_4) · typecheck · 407-3 = [저장] 횡단 차례 측점 맞춤이 곡선 측점 어긋남도 셈 → 놓음 = 107 구조물 측점 하나 · 뺌 = 107 곡선 측점 되살아남 · 407-4 = 화면(검증_sub6 · 스냅 0.1 · R 25 → 「19+16 (MC)」 제자리 · 「20+0」 한 단 위(13 px) 등 일곱 쌍 · 밝음/어두움 둘 다 읽힘 · 되돌림) ·
-
407-5 B05 종단 아래 표(계획고 · 지반고 · 측점 행)도 가까운 측점끼리 글 겹침(sub6 보고) — 정함(브레인): 겹치는 칸만 비켜 쓰거나 세로로(지우지 않음 · 407-4 와 같은 함수 쓰면 좋음) · sub6 · 확인: 시험 + 화면(1.6 m 쌍 둘 다 읽힘).
- 검증완료(sub6) — 시험 55 통과(test_407_4 표 칸 세우기 더함) · typecheck · 화면(검증_sub6 · 스냅 0.1 · R 25 → 지반고 행 세운 칸 12 = 겹친 여섯 쌍만 · 글 겹침 0 · 확대 두 단 · 되돌림 같음 · 밝음/어두움 둘 다 읽힘 · 되돌림) · B06 같은 표 없음 ·
501d9ca90· dfb3cba24(검증 대기)
- 검증완료(sub6) — 시험 55 통과(test_407_4 표 칸 세우기 더함) · typecheck · 화면(검증_sub6 · 스냅 0.1 · R 25 → 지반고 행 세운 칸 12 = 겹친 여섯 쌍만 · 글 겹침 0 · 확대 두 단 · 되돌림 같음 · 밝음/어두움 둘 다 읽힘 · 되돌림) · B06 같은 표 없음 ·
408. R 바꿈 뒤 뒤쪽 측점 맞춤 — 있음 · 보고 · 시험 (요구 252-3 · sub1 · Opus high)
-
정함(브레인): 반지름 · 곡선 길이 입력 = 교점 끌기와 같은
fitCurveStations(k-1 …)로 뒤쪽 곡선까지 이미 맞춤(분석 3장) → 고칠 것 = 상태줄 「함께 밀린 교점 N곳 · 못 맞춘 곡선 No.…」(KeyNudge 재사용) · 뒤쪽 MC 시험 · 접선 규칙 그대로(251). -
408-1 R · 곡선 길이 입력 뒤 상태줄 보고 + 시험(R 키운 뒤 뒤쪽 MC 측점 위 · 측점 밖 개수 안 늘어남) — 확인: test_398_2 · 366_3 · 새 시험 + 화면(스냅 켬 · R 바꿈 → 뒤 곡선 MC 눈금).
- 검증완료 — 시험 72 통과 · typecheck · 검증_sub1 R 12→30 = 「함께 밀린 교점 7곳」 · 곡선 25 MC 모두 측점 위(최대 0.009 m) · 곡선 길이 = 「못 맞춘 곡선 No.38+19」 · 스냅 끔 = 보고 없음 · 뒤 MC 740.6~1001.2 어긋남 · 빈 값 · 되돌리기 · 어두움 · 저장 안 함 · 검증 대기.
-
408-2 창 나눔(종단 판 열림) 때 평면 상태줄이 종단 표 밑에 깔림(sub1 보고 · 옛 배치 흠) — 정함(브레인): 고침 = 평면 상태줄이 늘 보이게 · sub1 · 확인: 화면(창 나눔 · 종단 판 열고 R 바꿈 → 상태줄 보임) + 시험.
- 검증완료 — 시험 112 통과(새 test_408_2 · 345_5c 고쳐 씀) · typecheck · 검증_sub1 판 열림 = 상태 글판 아래 418 < 판 위 430 · 접힘 = 제자리(1065 < 1077) · 창 분할 = 제자리 · 되돌아옴 = 다시 위 · R 12→30 「함께 밀린 교점 8곳」 보임 · 어두움 · 저장 안 함 · 검증 대기.
-
408-3 잰 값 창(평면 오른쪽 아래)도 종단 판에 가려짐(sub1 보고) — 정함(브레인): 408-2 와 같은 올림 · sub1 · 확인: 시험 + 화면(판 열고 재기 → 창 보임).
- 검증완료 — 같이 올림 = 잰 값 창 · 오른쪽 횡단 판(손잡이 530→206 · 아래 반) · 시험 115 통과 · 검증_sub1 판 열림 = 잰 값 창 368
418 · 횡단 판 58418 < 판 위 430 · 접힘 · 창 분할 = 제자리 · 결합 = 다시 위 · 어두움 · 되돌림 · 저장 안 함 · 검증 대기.
- 검증완료 — 같이 올림 = 잰 값 창 · 오른쪽 횡단 판(손잡이 530→206 · 아래 반) · 시험 115 통과 · 검증_sub1 판 열림 = 잰 값 창 368
-
408-4 오른쪽 횡단 판이 넓게 열리면 상태 글판 · 잰 값 창이 옆으로 겹침(sub1 보고 · 옛 흠) — 정함(브레인): 글판 · 창이 횡단 판 왼쪽 안에서 끝남(겹치지 않음) · sub1 · 확인: 시험 + 화면(판 넓힘 · 좁힘 · 접힘).
- 검증완료 — 빈 폭 반씩 · 반 200 px 아래 = 잰 값 창을 상태 글판 위로 쌓음 · 시험 119 통과 · 검증_sub1 횡단 판 460 = 글판 332
654 · 창 666988 · 판 1020~ · 891 넓힘 = 창 315365 위 · 글판 373418 · 둘 다 ~589 < 판 621 · 312 좁힘 · 판 접힘 · 종단 접힘 · 창 분할 = 겹침 0 · 어두움 · 판 폭 460 · 닫힘 되돌림 · 저장 안 함 · 검증 대기.
- 검증완료 — 빈 폭 반씩 · 반 200 px 아래 = 잰 값 창을 상태 글판 위로 쌓음 · 시험 119 통과 · 검증_sub1 횡단 판 460 = 글판 332
409. 구조물 마커 맨 위 · 다른 곳 누르면 고름 풀림 (요구 252-4 · sub3 · Opus high)
-
정함(브레인): 마커 = 평면 그림 맨 마지막 · 누름 · 올림 · 커서 마커 먼저(측정 · Shift 다음) · 마커 누르면 교점 고름 풂 · 마커 아닌 곳 누름 · Esc = 마커 고름 풂 · 오른쪽 판은 마지막 측점 그대로 · 분석 4장.
-
409-1 그리기 · 누름 차례 · 고름 풀기 — 확인: test_399 차례 고쳐 씀 + 새 시험 + 화면(교점 겹친 마커 누름 · 빈 곳 · 교점 · 눈금 누름 = 풀림 · Esc).
- 검증완료(sub3) — 시험 24 + 이웃 108 통과 · typecheck · 화면(검증_sub3 · 교점 13 고른 채 11 px 겹친 19+2 마커 누름 = 마커 고름 · 곡선 판 닫힘 · 빈 곳 · 교점 · 16+0 눈금 · Esc = 풀림 · 오른쪽 판 그대로 · 밝음/어두움 · 보기 · 관 자리 되돌림 · 저장 안 함) · 24fe93ba6(검증 대기).
-
409-2 마커 고름 풀면 좌측 구조물 목록 줄 강조 · 그 구조물 폼도 풂(sub3 물음) — 정함(브레인): 고름은 하나 → 목록 강조 · 폼 함께 풂 · 좌측 패널 접힘 · 펼침 상태는 그대로 · sub3 · 확인: 시험 + 화면(마커 고름 → 빈 곳 · Esc → 목록 강조 · 폼 없음 · 패널 접힘 그대로).
- 검증완료(sub3) — 시험 97 통과(409 · 399 · 411-A · 398-1 · 233-1~4 · 270-1 · 이웃) · typecheck · 화면(검증_sub3 · 구조물 배치 접은 채 · 편 채 둘 · 17+16 · 19+2 마커 고름 = 줄 is-selected · 폼 A/배관 → 빈 곳 · Esc = 줄 강조 0 · 폼 「선택」 · 접힘 · 펼침 그대로 · 오른쪽 판 그대로 · 밝음/어두움 · 되돌림 · 저장 안 함) · f91c59a2f(검증 대기).
410. 구조물 · 관 자리 = 등고선 좌표 지킴 (요구 252-5 · sub7 · Opus high)
- 정함(브레인): 자리 기준 = 놓은(마커로 옮긴) x · y · 노선 바뀌면 새 노선에 투영해 누가거리 다시 매김(정수 m) · 마커 옮김 = 새 x · y 적음 · 배수 편집기는 따라간 값 받아 씀 · 관 초안에 x · y · 사토장 · 토취장 지금처럼 · 서버 저장 같은 규칙(짝 · 거울) · 분석 5장.
- 410-1 마커 옮김 x · y · 배수 편집기 따라감 받음 · 저장 짝 — 확인: 시험(교점 옮김 · R 바꿈 뒤 관 · 구조물 x · y 그대로 · 누가거리 다시 매김 · 옮긴 구조물 안 튐) + 화면.
- 검증완료 — 좌표 낡음 판정(좌표가 누가거리를 안 낳으면 노선 위로 · TS placeOnLine ↔ 파이썬 fill 짝) · 배수 편집기 id 짝 따라감 · 초안 둔 채 열기 자리 · test_410 7 · 이웃 시험 55 통과 · typecheck · 검증_sub7 교점 끌기 = 관 351→354 · 구조물 159→167 · 260→266 x · y 그대로 · 마커로 167→246 옮긴 뒤 교점 끌기 = 250 · 새 x · y(옛 자리로 안 튐) · 다시 열기 = 205 · 354 그대로 · 되돌리기 · 초안 버림 = 351 · 저장 안 함 · 세션 되돌림 · 묶음 다시 지음 필요 · 74ae3ac26(검증 대기).
411. 마커 옮기면 새 측점 · 오른쪽 횡단 빔 (요구 252-6 · A sub3 · B~D sub7 · Opus high)
- 정함(브레인): 오른쪽 판 = 구조물 · 관 골라도 그 측점 횡단 그림 · 관 · 구조물 짝 = id(정렬 차례 짝 걷음) · B06 열쇠 = 파이프라인과 같은 규칙(서버 관 id 도
pipe:) · 분석 6장. - 411-A 오른쪽 판 구조물 · 관 고름 횡단(Cross.ts
watching.structure걷음 · 옮긴 뒤 다시 고름) — sub3 · 확인: 시험 + 화면.- 검증완료(sub3) — test_411_a 7 통과 · 화면(관 19+2 · 17+16 마커 고름 = 그 측점 횡단(집수정) · 17+16 → 17+13 끌기 = 판 17+13 · 되돌려 17+16) · 옮긴 뒤 = 측점 열쇠로 따라감(다시 고름 안 씀) · 24fe93ba6(검증 대기).
- 411-B 관 id 짝 차례 → id(
shownPipes·movePipeId·followedMarks·followPipeReports) · 411-D B06 열쇠 — sub7 · 확인: 시험(앞 관 지나 옮김 = 알약 · 측점 수 그대로 · id 그대로) + 화면(노선 고친 초안 · 안 고친 상태 둘 · B06 카드 계획고 0 아님).- 검증완료 — 관 알림에 고정 id · 세션 id = 관 고정 id 표로 새 자리(placePipeIds · 헛 id 뺌) · followedMarks 같은 자리 먼저 · B06 useStationOwners 서버 관 id = pipe: · test_411_b 8 통과 · 검증_sub7 안 고친 상태 200→100(앞 관 120 지남) = 알약 5 · 측점 56 · id 그대로 · 노선 고친 초안 354→110 · 205→110 · 300→89 = 알약 5 · id 그대로 · B06 카드 4+9 계획고 863.6(0 아님) · 저장 안 함 · 세션 되돌림 · 74ae3ac26(검증 대기).
- 남은 것 — B06
Station_Keys.ts관 같은 옛 측점 열쇠(pipeIdAt지음 · sub6 줄)가 옛 자리에 헛 세션 id 를 지음(화면 맞춤이 빼서 지금은 무해).
- 411-E B06
Station_Keys.ts관 옛 측점 열쇠가 옛 자리에 헛 세션 id 를 지음(sub7 보고 · 지금 무해) — 정함(브레인): 걷음(옛 자리 id 안 지음) · sub7 · 확인: 시험(관 옮김 뒤 세션 id 표에 헛 id 0) + B06 카드 그대로.- 검증완료 — 관 계획을 아는 동안(초안) 계획에 없는 관 측점 = pipeIdNear(안 지음) · 초안 없음 = 옛 갈래 · 화면 맞춤 때 지금 관 자리 밖 기록 정리 · test_411_b 10 · test_407 · 344_3 · 이웃 시험 136 통과 · typecheck · 검증_sub7 교점 끌기 · 208→110(앞 관 120 지남) · B06 열기 = 세션 id 표 3(관 3 · 헛 id 0) · B06 카드 5+10 계획고 861.7 · 되돌리기 두 번 = 120 · 200 · 351 · id 그대로 · 쌓인 헛 id = 열 때 정리 · 저장 안 함 · 세션 되돌림 · 274a0f892(검증 대기).
412. 요구 253 검토 — 추천 기울기 · 재계산 · 십자선 둘 · 한 페이지 끊김 · R 개수 · 교차 원 · 초기화 · 탄젠시 점 (브레인 · 클로드 에이전트 넷 · 코드 X) — (일부 · 남은 줄은 PLAN.md)
- 412-1 분석(1~8장) — 확인: 에이전트 넷 file:line · 시제품 수치(저장본 재현 뒤) · 브레인 판단.
413. B06 십자선 = 형상과 한 높이 + 원지반 십자선 (요구 253-2 · sub6 · Opus high)
- 정함(브레인): 보라 십자선 높이 = 그 측점 설계 높이(
section.design.design_elevation_m· 형상과 같은 값 · 없을 때만 종단 표본) · 평면 초안 때 종단 표본(design_profiles)도 초안 종단으로 · 원지반 십자선 =section.center_z(없으면 가까운 표본) · 원지반 색--color-chart-1· 보라보다 먼저 그려 겹치면 보라 위 · 다른 무리 class · 상세 창 확대 보정 둘 다 · B05 오른쪽 판 같은 규칙 · 근거 분석 412 5장. - 413-1 십자선 한 출처 · 원지반 십자선 — 확인: 시험(초안 때 십자선 y = 형상 높이 · 원지반 십자선 보라 앞 · 318 · 150 · 164 고쳐 씀) + 화면(평면 교점 끌기 → B06 카드 · 오른쪽 판 십자선 = 도로 형상 · ▲▼ 같이 움직임 · 원지반 십자선 · 겹침 보라 위 · 밝음 · 어두움).
- 검증완료 — 시험 318 · 150 · 164 · 346_2 · 349_0f · 349_0j · 365 통과 · typecheck · 화면(검증_sub6 · 5181): 평면 초안(중심점 ▶ 2 m) B06 카드 17 · B05 오른쪽 판 2 = 보라 십자 ↔ 도로 형상 0 px · ▲▼ +0.3 m = 둘이 4.25 px 같이 · 원지반 십자 먼저 · [상세] 확대 보정 둘 다 · 원지반고 칸 = 원지반 십자 · 밝음 · 어두움 · 세션 되돌림 · 검증 대기.
414. B06 교차 원 = 절토 · 성토 바뀜 자리만 · 마우스 가까이만 + 평면 BC · EC 네모 노선 뒤 (요구 253-5 · 253-7 · sub3 · Opus high)
- 정함(브레인): 교차 원 = 그 쪽 도로 끝 높이 = 원지반 ±5 mm(
edgeOnGround·bare)일 때만 · 평소 투명 · 마우스 가까이 · 고름 때 보임 · 누르면 지금처럼 고름 → ◀▶ 로 절토 ↔ 성토 · 평면 = 모든 곡선 BC · EC 네모를 예상노선 뒤 · 노선 앞으로(고른 곡선 BC · MC · EC 는 위 그대로 · 잡기 14 px 그대로) · 근거 분석 412 6장 · 8장. - 414-1 교차 원 — 확인: 시험(
test_370_2세 건 바뀜 단면으로 고쳐 씀 · 보통 단면 원 0) + 화면(양쪽 절토 측점 ◀ 로 밀어 바뀜 자리 → 가까이 원 보임 · 눌러 성토로 · 멀면 안 보임).- 검증완료 — 시험 7 통과 · 화면 4+0 원 0 → ◀ 한 번에 바뀜 자리 원 1 · 평소 투명 · 올림 보임 · 19 px 밖 안 보임 · ◀ 성토 · ▶ 양측 절토 · ↺ 되돌림.
- 414-2 BC · EC 네모 노선 뒤 — 확인: 시험(
test_381_3:26고쳐 씀 · 391 · 399 · 346_2 통과) + 화면(네모 위로 노선 지나감 · 손잡이 끌기 그대로).- 검증완료 — 시험 56 통과(7 건너뜀 = 검증_sub7 없음) · 화면 노선이 네모 위로 지나감 · 네모 눌러 32번 곡선 고름.
415. 한 페이지 끊김 ① — 시설 옮김이 횡단 편집 지움 · [저장] 중 옛 목록 · 두 길 측점 (분석 412 3장 H1 · H2 · M4 · sub7 · Opus high)
-
정함(브레인): H1 = 노선 입력이 바뀐 때만 「노선 바뀜」 이월 규칙 · 관 · 구조물만 옮기면 측점 열쇠째 편집 옮김(사면 쉬프트 · 소단 깊이 · 단면 유형 · 측구 쪽 · 포장 그대로) · H2 = [저장] 중 계산 줄 먹이기 멈춤 · 끝나면 저장 목록 다시 읽음 · M4 = 새 시설 측점 서버 미리보기(
Section_Drafts.ts:84-96) 걷음(브라우저 계산 줄 하나) · 고치기 전 화면 재현 먼저(재현 안 되면 까닭 보고). -
415-1 H1 · H2 · M4 — 확인: 시험(관 옮김 뒤 세션 shoulderext · crossdesign 그대로 · 저장 중 runs 에 pipe/structure 없음 · 미리보기 요청 0) + 화면(B06 사면 쉬프트 · 단면 유형 → B05 관 5 m 옮김 → 편집 그대로 · 관 10 m + 지반 바꿈 → [저장] → 저장 본문 값).
- 검증완료 — test_415 7 · 관련 51 파일 294 통과 · 화면 = 관 351→356→361 편집 그대로(관 측점 고침 포함) · 저장 중 관 측점 361 유지 · 저장 본문 340 쉬프트 0.7 · 360 · 361 right_cut · 380 blasting_rock · 미리보기 0 · 되돌림 완료.
-
415-2 관 옮긴 뒤 [되돌리기] = 목록은 원래인데 공용 캐시 측점은 옮긴 자리(sub5 보고) — 415 와 같은 자리 · sub7 · 확인: 시험 + 화면(옮김 → 되돌리기 → 측점 · 캐시 원래).
- 검증완료 — test_415 되돌리기 · 화면 = 356 옮김 → 되돌리기 351(입력 · 측점 · 캐시 · 관 측점 고침) → 다시하기 356.
-
415-3 저장 노선 → 첫 초안 갈아끼움 때 관 측점 열쇠 갈림(B06 세션 pipe-s1 ↔ 계산 줄 pipe:p35100 · 누가거리 조절 초안 카드로 안 따라감 · sub8 알림) — H2 와 같은 자리 · sub7.
- 검증완료 — 열쇠 갈림 = 415-1 로 풀림(B06 연 길 · 초안 카드 358 옹벽 조절 그대로) · B05 만 연 길(조정창 맵 없음)은 안 따라감 → 갈아끼움 뒤 세션 칸 바로 옮김(옹벽 · 세월 · BOX · 집수 · 연동) · test_415 8 · 관련 50 파일 302 통과(323-9 둘 실패 = 합친 HEAD 에서도 · 이번 고침 무관) · 초안 버리면 351 되돌림.
416. 한 페이지 끊김 ② — 저장 뒤 새 자료 · 관 길이 출처 · 오른쪽 판 노선 id (분석 412 3장 M1 · M5 · L2 · sub5 · Opus high)
-
정함(브레인): M1 = [저장](노선 안 바뀜) 끝에 늘 자료 다시 읽고 종단 · 오른쪽 판 다시 그림 · M5 = 관 길이는 공용 캐시(페이지 노선)에서 · L2 = 오른쪽 판 = 페이지 노선 id · 암선 기본값 = config.
-
416-1 M1 · M5 · L2 — 확인: 시험 + 화면(B05 [저장] 뒤 평면 측점 누름 → 오른쪽 판 횡단 그림 · 면적 = B06 · 관 옮긴 뒤 좌측 관 길이 = B06 카드).
-
416-2
test_323_9_save_redraw둘 실패(메인69823d830· 저장 뒤 B06 카드 = 옛 자리 4+5 · 새 자리 4+8 · 47+0 아님 · 저장 중 다시 그림 차례 다름 · sub7 알림) — 416 M1(저장 끝 캐시) · 415 H2(저장 중 먹이기 멈춤) 중 어느 고침 탓인지 찾아 코드 고침(시험이 옛 규칙이면 까닭 보고 뒤 고쳐 씀) · sub5 · 확인: 323_9 · 416 · 415 · 323 묶음 통과 + 화면(B06 [저장] 뒤 카드 새 자리).
417. 한 페이지 끊김 ③ — 평면 바꾼 저장 때 B06 조절 · 평면 초안 중 B06 단추 · 소단 깊이 (분석 412 3장 M2 · M3 · L4 · sub8 · Opus high)
- 정함(브레인): M2 = 노선 바꾼 [저장] 때 B06 거리 열쇠 조절(옹벽 · 세월 · BOX · 집수 · 덧 옹벽 · 경간 · 잇기 · 측점 폭 · 메모 · 상세 표) · 사면 쉬프트 · 소단 깊이를 새 노선 측점으로 옮겨 실음(측점 옮김 목록 · 서버 이월 열쇠 짝 · 거울 시험) · M3 · L4 = 평면 초안 횡단 입력에 사면 쉬프트 · 조절 · 소단 깊이 넣음(초안 중에도 B06 단추 먹음 · 저장 뒤 안 사라짐).
- 417-1 M2 · M3 · L4 — 확인: 시험(노선 바꾼 저장 뒤 옹벽 조절 · 사면 쉬프트 남음 · 초안 중 ◀▶ 반영) + 화면(B06 옹벽 조절 → 교점 끌기 → [저장] → 조절 그대로 · 초안 중 사면 ◀▶).
- 검증완료 — test_417 8 · 관련 101 통과 · typecheck 0 · 화면(검증_sub8) 관 351 m 옹벽 d 0.9 + 400 m 사면 0.5 → 교점 끌기 → [저장] → 새 노선 관 334 m d 0.9 · 400 m 0.5(DB · 카드) · 초안 중 사면 ◀ 0.50 → 0.70(성토사면 0.65 → 0.78 m) · 초안 중 옹벽 ▶ 반영 · 프로젝트 되돌림.
418. 초기화 정리 (요구 254-3 · 253-6 · sub1 · Opus high)
- 사용자 확정(254-3): 「노선 추천」 칸 [초기화] 지움 · 아래 [초기화] 기준 = 노선 추천으로 사용자가 [적용]한 노선(다른 추천으로 바꾸면 그것) — 지금 스냅샷 규칙 그대로.
- 정함(브레인): 노선 추천 [초기화]만 쓰던 길(편집기 handler · 「follow」 initial_choice 쓰기 · 전처리 초기 노선 읽기가 이것만 쓰면 함께) 걷음 · 아래 [초기화]는 저장 안 한 B08 · B09 초안 안 지움(B05 · B06 범위만) · 확인창 글 그대로.
- 418-1 — 확인: 시험(단추 없음 · 아래 [초기화] 뒤 b08-* · b09-estimation 초안 남음 · 추천 [적용] → 고침 → 아래 [초기화] = [적용] 노선) + 화면.
- 검증완료 —
test_418_reset_cleanup등 77 통과 · typecheck 0 · 5174 화면 노선 추천 칸 단추 [노선 추천] 하나 · 아래 [초기화](서버 응답 가짜) 뒤 b08 넷 · b09-estimation 남음 · route-draft 지움 (af5c91e27).
- 검증완료 —
419. 노선 추천 엔진 — 원지반 기울기 참고만 · 삼각 없음 · 측점 필수 · 합치기 = 횡단 토공 (요구 253-1 · 253-4 · 254 · sub4 · Opus high)
-
사용자 확정(254): 곡선 수 줄이기 = 추천 안 기능(옵션 아님) · 측점 맞춤 필수 · 토공 = 측점별 횡단.
-
정함(브레인):
docs/raw/조사/2026-10-18_419_요구254_추천엔진.md4장 — 후보 거름 ·_trace판 · 큰 R · 합치기 · 측점 맞춤의 원지반 기울기 막기 걷음(탐색 링크 상한 남김 · 시종점 상한 넘음 알림) · 합치기 멈춤 = 노선 횡단 토공 +10 %(엔진 상수) · 판정 = 바뀐 측점 횡단 차이(420cross_earthwork_delta) · 후보 줄 세움 = 상한 누른 계획선 횡단 → 위 3 균형 종단 → 고른 하나 정밀 · 삼각 없음(155° 이상도 곡선 · 못 두면 교점 지움) · MC = 일반측점 필수 · raw · unsnapped 걷음 · 시간 = 첫 갈래 지금 + 20 s 안. -
419-1 엔진 고침 — 확인: 시험(위반 수 = R · 계류 · 측점 · 삼각 0 · 측점 밖 0 · 갈래마다 다른 선 · 합치기 판정 횡단 차이) + 다섯 갈래 v7 대비 표(곡선 · 삼각 · 측점 밖 · 원지반 최대 기울기(참고) · 횡단 절 · 성 · 시간) + 화면(검증_sub4 추천 → [적용] → 곡선 · MC 측점 · 종단).
- 검증완료 — 시험 145 통과(test_419_1 새 · 406_1 · route_initial · 351_2 · 383_1 · 224_4 고침) · 검증_sub4 곡선 33 → 16
18 · 삼각 0 · 측점 밖 0 · 세 갈래 1014 m 다른 선 · earthwork 횡단 21,577 → 20,194 ㎥ · 첫 갈래 123 → 50 s · 화면 [적용] 곡선 17 · MC 측점 위 17/17 · 위 3 → 5(표tmp/419_수치.md).
- 검증완료 — 시험 145 통과(test_419_1 새 · 406_1 · route_initial · 351_2 · 383_1 · 224_4 고침) · 검증_sub4 곡선 33 → 16
-
419-2 후보 고르기 순서 의존(sub2 찾음 · 정밀 · 빠른 판 종단 섞어 견줌 → 캐시 따라 선 바뀜 · 420 전에도) — 같은 잣대끼리 줄 세우고 정밀은 고른 하나만 ·
test_weight_ends_match_branchesxfail 풀기 · sub4.- 검증완료 — 정밀 종단은 낼 사본에만(캐시 후보 = 빠른 판끼리) · xfail 풂 · 시험 test_419_1(캐시 후보에 정밀 없음 · 다른 갈래 먼저 돌려도 같은 선 · 고침 빼면 실패) · 대상 시험 199 통과.
-
419-3 [적용] 뒤 종단 최대 14.47 % > 상한 14 %(추천 셈 2 m 지형 14.0 % · [적용] 1 m 지형 · sub4 보고) — 정함(브레인): [적용] 종단도 상한 지킴(1 m 지형으로 다시 맞춘 뒤 넘으면 그 구간 다시 맞춤 · 종단곡선 넣은 뒤 다시 잼) · 위 5 개 균형 종단(설계 3 → 5) 승인 · sub4 · 확인: 시험 + 검증_sub4 [적용] 뒤 최대 ≤ 상한.
- 검증완료 — 원인 = 종단곡선 넣으려 꼭짓점 미는 맞춤(
pass_through)이 직선을 가파르게 함 · 꼭짓점 맞춤에 직선 기울기 상한(균형 종단 상한 · 반올림 여유 0.1 mm) · 검증_sub4 토공 최소 [적용] 뒤 최대 14.47 → 14.0 %(넘음 표시 없음) · 되돌림(파일 차이 0 · DB 행 같음).
- 검증완료 — 원인 = 종단곡선 넣으려 꼭짓점 미는 맞춤(
-
421-2 추천 창 「제약 못 지킨 구간 N곳」 = R · 계류 · 측점만 셈 · 원지반 기울기는 「원지반 기울기(참고)」 줄로 따로 ·
ends_over_limit이면 「시종점 높이 차가 상한을 넘음 — 종단으로 못 맞춤」 알림(sub4 보고) · sub1 · 확인: 시험 + 화면.- 검증완료 —
test_421_2_violation_lines등 35 통과 · typecheck 0 · 5174 검증_sub1 다섯 갈래 = 기준 초과 0 · 못 지킨 구간 없음 · 원지반 참고 최대 35.8 / 25.5 / 23.4 / 21.8 / 30.7 % · 넘는 곳 14 / 10 / 8 / 10 / 11 · 시종점 알림은 응답 고쳐 밝음 · 어두움 확인 (8229a5449).
- 검증완료 —
-
421-3 추천 창 「지형상 14% 로 못 이어져 상한을 29.1% 로 풂」 글 = 「탐색 링크 한도 14 → 29.1 % 로 풂(지형상 14 % 로 못 이음 · 4 m 마디 원지반)」 꼴로(엔진 맞음 · 잣대가 원지반 참고 20 m 와 다름 · sub4 보고) · sub1 · 확인: 시험 + 화면.
- 검증완료 —
test_b05_routeedit_initial등 30 통과 · typecheck 0 · 5174 검증_sub1 토공 최소 = 「탐색 링크 한도 14.0 → 29.1% 로 풂(지형상 14.0% 로 못 이음 · 4 m 마디)」 · 원지반 참고 최대 23.4 % 줄과 함께 밝음 · 어두움 확인 · 도움말 「탐색 링크 한도를 풂」 (0456c2d3d).
- 검증완료 —
420. 추천 횡단 토공 · 저장본 판 · [재계산] 서버 (요구 254 · sub2 · Opus high)
-
정함(브레인): 새
B05_Profile/B05_Profile_Engine_RouteInitial_CrossEarth.py=cross_earthwork(line, chainages, design_z | None, terrain, standard)·cross_earthwork_delta(before, after, changed_chainages, …)(공식compute_cross_design· 평균단면법 · 종단 끔 = 계획고 지반고) · 균형 종단 표준단면 = 프로젝트 저장 패널값 · 결과 절 · 성 = 횡단 ·ALGO_VERSION8 + 엔진 소스 지문 열쇠 · 옛 판 저장본 미리 셈 때 지움 · 요청recompute= 묶음 잠금 안에서 지금 입력 묶음 저장본 지우고_POOLS버림 → 새로 셈 ·initial_choice.jsonwith_profile · 미리 셈 = 종단 켬 다섯 갈래. -
420-1 — 확인: 시험(횡단 토공 = 저장 정본 ±6 % · 재계산 = 파일 새로 · 셈 수 1 → 2 · 옛 판 지움 · with_profile 되살림 · 224_3 · 351_1 · 343_2 · 364_4 고쳐 씀).
- 검증완료 — 시험 420_1 12 · 224_3 · 351_1 · 343_2 · 364_4 · route_initial 통과 · 검증_sub2 횡단 토공 = 저장 정본 절 +2.3 % · 성 +4.0 %(2 m) / +0.8 % · +1.2 %(1 m) · 0.18 s · 8004 실제 요청: 옛 판 10 지움 → v8 다섯 · [재계산] 저장본 5 지움 → 새 파일 · 뒤 요청 저장본 (
eee1da09f) · 검증 대기.
- 검증완료 — 시험 420_1 12 · 224_3 · 351_1 · 343_2 · 364_4 · route_initial 통과 · 검증_sub2 횡단 토공 = 저장 정본 절 +2.3 % · 성 +4.0 %(2 m) / +0.8 % · +1.2 %(1 m) · 0.18 s · 8004 실제 요청: 옛 판 10 지움 → v8 다섯 · [재계산] 저장본 5 지움 → 새 파일 · 뒤 요청 저장본 (
-
420-2 sub2 물음 답 — 정함(브레인): ① 다른 엔진 지문 저장본 자동 지우기 걷음(두 PC · 워크트리가 서로 지움) — 지문 다른 파일은 안 읽고 둠 · 30일 지난 것만 지움 · [재계산]은 지금 입력 것만 지움 ②
test_each_branch_best_at_own_goal파일째 돌릴 때 실패(앞 시험 묶음 캐시) = 시험끼리 캐시 비우기 · sub2 · 확인: 시험(지문 다른 파일 남음 · 30일 지난 것 지움 · 파일째 통과).- 검증완료 — route_initial 파일째 · 420_1 · 224_3 · 351_1 · 343_2 · 364_4 = 80 통과 · 1 xfail(
test_weight_ends_match_branches— 캐시 비우면 420 전 코드에서도 실패 · 엔진 pick 정밀 · 빠른 판 섞어 견줌 · 419 에서 풂 · 브레인 지시) · 다른 지문 29일 남음 · 31 · 40일 지움 · 재계산 · 두 벌 정리에서 다른 지문 안 건드림 (dfe17b5ee) · 검증 대기.
- 검증완료 — route_initial 파일째 · 420_1 · 224_3 · 351_1 · 343_2 · 364_4 = 80 통과 · 1 xfail(
421. 추천 창 — 측점 맞춤 → 종단 반영 · [재계산] 늘 켜짐 (요구 254-2 · sub1 · 418 뒤 · Opus high)
- 정함(브레인): 「측점 맞춤」 단추 지움 → 그 자리 「종단 반영」(기본 켬 · 다섯 갈래 · 누르면 바로) · [적용] 균형 종단 = 단추 값 · [재계산] 늘 켜짐(입력 오류 · 셈 중 빼고) ·
recompute보냄 · 도움말 글 · unsnapped 화면 걷음. - 421-1 — 확인: 시험(383_3 · 383_1 · 351_2 · 345_4 고쳐 씀) + 화면(종단 반영 끔 · 켬 · [재계산] = 진행 줄 · 새 결과 · [적용] 뒤 종단).
- 검증완료 —
test_421_recommend_profile등 58 통과 · typecheck 0 · 5174 검증_sub1 추천 창 = [종단 반영] 켬 기본 · 끔 → with_profile false 바로 셈 · 균형 종단 줄 사라짐 · [재계산] 진행 줄 + recompute true · [적용](저장 가짜) 몸통 balanced_profile · initial.with_profile = 단추 값 (67de77c48) · 남음 = 「새 결과」 · 「[적용] 뒤 종단」 실제 값은 420 서버 합친 뒤.
- 검증완료 —
422. 요구 253 · 254 마무리 — 합치기 · 시험 · 다음 장 후보 (브레인)
- 422-1 합치기 · 묶음 다섯 · typecheck · 장 시험.
- 검증완료(422) — 413~421 · 415-2 · 415-3 · 416-2 · 419-2 · 419-3 · 420-2 · 421-2 · 421-3 메인 합침(
ce8c9c1f2) · 서버 묶음 다섯 · typecheck 0 · 장 시험 58 파일 421 통과(실패 둘 = 323_9 헬퍼 옛 차례 → 416-2 고쳐 3 통과) · 창마다 화면 확인(브레인 화면 검증 · 아티팩트는 요청 없음) · 쉬는 창 여덟 /clear · 탭 0 · 검증 대기. - 422-2 다음 장 후보 → 424
432 로 넘김(요구 255261) — (요구 255 확인 · 에이전트 재현 = 서버 코드 · 1 m 지형 · 저장값과 소수 넷째 자리 같음 · 사용자 지시 뒤) — ① 관 옮긴 초안의 관 길이 7.2 대 저장 뒤 7.7 m — 257 재확인: 집수정 높이는 안 잃음(관 옵션에 저장 · 옮겨도 따라감 · 1.2 는 빈 칸 기본값 · 255 설명 틀림) · 더 맞는 까닭(추정) = 초안 그림의 노면 끝(노견 · 확폭 포함) 자리가 저장 뒤보다 0.350.4 m 좁았음 → 형상 차 → 길이 차 · 판정 = 348 m 초안 카드 S(약 0.6 % = 높이 · 0.00.1 % = 노면 끝) 또는 초안design.road_edges한 번 보기 ② 관을 옮겼다 되돌려 저장하면 그 자리 종단 계획선의 꺾임점(VIP)이 사라져 안 돌아옴(351 m 원지반 지나던 꺾임점 → 1.26 m 깎인 모양 ·_follow_moved_stations·followMovedNodes가 지우기만 · 새 측점에 안 세움 · 「최소고 강제」(관 위 흙 0.5 m 하한 · 기본 꺼짐)와 무관) ③ [초기화] 빈틈 — 스냅샷 없는 폴백이 덧 측점 안 지움 · 스냅샷에 배수 폴더 없으면 관 편집 안 돌아감 · M02 구조물 복사본 · 하위 단계 STALE 안 맞춤(정상 길은 구조물 · 관 목록 · 위치 다 돌아감).
423. 평면도 교각점 녹색 계열 · 테마 (요구 256 · sub3 · Sonnet high)
- 정함(브레인): 교각점(IP 원 · 곡선 없는 교각점 삼각) 색 = 녹색 계열 · 밝음 · 어두움 따로 토큰(지도 바탕 · 노선 · 등고선 · 세류선과 대비 · 어두움에서도 읽힘) · 고른 교각점 · 올림 표시는 지금처럼 구별되게 · 다른 표지(BC · EC 네모 · 곡선 3점 · 구조물 마커) 색 그대로.
- 423-1 — 확인: 시험(색 토큰 읽기 · test_349 등 통과) + 화면 한 장씩(밝음 · 어두움 · 고른 교각점).
- 검증완료 — 새 토큰
--map-route-node(밝음 #15803d · 어두움 #4ade80 · 테마 css 세 자리) · 교각점 원 · 삼각 채움만 녹색(기준 미달 붉음 · 고정 황금 · 올림 고리 · BC · EC 네모 · 구조물 마커 그대로) · test_349 · 391 · 381_3 통과 + 새 토큰 시험 1 · typecheck 0 · 화면(검증_sub3) 밝음 · 어두움 · 고른 교각점 모두 녹색 구별됨 · 사진 tmp/423_light.png · 423_dark.png · 423_pick_dark.png · 423_pick_light.png (검증 대기).
- 검증완료 — 새 토큰
424. 횡단 설계중심 좌우 끔 — 좌우는 평면으로만 (요구 260 · sub1 · Opus high)
- 사용자 확정(260): 횡단도 설계중심 ◀▶ · 좌우 끌기 작동 안 함 · ▲▼ 는 그대로.
- 424-1 B06
B06_Section_UI_Cross_Design_Pick.ts:400, 541-569가로축 ·B06_Section_UI_Cross_Center.ts노선 이동 ·A00_Common/design/design_page.ts:155·B05_Profile_UI_RouteEdit.ts:625·B05_Profile_UI_RouteEdit_Shift.ts·logic/B05_Profile_RouteShift.ts걷음 — 확인: 시험(356 · 356_4 고쳐 씀) + 화면(◀▶ 없음 · ▲▼ 됨).- 검증완료 — 중심점 칸 = 버튼 0 · 「▲▼ = 종단 계획고 · 좌우 이동은 평면에서」 · 시험 356(가짜 DOM · ◀▶ 키 막음 · 끌기 듣개 0) · 이웃 시험 280 통과(356_4 넷은 검증_sub7 storage 없어 건너뜀) · typecheck 0 · 화면(검증_sub1 · 5174) ◀▶ = 세션 변화 0 · ▲ = 계획고 초안 생김 · 세션 되돌림 (검증 대기).
425. B06 위 평면도 겹침 패널 (요구 258 · sub2 · Opus high)
- 정함(브레인): 분석 424 5장 — 기존 평면 편집기 노드를 횡단 보기 위 겹침 패널로 옮김(열 때 · 횡단 숨김 때 제자리) · 여는 손잡이 · 패널 모두 겹침(z 4 · 높이 45 % 안) · 단추 줄 · 상태줄 · 범례 · 잰 값 · 오른쪽 횡단 판 · 등고선 자물쇠 숨김 · 보기 · 팬 · 휠 확대만(편집 막음) · 평면 방향키 범위 좁힘 · 새
A00_Common/design/design_plan_peek.ts·RouteEdit.ts·Style_Cross.css안 건드림. - 425-1 — 확인: 시험(test_258 새 · design_view_parity · design_page_single · 349_0h · 345_5 · 356 · 207_1) + 화면(B06 바로 열기 → 손잡이 → 평면 · 카드 고름 → 법선 · ▲▼ 뒤 평면 다시 그림 · 밝음 · 어두움).
- 검증완료 — 시험 49 통과 · 4 건너뜀(356-4) · typecheck 0 · 화면 높이 0.450 · z 4 · 왼 · 오른 누름 · 두 번 클릭 막힘 · 가운데 · 휠 통과 · 카드 고름 · 계획고 바꿈 뒤 평면 다시 그림 · B05 로 가면 제자리 · 어두움 · 값 되돌림.
426. 종단 직선 판정 하나 · 끝점 꼭짓점 · 편집 측점 수 (요구 259 · sub3 · Opus high)
- 정함(브레인): 분석 424 6장 · 10장 — 직선 판정 = 높이 기준(1e-5 m) 한 함수(TS
Alignment.tsbuildCurves ↔ 파이썬Grade_Alignment.py:306짝 · Straighten 직선 찾기 · Pivot 이웃끼리 · 표는 안전망) · 직선화 · 자유지정 끝점이 꼭짓점 아니면 지금 높이로 꼭짓점 세움 · 고른 직선 기울이기 = 지금 경첩 높이 + 걸음 · 직선이 된 꼭짓점 기억 R 지움 · 「편집 측점 N개」 = 꺾인 편집 꼭짓점 수 · 0 오프셋 지움. - 426-1 — 확인: 새 시험(붙은 측점 100/100.4 · 120/120.25 · 직선화 뒤 R 없음 · 40~140 한 직선 · ▲ 톱니 없음 · 누름 쌓임 · 끝점 꼭짓점 아님 · 파이썬 거울) · 355_1 · 215_1 · 344_2 · 400 + 화면(구조물 측점 끼인 구간 직선화 · 자유지정 → 표 R · ▲▼).
- 검증완료 — 직선 판정 = 꼭짓점 높이 1e-5 m 한 함수(TS
logic/B05_Profile_Profile_Straight.ts↔ 파이썬is_straight_bend) · 곡선 넣기 · ▲▼ 축(이웃끼리) · 직선 찾기 · 적용 한 곳tidyEdits(직선 위 R · 0 오프셋 지움) · 끝점 꼭짓점 아니면 지금 높이로 세움(직선화 · 자유지정) · 고른 직선 기울이기 = 지금 경첩 높이 + 걸음 · 편집 측점 수 = 꺾인 편집 꼭짓점 · 새 test_426 10 + 손댄 파일 시험 26개 218 통과 · typecheck 0 · 화면(검증_sub3 · 저장 안 함) 18+021+0 직선화(19+8 · 19+9 붙은 구조물 측점) 뒤 R 빈칸 · 편집 측점 표시 없음(옛 4개) · 19+0 ▲ 두 번 = 그 점만 R · 톱니 없음 · 자유지정 21+024+0 = 22+0 R 151.9 · 23+0 빈칸 · 고른 직선 ▲▲▼▼ = 경첩 +0.1 · +0.2 · +0.1 · 0 · 끝에 R 빈칸 · 사진 tmp/426_straight_up.png · 426_tilt_back.png · 묶음 다시 지음 필요(Alignment · Pivot) (검증 대기).
- 검증완료 — 직선 판정 = 꼭짓점 높이 1e-5 m 한 함수(TS
427. 관 · 구조물 옮김 때 종단 꼭짓점 따라감 (요구 255-2 · sub4 · Opus high)
-
정함(브레인): 분석 424 2장 · 10장 — 옮긴 새 측점에 자동 계획선 규칙(원지반 지남)으로 꼭짓점 세움 · 사용자가 높이 고친 꼭짓점은 높이째 옮김 · 파이썬
_follow_moved_stations↔ TSfollowMovedNodes짝 · 거울 시험. -
427-1 — 확인: 시험(351 → 348 → 351 왕복 저장 뒤 340~360 m 계획고 · DB 행 처음과 같음) + 화면.
- 검증완료 — 짝 못 찾은 옛 측점 ↔ 새 측점 같은 수면 차례대로 짝 · 높이 고친 꼭짓점은 높이째 · 편집째 옮김 · 나머지 새 측점은 원지반 지나는 꼭짓점 세움(파이썬
_seat_born_nodes↔ TSfollowMovedNodes· 다른 꼭짓점 그대로) · 새 test_427_1 8개(왕복 340 · 351 · 360 차 0.000007 m 이하 · 편집 0.4 왕복 같음 · 화면 짝 3경우 1e-6) + 192_1 · 213_1 · 238_1 · 272_1 · 272_2 · 407_3 · 342_1 44 통과 · typecheck 0 · 화면(검증_sub4 · 8006 · 5179) 관 351 → 348 [저장] = 348 계획고 834.094 = 지반고 · 351 꼭짓점 지움 → 351 [저장] = 351 계획고 834.867008(처음 834.866994) · 저장 전 화면도 348 꼭짓점 · DB 6표 · storage 되돌림 확인 · 묶음 다시 지음 필요(common_util_structure_station) (검증 대기).
- 검증완료 — 짝 못 찾은 옛 측점 ↔ 새 측점 같은 수면 차례대로 짝 · 높이 고친 꼭짓점은 높이째 · 편집째 옮김 · 나머지 새 측점은 원지반 지나는 꼭짓점 세움(파이썬
-
427-2
test_410_follow_xy오류 3 — 427 이common_util_structure_station.ts에B05_Profile_UI_Profile_Alignmentimport 를 더해 410 시험 도우미(helper_410_follow_xy.cjsstub 목록)가 모름 · 메인f9cd31d7c에서 재현 · sub4 · 확인: 410 · 427_1 · 272_1 · 428 통과(공용 파일이 B05 화면 모듈을 끄는 게 맞는지도 한 줄 — 서버 Node 묶음 크기).- 검증완료 — stub 대신 공용 파일에서 B05 import 뺌(공용을 엄격 stub 로 읽는 도우미 20개 · 묶음 의존 그대로) ·
followMovedNodes= 옮김 · 지움 · 세울 측점만 · 꼭짓점 높이 셈은 새B05_Profile/logic/B05_Profile_Grade_Seat.tsseatBornNodes(파이썬_seat_born_nodes짝) ·design_profile_base가 차례로 부름 · 410 · 427_1 · 272_1 · 428 · 415 33 통과 + 공용 파일 읽는 도우미 시험 23파일 194 통과 · typecheck 0 · 묶음 다시 지음 필요(common_util_structure_station · Grade_Seat) (검증 대기).
- 검증완료 — stub 대신 공용 파일에서 B05 import 뺌(공용을 엄격 stub 로 읽는 도우미 20개 · 묶음 의존 그대로) ·
428. 평면 · 관 옮김 뒤 횡단 형상 · 측점 한 값 (요구 255-1 · 257-1 · 261 · sub5 · Opus high)
- 정함(브레인): 분석 424 1장 · 7장 — ① 측점 갈아끼울 때 상단측 새로 · 0.5 m 넘게 옮긴 시설 측점은 기본 설계 + 사용자가 만진 칸만 ② 노선 초안 중 관 길이 출처 = 계산 줄 상세 ③ 저장 노선 다시 셈 창구에 미교차 넓힘(서버와 같게) ④ 관 PUT 끝 서버가 측점 다시 세움 ⑤
rebasePipeDraft따라가기만 한 관 = 서버 누가거리 · GET 이 x · y 줌 ⑥ 「측점이 없는 구조물」 알림 [저장] 뒤 다시 봄. - 428-1 — 확인: 새 거울 시험(옮긴 관 관 길이 브라우저 대 서버) · 346_2 넓힘 · 349_0j · 410 · 415 · 417 + 화면(관 옮김 초안 길이 = 저장 뒤 · 평면 이동 [저장] 뒤 알림 없음 · 옛 자리 카드 없음).
- 검증완료 — test_428 6 · 관련 시험 77 통과(옛 코드 = 4 실패) · 화면 검증_sub5: 관 17+11 → 17+17 관 길이 7.9 = 저장 뒤 7.9 · 평면 IP 이동 [저장] 뒤 관 352 서버 = 화면 · 알림 0 · 17+11 카드 없음 · 되돌리기 351 복귀 · 백업 대조 같음.
429. [저장] 길 정합 (분석 424 9장 ④⑤⑧⑨ · sub6 · Opus high)
- 정함(브레인): ④ 노선 [저장] 뒤 계획선 차례가 끝나면 횡단 저장 한 번 늘 ⑤ 상단측 차례가 소단 · 깎기 경사 · 조절 값 남김 ⑧ 유토 한 벌(쓰지 않는 단계 걷음) ⑨ 덧 측점 바뀜 = 계산 줄 입력 · [저장] 차례 실패 = 다음 차례 멈추고 알림.
- 429-1 — 확인: 시험(초안 계획고 → [저장] 뒤 횡단 설계 높이 = 저장 종단 · 상단측 뒤 값 유지 · 덧 측점 묶음) + 화면. ④⑤⑨ 만 · ⑧ 은 433 으로 넘김.
- 검증완료 — test_429_save_path 5 · test_design_store_save 10 · 이웃 시험 54 통과 · typecheck 0 · 화면(검증_sub6): 노선 초안 + 60 m ▲0.5 + 덧 측점 → [저장] 뒤 58 측점 횡단 높이 = 저장 종단(차 0) · 되돌림(DB 행 · 파일 차 0).
430. 평면 형상 제어 규칙 한 곳 (분석 424 8장 · sub7 · Opus high)
-
정함(브레인): 하한 검사 = 모든 평면 조작이
applyEdit한 곳에서(새로 깨면 되돌림 · 까닭 상태줄) · 곡선 삭제 155° 미만 경고 · 끌기 놓을 때도 「함께 밀린 교점 · 못 맞춘 곡선」 보고 · 스냅 끔 · 간격 바꿈 즉시 계산 줄 · R · 길이 고정 · 넣은 R 곡선표 저장(짝) · 0.5 m 겹친 노드 · 못 그린 곡선 표시. -
430-1 — 확인: 시험 + 화면(끼우기 · 손잡이 · 곡선 삭제 하한 · 저장 뒤 고정 · R 되살림).
- 검증완료 — test_430 13 · 손닿은 시험 331 통과 · typecheck · 화면(검증_sub7 · 8009 · 5182): 노드 곁 끼우기 되돌림(IP24 · IP25 까닭) · 손잡이 하한 걸음 막힘 · 놓을 때 「함께 밀린 교점 2곳 · 못 맞춘 곡선 No.47+1」 · 148.4° 곡선 삭제 경고 · 156° 경고 없음 · 겹친 노드 IP24 표시 · 스냅 끔 · 간격 1 m 초안 즉시 · [저장] 뒤 R 고정 · 넣은 R 500(그린 94.4) 되살림 · 백업으로 되돌림. 묶음 다시 지음 필요(server-calc —
_Edits·_Curve를 끎 · 셈 그대로). 검증 대기.
- 검증완료 — test_430 13 · 손닿은 시험 331 통과 · typecheck · 화면(검증_sub7 · 8009 · 5182): 노드 곁 끼우기 되돌림(IP24 · IP25 까닭) · 손잡이 하한 걸음 막힘 · 놓을 때 「함께 밀린 교점 2곳 · 못 맞춘 곡선 No.47+1」 · 148.4° 곡선 삭제 경고 · 156° 경고 없음 · 겹친 노드 IP24 표시 · 스냅 끔 · 간격 1 m 초안 즉시 · [저장] 뒤 R 고정 · 넣은 R 500(그린 94.4) 되살림 · 백업으로 되돌림. 묶음 다시 지음 필요(server-calc —
-
430-2 장 시험 실패 둘(앱 흠 아님 · 시험 늦음) — ①
test_408_radius_downstream오류 11 = 430 이B05_Profile_UI_RouteEdit_CurveBar.ts에@ui/ui_template_elements(showToast) import 를 더해helper_408_radius_downstream.cjs가 못 읽음 → 도우미 stub ②test_383_2_route_keys::test_이음_끌기_걸기_한_줄_창_가로채기= 425 가 방향키 범위를.b05-route__main .b05-routeedit로 좁힘 → 단언 새 글로 · sub7 · 확인: 408 · 383_2 · 430 · 258 통과.- 검증완료 — 408 · 383_2 · 430 · 398_2 · 258(둘) 48 통과 · 도우미 stub · 단언 새 글만(앱 코드 그대로). 검증 대기.
431. [초기화] 빈틈 (분석 424 3장 · sub8 · Opus high)
- 정함(브레인): 폴백이 덧 측점도 지움 · 스냅샷에 배수 폴더 없으면 관 편집도 비움(문서대로) · [초기화] 뒤 M02 구조물 사본 맞춤 · B07 · B08 단계 STALE.
- 431-1 — 확인: 시험(폴백 덧 측점 · 배수 없는 스냅샷 · 사본 · 단계) + 화면 한 번.
- 검증완료(sub8 · 검증 대기):
test_431_reset_gaps4 + 스냅샷 · 418 시험 16 통과 · 화면 [초기화] = 노선 380 → 404 · 단계 4 COMPLETE → STALE(스텝바 상세설계 state-stale) · 남은 사본 폴더 지움 · 백업으로 되돌림.
- 검증완료(sub8 · 검증 대기):
432. 종단곡선 기본 L 20 m · 법정 경고 · 초기값 큰 R = 직선 · 작은 것 (요구 262 · 분석 424 8장 · 9장 ⑥⑦ · 432-1 sub3(426 뒤) · 432-3 sub8(431 뒤) · Opus high)
- 사용자 확정(262): 종단곡선 기본 L 15 → 20 m · 막지 않음(못 넣는 곳 있음) · 법정 경고는 둠 · 초기값(자동설계 체인 · 추천 [적용]으로 처음 만드는 종단)에서만 L 20 기준 R > 500 m(대수차 4 % 안쪽) 꼭짓점은 곡선 없이 직선으로 · 그 뒤 고침은 사용자 몫(손 편집에 이 규칙 안 걺).
- 정함(브레인): 「직선」 = 그 꼭짓점에 종단곡선을 두지 않음(R 없음 · 표에 R 안 보임) · 꼭짓점 높이는 그대로(초기 계획선 원지반 지남 유지) · 기본 L 은 config 한 곳 + TS 상수 짝 · 법정 경고 = 설계속도별 R · L 최소 미달 표시(20 km/h R 100 · L 20 · 비포장 대수차 5 % 이하 제외 · 지식DB 별표2 마.) · 45 % 규칙으로 줄어든 곳도 경고 글 그대로.
- 432-1 기본 L 20 · 법정 경고 · 초기값 R > 500 직선(파이썬 첫 계획선 · 균형 종단 ↔ TS 짝 · 거울 시험) — 확인: 시험(초기값 꼭짓점 대수차 < 4 % = 곡선 없음 · 손 편집은 기본 곡선 · 경고 · 짝) + 화면(새 초기값 종단 표 R · 경고).
- 검증완료 — config 기본 L 20 · 초기값 직선 문턱 500 m(TS
logic/B05_Profile_Profile_CurveLaw.ts상수 짝) · 초기값(1차 지반 종단 · 추천 [적용]_set_base_pvi)에서 기본 L 기준 R > 500 m 꼭짓점 열쇠를 정책no_curve_keys로 얼림(곡선 없음 · 꼭짓점 높이 그대로) · 그 꼭짓점 손 편집 · R 넣으면 기본 곡선 · 이웃 편집엔 얼린 채 · 법정 종단곡선 R · L 미달 = 경고 글(파이썬 · TS 같은 글) + 종단 요약줄 「종단곡선 미달 N 곳」(툴팁 내역 · 생략 가능 제외 · 45 % 줄인 곳 포함) · 노선 [저장]은 옛 정책(L · 열쇠) 이어받고 바뀐 자리 새 꼭짓점만 새 지반 열쇠(브레인 B ·carry_policy↔ TS planlinecarryNoCurveKeys· Route_Save 한 줄) · 옛 저장분 그대로 · 새 test_432_1 10 + 손댄 모듈 시험 54개 384 · 125 통과 · typecheck 0 · 화면(검증_sub3 · 저장 안 함) 옛 종단 L 15 · 열쇠 없음 그대로 · 평면 교점 옮긴 초안 = L 15 유지 · 안 바뀐 구간 R 243.0 · 270.2 · 2705.1 그대로 · 바뀐 구간만 새 열쇠 10 · 사진 tmp/432_draft_carry.png · 미검: 새 초기값 화면(경고 칩)은 체인 다시 돌림 = DB · storage 씀이라 안 함(단위 시험만) · 묶음 다시 지음 필요(Alignment · Ground · Pipeline_Grade · Carry) (검증 대기).
- 검증완료 — config 기본 L 20 · 초기값 직선 문턱 500 m(TS
- 432-2 사용자 결정 — 기본 L 20 m · 막지 않음 · 경고 둠(262).
- 432-3 작은 것 — 노선 초안 지반 = 설계 지형 · 노선 [저장] 알림에 새 교차 관 개수 · MC 곡선 측점 열쇠로 B06 편집 버려지는지 확인 · 고침 — 확인: 시험 + 화면 한 장.
- 검증완료(sub8 · 검증 대기): 초안 지형 = 확인 · 고칠 것 없음(Replan.py:359
switch_design_terrain— 초안 지형이 [저장] 때 설계 지형) · 새 교차 관 개수 = 이미 알림에 있음(routeSaveSummary· 시험 346-3) · MC 열쇠 = 버려짐 확인 → 가까운 새 곡선 측점(10 m 안 · 하나씩)으로 넘김(curve_moves↔curveMoves짝) ·test_432_3_curve_key5 + 관련 47 통과 · typecheck · B06 화면 로드 한 장(tmp/432_3_b06.png).
- 검증완료(sub8 · 검증 대기): 초안 지형 = 확인 · 고칠 것 없음(Replan.py:359
433. 다음 장 후보 (요구 255~262 장에서 창이 찾은 것 · 장 끝에 한 번에) — (일부 · 남은 줄은 PLAN.md)
- 433-1 test_365 ⑧ 「중심점 좌우」 걸음 이름만 남음(424 뒤 · sub1). → 고쳐짐 확인(요구 334 · 453).
- 433-2 옛 검증 프로젝트 id(예 검증_sub7 6d3b2812)에 기대는 시험이 건너뜀(356_4 등) — 새 id(OWNERS.md) 로 자료 다시 세울지(sub1). → 고쳐짐 확인(요구 334 · 507-4).
- 433-3 유토 계산 단계 두 벌 하나로(쓰지 않는 masshaul · haul 단계 걷음 · 시험 7개 탐침 고침 · 429 ⑧ 에서 넘김 · sub6). → 고쳐짐 확인(요구 334 · 454).
- 433-4 화면 확인 — 곡선 있는 노선에서 MC 곡선 측점 카드 고친 뒤 그 곡선 R 바꿈 → B06 고침이 새 곡선 측점으로 남는지(432-3 은 묶음 시험으로만 판정 · sub8). → 고쳐짐 확인(요구 334 · 시험만).
- 433-5 관 옮긴 뒤 이웃 꼭짓점(340 · 360)은 높이 그대로라 이웃 측점 계획고가 지반에서 0.1 m 안팎 뜸(옛 판도 같음 · sub4). → 고쳐짐 확인(요구 334 · 455).
- 433-6 검증_sub4 에 처음부터 358 m 관 측점이 종단에 없었음 — 다시 만든 프로젝트 자료 점검(sub4). → 고쳐짐 확인(요구 334 · 자료 있음).
- 433-7 ⚠ B05 [저장]이 세션 관 초안보다 화면 메모리 관 목록을 보냄(새로고침 전 초안이 덮임 · 자료 잃음 가능 — 먼저 재현 · sub4). → 안 생김 확인(요구 334 ·
33201b14e). - 433-8 B06 평면 겹침 — 평면이 숨은 채 처음 크기를 겹침 패널(작은 높이)에서 받으면 그 배율이 B05 평면에도 남음 · 종단 판 펼친 B06 에선 겹침 평면 높이 100 px 안팎(높이 규칙 다시 · sub2). → 고쳐짐 확인(요구 334 · 436).
- 433-9 관 옮김 [저장] 뒤 그 측점 계획고가 초안과 다름(835.29 → 834.63) — 427(종단 꼭짓점 짝) 합친 뒤 다시 잼(sub5). → 고쳐짐 확인(요구 334 · 455).
- 433-10 관 PUT 뒤 옛 자리 횡단 파일(cross_00351m)이 횡단 저장 때까지 남음 · 「측점 없는 구조물」 알림 다시 봄이 저장 끝 신호 없이 0.3 s 기다림(sub5). → 고쳐짐 확인(요구 334 · ① 452 · ② 일부러 둔 지름길).
- 433-11 ⚠ 덧 측점 넣기 · 빼기 뒤 B05 누가토량이 서버 −17,570.7 → 브라우저 −9,722 로 크게 뜀(저장 직후 −16,248 → −9,150 · 다시 읽거나 [저장] 하면 서버 값 · 저장분 안 바뀜) — 저장 노선 횡단 입력 두 벌(분석 424 9장 뿌리) · 먼저 고칠 것(sub6). → 안 생김 확인(요구 334 ·
e51dd2a80). - 433-12 노선 저장 뒤 다른 [저장] 차례가 실패하면 노선 초안 칸(0) 계획고가 다음 [저장]에서 안 나감(옛 흠 · 드묾 · sub6). → 고쳐짐 확인(요구 334 · 449).
- 433-14 노드 끌기가 하한에 막힌 채 놓아도 스냅 미리보기 맞춤이 한 걸음으로 남음 · 스냅만 바꾼 뒤 노선을 처음으로 되돌리면 초안 null · 낮은 확대에서 R 12 곡선 손잡이가 노드 집기 안이라 못 잡음(sub7). → 고쳐짐 확인(요구 334 · 453).
434. 요구 255~262 마무리 (브레인)
- 434-1 합치기 · 묶음 다섯 · typecheck · 장 시험.
- 검증완료(434) — 424~432 · 427-2 · 430-2 메인 합침(
0176ae4e1) · 충돌 둘 브레인이 풂(351_2 · 383_1 단언 = 419 · design_page import = 424 + 428) · 서버 묶음 다섯 · typecheck 0 · 장 시험 64 파일 502 통과 · 창마다 화면 확인 · 쉬는 창 여덟 /clear · 다음 장 후보 = 433(14) · 검증 대기.
435. B06 바뀜 원 작게 (요구 263-1 · sub3 · Sonnet high)
- 사용자 확정(263-1): 절토 · 성토 바뀜 자리 원(414)은 잘 됨 · 원이 너무 큼 · 확대 · 축소에 맞춰 크기 정하는 것 그대로 · 조금 작게.
- 정함(브레인): 지금 반지름(8 px ·
B06_Section_UI_Cross_Center.ts:17근처)의 약 60 %(5 px 안팎) · 잡는 범위(마우스 가까이 보임 · 누름)는 지금 그대로 두어 잡기 쉬움 유지 · 상세 창 확대 보정 같이. - 435-1 — 확인: 시험(370_2 · 414 통과) + 화면 한 장(바뀜 자리 원 · 확대 · 축소 · 밝음 · 어두움).
- 바뀜 자리 점 반지름 8 → 5 px · 잡는 범위 8.75 px 그대로(굵은 투명 테두리) · 검증완료(370_2 시험 7 통과 · typecheck · prettier) · 화면 검증완료(ORCA 5178 · 검증_sub3 · 4+0 측점 바뀜 원): 화면 반지름 4.98 px(가로 개수 2 · 3 · 5 = 카드 550 · 361 · 209 px 에서 4.98 · 4.98 · 4.96) · 마우스 중심 0 · 6 · 8 px = 보임 · 11 · 16 · 30 px = 안 보임 · 밝음 · 어두움 모두 같음 · 바꾼 값(가로 개수 · 종단 패널 · 테마 · 프로젝트 키) 되돌림.
436. B06 평면 패널 — 높이 조절 · B05 조작 그대로 · 맞춤 없음 (요구 263-2 · sub2 · Opus high)
- 사용자 확정(263-2): 패널 높이 조절 · 내용 맞춤(fit) 필요 없음 · B05 평면에서 단추 묶음 · 안내 글 · 오른쪽 횡단 판만 감춘 꼴 · 로직 · 캐시 공용(B06 전용 로직 만들지 않음) · 감춘 메뉴의 키보드 · 마우스 조작은 됨 · 옵션 값은 B05 항목 값 공유 · 처음 높이 = 지금(45 %)의 70 % 안팎.
- 정함(브레인): 425 의 편집 누름 막기 걷음(끌기 · 끼우기 · 지우기 · 방향키 · 휠 · 팬 모두 B05 와 같음 · 같은 편집기 · 같은 되돌리기) · 감추는 것 = 단추 줄 · 안내 · 상태줄 · 범례 · 잰 값 창 · 오른쪽 횡단 판 · 등고선 자물쇠 단추(보기 켬끔 · 스냅 간격 등은 B05 값 그대로 따름) · 높이 = 패널 아래 끝 끌어 조절(위아래 한도 · 높이는 화면 기억 pref) · 처음 높이 약 32 % · 열 때 · 크기 바뀔 때 내용 맞춤 안 함(B05 보던 자리 · 배율 그대로 — 433-8 같이 풂) · 키 범위(425) 그대로.
- 436-1 — 확인: 시험(258 고쳐 씀 · design_view_parity · 349_0h · 345_5 · 383_2) + 화면(B06 평면 패널 높이 끌기 · 교점 끌기 → B06 카드 · 종단 바뀜 · 방향키 · Ctrl+Z · 열고 닫아도 배율 그대로 · 밝음 · 어두움 · 되돌림).
- 검증완료 — 시험 28 통과 · typecheck 0 · 화면(검증_sub2): 처음 160 px(칸 225 px · 32 % 바닥 160 px) · 끌기 120~177 px · 기억 · 두 번 누름 되돌림 · 열고 닫고 B05 가도 1 m 당 1.5825 px 그대로 · 교점 끌기 누가토량 −17,570.7 → −16,407.1 · 방향키 먹음 · 카드 누른 뒤 안 먹음 · Ctrl+Z 둘 = 원래 · 끼우기 27→28 · 지우기 28→27 · 어두움 · 값 되돌림. 436-2 — 345_5b 단언 새 호출(home · 뜻 그대로 = 처음 열기 맞춤 · 맞춤 단추 없음) · 345_5b · 345_5 · 258 · 349_0h 16 통과.
437. ☰ 서랍 안 항목 폭 맞춤 (요구 264 · sub1 · Sonnet high)
- 사용자 확정(264): 서랍 폭 그대로 · 안 항목(진행 단계 단추 · 홈페이지 · 언어 · 설정 · 사용자 · 터치 모드 줄)이 오른쪽에서 잘림 → 서랍 폭에 맞게.
- 정함(브레인): 항목 폭 = 서랍 안쪽 폭(테두리 · 둥근 모서리 다 보임 · 좌우 여백 같게 · 가로 스크롤 없음) · 글이 길면 줄임표 · 밝음 · 어두움 · 펼침 · 접힘 · 대시보드 · 시스템 설정 쪽 서랍도 같은 규칙.
- 437-1 — 확인: 시험(서랍 CSS 시험 있으면 통과) + 화면 한 장씩(밝음 · 어두움 · 항목 오른쪽 테두리 보임).
- 검증완료 — 까닭 = 진행 단계 단추 폭 100 % 가 서랍 폭 auto 를 이김 · 선택자 보강 · 긴 글 줄임표. 시험 test_device_drawer · 225_drawer_shortcuts 8 통과 · typecheck · 화면(B07 · B01 · B05 · M02): 단추 좌우 여백 8 · 8 · 서랍 가로 넘침 0(scrollWidth 238 = clientWidth) · 밝음 · 어두움 · 긴 글 줄임표 · 검증 대기.
438. 초기 종단 — R 500 넘는 구간 직선화 (요구 262 · 265 · sub3 · Opus high)
- 사용자 확정(265): 처음 종단 = 최적 계획선을 찾은 뒤 R 이 500 을 넘는 꺾이는 점들(L 20 기준 기울기 차 4 % 미만)을 앞뒤 R 을 보고 직선화 · 초기값(자동설계 체인 · 추천 [적용] · 노선 저장 때 새로 생긴 구간)에만 · 그 뒤는 사용자 몫 · 기본 L 20 · 경고는 둠.
- 정함(브레인): 432-1 「곡선 없음 · 높이 그대로」(no_curve_keys)와 열쇠 고르는 순서 버그 걷음(모서리 원인 · 분석 = 에이전트 재현 15 · 8 개 최대 10 %) · 직선화 = 연속한 R > 500 꼭짓점 묶음의 앞뒤 경계(R ≤ 500 진짜 꺾임 · 시종점)를 잇는 직선 위로 안쪽 꼭짓점 높이를 옮김(종단 직선화 단추와 같은 규칙 · 426 직선 판정이면 곡선 없음) · 경계가 새로 R > 500 이 되면 다시(묶음이 안 바뀔 때까지 · 한도) · 파이썬 첫 계획선 · 균형 종단 ↔ TS 짝 · 거울 시험 · 관 옮김(427) 새 꼭짓점은 지반 종단이 아니면 지금 계획선 높이에 세움.
- 438-1 — 확인: 시험(초기값 모서리 0 · R > 500 꼭짓점 0 · 직선 구간 안쪽 R 없음 · 손 편집엔 안 걺 · 노선 저장 이어받은 구간 그대로 · 짝) + 재현 수치(에이전트 프로젝트 넷 · 계획고 지반 차 · 절성토 전후) + 화면(새 초기값은 쓰기라 단위 시험 · 기존 프로젝트 종단 화면 모서리 없음).
- 검증완료 — 시험 167 통과 · 재현(에이전트 프로젝트 셋 12953f5a · dad81824 · 7c34ad71) 모서리 15 · 8 · 23 → 0 · R > 500 꼭짓점 13 · 8 · 27 → 0 · 계획고 목표 차 최대 0.50 · 0.38 · 1.24 m(평균 0.05 · 0.03 · 0.18) · 절토 +1 · +1 · +4 % · 성토 +0 · +3 · +9 % · 저장분 7c34ad71 모서리 30 → 0 · 화면(검증_sub3) 곡선 55 · 모서리 0.
439. B06 카드 머리 줄 단추 반영 안 됨 (요구 266 · sub6 · Opus high)
- 원인(에이전트 재현 · 진짜 모듈 node): 387-4(
6a3f9647f· 10-17) 뒤 카드 단추 → 계산 줄 횡단 차례savedCross(A00_Common/design/design_shared.ts:234-241)가 저장 측점 목록 ≠ 계산 줄 측점(1 mm)이면detailCrossnull 로 바로 돌아가 B06 카드 자료를 안 고침 · 오류 없음 · 오늘 관 옮김 · 측점 변경(428 · 415 · 407-1)으로 흔해짐 · 엔진 · 같은 측점 길은 정상. - 정함(브레인):
savedCross= 늘refreshCrossDesigns로 카드 자료 다시 셈 · 측점 대조는 돌려줄 값만(다르면 null → 계산 줄 엔진 길 그대로) ·refreshCrossDesigns(부르는 자리 하나 유지 · 덤 = 대체 길refreshFromServer(B06_Section_Cross_Refresh.ts:487-518)에도 카드 선택(지반 · 측구 · 복합경사) 실음. - 439-1 — 확인: 새
test_266_card_toggle_mismatch.py(측점 같음 · 다름 둘 · 복합경사 · 측구 · 지반 바꿈 → 카드 선 · 면적 바뀜 ·savedCross내보내 진짜 코드로) · 365 · 384_4 · masshaul_single_source · 346_2 · b06_two_stage_slope_kept + 화면(검증_sub4 측점 어긋난 상태 · 카드 단추 줄 전부 · 되돌림).- 검증완료(
480e62c67) — 시험 63 통과 · 7 건너뜀 · typecheck 0 · 화면 검증_sub6(5181) 3+060 측점 같음 · 2 mm 어긋남 둘 다 단추마다 절토 4.212 → 4.504 → 2.697 → 토사 5.282 · 되돌림 4.212 · B05 다녀와도 유지 · 서버 저장 없음 · 세션 원래대로.
- 검증완료(
- 433-15 사용자 결정(269-2) = 높이 한도 없음 · 초기 종단은 R 줄이고 기준만 잡음 · 판단은 사용자 몫. 옛 물음: — 초기 종단 직선화(438)로 추천 균형 종단은 작은 꺾임이 길게 펴져 계획고가 균형 종단에서 최대 1.24 m 벗어남(절토 +4 % · 성토 +9 %) · 직선화로 옮기는 높이에 한도(예 0.1 m)를 두고 넘으면 그 꼭짓점은 꺾임(곡선)으로 남길지(sub3).
440. 구조물 횡단 · 내부 구조물 하이라이트 (요구 267 · sub7 · Opus high)
- 원인(에이전트 · node 재현): ①
ec28d9d45(10-16 · 346-2 덧 3) 뒤 노선 초안 동안 B06 카드는 초안 상세(shownDetail· 옮긴 m 새 카드 번호B05_Profile_Pipeline_Detail.ts:178)로 그리는데 클릭 · 목록 → 카드 · 넘김 · 풀기는 저장 상세에서 찾음(design_view_cross.ts:118-124 · 381-387 · 471 · 490) → 옮긴 구조물 측점 카드만 못 찾고 고름 통째 풂 ② B06 위 평면 패널 빈 곳 누름이 B06 고름까지 풂(RouteEdit_Pointer.ts:220→StructureMarks.ts:335-340→Pick_Sync.ts:84) ③ B06 좌측 목록이 보이는 동안 관 · 구조물 자리 바뀜을 안 따라감(design_view_cross.ts:567카드만 ·Structures_Panel.ts:372load 때만) ④(추정) 암 경계선 누름 범위(10 px)가 구조물 아랫부분 위에 놓임(Design_Pick.ts:514-527·Pick_Order.ts:72-74). - 정함(브레인): ① 「지금 그린 상세」 한 칸 → 찾기 넷 모두 그것으로 · 초안 카드도 같은 측점 열쇠면 저장 카드 번호 이어 씀 ② 평면 패널 빈 곳 누름은 평면 마커가 고른 것만 풂(B06 에서 고른 것 그대로) ③ 바뀜 신호에서 B06 목록도 다시 실음 ④ 재현되면 구조물 누름 우선 · 고름은 구조물 id 우선 · 강조는 구독 하나에서 다시 칠함 · 덤 =
test_191_1도우미 stub(./B06_Section_UI_Cross_Design_Pick). - 440-1 — 확인: 새 끝에서 끝 시험(노선 초안 중 구조물 카드 누름 → 카드 · 폼 · 목록 줄 · 알약 · 평면 마커 · 구조물 그림 누름 같은 목록 · 초안 버린 뒤 같음 · 모든 카드 번호가 찾기 상세에 있음) · 399 · 409 · 411_a · 233 · 270 · 150 · 191_1 + 화면(검증_sub7 · 교점 끌기 초안 → B06 구조물 카드 · 벽 · 관 그림 누름 · 평면 패널 빈 곳 누름 · 밝음 · 어두움 · 되돌림).
- 검증완료 — test_440 새 7 · 고친 대상 시험 458 통과(384_3 은 고치기 전부터 실패) · typecheck · 화면: 초안 관 카드 번호 = 저장 번호(351000 · 361 m) · 카드 누름 = 카드 · 목록 줄 · 알약 · 고름 364 m · 다시 누름 풂 · 벽 누름 = 조정창 · 평면 빈 곳 누름 B06 고름 그대로 · 암 경계 판정이 구조물 덮은 자리 40 % → 0 · 밝음 · 어두움 · 되돌림 초안 버림. 평면 마커 누름만 예외(440-3).
- 440-3 ⬜ 노선 초안 중 B06 위 평면 마커 누름 = 옛 자리(351 m) 고름 — 숨은 종단 보기 마커 목록 · 관 id 장부(
pipe-s1@351)가 초안 자리를 안 따라감(design_view_profileonPipesChanged · followFacilities 숨김 때 건너뜀) · B06 은 따로pipe-s2@361지음. 고치기 전부터. → 고쳐짐 확인(요구 334 · 451 · 462). - 440-4 ⬜ 노선 초안을 되돌리거나 둔 채 새로고침하면 횡단 캐시가 초안 측점(361)에 남고 관 제원이 옆 일반 측점(360) 카드로 붙음 · 새로고침 때는 구 구조물 이관(
design_view_profile_sectionsmigrateLegacyStations)이 초안 관 측점(364)을 「기타 구조물」로 서버structures.json에 씀([저장] 없이). 고치기 전부터 · 검증_sub7 은 파일 지워 되돌림. → 고쳐짐 확인(요구 334 · 451 · 452). - 440-2 사용자 결정(269-3) = 보류(지금 그대로). 옛 물음: — 카드 고름은 형상을 안 켜고 범위 테두리도 끔(137-4) · 벽을 눌러도 범위 테두리 안 켜짐(10-09~) — 예전 요구 41-3(형상 누르면 범위 카드 전부)과 다를 수 있음.
- 433-16 새 탭 첫 화면 B06 3+060 이 서버 값(단경사 · 측구)과 다른 세션 캐시 값으로 열린 적 있음(캐시 출처 모름 · 지우니 서버 값 · 268-3 저장 누락 조사와 같이 봄 · sub6). → 고쳐짐 확인(요구 334 · 451).
441. 스냅 끌기 측점 밖 · 유토 · 사면 이동 확인 (요구 268-1 · 2 · 4 · sub1 · Opus high)
- 원인(에이전트 · 진짜 모듈 node 재현): ① 스냅 맞춤의 교점 이동 한도가 간격의 절반(
logic/B05_Profile_RouteEdit_StationFit.ts:116reach = intervalM/2 · 20 m 면 ±10 m) → MC 가 두 측점 한가운데쯤(18+9 ~ 19+1)이면 못 맞추고 그 자리 받아들임(430 전에도 같음 · 1,080 회 끌기 89 회) ② 유토곡선 · ④ 사면 이동 = 439 와 같은 뿌리(savedCross측점 어긋나면 카드 · 유토 안 고침 · 439 로 풀림 ·480e62c67) · 덤 = 초안 없는 저장 노선에서 계산 줄 측점 단계가 저장 스냅 설정을 무시(design_pipeline_stations.ts:61-62·design_pipeline_page.ts:304-305route?.stationSnap ?? false) → 스냅 켠 노선이면 측점 목록이 늘 어긋남. - 정함(브레인): ① reach = intervalM(목표는 가장 가까운 측점 하나 그대로) · 끌기 미리보기에서 측점 밖 곡선 수가 끌기 전보다 늘면 그 걸음 되돌림(하한 막힘과 같게 · 못 맞추는 자리로 못 끎) · 433-14
dragMoved를 막힘 검사 뒤로 ② 초안 없을 때 계산 줄 측점 단계가 저장된 station_snap · station_snap_step 따름 ③ 시험 단언 = 측점 어긋난 상태에서 단추 · 사면 한 걸음 → refreshCrossDesigns · 유토 다시 그림 한 번. - 441-1 — 확인: 시험(390_5 끌기 훑기 = 놓은 뒤 측점 밖 0(고정 R) · 366_3 · 430 · 408 · 383_2 · 266 유토 · 사면 단언 · 384_4 · masshaul_single_source · 354_2 · 346_2 · 370_2 · 417 · 139_6) + 화면(측점 No. 끌기 19+0 → 놓은 뒤 MC 측점 배수 · B06 사면 이동 · 유토 바로 바뀜 · 되돌림).
- 검증완료 — 시험 117 통과(7 건너뜀 = 검증_sub7 없음) · 390_5 훑기 216 회 놓은 뒤 측점 밖 0 · 화면 교점 끌기 64 회 측점 밖 0 · 되돌림 64 회 원래 길이 · 방향키 20 m 걸음 못 맞추는 자리 막힘 · 사면 이동 걸음마다 유토 0.3 초 안 바뀜(
97b5a7869· 검증 대기).
- 검증완료 — 시험 117 통과(7 건너뜀 = 검증_sub7 없음) · 390_5 훑기 216 회 놓은 뒤 측점 밖 0 · 화면 교점 끌기 64 회 측점 밖 0 · 되돌림 64 회 원래 길이 · 방향키 20 m 걸음 못 맞추는 자리 막힘 · 사면 이동 걸음마다 유토 0.3 초 안 바뀜(
442. [저장] · [확정] 누락 — 분석 (요구 268-3 · 브레인 · 에이전트)
- 442-1 분석 —
docs/raw/조사/2026-10-18_442_요구268_저장누락.md(H1H6 · M1M7 · 묶음 443~446 · M4 사용자 결정). - 442-2 사용자 결정(269-1) = [저장] 때 영구저장(설계속도 · 지형 구분 = 종단 표 경고값 · 시종점 계획고 조정 = 결과에 씀) — 절 448 에서 고침. 옛 물음: B05 페이지 설정(설계속도 · 지형 구분 · 기준값 · 시종점 계획고 조정 · 시작 측점)을 [저장] 대상으로 할지 · 읽기 전용(프로젝트 설정에서만)으로 할지.
443. 저장 누락 ① 구조물 실패 · 상단측 재전송 · 확정 하위 실패 (H6 · M3 · M6 · sub4 · Opus high)
-
443-1 — 확인: 왕복 시험 + 화면(구조물 409 실패 → 멈춤 · 초안 남음 · 상단측 저장 뒤 세션 빔 · 확정 하위 실패 알림) · 백업 · 되돌림.
- 검증완료 — test_443 9건 · 관련 시험 82건 · typecheck 통과 · 5179 화면 [저장] · [확정] 구조물 409 = 구조물 차례 멈춤 · 초안 남음 · 상단측 성공 뒤 세션 빔 · 두 번째 [저장] 안 보냄(B05 · B06 길) · failed_parts = 상단측 차례 멈춤 · 행 7표 · json 228개 해시 되돌림 같음.
-
443-2 노선 바꾼 [저장] 때 기본 창구가 옛 누가거리 상단측(uphill)을 새 노선에 보냄(sub4 찾음 · 엉뚱한 측점에 얹힘) — 노선 바뀐 저장이면 상단측을 측점 열쇠로 옮겨 싣거나(옮김 목록) 못 맞추면 빼고 알림 · 비정규 측점 횡단 실패로 [저장] 멈춤 = 그대로(브레인 확인) · sub4 · 확인: 시험 + 화면.
- 검증완료 — test_443_2 4건 · 관련 시험 100건 · typecheck 통과 · 5179 화면 교점 끌기 → [저장] = 상단측이 노선 저장 뒤 · 횡단 저장 앞에 새 측점으로(관 351 → 350 m · 40 · 1080 그대로) · 못 맞춘 2곳 알림 · 새 종단 350 m 좌(user) · 행 11표 · 파일 242개 해시 되돌림 같음.
444. 저장 누락 ② 관 구간값 (H4a · H4b · sub5 · Opus high)
- 444-1 — 확인: 왕복 시험(구간값 → 관 5 m 옮김 · 교점 끌기 → [저장] → 새 탭 같은 값 · 두 번째 [저장] 뒤 같은 값) + 화면 · 백업 · 되돌림.
- 고침(B 승인) — 세월교 · BOX 폼 값을 culvertopt 에 안 쌓음(관 초안 한 벌) · 옛 예약은 측점 옮김 목록에 · 못 맞춘 값 버림 · 기슭막이 구간값은 이미 폼 → 관 초안(H4b 재현 안 됨).
- 검증완료 — test_444 4건 · 관련 시험 103건 · typecheck 통과 · 5180 화면 관 길이 15 · 관 5 m 옮김 → [저장] → 새 세션 356 m · 15 · 두 번째 [저장] 15 · 세월교 월류 폭 10.5 · 5 m 옮김 · 교점 끌기(364 m 따라감) · 두 번째 [저장] · [확정] 모두 10.5 · culvertopt 안 생김 · 행 7표 · 파일 314개 해시 되돌림 같음.
445. 저장 누락 ③ 횡단 patch 바탕 · 노선 바꾼 저장 · 집수정 범위 · 버린 수 (H2 · H3 · M2 · H5 · M1 · M5 · M7 · sub6 · Opus high)
-
445-1 — 확인: 왕복 시험(벽 둘 저장 뒤 하나만 고쳐도 다른 벽 남음 · ↺ · 추가 벽 0 저장 · 관 옮긴 측점 메모 · 조절 · 지반 남음 · 노선 바꾼 저장 뒤 지반 · 암선 · 표준 횡단면 남음 · 집수정 2.1 막힘 · 버린 수 알림) + 화면 · 백업 · 되돌림.
- 검증완료 — test_445 9건 · 관련 시험 424건 · typecheck 통과 · DB 저장 행 1450개 새 patch 꼴 스키마 통과 · 5181 화면: 새 탭 유출만 ▶ [저장] → 유입 x 1.0 · 단 수 · 메모 · 폭 남음 · ↺ · 추가 벽 − · 빈 전체 폭 → 저장 전 새로고침 → [저장] → 유출 지움 · 단 0 · 폭 0 · 관 351 → 356 [저장] → 흙 · 메모 · 벽 셋 그대로(B06 관 폼 id 빠짐 함께 고침) · 교점 끌기 [저장] → 새 노선 노견 0.6 · 풍선 · 암선 −0.4 · 암 경사 0.6 · 지반 흙 · 관 메모 · [확정] 같은 값 · 버린 수 API 777.77 응답 · 2.1 → 422(화면 2.0 자름) · 행 7표 · 파일 313개 해시 되돌림 같음.
-
445-2 ⚠ 교점 끈 뒤 [저장] · [확정]마다 노선 저장 체인이 다시 돎(노선 번호 378 → 414 → 416 → 417 · [확정]이 횡단 확정까지 못 감 = 확정 막힘 · sub6 찾음) — 노선 저장 성공 뒤 노선 초안을 저장본으로 맞춰(또는 비워) 다음 [저장] · [확정]이 노선 차례를 건너뜀 · 노선 바뀐 [확정]은 한 번 더 누르면 끝까지 · sub6 · 확인: 시험(교점 끌기 → [저장] → [저장] = 노선 저장 한 번 · [확정] 두 번째에 단계 완료) + 화면 · 백업 · 되돌림.
- 검증완료 — 까닭 = 노선 저장 뒤 페이지가 다시 서며 평면 판이 접혀 편집기가 떠나도 노선 저장 등록부에 옛 편집기(「고친 것 있음」)가 남음 → 떠날 때 풂 · 고정만 바꾼 걸음은 노선 그대로 · test_445_2 4건 · 관련 시험 227건 · typecheck 통과 · 5181 화면: 교점 끌기 [저장] → 노선 저장 한 번 → 두 번째 [저장] 노선 저장 없음 → [확정] 한 번에 횡단 단계 완료 · 끈 뒤 바로 [확정] = 노선 저장 + 안내 → 두 번째 [확정] 단계 완료 · 고정만 = 노선 저장 없음 · 스냅 켬 간격 바꿈 = 곡선 MC 자리 바뀜이라 노선 저장(되돌리면 없음) · 행 7표 · 파일 313개 해시 되돌림 같음 · 종단 판 접힘 취향 되돌림.
446. 저장 누락 ④ 카드 폭 넘김 다시 만들기 (H1 · sub8 · Opus high)
- 446-1 — 확인: 시험(다시 만들기 뒤 측점 설계 · 옵션 · 표준 횡단면 · 유토 풍선 · 계획고 편집 그대로 · 확인창) + 화면(카드 폭 ▶ 21 m → 확인 → 새 탭 같은 값) · 백업 · 되돌림.
- 검증완료 — test_446 5 · 173_6 · 342_2 · 346_3 통과 · typecheck · 검증_sub8 카드 폭 71 m(표본 70 m) 확인창 취소 = 그대로 · 다시 만들기 9 s → 새 탭 · 두 번째 [저장] · [확정] 뒤 57 측점 사용자 칸 차이 0 · 표준 횡단면 · 곡선 편집 · 계획고 57 같음 · 행 · 파일 해시 되돌림 같음.
- 433-17 ⚠ 440-4 — 새로고침 때 옛 구조물 이관이 「기타 구조물」을 서버 structures.json 에 씀(저절로 쓰기 · 자료 오염) · 초안 되돌림 · 새로고침 뒤 캐시가 초안 측점에 남아 관 제원이 다른 카드로 · 440-3 초안 중 평면 마커 누름 = 옛 자리(숨은 종단 보기 관 id 장부) · 384_3 시험은 440 전부터 실패(sub7) — 다음 장 맨 앞. → 안 생김 확인(요구 334 ·
5478eb1f8). - 433-18 측점 열쇠 목록(계산 묶음 · 새 상세)에 종점(EP) 측점이 없어 종점 고침이 노선 저장 때 옮김 칸(at:)으로 빠짐(알림은 뜸 · sub4). → 고쳐짐 확인(요구 334 · 452).
- 433-19 ⚠ B06 폼 편집 뒤 관 초안에서 관 id 빠짐(draft [null, 351]) — 노선 바뀜 때 관 id 짝(411-B)에 영향 가능 · 먼저 재현 · Span_Control.update(기준벽 구간 → culvertopt)는 화면에서 안 불림(다단만 · 죽은 길 · sub5). → 안 생김 확인(요구 334 ·
48a376f21). - 433-20 B06 집수정 내공 줄이 화면에서 늘 숨김(54-40 · 사용자 길로 내공 못 고침) · CAD 칸 2000 엔티티 넘으면 422(추정) · 같은 탭 새로고침 뒤 ORCA 누름 안 닿음(시험 도구 · sub6). → 고쳐짐 확인(요구 334 · ② 450 · ① 450 정함대로 · ③ 도구 흠).
- 433-21 곡선 손잡이(BC · EC) 끌기는 스냅 미리보기 · 측점 밖 막힘 없음(놓은 뒤 측점 밖 1 남은 적) · 방향키 측점 No. 20 m 걸음이 못 맞춤 막힘에 자주 걸림 · 구조물 마커가 겹친 교점은 마커가 먼저 집혀 교점 못 끎(409 차례 · sub1). → 고쳐짐 확인(요구 334 · 453 · 454).
447. 요구 263~268 마무리 (브레인)
- 447-1 합치기 · 묶음 다섯 · typecheck · 장 시험.
- 검증완료(447) — 435~446 · 443-2 · 445-2 · 436-2 메인 합침(
030409f16) · 깃 싱크(전역 아님 · 열세 폴더22eff5b85· 장 시작) · 서버 묶음 다섯 · typecheck 0 · 장 시험 86 파일 666 통과 · 창마다 화면 확인 · 쉬는 창 여덟 /clear · 탭 0 · 남은 결정 = 442-2(B05 페이지 설정 저장 여부) · 433-15(직선화 높이 한도) · 440-2(구조물 범위 테두리 규칙) · 다음 장 후보 433 · 검증 대기.
448. B05 페이지 설정 [저장] · [확정] 영구저장 (요구 269-1 · 442-2 · sub6 · Opus high)
- 근거 =
docs/raw/조사/2026-10-18_448_요구269_후보재검토.md2장. - 정함(브레인): 세션 캐시
pagesettings· 저장 차례settings(route 뒤 · alignment 앞 · 기본 창구 · B05 · B06 모두) · 서버PUT /api/projects/{id}/route/page-settings= stage 2 params 병합 + 종단 정책 · criteria 갱신 뒤 다시 셈(종횡단 다시 만들기 없음 · DB 열 추가 없음) · 시종점 계획고 조정 = 첫 · 끝 측점 계획고 편집 · 시작 측점 = 저장 · B05 표시 전용(열쇠 · 다른 페이지 라벨에 안 섞음) · [초기화] = 스냅샷에 stage 2 params 뜨고 되돌림 · 샘플 간격 두 칸 = 읽기 전용 · 횡단배수 최소고 강제 = 저장 · E1(재설계 요청이 설계속도 · 최소고 강제 넘김) · E2(B06 재생성 지형 = 저장값 우선) · 추천 저장본 열쇠에 설계속도 · 지형. - 448-1 — 확인: 새
test_442_2_page_settings.py(병합 · 정책 갱신 · 기하 그대로 · E1 · 스냅샷 왕복 · 저장 차례) · 거울test_442_2_grade_limit_mirror.py(TS 기준표 ↔ 파이썬 전수) ·test_b05_design_speed·test_346_3_route_save+ 화면(설계속도 30 · 지형 · 시종점 조정 · 시작 측점 바꿈 → [저장] → 새 탭 같은 값 · 종단 표 경고 바뀜 · [확정] · [초기화] 되돌림 · 노선 바꾼 [저장] 뒤도) · 백업 · 되돌림. - 검증완료(448) — 시험 19 + 거울 3 + 관련 저장 · 계획선 시험 통과 · typecheck 0 · 검증_sub6 화면: 30 · 일반 → 경고 34 → 43(14 → 8 %) · 표 라벨 12+0(평면 0+0 그대로) · 새로고침 · 새 탭 같은 값 · [저장] = params 병합(단계 그대로) · 기준 8 % · R 250 · 시점 +0.5 · 특수 → 12 % · 평면 R 20 · [확정] 40 → 10 % · R 450 · [초기화] = 설정 칸 걷힘 · 14 % · 편집 없음 · 노선 바꾼 [저장] 두 번(새 노선 424 · 425) 설정 유지 · 빈 칸 = null · 밝음 · 어두움 · 행 7표 · 파일 해시 되돌림 · 덧 고침 =
AlignmentPolicy.from_dict평면 R 읽기(계획고 저장마다 0 되던 흠 · sub3 알림) ·_road_settings가 params.options 읽음 · 검증 대기.
449. B05 [저장] 관 목록 · 노선 저장 뒤 실패 (433-7 · 433-12 · 433-6 · sub4 · Opus high)
- 정함(브레인): 관 정본 PUT = 세션 관 초안 한 번만(배수판 메모리 다시 PUT 걷음) · 빈 목록 PUT 은 사용자가 관을 다 지운 때만(판 안 섬 · 실패 = 보내지 않음) · 노선 저장 성공 뒤 다른 차례가 실패하면 0 칸 계획고 → 새 노선 칸 · carryStationDrafts 뒤 rebuild · 관 PUT 측점 맞춤 실패는 응답에 실어 알림 · 시작 전 검증_sub4 missing-stations 로 측점 만들기.
- 449-1 — 확인: 시험(B06 관 고침 직후 [저장] = 세션 초안 값 · 판 안 선 [저장] 관 수 그대로 · 노선 저장 뒤 횡단 차례 실패 → 다음 [저장] 0 칸 계획고 나감) + 화면 · 백업 · 되돌림.
- 검증완료 —
test_449_save_pipes8 · 이웃 저장 시험 128 통과 · typecheck 0 · 5179 검증_sub4 [측점 만들기] 뒤 빠진 측점 0 · 초안 고친 직후 [저장] = PUT 1번 · 관경 800 저장 · 초안 없는 [저장] = PUT 0 · 관 2개 그대로 · 초안 두고 B05 로 옮겨 [저장] = 600 저장 · 알림 밝음 · 어두움 보임 · DB 7표 · storage 해시 되돌림 같음 · 노선 저장 뒤 실패는 시험만(화면 노선 저장은 안 함) (33201b14e).
- 검증완료 —
450. B06 측점 갈아끼움 · 죽은 길 · CAD 한도 (433-4 · 433-11 · 433-19 · 433-20 · sub5 · Opus high)
- 정함(브레인): 상세 갈아끼움이 curveMoves 거꾸로 맵을 대체 열쇠로(MC 곡선 측점 R 바꿔도 설계 · 칸 따라감) · 자리 같은 앞 단면은 prior 지반 표본 · 상단측 · 중심고 유지(덧 측점 뒤 누가토량 = 서버 값) ·
Span_Control.update죽은 길 지움 · CAD 2000 넘음 = 화면에서 막고 알림(내공 줄 숨김은 그대로). - 450-1 — 확인: 새
test_433_4_mc_swap.py(MC 설계 남음 · moves 짝) · 새test_433_11_plus_station_masshaul.py(덧 측점 넣기 · 빼기 뒤 누가토량 브라우저 = 서버 · 0.1 ㎥ 안) · 444 · 445 · 266 · masshaul_single_source + 화면 · 되돌림.- 검증완료 — 새 시험 11(433_4 · 433_11 · 433_19_20 · 옛 코드에선 5 실패) · 이웃 시험 120 통과(24 건너뜀 = 검증_sub7 없음) · typecheck 0 · 346_2 단언 바꿈(자리 같은 단면 = 앞 표본) · 화면(검증_sub5 B05): EP −17,570.7 → 관 6+10 넣음 −17,621.4 → 뺌 −17,570.6(서버 −17,570.7 · 절 · 성토 0.1 · 0.2 ㎥ = 다시 셈 엔진 몫) · 저장 안 함 · 초안 지움 · 433-4 화면은 이 노선에 MC 측점 없어 node 시험만 · 433-20 화면 알림은 2000 요소 손 입력 불가로 글 시험만.
451. B06 세션 캐시 판 · 새로고침 hold · 숨은 관 id 장부 (433-16 · 440-4 · 440-3 · 384_3 · sub7 · Opus high)
- 정함(브레인): 세션 section-detail 에 서버 판(지문) 붙임 · 다르면 캐시 사용자 칸만 얹고 나머지 서버 값 · 새로고침 hold 는 초안 열쇠로 옮겨진 칸을 처음 값으로 안 뜸 · 숨은 종단 보기도 관 id 장부 돌림 · test_384_3 단언 = 427 의도(pvi 6).
- 451-1 — 확인: 시험(낡은 캐시 + 다른 탭 저장 → 새 탭 서버 값 · 사용자 칸만 · 초안 둔 채 새로고침 → 관 제원 제 카드 · 초안 중 평면 마커 누름 = 새 자리) · 440 · 445 · 384_3 + 화면 · 되돌림.
- 검증완료 — 새 test_451_session_canon 5 · test_451_refresh_hold 5 · 관련 303 통과(56 건너뜀 = 옛 검증 프로젝트 없음 · 433-2) · typecheck 0 · ORCA 검증_sub7: 세션에 낡은 메모 심고 새로고침 → 캐시 · 세션 · [저장] 바탕 = 서버 값 · B06 에서 초안 옮김 → 관 id 장부 pipe-s1 365 따라감 · 초안(관 351 → 360) 둔 채 새로고침 → 버림 = 관 초안 비움 · 351 관 카드 · 351 선택(암 · 좌절토) 그대로 · 기록 saved · 정본 파일 해시 그대로 · 심은 세션 값 지움 · 탭 닫음.
- B06 화면에서 노선 초안 버림이 뒤 cross 입력에 밀려(dropped) 초안 전 상세로 안 돌아옴(원래 코드도 같음) — 밀리면 마지막 차례 끝에서 되돌림 · 밀어낸 차례도 조용히.
- 검증완료 — 새 test_451_drop_cross 3(옛 코드 = 실패 재현) · 관련 310 통과(56 건너뜀) · typecheck 0 · ORCA 검증_sub7 B06 같은 탭 · 새로고침 뒤 버림 = 기록 dropped → saved · 351 관 카드 · 선택 그대로 · 관 초안 비움 · 정본 해시 그대로.
- ⬜ 잔여: 새로고침 뒤 B05 를 한 번도 안 연 채 B06 에서 버리면 관 id 장부에 초안 자리 헛 기록(pipe-s1@360 · s2@369)이 남음 · B05 를 열면 걷힘.
452. 서버 — 구 구조물 이관 · 옛 횡단 파일 · 시종점 열쇠 (433-17 · 433-10 · 433-18 · sub8 · Opus high)
- 정함(브레인): 이관은 [저장] 없이 쓰지 않음 · 서버가 본문 버리고 저장 종단 파일 직접 읽음 · 관 PUT 끝에 옛 횡단 파일 정리 · 시종점 열쇠 우선순위 한 규칙(화면 · 서버 같게) · EP 행을 irregular 로 갈음 안 함 · 거울 344_3.
- 452-1 — 확인: 시험(초안 둔 채 새로고침 → structures.json 안 바뀜 · 관 옮김 PUT 뒤 옛 cross 파일 없음 · EP 고침 → 노선 저장 뒤 EP 에 남음) · 344_3 + 화면 · 백업 · 되돌림.
- 검증완료: test_452 7 · 관련 36 파일 206 통과 · typecheck 0 · 검증_sub8 화면(초안 꼴 본문 이관 0 · structures.json 없음 · 관 351→364 PUT 뒤 cross_00351 지워짐) · 행 7표 · 파일 254 해시 되돌림 같음 · EP 행 종류 갈음은 그대로 둠(열쇠는 자리 규칙으로 end:EP · 종류 바꾸면 TS 소비처 24곳 흔들림) · 검증 대기.
453. 평면 집기 · 손잡이 끌기 · 스냅만 바꾼 초안 (433-14 · 433-21 ① ③ · 433-1 · sub1 · Opus high)
- 정함(브레인): 노드 가운데 6 px 만 노드 우선 · 그 밖은 가까운 것(손잡이 · 마커) · 맴돔 커서 같은 판정 · 손잡이 끌기 = 노드 갈래와 같게(미리보기 맞춤 · 측점 밖 늘면 되돌림) · 맞춤 안 된 기준에서 막힌 걸음 미리보기 endDrag 되돌림 · 스냅만 바꾼 뒤 되돌려도 초안 dirty 판정 · test_365 ⑧ 이름.
- 453-1 — 확인: 390_5 훑기에 손잡이 끌기 · 381_3 · 409 · 399 · 441 · 365 · 스냅 바꿈 → 되돌림 → 초안 있음 + 화면(낮은 확대 R 12 손잡이 · 마커 겹친 교점 끌기) · 되돌림.
- 검증완료 — 손잡이 끌기 훑기 216 번 놓은 뒤 측점 밖 0(되돌림 없으면 20) · 맞추지 않은 기준 막힌 걸음 놓음 13/13 → 0 · 화면(검증_sub1 · 낮은 확대) 노드에서 9 · 11 px = 손잡이(옛 = 노드) · 0 · 5 · 7 px = 노드 · 마커 9.8 px 겹친 교점 6 px 누름 = 교점 · 끌기 「옮기는 중」 · 손잡이 90 걸음 끌기 측점 밖 0 · 스냅 간격만 바꾸고 끌기 → 되돌리기 = 초안 있음(안 바꾸면 null) · 어두움 같은 판정 · 세션 · 로컬 저장 되돌림 같음(DB 안 씀) · 시험 test_453 5 + 관련 38 파일 289 통과 · typecheck 0 · 346_1 「편집기 다리」 가짜 사진첩 고침 · 384_3 1 실패 = 이 작업 밖.
454. 방향키 측점 걸음 맞춤 · 안 쓰는 유토 단계 걷음 (433-21 ② · 433-3 · sub2 · Opus high)
- 정함(브레인): 맞춤 = 곡선마다 내림 · 올림 두 후보 + 뒤 곡선 앞보기(366_3 · 390_5 · 441 단언 유지) · 계산 줄 masshaul · haul 단계 걷음(쓰는 벌 · createHaulPlanPrefetch · earthwork() cross 다시 먹이기 · postHaulPlan 남김) · 탐침 시험 7 고쳐 씀.
- 454-1 — 확인: 무작위 노선 20 m 걸음 막힘 수 줄어듦(전후 수치) · 366_3 · 390_5 · 441 · 344_3 · 344_4 · 346_1 · 346_2 · 365 · 유토 곡선 그대로 + 화면(방향키 20 m · 유토 즉시) · 되돌림.
- 검증완료 — 무작위 노선 30 개 20 m 걸음 측점 밖 막힘 141 → 25 · 놓은 뒤 측점 밖 43 → 0 · 화면(검증_sub2 · 같은 출발 64 누름) 측점 밖 막힘 옛 6 → 새 1 · 노선 4 걸음 흙 배분 POST 0 · 유토곡선 판 새 누가토량 · 되돌리기 원상 · 시험 186 통과 · 346_1 「편집기 다리」 1 실패 = 445-2
watch판정 변경 뒤 남은 것(이 작업 밖).
- 검증완료 — 무작위 노선 30 개 20 m 걸음 측점 밖 막힘 141 → 25 · 놓은 뒤 측점 밖 43 → 0 · 화면(검증_sub2 · 같은 출발 64 누름) 측점 밖 막힘 옛 6 → 새 1 · 노선 4 걸음 흙 배분 POST 0 · 유토곡선 판 새 누가토량 · 되돌리기 원상 · 시험 186 통과 · 346_1 「편집기 다리」 1 실패 = 445-2
455. 종단 — 관 옮김 이웃 · ▲▼ 자동 R · 폴백 첫 종단 · 옛 정책 경고 (433-5 · 433-13 ① ② ③ · 433-9 · sub3 · Opus high)
- 정함(브레인): 관 옮김 = 바로 앞뒤 이웃(사용자가 높이 고친 꼭짓점 뺌)도 맞춤 · 목표 = 옮기기 전 그 측점 계획고(TS ↔ 파이썬 짝) · ▲▼ = 자동 R(사용자가 안 넣은 값)이면 지워 기본 L · 사용자 R 은 둠 · 관 정착 · 직선 분할 폴백 첫 종단도 직선화(관 꼭짓점 hold) · 옛 정책 빈 법정 최소 R · L = 설계속도 법정값 · 433-9 화면 다시 잼.
- 455-1 — 확인: test_427_1(이웃 계획고 차 < 0.01 m) · 438 · 432 · 426 · 거울 + 화면(관 옮김 이웃 · ▲▼ · 옛 종단 초안 경고) · 되돌림.
- 검증완료 — 관 351 → 356 이웃 뜸 0.25 m → 0.000 m(지반 · 균형 종단 · 이웃이 1 mm 넘게 뜨는 만큼 번져 맞춤) · 관 정착 폴백 R 723 · 540 → 500 이하(여유로 들린 관 꼭짓점은 경계로 그대로 · 브레인 답 A) · 화면(검증_sub3 관 389 → 394) 이웃 380 · 400 차 0.0000 m · [저장] 뒤 서버 계획고 = 초안(394 852.5114 · 433-9 고쳐짐) · 옛 정책(최소 R · L 0) 초안 「종단곡선 미달」 21 건 = criteria 100 · 20 · 되돌리기 원상 · 시험 61 + 연관 81 통과 · DB 행 · storage 해시 되돌림 같음 · 384_3 1 실패 = 451 몫(이 작업 밖).
456. 요구 269 마무리 (브레인) — (일부 · 남은 줄은 PLAN.md)
- 456-1 합치기 · 묶음 다섯 · typecheck · 장 시험 · 433 남은 것(433-2 픽스처 · 433-13④ 화면 확인) 다음 장.
- 검증완료(456) — 448~455 · 451 덧(finishDrop) 메인 합침 · 충돌 없음 · 서버 묶음 다섯 · typecheck 0 · 장 시험 65 파일 461 통과 · 14 건너뜀 · 창마다 화면 확인 · 메인 서버 다시 켬 · 검증 대기.
457. 노선 바뀜 — 초안 카드 그림 · 횡단 맥락 다시 얹기 · 가게 갈림 · 차례 짝 (요구 270 · sub7 · Opus high)
- 근거 =
docs/raw/조사/2026-10-18_457_요구270_구조물따라감.md(원인 1 · 2 · 3 · 4 · 규칙 3장). - 정함(브레인): 초안 상세도 캐시와 같은
attachShapes를 follow 뒤 가게 값으로 부름 ·atChainage지움 ·specs= 카드 번호만 · 이름 =planStations제목 · 횡단 맥락(포장 · 기울임 · 하강) = 다시 얹은 그림에서 · carried = 사용자 칸만 · 짝 = 등록 열쇠(registeredKeys) · 차례 짝 지움 ·writeFacilities= 지금 가게 값과 견줌(되돌리기 뒤 같은 조작도 씀). - 457-1 — 확인: node 끝에서 끝(재현 A · E · F · G · H · 되돌리기 뒤 같은 방향키 · 모든 측점 카드 그림 = 캐시 그림 = 주인 · 시설마다 제 측점 하나 · 엇갈림 0) · 410 · 411_b · 440 · 445 · 451 + 화면(분석 5장 1~11 · 14).
- 검증완료(457-1) —
test_457_draft_card12(옛 코드 12 실패) · 묶음 · 따라감 · 갈아끼움 시험 41 파일 258 통과 · typecheck 0 · 화면(검증_sub7 · 교점 끌기 +19.9 m) 배관 17+11 → 18+9 · 카드 그림 · 이름 = 다시 얹음 차이 0 · 캐시 차이 0 · 번호 겹침 0 · 되돌리기 뒤 같은 끌기 · 다시하기 · 초안 둔 채 새로고침 B06 같음 · 세션 되돌림 · 서버 Node 묶음 안 닿음 · 검증 대기. - 457-2 — sub4(459) 추가 측점 따라감 부름 — follow 구독 한 줄 · 초안 버림 자리 한 줄(sub4 파일 올라온 뒤).
- 검증완료(457-2) — sub1 · sub4 · sub5 받은 뒤 typecheck 0 · 묶음 시험 41 파일 258 통과 · 458 · 459 시험 11 통과 · 검증 대기.
458. 노선 바뀜 — B06 캐시 갈아끼움 · 주인 측점 거리 상한 (요구 270 · sub5 · Opus high)
- 정함(브레인): 갈아끼움에서 격자 아닌 자리면
grid지움 · 이름 = 계획 제목 · 노선 초안 동안 그림 늘 다시 얹음(가게 초안 없어도) · 주인 측점 거리 상한 0.51 m(TS ↔ 파이썬 짝 · 넘으면 안 얹고 경고) · 시종점 밖으로 밀린 시설 = 시종점 측점에 안 얹음 · 「노선 밖」 경고 · B08 수량 대조(같은 값). - 458-1 — 확인: 거울
test_323_4_attach_mirror확장(상한 · 연동 폭) · node(재현 A · D) · 450 · 433_4 · 266 + 화면(분석 5장 2 · 3 · 5 · 7) · 457 합친 뒤 457 시험 다시.- 검증완료 — test_458 6 · 323_4 거울 moved(상한 · 시종점 밖 · 연동 폭) · 299 같은 키 견본 주인 0.51 m 안으로 · 457 · 459 합친 뒤 관련 시험 392 통과(260 · 265 · 322_0 = 고치기 전부터 실패) · typecheck · 덧(sub7 쪽지): 떠난 측점 옛 자리에 새 측점이 서면 새 카드 번호 · 갈아끼움이 preview 표시 안 들고 감 · B08 대조 = storage 16 프로젝트 저장분 얹기 15 같음 · 1(검증_sub4) = 관 388 · 394 측점 없는 진행 중 자료(옛 규칙은 394 관을 400 측점에 붙임) · 화면(검증_sub5 · 노선 초안) 관 351 → 360 격자 G · 370 G 지움 · 제 측점만 그림 · 시점 밖 관 = 시점 카드 그림 · 이름 없음 + 알림 「노선 밖 1 곳」 · 물넘이포장 폭 24 주인 210 · 연동 200 · 213 · 220 · 초안 버림 뒤 세션 원상 · 저장 안 함 · 「묶음 다시 지음 필요」(common_util_culvert_sets · structure_attach).
459. 노선 바뀜 — [저장] 구조물 맞춤 · 추가 측점 따라감 · 관 꼭짓점 세움 (요구 270 · sub4 · Opus high)
- 정함(브레인):
rebaseStructureDraft(관rebasePipeDraft짝 · 따라가기만 한 것 = 서버 값 · 사용자가 옮긴 것만 초안 값) · 추가 측점 초안 없으면 PUT 안 보냄 · 추가 측점도 초안 동안 follow · 좌표 없는 옛 관은 옛 노선으로 좌표 먼저 채움 · 따라감 실패 알림 · 관 따라감 선 = 구조물과 같은 계통(추정 먼저 확인) · 노선 바뀜 때 옮긴 시설 측점에 427 관 꼭짓점 세움(초안 · [저장] 짝 · 요구 270 「종단 데이터 다시 생성」). - 459-1 — 확인: 거울
test_410_follow_xy·test_344_2_route_pairs확장 · 서버 임시 storage(따라감 · _place_pipes · station_keys · carry_cross_inputs · attach_shapes · 옮긴 시설 측점 = 새 지형 표본 + 사용자 칸 · 그림은 제 측점만) · 427 · 455 · 449 + 화면(분석 5장 12 · 13 · 종단 관 꼭짓점) · 백업 · 되돌림.- 검증완료(sub4) — 관 따라감 선 추정 맞음(B04
_prepare= 범위 안 자름 · 정본 388 · 394 대 종단 351 · 358) →points로 · 옛 관 열쇠도 옛 노선 누가거리(관 측점 메모 351 → 350 넘어감 · 고치기 전 관 열쇠 0) · 초안 중 마커로 옮긴 관 427 = 서버 차례 짝(화면 검증_sub4 353 m 초안 대 [저장] 차 1.4 m → 0.048 m · 나머지 측점 ≤ 0.013 m = 초안 첫 계획선 ↔ 서버 옛 차이) · 노선 밖 시설(덧 · 측점 계획 · 알약에서 뺌 · 알림) · 되돌리기 원상 · 시험 test_459 10 + 연관 453 통과 · typecheck 0 · DB 7표 · storage 해시 되돌림 같음 · 한계 = 노선 초안 전에 옮기고 저장 안 한 시설은 「따라간 자리」로 봄 · 묶음 다시 지음 필요(route_follow · structure_station · Pipeline_Grade).
- 검증완료(sub4) — 관 따라감 선 추정 맞음(B04
460. 요구 270 마무리 (브레인) — (일부 · 남은 줄은 PLAN.md)
- 460-2 합치기 · 묶음 다섯 · typecheck · 장 시험.
- 검증완료(460) — 457 · 458(+ 덧 둘) · 459 · 461 · 462 메인 합침 · 서버 묶음 다섯 · typecheck 0 · 장 시험 82 파일 629 통과 · 브레인 화면(검증_랩탑메인 · 저장 없음): 교점 ↓ 한 번 노선 1080.2 → 1100.2 m · 관 351 → 372 m(18+12) · 종단 알약 · 평면 마커 · B06 「18+12」 카드만 관 그림 · 옛 · 이웃 카드 없음 · ↶ 복귀 · 일반측점 위(360 m = 18+0 카드 하나) · 떠남(361) 통과 · 초안 버림 · 프로젝트 되돌림 · 검증 대기.
461. 종단 직선화 붉은 강조 · 끝 R 기본 L · 직선화 · 자유지정 영역 실시간 띠 (요구 271-1~3 · sub1 · Opus high)
- 근거 =
docs/raw/조사/2026-10-18_461_요구271_직선화영역.md. - 정함(브레인): 분석 문서 3장 그대로(직선화 클릭 = 늘 측점 고름 · 측점에 붙음 · 끝 자동 R 지움 → 기본 L 20 · 이미 직선 범위 = 부분 구간 고름 + ▲▼ 로 양 끝 L 20 · 법정 판정 오차 1e-3 짝 · 실시간 띠 도우미 하나 · Esc = 시작만 취소).
- 461-1 — 확인: 새
test_271_straighten_pick.py(측점 고름 · 붙음 · Esc · 끝 L 20 · 자동 R 지움 · 사용자 R 둠 · BP · EP · 부분 구간 ▲ · 파이썬 build_alignment 거울) · 새 range band 시험 · 215_1 · 426 · 355_1 · 219_1 · 432_1 + 화면(분석 문서 5장 1~17). - 검증완료(461) — 시험 6 파일 61 통과 · typecheck 0 · 화면(검증_sub1 · 5174 · 밝음 · 어두움) 1
5 · 715 · 17 수치 맞음 · 6(저장 자동 R)은 저장분 없는 프로젝트라 단위 · 거울 시험만 · 16(팝아웃)은 탭 둘 한도로 안 띄움 · 덤 = 쉬프트 붉은 강조가 다른 도구로 넘어가도 남던 것 뗌 · 쉬프트 고름 직후 강조가 다음 다시 그림 때 뜨는 것은 옛 그대로 · 캐시 되돌림 · 검증 대기.
462. B05 · B06 한 페이지 ① 시설 줄 페이지 한 벌 · 메모리 전달 정리 (요구 271-5 · sub2 · Opus high)
- 근거 =
docs/raw/조사/2026-10-18_462_요구271_한페이지.md3장 원인 1 · 5 · 4장 (A) · (E). - 462-1 — 확인: 새
test_271_facility_lane.py(B06 먼저 → B05 읽음 = B05 먼저 듣는 중 · 알약 · 측점 · 평면 마커 · 관 id 장부 같음 · 헛 id 0 · 451 잔여 재현 뒤집기) · 399 · 409 · 410 · 411_b · 440 · 451 + 화면(분석 6장 P1 · P2 · P3 · 시설 · 관 · 평면 패널 조작).- 검증완료 — 관련 시험 507 통과(실패 2 = 받기 전부터 · test_b06_save_recompute · test_307) · ORCA P1 · P2 · P3(옹벽 넣음 · 지움 · 관 351→360 · 장부 헛 id 0 · 계획고 편집 한 번만 옮김 · 관 옵션 새로고침 뒤 B06 Φ800).
463. B05 · B06 한 페이지 ② 페이지 설정 한 칸 · 상세 알림 · [저장] 같은 본문 (요구 271-5 · sub6 · Opus high · 458 · 459 합친 뒤)
- 근거 = 같은 문서 원인 2 · 3 · 4 · 4장 (B) · (C) · (D).
- 463-1 — 확인: 새
test_271_detail_notify.py(강제 받기 · [측점 만들기] 뒤 듣는 쪽 한 번) ·test_271_save_same.py(B05 있을 때 · 없을 때 [저장] 요청 줄 같음) ·test_271_profile_settings.py· 442_2 · 449 · 446 + 화면(B06 새로고침 → 라벨 오프셋 · 기울기 빨강 · 넓힘 · [측점 만들기] · [저장] · [확정] · [초기화] · 반대 방향).- 검증완료 — R1 · R2 옛 코드 실패(듣는 쪽 0 번 · 옛 캐시) 뒤 고침 · 관련 시험 369 통과 · typecheck 0 · ORCA(검증_sub6 · 5181) B06 새로고침 = B05 와 같음(라벨 5+0 · 빨강 28 · 상한 20 % · 강제 켜짐) · 반대 방향 같음 · 넓힘 55 m = 듣는 쪽 1 번 새 상세 · [저장] 두 길 · [확정] 확정 요청 줄 같음 · [초기화] 뒤 저장 설정(0+0 · 14 %) · [측점 만들기]는 빠진 측점이 안 생겨(관 저장 때 서버가 세움) 시험만 · DB 7표 · storage 해시 되돌림 같음 · 옛 시험 5개 단언 · 가짜 창구를 flushRouteParts 로 맞춤.
464. 요구 270 · 271 마무리 (브레인) — (일부 · 남은 줄은 PLAN.md)
- 464-1 합치기 · 묶음 다섯 · typecheck · 장 시험.
- 검증완료(464) — 457~459 · 461 · 462 · 463(+ 덧 surface_params) 메인 합침 · 서버 묶음 다섯 · typecheck 0 · 장 시험 87 파일 646 통과 · 14 건너뜀 · 창마다 화면 확인 · 브레인 화면 확인(460) · 메인 서버 다시 켬 · 검증 대기.
465. 요구 272 — 지정 · 산출 값이 저절로 바뀜 분석 (브레인 · 에이전트)
- 근거 =
docs/raw/조사/2026-10-19_465_요구272_값안변함.md(재현 · 원인 · 정함 · 절마다 영향 범위 · 시험 · 화면 목록). - 정함(브레인): 분석 4장 그대로 — 파생값 = 입력(저장 정본 + 세션 초안)만의 함수 · 들어온 길 · 보기 차례 · 접힘 · 메모리 · 새로고침으로 갈리지 않음 · 측점 스냅 = 의도(판정 밖) · 단면 모양 기본값 짝(7번)은 기록만.
- 참값 = 서버 정본 누가토량 −17,570.7 ㎥(검증_랩탑메인).
- 465-1 분석 · 계획.
466. 값 안 변함 ① 상세 가게 메모리 = 페이지 수명 · 버린 초안 차례 가게 측점 (요구 272 · 분석 4장 (A) · (A2) · sub7 · Opus high)
- 먼저
design_pipeline_page.ts(700줄) 가게 구독:383-403을 새design_pipeline_page_publish.ts로 뗌. - 466-1 — 확인: 새
test_272_detail_memory.py·test_272_drop_store_stations.py· 분석 5장 (A) · (A2) 기존 시험 + 화면(분석 7장 466-A · 예외).- 덧 고침 — 새로고침 · 다시 열기에 관 초안 측점이 빠지던 흠(열 때 초안 있으면 측점 냄) · 다시 열 때 시설 줄이 측점을 늦게 내 그 사이 차례가 옛 화면 선으로 셈한 측점(화면 선만 바뀜 = 낡으면 cross 한 번 더).
- 남은 흠(467 몫) — 관 초안을 일반 측점 자리(340)에서 지움 = 측점 자리가 같아 갈아끼움 안 함 → 메모리 −17,601.4 · 새로고침 −17,541.5.
- 검증완료 — 시험 318 통과(새 9 · 옛 판에서 새 9 실패 · 옛 검증_sub7 경로 시험 62 건너뜀) · 화면 R1 [폐기] → B05 −17,570.7 · 351 · B07 351 · 노선 초안 ↶ 가게 · 세션 측점 57 · 새로고침 관 361 초안 57 측점 −17,534.4 = 메모리 길 · 접힘 · 팝아웃 · 밝음 같음.
- 466-2 덧(470 4.2 N1 · N2) — [확정] 성공 길도 상세 비움(
invalidateSectionDetail) · B06 폼 관 옮김 + 옵션 = 옮긴 자리로 찾음(옵션 · 캐시 얹기 · 집계 항목).- N2 화면 = 옵션 칸이 제 변경 때 먼저 반영돼 보통 조작으론 그 길을 안 탐(코드 길만 · 시험이 덮음) · 옮긴 새 자리 카드 옵션 유지 확인.
- 검증완료 — 시험 336 통과(새
test_466_pipe_move_options2 · 확정 항목 1 · 옛 판에서 실패) · 화면 [확정] → B07 상세 = 새 객체 · 세션 = 서버 정본(옛 사본 아님) · DB 7표 61행 · storage 파일 되돌림(백업과 같음).
467. 값 안 변함 ② 갈아끼움 정본 표본 유지 · 소단 원천 한 벌 (요구 272 · 분석 4장 (B1) · (B2) · sub5 · Opus high)
- 467-1 — 확인: 새
test_272_swap_keeps_canon.py·test_272_berm_source.py(TS ↔ 파이썬 거울) · 분석 5장 (B1) · (B2) 기존 시험 + 화면(분석 7장 466-B · 소단 있는 자기 검증 프로젝트). - 467-2 덧 — (B1) 같은 열쇠 → 같은 자리(격자에 구조물 놓고 뺌도 정본 표본) · 고름 ↶ = 정본(다시 셈 물러섬 = 저장 정본
savedDesigns·handleDesignChange메모리 덮기 뺌 · 새test_272_choice_undo.py). - 467-3 덧 — ① 짝 없는 새 측점(구조물 · 추가 측점 · 새 관) = 계획선 꼭짓점 안 세움(파이썬
_follow_moved_stations· TSfollowMovedNodes· 짝 있는 옮긴 관 = 427 그대로) ② 제자리로 온 측점 = 저장 정본 표본(CanonRow 자리 · 표본) ③ 일반 측점 자리 관 지움 = 갈아끼움(sameStationList) ④ 시설 줄 종류 표 전 측점 안 칠함. - 검증완료(467-3) — 시험 19 파일 150 통과 · 새 단언 옛 코드 실패 · typecheck 0 · 화면(5180 · 검증_sub5 · 백엔드 다시 켬): 소단 22+0 [저장] 전 −17,595.6204 → 뒤 −17,595.6044(435 · 445 계획고 같음 · 새 측점 지반 표본 mm 차만) / 관 18+11 → ↶ = GET 와 측점 모두 같음 / 관 17+0(일반 측점 340) → 지움 = −17,541.5871 = 새로고침 값 · 340 일반 측점 / DB 7 표 · storage 해시 되돌림 같음 · 검증 대기.
- 검증완료(467) — 시험 37 파일 268 통과 · 새 시험 셋 옛 코드 실패 확인 · typecheck 0 · 화면(5180 · 검증_sub5): 관 17+11 → 18+11 → ↶ = −17,570.7 · GET 대비 관 측점만 다름 / 새 탭 B05 만 소단 놓음 = B06 연 뒤 = −17,595.6301 · 소단 빼면 정본 표본 / [측구] · [토사] · [단경사] · 노견 ◀ · 소단 깊이 ▼ 각각 ↶ = 고르기 전 값 · ↷ = 고른 값 / 새 탭 · 새로고침 · 어두움 −17,570.7065 · DB 7 표 · storage 해시 되돌림 같음 · 검증 대기.
468. 값 안 변함 ③ 되돌리기 빈 칸 · 접힘 파생 · 배지 자릿수 (요구 272 · 분석 4장 (C1) · (C2) · (C3) · sub1 · Opus high)
- 468-1 — 확인: 새
test_272_history_empty_cells.py·test_272_hidden_summary.py· 분석 5장 (C1)~(C3) 기존 시험 + 화면(분석 7장 466-C · 팝아웃).- 검증완료 — 새 시험 10(옛 코드 7 실패) · 기존 173 통과(139-2 묶음 로더 흠 = 옛 코드도 같음) · typecheck · 화면 검증_sub1: 교점 ↓ → ↶ → B06 → B05 = ↶ 꺼짐 · ↷ 켜짐 · 빈 칸 0 · 접은 채 교점 ↓ = 배지 −19,899.5(펼침 같음 · 측점 56) · 떼어 낸 유토 판 곡선 갱신 · 밝음 · 어두움 · 「[]」(관 모두 지움)은 걸음 그대로 둠.
- 덧(sub1 찾음 · 옛 코드도 같음) — ① 교점 ↓ → ↶ → 같은 탭 새로고침 = 누가토량 −17,385.4(새 탭 −17,570.7) → 466 덧(sub7) ② B06 카드 [측구] → ↶ = 카드 · 누가토량 −17,572.4 안 돌아옴(Design_Sync 가 메모리 상세 design 을 덮음) → 467 덧(sub5).
469. 요구 272 마무리 (브레인) — (일부 · 남은 줄은 PLAN.md)
- 469-1 합치기 · 묶음 다섯 · typecheck · 장 시험 · 브레인 화면(검증_랩탑메인 · 저장 없음 · 새 탭 B05 · B06 · 새로고침 · 팝아웃 · 접힘 누가토량 같음).
- 검증완료(469) — 466(+ 덧 둘) · 467(+ 덧 넷) · 468 메인 합침 · dev 받음 · 서버 묶음 다섯 · typecheck 0 · 장 시험 40 파일 185 통과 · 31 건너뜀 · 메인 서버 다시 켬 · 브레인 화면(검증_랩탑메인 · 저장 없음) 새 탭 · B06 왕복 · 새로고침 · 접힘 = −17,570.7 · 57 측점 · 교점 ↓ → ↶ = 정본 · ↶ 꺼짐 ↷ 켜짐(B06 다녀와도) · 접은 채 ↓ = 2 초 안 새 값 · 관 옮김 [폐기] = 351 그대로 · [측구] ↶ = 정본 · ↶ 뒤 새로고침 = −17,570.7 · 검증 대기.
471. B05 · B06 데이터 흐름 참고 문서 (사용자 지시 · 브레인 · 에이전트 · 467 · 466 덧 합친 뒤)
- 자리 =
docs/guide/B05_B06/(위키 규칙 · 파일마다 100줄 · 표 형식) — 한 장 그림 · 조작별 표(어디 놓임 · 브라우저 셈 · 서버 셈 · [저장]) · 값별 표(주인 · 사본 · 셈 자리 · 짝) · 지킬 규칙. - 근거 =
docs/raw/조사/2026-10-19_470_B05B06_데이터흐름.md+ 466~468 합친 코드. - 코더 업무 지시 공통 블록에 「B05 · B06 고치기 전 읽음 · 흐름을 바꾸면 같은 커밋에 문서도 고침」 한 줄.
- 471-1 문서 · index 갱신 · 공통 블록 줄.
- 검증완료(471) —
docs/guide/B05_B06/8 파일(각 100줄 안) · 경로 170 git 목록과 맞음 · 466~468 바뀐 줄 다시 읽음 · BRAIN 3장 지시 글 한 줄 · 검증 대기.
472. B05 · B06 코드 구조 다시 세움 (요구 273 · 단계 진행 · 단계마다 기준값 그대로) — (일부 · 남은 줄은 PLAN.md)
- 472-0 목록(에이전트).
- 472-1 기준값 시험(sub2 · 목록 4.2) — 고정 자료
resources/tester/fixtures/golden_472/(검증_랩탑메인 읽기만) · 브라우저 길(vite ssr 진짜 단계 함수) · 서버 길(pytest · DB 없이 [저장] 엔진 차례 + server-calc) · 길마다 0 차 · 두 길 사이 「알려진 차」 목록만 허용 · 값 파일은 466 · 467 덧 합친 뒤 다시 뜸.- 길 넷 = 정본(GET) · [저장] 재계산 · 노선 저장 체인 · 브라우저 묶음 · 알려진 차 = R7 · W0(정본 경고 옛 코드) · X2(입력 선 0.1 mm ↔ 1 mm · 끝값 0.69 ㎥) · W1(경고 글 두 벌) · X1 · X3 은 이 고정 자료가 안 거침.
- 검증완료 —
test_472_1_golden.py9 통과 · 1 건너뜀(API 왕복) · 정본 = [저장] 재계산 = 노선 저장 체인 −17,570.70 · 브라우저 −17,570.01 · 측점 57 · 화면(B05) 배지 −17,570.7 ㎥ · 57 측점 · 고정 자료 2.98 MB.
- 472-2 걷어내기(목록 4.3 · 2-A B05 sub3 · 2-B B06 sub4(+ 상세 파일 이름 차례 흠 · cross_01080.16m 이 1080 앞) · 2-C 공용 sub6 · 「확실」 줄만 · 추정 줄은 사용자 답 뒤). → 2-B(
a6a1b9213) · 2-C(9afa4e303·c856a0849) 메인에 있음 · 추정 줄 = 472-7.- 2-A B05 — Ford 파일 통째 ·
/route/replan/reset(파이썬 · TS) · TS solveRoute(+ 딸린 RouteSolve 타입 둘) · export 열(몸통째 · 파일 안 부름도 0) · 딸려 죽은 INLET_KINDS · 위키 한 줄 · corridor 다시 지음. - 검증완료 — 고친 대상 시험 720 통과 · 83 건너뜀 · golden 9 통과 · typecheck 0 · 화면(B05 · B06 · 새로고침 · 접힘 · 어두움 · 3D) 누가토량 −204.2 ㎥ · 측점 59 · 알약 1 같음 · 처음 새로고침 한 번 −211.6 ㎥(6 번 중 1 · 지운 코드 부름 0 → 기존 경합 추정).
- 473 새로고침 누가토량 흔들림(요구 272) — 원인 = 시설 줄이 관 알림 전 「모름」을 빈 목록으로 심음(
design_facility_lane.tsrefresh · paint) → 종단도 선이 저장 관 측점 389 꼭짓점을 뺌 → 첫 cross 가 380 · 389 · 400 을 그 선으로 다시 셈(389 계획고 852.79 대 852.837) → 배지 −211.6 ㎥ 1 초 남짓 → 관 도착 뒤 cross 한 번 더 −204.2. 고침 = 시설 줄 known(종류 표 · 구조물 · 관 알림 다 옴) 뒤만 심음 · 종단도 planted 전 = 저장 기준 · 서버 측점 그대로(design_profile·design_profile_baselistedBase null · Render deriveProfile ·design_view_profile_sectionsstationsReady) · 위키 rules 한 줄. - 검증완료 — 옛 코드 흔들림 새로고침 2/20 · 새 탭 1/20 · B06 바로 0/20(바쁠 때 6/11) → 고친 뒤 60/60 숨김 → −204.2 만 · test_473_lane_ready 4 통과(옛 코드 빨강 = 관 전 [] 심음 · null 못 받음) · 관련 66 파일 391 통과(test_346_2 가짜 다리에 stationsReady 더함) · golden 통과 · typecheck 0 · 화면(검증_sub3 · B05 · 새로고침 셋 · B06 · 접힘 · 어두움 · ▲ 0.1 m → −252.2 → ↶ → −204.2 · 초안 없음) 측점 59 · 19+9 · 알약 1 같음.
- 시험 정리 둘(소스 그대로) — test_b05_structures_registry_policy 빨강 4 = 사용자 구조물정의 판 23(켬 · 끔 명시 · 맹암거 3 m · 3 %)과 옛 단언(수 28 · 끈 목록 · 바닥막이 켬) → 시험이 마스터 파일을 읽어 판정(수 · 이름 안 박음) · 맹암거 기본값 = 사용자 지시(요구 223 ·
4baf49ba4) 근거로 인정 / test_prefs_persist_across_tabs 빨강 = 388-3 세션 넘침 때 결과 칸을 비우는setOrMakeRoom글을 「저장소 가름」으로 오판 → 판정을 저장소 고르는storageFor안으로 좁힘. - 검증완료 — 두 파일 24 통과(registry 20 · prefs 4) · ruff 깨끗(옛 줄 길이 하나 그대로).
- 2-B B06 —
POST …/cross-design(파이썬 · TS · 응답 스키마 · TS 요청 타입 · 파이썬 요청 스키마는 test_316 이 써서 둠) · export 열 셋 지움 · PIPE_DISPLAY_NAME →common_util_structure_catalog· Api_Fetch 세션 · 사진첩 창구 → 새B06_Section_Api_Context.ts· 덧 흠 = 횡단 파일 측점 차례(cross_files_in_order한 벌 · B06 상세 GET · B07 측점 파일 · B07 장 나눔 이름 sorted 걷음) · 472-3 알려진 끌림 셋 걷음 · sc · co · ex 다시 지음. - 검증완료 — 고친 대상 시험 1111 통과(빨강 1 = 지운 엔드포인트 이름 단언 → 고침 · 오류 2 = test_139_2 옛 코드에서도 같음) · golden 9 · 472-3 등록부 · 새 시험 test_472_2_cross_order(옛 코드 빨강 3) · typecheck 0 · 화면(검증_sub4 · B06 · B05 · 새로고침 · 새 탭 · 판 접힘 · 어두움) 누가토량 −17,561.8 ㎥ · 측점 58 같음 · 상세 GET 1080.0 → 1080.16 오름차순 · 카드 차례 같음.
- 2-B 덧 세션 끌림 — 신원표
common_util_pick_tag(관 id = 화면이 usePipeIds 때 세션 장부 꽂음) · Wire 토스트 = 알림 창구(Cross_View 가 꽂음) · design-calc · sc · co 세션 · 화면 끌림 0 · 472-3 알려진 끌림 다섯 더 걷음(남은 Api_Fetch · config · ui_template = 헬퍼 정규식 헛잡음 · sub2) · ex 는 B07 덧그림이 B06 상세 창 화면을 끌어 그대로. - 검증완료 — 고친 대상 시험 906 통과(오류 = test_139_2 옛 그대로 · 286_1 헬퍼 흉내 → 진짜로 고침 10 통과) · golden · 472-3 통과 · typecheck 0 · 화면 B06 누가토량 −17,561.8 · 58 측점 · 카드 신원표 pipe-s1 · s2(세션 장부) 같음.
- 2-C 공용 —
common_util_mass_haul_view866 줄 나눔(그래프 601 ·_callout말풍선 · 값 표기 ·_legend이름 · 범례 · 동작 같음) · DESIGN_VIEW_ROUTES · ALIGNMENT_DRAFT_KEY_PREFIX · structureStatus · bermSpec · MASS_HAUL_HEIGHT · createMassHaulSummary(몸통째) · 세션 열쇠 culvertmove · std-cross 낡은 주석 · 공용 머리 시험 경로tmp/tests→resources/tester(B06 파일 머리 여섯은 2-B 몫이라 남김) · 위키 세션 열쇠 한 줄 · sc · co · ex 다시 지음. - 검증완료 — 고친 대상 시험 413 통과 · 1 건너뜀 · 빨강 1 =
test_prefs_persist_across_tabs설계값 세션(388 커밋 뒤 늘 · 고침과 무관) · golden 통과 · typecheck 0 · 화면(검증_sub6 · B05 · B06 · 새로고침 · 유토 팝아웃 · 판 접힘/펼침 · 범례 켬/끔 · 말풍선 · 어두움) 누가토량 −17,570.7 ㎥ · 측점 57 같음 · 같은 탭 새로고침 6 번에 1 번 −17,385.4(옛 코드로 되돌려도 8 번에 1 번 · 472 덧 경합과 같은 갈래).
- 2-A B05 — Ford 파일 통째 ·
- 472 덧 — [저장] 측점 맞춤(stand_patch_stations)이 구조물 측점 사용자 칸(uphill_side_source=user · pavement*)을 지움 · X6 넘기는 칸 목록 두 벌(sub8).
- 원인 = [저장] 상단측 차례(
POST /route/confirm→_append_irregular_cross_sections· 매 [저장])와 측점 맞춤이_merge_irregular_into_longitudinal로 구조물 측점 줄 통째 갈음 · 측점 줄 쓰는 곳은 이것 · 상단측 병합 둘뿐 · 고침 = 같은 자리 옛 줄에서STATION_CARRY_KEYS(상단측 출처 ·user면 값도 · 포장 표기) · 새 자리 포장 표기 = 지금 계획선 · X6 = 거울 시험(두 목록 같음 · 한 벌은 472-4). - 검증완료 — test_472_station_user_fields 4(옛 코드 빨강 3) · golden 통과 · 고친 대상 시험 212 통과 · 화면(검증_sub8) 351 상단측 left 세션 지정 → [저장] = left · user · 포장 19.76 % 그대로 · 실제 단추 길(새 탭 B06 [저장] → 새 탭 [저장] · 두 번 다 서버 재계산 나감) = 351 right · user · 포장 19.76 % 그대로(옛 코드 = 출처 · 포장 지움) · 칩 포장 권장 29 · 성토 5m↑ 40 같음 · DB · storage 되돌림(차 0 · 누가토량 −17,570.7) · B06 카드엔 상단측 · 포장 단추 없음(손 지정 = [확정]이 카드 측구 방향을 되씀 E-7 · 3D 램프 누름 코드 없음).
- 남은 것 — 노선 저장(측점 통째 새로)은 상단측 손 지정을 안 넘김(「측구 방향은 새 지형이 정함」 기존 규칙 · 사용자 협의) · 옮긴 구조물 새 자리 = 지형 자동 · 세션을 직접 넣은 시험이라 횡단 설계 행은 right_cut 그대로(실제 3D 램프 누름 길은 못 돌림).
- 원인 = [저장] 상단측 차례(
- 472 덧 — B05 첫 새로고침 6 번에 1 번 누가토량 −211.6(옳은 값 −204.2 · 검증_sub3 · 경합 · sub3).
- 검증완료(473) — 시설 줄이 종류 표 · 구조물 · 관 알림 다 온 뒤만 심음 · 옛 코드 새로고침 2/20 · 새 탭 1/20 · B06 6/11 → 고친 뒤 60/60 −204.2 · test_473_lane_ready · golden 통과 · 검증 대기.
- 472 덧 — [저장] · [확정] 재계산이 종단 경고를 다시 안 씀(정본 5 줄 · 지금 셈 51 줄 · sub2 기준값 시험이 찾음 · sub8).
- 서버 재계산 맨 앞
refresh_alignment= 경고만 지금 코드 값(기하 저장값 그대로 — 통째 다시 쓰면 6 자리 반올림 끝자리로 면적 1e-4 ㎡ 흔들림) · 파이썬 경고 글 = TS 꼴(접두 · 총괄 줄 뺌 · 브레인 A) · 기준값 경고 칸만 다시 뜸(server_save 5→50 · server_route 51→50 · W1 지움). - 검증완료 — test_472_save_warnings 6(옛 코드 빨강 5) · golden 15 통과 · 고친 대상 시험 445 통과 · 화면(검증_sub8 · B05 [저장]) 정본 경고 5→50 · 칩 위반 34 · 미달 46 · 누가토량 −17,570.7 ㎥ · 측점 57 같음 · B06 같음 · DB · storage 되돌림(차 0).
- 덧 흠(내 고침 밖) — [저장] 측점 맞춤이 구조물 측점 351 의
uphill_side_source: user·pavement_*칸을 지움(값uphill_side는 같음) · 재계산 「종단 경고 다시 셈」 0.8 s 더 듦(측정만).
- 서버 재계산 맨 앞
- 472-3 계산 등록부(목록 4.4 · 3-A 등록부 · Node 입구 · 시험 sub2 → 3-B 파이썬 실행기 sub2).
- 3-A —
design_calc_registry.ts(43 id · 순수 자료) ·design_calc_node.ts(node 다섯 = 구조물 면적 · 관 길이 · 누가토량 · 유토 배분 · 터파기 · 3D) ·build:design-calc· 나머지 실행기 = 파이썬 이름(472-4 동안) · Node 입구 도달 = logic · common_util + 「알려진 끌림」 49(세션 23 · 2-B 정리 / 기하 26 · 472-4 logic 으로). - 검증완료 —
test_472_3_calc_registry.py9 통과(STAGE_DEPS 같음 · 서버 쪽 코드 브라우저 밖 · server-calc · corridor 값 같음 · 끝값 −17,570.7) ·test_472_1_golden.py9 통과 1 건너뜀 · typecheck 0. - 3-B 파이썬 실행기(
common_util_calc_runner.py·run_bundle_json한 길) —run_calc(ids, inputs)· Node 실행기 아닌 id 는 ValueError · 서버 기존 부름 자리 그대로(472-4 몫). - 검증완료 —
test_472_3_calc_runner.py3 통과(NODE_IDS = 등록부 = 입구 · 값 = server-calc · 끝값 −17,570.7) · 472-3 등록부 9 · 472-1 기준값 9 통과 1 건너뜀.
- 3-A —
- 472-4 짝 모으기(목록 4.5 · ① 측점 열쇠 · 따라감 sub8 + ② 횡단 설계선 · 면적 · 소단 sub2 동시 → ③ 측점 · 지반 · 종단 · 관 세트는 남김). → ① ② 끝 · ③ = 472 덧.
- ② sub2 —
Router_Design699 → 609줄(_Router_Design_Ranges나눔) · [저장] · [확정] 다시 셈(enforce 셋 · 넓힘 뒤 설계) = Nodecross.design측점 묶음(B06_Section_Engine_Design_Node.py· 파이썬은 입력 조립) · C1 · C2 · C5 한 셈 · X3 풀림 · C4 소단 구간 =common_util_berm_spans.ts(서버cross.berm_spans) · C3 구간 판정 · C6 얹기는 파이썬 짝 남음(C6 거울 새로 · 알려진 차 = 옛 underdrain 걷음 TS 만) · 파이썬compute_cross_design남음(B07 · 추천 · Route_Save · B05 확정 · 넓힘 찾기 · Node 못 부를 때). - 검증완료 — 기준값 시험 10 통과 1 건너뜀(0 차 · 설계선 점 13 곳 1e-4 판정 더함) · 472-3 · C6 거울 · 영향 시험 95 파일 723 통과(빨강 4 =
test_b05_structures_registry_policy· 구조물 표 자료 · 이번 고침과 무관) · 검증_sub2 실제 다시 셈 = 횡단 행 설계선 점 13 곳 1e-4 m 만 · 면적 · 누가토량 같음 · 행 · 파일 되돌림 해시 같음. - ① sub8 — 서버도 같은 TS(Node 입구 따라감 몫
design_calc_node_follow.ts) · P6 꼭짓점 세움profile.seat(Router_Confirm._seat_born_nodes= 겉) · F2 추가 측점facility.plus_follow(TSfollowPlusRows·Plus_Stations= 겉) · F1 구조물 따라감facility.follow(route_follow.follow_structures= 겉) · X6 넘기는 칸 정본 = TSROW_CARRY_KEYS하나(파이썬이 그 글을 읽음 · JSON 은 헬퍼 로더가 못 풀어 안 씀) · 요구 274 규칙 시험(노선 바뀌면 손 상단측 안 들고 감). - 남김 — F1 저장 때 좌표 맞춤
fill_structure_coordinates(옛 좌표 지킴 · 0.1 mm 반올림 — TSplaceOnLine과 규칙 달라 옮기면 저장 좌표 바뀜) · R7 서버 열쇠(주인 = 파이썬plan_stationsF3 · 부르는 곳 = 노선 저장 이월 ③ — ③ · F3 와 같이) · 「R7 알려진 차」(기준값 KNOWN)는 노선 저장 표본 다시 뜸 몫이라 ① 과 무관. - 검증완료 — test_472_4_follow_node 4(옛 코드 빨강) · test_472_station_user_fields 6 · 따라감 · 꼭짓점 거울(344_2 · 380_3 · 410 · 427_1 · 459 · 368_2) · 472-3 · golden 통과 · Router_Design · Station_Swap 관련 298 통과 · typecheck 0 · 화면(검증_sub8 · 옹벽 590–610 · 추가 측점 500 놓고 B05 교점 끌기 → [저장]) 관 351 → 354 · 꼭짓점 354 세움 · 옹벽 · 추가 측점 같은 자리 · 누가토량 −18,080.2 · 측점 59 → 새로고침 · B06 같음 · DB(노선 행 통째) · storage 되돌림 차 0 · 묶음 다시 지음 필요(design-calc · route_follow 끄는 묶음).
- ② sub2 —
- 472-5 값 주인 하나(목록 4.6 · 5-A 관 · 구조물 sub2 · 5-B 횡단 상세 · 측점 sub4 · 5-C 종단 편집 · 페이지 설정 sub4 · 5-D B06 조정 맵 sub6 · 2-C 뒤). → 5-A~5-D · 남음 끝.
- 5-A 관 · 구조물 sub2 — 판 셋 나눔(B06 구조물 판 700 → 624 · B05 구조물 판 693 → 665 · 배수 판 691 → 657 · 동작 같음) · 주인 = 가게
pipes·structures칸 · 화면 사본은 가게 알림으로 맞춤(종단 보기 = 배수 편집기adoptPipes숨어도 · 목록takeStructures보일 때 · 횡단 판 = 마지막으로 읽거나 쓴 값과 다르면 다시 실음 · 옵션만도) · ↶ ↷ 뒤announceDesignStore(관 · 구조물 · 추가 측점) · 종단 고름 · 알약 관 = 시설 줄(노선 따라감 뒤 옛 자리 안 봄) · 모듈 사본 변수는 화면 사본으로 남김(글 단언 시험 많음 · 주인은 아님). - 검증완료 —
test_472_5_shop_owner3 통과(옛 코드 실패 확인) · 영향 시험 76 파일 554 통과 · 기준값 그대로 · typecheck 0 · 화면(검증_sub2 · B05 구조물 넣음 → ↶ 목록 0 → ↷ 1 → ↶ 뒤 새로 넣어도 옛 값 안 살아남 · B06 ↶ ↷ 목록 따라감 · 새로고침 그대로) · 초안 지운 뒤 행 · 파일 해시 같음. - 5-A 덧 — 겹침 정리(관 · 구조물 = 가게 알림 한 번 · 추가 측점 = 자기 훅 · 계산 묶음 = 출처마다 한 번 · 옛: 추가 측점 되돌리기에 묶음 두 번) · 열린 관 폼이 밖 값(↶ ↷ · 횡단 보기)으로 다시 엶(화면에서 찾은 흠 — ↶ 뒤 폼 옛 관경이 다른 칸 고칠 때 되쓰임).
- 검증완료 —
test_472_5_shop_owner4 통과(알림 수 · 옛 코드 실패) ·test_429_save_path5 · 영향 시험 425 · 화면(B06 동물이동형 무 → 종단 폼 무 · 종단 관경 800 고쳐도 무 유지 · ↶ 폼 1000 → 다른 칸 고쳐도 1000 · 횡단 관경 1500 → 종단 폼 · 관 표기 Φ1500 · ↶ ↷ 따라감 · 새로고침 초안 그대로) · 초안 지운 뒤 해시 같음. - 5-C 종단 편집 · 페이지 설정 — design_profile.ts 판 뼈대 나눔(691 → 659) · EditState 걷음(지금 값 = 가게 alignmentDraft ?? 새 칸 alignmentSaved · ↶ ↷ = 다시 읽기만) · 페이지 설정 = 가게 pageSettings 칸 · ↶ ↷ 훅이 가게로 알림 → 폼 · 기울기 한도 · 시작 측점 다시 얹음(N6) · 최소고 강제 사본 칸 profile-enforce-min-cover 지움 · 편집 가드가 페이지 설정 바로 읽음(N7) · [저장] 뒤 ↶ 가 저장 전 서버 값으로 돌던 흠도 같이.
- 검증완료 — test_472_5_value_owner 4(옛 코드 빨강 3) · 고친 대상 시험 1346 통과(빨강 = test_prefs_persist 옛 그대로 · 472-3 server_calc = HEAD 시험 NODE_IDS 에 cross.design 빠짐 · dev 에 고침 있음) · golden 통과 · typecheck 0 · 화면(검증_sub4 B05) ▲ · 종단 L · 최대 기울기 12 · 최소고 강제 각각 ↶ ↷ 정확 · B06 · B05 · 새로고침 같음(−17,589.6 · 872.03) · 끝에 처음 값(−17,561.8 · 초안 없음) · 팝아웃 창은 ORCA 에서 못 봄.
- 덧 화면 — 직선화(−18,330.8) · 쉬프트(−18,421.6) · 자유지정(−27,306.3) 각각 ↶ ↷ · B06 · B05 · 새로고침 같음 · 띠 · 고름 = 도구 화면 메모리(5-C 밖) · 끝 처음 값.
- 5-B 횡단 상세 · 측점 — design_pipeline_page.ts 저장 기준 나눔(694 → 646 ·
_saved.ts) · 상세 가게 칸 셋(Section_Canon.ts: 저장 정본 상세 · 초안 전 hold 상세(판 바뀌면 새 판) · 노선 초안 상세 = pipelineDetail) · 페이지 canon.detail · held.detail · shown 사본 걷음(지문만) · savedStations 남김(sub2 관 · 구조물 줄로 셈). - 검증완료 — test_472_5b_detail_owner 3(옛 코드 빨강 3) · 고친 대상 시험 578 통과(헬퍼 넷 가게 칸 채움) · golden · typecheck 0 · 화면(검증_sub4) 노선 끌기 −19,100.7 → B06 같음 → ↶ 처음 값(−17,561.8 · hold 비움) → ↷ → 초안 둔 채 새로고침 −19,100.8(옛 코드도 같음 · 기존 0.1 ㎥ 차) → 떠남 [폐기] 초안 칸 비움 → B07 열림(도면 16) · [확정]은 DB 되돌릴 도구 없어 안 누름(시험이 덮음).
- 5-D B06 조정 맵 sub6 — Station_Controls 나눔(687 → 646 · 저장 묶음 접기 → Link_Session · 동작 같음) · 메모리 맵 걷음(반폭 · 흙막이 4축 · 유입 형식 · 집수정 · 단 수 · 단별 구간 · 연동 · 세월교 · BOX = 세션 칸이 주인 · 창구
B06_Section_Session_Cells= b_page_state 열쇠 · 브레인 B) · 캐시 설계 칸 얹기 = 고치기 전 칸 + 지금 칸(noteAdjustBase·withDraftAdjusts) · ↶ ↷ 가 조정 칸을 바꾼 걸음만 폼 · 상세 얹기 · 카드 · 면적 다시(onRestore) · moveSessionMaps · markMovedStates · setStationAdjustReload 걷음(측점 이동 = Station_Keys 세션 칸 바로). - 검증완료 — test_472_5d_adjust_owner 5(옛 코드 빨강 4) · 옛 단언 고침(318 다시 읽기 창구 · 272 H4 맵 이동 · 346_2 맵 열쇠 · 445 헬퍼) · 영향 시험 96 파일 604 통과 · golden · 472-5 넷 · 472-3 그대로 · typecheck 0 · 화면(검증_sub6) 반폭 ↶ ↷ 카드 눈금 · 흙막이 ◀◀ ↶↶ 뒤 ▲ = x 0(옛 0.2 안 살아남) · −17,575.6 → −17,573.1 → −17,570.7 · B05 에서 ↶ → B06 같음 · [경사] ↶ ↷ 폼 · 카드 단추 · 세월교(종류 바꿈 초안) ▼▶ ↶↶ 뒤 ▼ = 좌우 0 · 새로고침 길(세션 칸 둔 새 탭) −17,573.1 · 떠남 [폐기] · 판 접힘/펼침 −17,570.7 · 카드 57 · 저장 안 함 · 묶음 다시 지음 필요(design-calc — Section_Adjusts).
- 남은 것 — 암선 · 암 경사 메모리 맵(
_UI_Page_Persistrockb · cutslope)도 같은 N5 꼴 · B05 상단측 맵(5-D 파일 밖).
- 5-A 관 · 구조물 sub2 — 판 셋 나눔(B06 구조물 판 700 → 624 · B05 구조물 판 693 → 665 · 배수 판 691 → 657 · 동작 같음) · 주인 = 가게
- 472 덧 — 노선 초안(교점 끌기 · 관은 follow) ↶ ↷ 값 하나(sub4) — 앞서 「관 끌기」는 실은 관 옆 노선 교점 끌기 · ↶ 가 버림 차례 + 관 먹이기 차례로 갈리고 버림 사이 초안 · 저장 상세 · 종단이 섞여 그려짐 · 되돌린 뒤 시설 줄이 늦어 낡음 다시 셈이 옛 관 자리 계획선으로 셈 → 훅은 버림 동안 관 안 먹임 · 버림 동안 그리기 멈춤 · 되돌림 바로 뒤 저장 기준 · 버림 동안 낡음 다시 셈 미룸 · 저장 노선 셈 편집 = 그 노선 것 · 되돌림 · 갈아끼움 얹기 꼬리 한 벌.
- 검증완료 — test_472_5c_drop_once 4(옛 코드 빨강) · 고친 대상 시험 836 통과 · golden 그대로 · typecheck 0 · 화면(검증_sub4 · DOM 바뀜 관찰) 판 펼침 · 접힘 각 ↶ ↷ 여섯 걸음 = 값 하나씩(−17,561.8 ↔ −16,542.4) · 사이 틀린 값 0 · ↶ 0.2
0.5 s · ↷ 0.150.5 s(ORCA 배경 탭은 그리기 틀이 멈춰 「20~100 s 늦음」은 잰 쪽 착시였음).
- 검증완료 — test_472_5c_drop_once 4(옛 코드 빨강) · 고친 대상 시험 836 통과 · golden 그대로 · typecheck 0 · 화면(검증_sub4 · DOM 바뀜 관찰) 판 펼침 · 접힘 각 ↶ ↷ 여섯 걸음 = 값 하나씩(−17,561.8 ↔ −16,542.4) · 사이 틀린 값 0 · ↶ 0.2
- 472 덧 — 관 지움(종단 우클릭 「배관 삭제」) ↶ = −17,598.1 ≠ 처음 −17,561.8(값으로 남음 · ↷ −17,582.7 맞음) · 옛 코드도 같음 · 실마리: ↶ 뒤 17+11(351) 측점에 관 세트(culvert)가 붙어 면적 4.28 · 3.442 · 처음(새로고침) 상세엔 351 관 세트 없음 · 면적 9.163 · 4.827 — 읽기 길(withDraftShapes)과 갈아끼움 길(reshape)이 351 관 세트를 다르게 붙임 · 어느 쪽이 정본인지 판단 필요 · 폼 옮김은 화면 폼이 안 열려(ORCA 누름) 못 돎.
- 판정 = 서버 흠 — 검증_sub4 관 파일이 옛 노선 누가거리(394)로 남음(지문 어긋남) · 측점 계획(
_load_pipe_points) · 관 지점 GET · 화면은 좌표로 351 에 얹는데 서버 상세 읽기(attach_saved_shapes)만 파일 누가거리로 찾아 351 관 세트 빠짐(D1000 배관 = 관 세트 · golden 고정 자료도 351 관 세트) → 서버 읽기도 지금 노선에 얹은 관(saved_pipes) · 덧: 관 지움 ↶ 로 다시 선 351 측점 = 정본 설계(빈 기본 설계면 포장 권장 · 잠정 칸 빠짐) · 폼 옮김 ↶ ↷ = 열린 폼이 옮겨진 관을 따라감(옛 17+15 칸 남고 고름 풀리던 흠) · 폼 안 열린 까닭 = 알약이 화면 밖(x 1866 > 폭 1494) · 종단을 그 자리로 옮기면 ref 누름으로 열림. - 검증완료 — test_472_d_pipe_route_attach · test_272_swap_keeps_canon 관 지움 되돌림(둘 다 옛 코드 빨강) · 관련 시험 95 + 308 통과 · golden 그대로 · typecheck 0 · [저장] 재계산 길(쓰기 없이) −17,598.07 · 351 면적 4.2799 / 3.4423 = 화면 · 화면(검증_sub4 새 탭 B05 · B06 · 유토 판 접힘/펼침 = −17,598.1 · 측점 58) 배관 삭제 −17,592.4 → ↶ → ↷ → ↶ · 폼 옮김(351 → 355 −17,547.9) ↶ ↷ ↶ · 배수유역도 관 끌기(351 → 348 −17,568.7) ↶ ↷ ↶ = 처음과 칸마다 같음 · 남은 차 = EP 누가거리 0.58 mm(첫 갈아끼움에서 묶음 측점 1080.159674 ↔ 서버 1080.159094 · 이번 고침과 무관 · 측점 셈 짝) · 저장 안 함 · 검증_sub4 기준값 = −17,598.1(옛 −17,561.8 = 관 세트 빠진 값).
- 판정 = 서버 흠 — 검증_sub4 관 파일이 옛 노선 누가거리(394)로 남음(지문 어긋남) · 측점 계획(
- 472 덧 — 관 파일 누가거리를 그대로 읽던 남은 서버 자리(sub1) — 세월교 노면 하강 · 물넘이포장 구간(
load_culvert_sets→ ford_surface_drops · ford_pavement_ranges · tilt_ranges · [저장] · [확정] · 측구 방향 다시 셈) · 카드 이름(relabel_pipe_stations) · B07 관 글 재료(load_note_sources) · 옛 비정규 측점 이관 심는 자리 → 관 읽기 한 벌route_pipe_points(B05_Profile_Engine_Sections · 지금 노선에 얹음 · 노선 경로 안 줌 = 노선 파일 하나ROUTE_DATA_FILE) · saved_pipes 걷음 · B06_Section_Engine_Culvert(700) → 읽기 · 얹기_Culvert_Sets.py로 나눔(동작 같음) · 영향 범위 확인 = 관 파일 읽는 서버 자리 grep 전부(B05 · B06 · B07 · Node 입력 조립 = 관 안 넘김 · DesignSave 관 옵션 = GET 열쇠 · RouteInitial = 좌표만 · B07 전개도 = M02 표와 같은 파일 열쇠).- 검증완료 — test_472_d_route_pipe_readers 3(옛 코드 빨강 2) · test_472_d_pipe_route_attach 「노선 모름 = 파일 누가거리」 단언 = 옛 동작이라 고침 · 영향 시험 125 파일 817 통과(빨강 1 = test_472_6 상태 대조 · 따로 돌리면 6 통과) · golden · 472-3 통과 · typecheck 0 · 화면(검증_sub1) 세월교 30+0 · 물넘이포장 40+0 놓고 [저장] → 관 파일 지문 어긋냄(누가거리 +43) → 새로고침 · [저장] = 상세 57 측점 차 0 · 누가토량 −17,456.4 같음 · 교점 끌기 [저장] −17,349.2 → 새 탭 B06 같음 · 30+0 계획고 837.9(하강 0.14) · 순토량 51.5 · 다시 지문 어긋냄(−37) = 차 0 · DB 행 · storage 되돌림 차 0.
- 472-6 [저장] 한 본문 · 한 트랜잭션 · 서버 전부 아니면 없음(목록 4.7 · sub8 · 세 즉시 쓰기는 답 전 그대로 · 정함(브레인) = 떠 두고 되돌림 · 프로젝트 잠금 · 6-A 노선 안 바뀐 저장 먼저 → 6-B 노선 바뀐 저장 다시 얹기 서버 Node) · 넓힘 · [측점 만들기] · 추천 [적용] 저장 시점(사용자 협의). → 6-A · 6-B 끝.
- 6-A 노선 안 바뀐 [저장] · [확정] — 서버
POST /design/save(B06_Section_Router_DesignSave.py· 옛 창구 함수를 같은 차례로 안쪽 부름 · 측점 맞춤 · 재계산 · 하위 차례 실패도 실패) ·common_util_save_guard.py(DB 행 · storage 떠 둠 → 실패면 바뀐 표 · 바뀐 파일만 되돌림 · 되돌림 실패 = 500 「복구 확인 필요」 · 프로젝트 잠금 · waited) · 브라우저design_save.tssaveOneBody(차례 조각 = 본문 + 저장 뒤 정리 · 서버가 다 저장한 뒤에만 정리) · 보기 몫 steps · cross → parts · crossPart · 옛 flush 함수 = 노선 바뀐 저장 길 · 시험 갈래 환경 변수AISLO_DESIGN_SAVE_FAIL_AFTER. - 검증완료 — test_472_6_design_save 6(storage 되돌림 · 중간 실패 행 · 해시 그대로 · 정상 = 옛 차례와 행 · 파일 같음 · 복구 실패 알림 · 잠금 · 시험 갈래) · 옛 9 차례 단언 시험 10 개 한 본문 꼴로 · 관련 1075 통과 · golden 통과 · typecheck 0 · 화면(검증_sub8 B06) 암 절토 경사 0.5 [저장] → DB 0.5 · 새로고침 유지 · 시험 갈래(상단측 뒤 실패) [저장] → 「상단측 차례에서 실패 — 아무것도 저장하지 않았습니다」 · DB 행 · storage 해시 그대로 · 세션 고침 남음 · 평소 서버 [저장] 0.6 → [확정] → B07 · DB · storage 되돌림 차 0 · 묶음 다시 지음 필요(b07-extent · b07-note — Api_Structures).
- 6-B 노선 바뀐 저장 — 서버가 노선 저장 뒤 관 · 구조물 · 계획고 · 횡단 초안 다시 얹기(Node) → 한 본문.
POST /design/save칸route·carry(옛 노선 세션 칸) · 서버 = 노선 저장 → Nodefacility.rebase(F10) → 6-A 차례(새 노선 · 계획고 초안 새 노선 번호) → Nodestations.carry(R9 ·B06_Section_Route_Carry_Patch.routeCarryPatches· 넘김 규칙logic/B06_Section_Route_Carry) → 횡단 저장 · 되돌림 범위 + 배수 폴더 · 지표면 확정 · 손 상단측 안 넘김(요구 274) · 노선 바뀐 [확정] = [저장] · 옛 차례 길 · 부름 0 flush 여섯 · saveCachedCrossPatches 걷음 · 등록부 690줄 나눔(_facility) · 저장 뒤 묶음이 초안 전 관 · 구조물을 되쓰던 흠 고침(commitRouteFacilities· 화면에서 찾음). - 검증완료 — test_472_6_route_save 9(옛 브라우저 길 = 서버 Node patch · 버린 수 · 다시 얹기 같음 · 노선 차례 뒤 실패 · 넘김 실패 = 행 · 파일 그대로 · 정상 한 본문 = 옛 차례와 행 · 파일 같음(계산 시각 · 3D 파일 번호만 다름) · 옛 코드 실패) · 영향 시험 1082 + 317 통과 · golden · 472-3 통과 · typecheck 0 · 화면(검증_sub8 · 옹벽 600 · 추가 측점 510 · 0+0 · 1+0 암 경사 0.8 · 0.7 넣고 교점 끌기 → [저장]) DB 측점 61 · 옹벽 604–614 · 510 · 경사 0.8 · 0.7 · 관 351 벽 높이 · 새로고침 · B06 같음(−18,094.9) · 시험 갈래(노선 뒤 실패) 「노선 차례에서 실패 — 아무것도 저장하지 않았습니다」 행 · 파일 차 0 · 노선 바뀐 [확정] = 노선만 저장 → 다시 [확정] → B07 · DB · storage 되돌림 차 0 · 묶음 다시 지음 필요(design-calc · b07-extent · b07-note — design_selection).
- 6-A 노선 안 바뀐 [저장] · [확정] — 서버
- 472-5 남음 — 암선 · 암 경사 맵(B06_Section_UI_Page_Persist) · B05 상단측 맵 N5 꼴 · 노선 저장 뒤 옛 노선 세션 칸 · 초안 = 저장 재확인(sub4).
- 암 경계 · 암 경사 저장소 = 세션 칸이 주인(읽을 때마다 측점 열쇠 칸 · 고칠 때 그 측점만 · 메모리 맵 · load · 갈아끼움 다시 읽기 걷음) · ↶ ↷ 가 rockb · cutslope 를 바꾸면 조정창 onRestore 로 카드 · 면적 다시 · B05 상단측 맵 = 읽는 곳 없던 사본 걷음(값 주인 = 세션
uphill· 상단측 차례 = 기본 조각) · 노선 바뀐 [저장] 성공 뒤 옛 노선 번호 노선 범위 초안(clearRouteDrafts) ·route-draft-hold비움(같은 번호면 노선 칸 안 지움 · 실패면 그대로). - 검증완료 — test_472_5r_rock_owner 7(옛 코드 빨강 5) · 옛 단언 고침 4(176_3 · 271 · 443 · 344_3) · 영향 시험 134 파일 862 통과(빨강 1 = test_472_6_design_save · 검증_sub8 노선 번호 380 을 박아 둔 시험 · 「노선이 바뀌었습니다」 · 내 고침 무관) · golden · 475-3 · 472-5 넷 통과 · typecheck 0 · 화면(검증_sub4 B06) 1+0 ▼ · 2+0 ▲ · 3+0 경사 0.7 → −17,572.3 → ↶ 셋 = 걸음마다 값 · 끝 −17,598.1 칸 비움 → 4+0 ▼ = 칸에 4+0 만(옛 값 안 살아남) · ▲ 는 −0.5 에서 −0.4 · B05 에서 ↶ ↷ → B06 같음(−17,555.7) · 세션 칸 둔 새 탭 −17,554.3 · 교점 끌기 초안 −19,049.5 → [저장] 뒤 −19,049.5 · B06 · 새 탭 같음(화면 0.1 ㎥ 자리 차 0) · 세션 옛 노선 376 칸 6 · hold · 노선 0 칸 = 0(초안 칸 5,794 → 962 B) · DB 행 · storage 되돌림 SAME · ORCA 탭은 requestIdleCallback 이 안 돌아 화면 밖 카드(4+0 줄)가 ↶ 뒤 옛 글로 남음(캐시 설계 · 세션 = 맞음 · ORCA 몫).
- 암 경계 · 암 경사 저장소 = 세션 칸이 주인(읽을 때마다 측점 열쇠 칸 · 고칠 때 그 측점만 · 메모리 맵 · load · 갈아끼움 다시 읽기 걷음) · ↶ ↷ 가 rockb · cutslope 를 바꾸면 조정창 onRestore 로 카드 · 면적 다시 · B05 상단측 맵 = 읽는 곳 없던 사본 걷음(값 주인 = 세션
- 검증완료(472-6) — 6-A · 6-B 노선 안 바뀐 · 바뀐 [저장] · [확정] 한 본문 POST /design/save · 떠 두고 되돌림 · 프로젝트 잠금 · 옛 9 차례 걷음 · 시험 test_472_6_design_save · route_save · 브레인 합칠 때 design_pipeline_page 충돌 풂(둘 다 살림) · 문 시험 41 통과 · 검증 대기.
- 472 마무리 흠 둘(sub5) — ① design_profile 708 → 683 줄(계획고 [저장] 조각 → 새
design_profile_save· 높이 캐스케이드 설명 →_Profile_Heights머리 · 동작 같음 · 팝아웃 시험 목록에 새 파일) ② test_472_6_design_save 노선 380 박음 → 검증_sub8 최신 노선 · 추가 측점 자리(가운데 두 측점 사이)를 그때 읽음 · 옛 차례 대 한 본문 비교에서 새 추가 측점 행 자동 번호만 뺌(브레인 승인 = 고정 자료 대신 살아 있는 프로젝트 · 노선 바뀌어도 됨) · 같은 꼴 = route_save 는 이미 최신 노선 읽음.- 검증완료 — 새 test_472_6_profile_save 1(조각 없음 셋 · 본문 · 알림 → 넘김 · [확정] 저장 한 번) · test_230_2 · design_profile 읽는 시험 28 파일 161 통과 · test_472_6_design_save 6 통과 · 472 · 475 시험 117 통과(golden 그대로) · typecheck 0 · 화면(검증_sub5 · 5180 B05) 종단 판 측점 칸 171 · 구간 56 · 누가토량 −17,570.7 · 알약 1 = 접힘 → 펼침 · 팝아웃 창 · 결합 뒤 같음 · 검증 대기.
- 475-3 노선 바뀜 암 경계 · 2단 경사 안 넘김(sub3 · 정함(브레인) = 자리 · 지형 바뀐 측점만 버림 · 그대로인 측점 유지 · 손 상단측도 같은 판정) — 자리 칸
SEAT_KEYS(two_stage_slope · rock_boundary_offset_m · cut_slope_ratio_user · section_mode · ditch_side · 세션 rockb · cutslope · crossdesign 같은 칸) · 판정sameSeat↔same_seat(중심 0.01 m · 축 1e-3) · 끌기 세션 넘김 · Node stations.carry · 미리보기(crossAtSeat) · B06 갈아끼움(unseated) · 서버 노선 저장(carry_cross_inputs) 한 규칙 · 세션 값은 쓴 때 자리(@seat) · 지반 · 측구 종류 · 소단 · 사면 쉬프트는 그대로 넘김 · 묶음 다시 지음 필요(design-calc).- 검증완료 — test_475_3_seat_carry 8 · 고친 대상 92 파일 557 통과(빨강 2 = test_472_6 검증_sub8 DB 교착 · 「경로 없음」 · 다른 창 동시 작업) · golden 통과 · typecheck 0 · 화면(검증_sub3) 5+0 · 30+0 암선 −0.7 · 암 절토 0.6 · 2단 경사 → 노선 안 바꾼 [저장] · 새로고침 유지 → 교점 끌기 = 5+0 유지 · 30+0 기본값 · ↶ 손 값 · ↷ 기본값 → [저장] DB 100 유지 · 600 기본값 · 초안 ↔ 저장 GET 59 측점 자리 칸 같음(성토 3 측점 ≤ 0.17 ㎡ 선 반올림 몫) · 누가토량 −15,338.0 → −15,340.5 · 새로고침 · B05 같음 · DB · storage 되돌림 차 0.
- 475-1 · 4 분석(에이전트 · docs/raw/조사/2026-10-19_475_요구275_저장차_초기종단.md) — ① 브라우저 ↔ 서버 차 0.7~0.85 ㎥ = 노선 선 반올림(서버 geojson 3자리) 몫 · 121.6 ㎥ 는 넘김 두 길 갈림(추정) ④ 검증_랩탑메인 = 438 전(10-17) 초기값 · [초기화] · 노선 저장 안 바뀐 구간 · 추천 [적용] 같은 노선은 옛 꼭짓점 이어받음.
- 475-1 노선 선 소수점 4자리 한 벌(sub2) — 서버 노선 geojson x · y 3 → 4자리(= 계획노선 csv) · 브라우저 초안 그린 선 · 곡선표 같은 자리(
draftLine· 파이썬 round 짝) · 472-1 헬퍼 옮김 인자 · 페이지 배선 · 단면 모양 = 따라간 구조물(덤) · 옛 시험 둘(346_1) 저장 자리 단언으로 · 3자리에 기대는 곳 없음(관 지문 = 0.05 m 허용오차 · 측점 표시 0.01 m 칸 · B04 · B07 · 3D · 추천은 csv 또는 같은 파일 실수 읽기).- 검증완료 — test_475_1_route_digits 5(교점 9 동 +5 m 브라우저 −15,499.51 = 서버 −15,499.51 · 옹벽 + 추가 측점 −16,281.74 = −16,281.74 · 옛 3자리 차 0.81 · 0.88 ㎥ · 그린 선 = csv 선) · golden 기준값 그대로 · 영향 시험 110 통과 · typecheck 0 · 화면(검증_sub2 교점 끌기) 초안 배지 −17,981.0 = [저장] 뒤 −17,981.0 · ↶ = −17,570.7 · B06 같음 · DB 행 · storage 되돌림 차 0 · 검증 대기.
- 472 덧 — B05 보기 배관 삭제 ↶ · 배수유역도(sub4) — 원인 = ↶ 가 관 초안 없는 걸음(저장분)으로 가면 종단 사진첩이 「처음 본 관 목록」(
B05_Profile_UI_Profile_Panel_Tools.tsinitialPipes · 판이 저장분을 읽기 전 잡혀 빈 목록)을 판에 줌 → 관 하나 프로젝트는 지운 뒤 판 목록(빈 목록)과 같아 판이 「같은 목록」으로 멈춤(B05_Profile_UI_Drainage_Panel.tssetPipeChainages) · 가게 구독은 빈 초안(null)을 안 받음(design_view_profile.tssubscribe pipes) → 배수판 · 시설 줄 · 알약 · 목록 관 없음 · 묶음은 저장분 관(측점 57) · B06 보기 ↶ 도 같은 길(배수유역도 관 · 세부유역 빠짐) · 종단 ↶ 단추는 다시 그릴 때만 켜짐 맞춤(B05_Profile_UI_Profile_Tools.tsrender). 고침 = 초안 없는 걸음 = null(저장분) → 판이 마지막 저장분 답 뒤 요청 몸통과 견줘 다르면 조용히 다시 읽음 · initialPipes 걷음 · 사진첩 쌓임 · 되돌림 알림(change)에 ↶ ↷ 켜짐 맞춤 · 위키 operations_common · _b05 · rules 줄.- 검증완료 — test_472_d_b05_pipe_undo 4(옛 코드 빨강 2 — ↶ 가 빈 목록 줌 · 단추 맞춤 0) · 영향 시험 63 파일 418 통과(옛 단언 고침 = 215_1
inner.undo→history.undo이름만 · 219_1 헬퍼 흉내에 onPageHistory) · golden · 472-5 그대로 · typecheck 0 · 화면(검증_sub4 · 저장 안 함) B05 보기 배관 삭제 −17,592.4 · 측점 57 · ↶ 단추 1 s 안 켜짐 → ↶ −17,598.1 · 측점 58 · 관 2 · 세부유역 2 · 제안 12 → ↷ −17,592.4 → ↶ 같음 · 관 0 되는 걸음(구조물 전체 삭제 = 옛 흠 조건) ↶ = 같음 · B06 보기 같은 차례 · 전체 삭제 ↶ 같음 · 새로고침 · 유토 판 접힘/펼침 · 저장 안 하고 떠났다 옴(초안 남음 → ↶ = 저장분) 같음 · 영향 범위 확인(setPipeChainages · restorePipes · pipes 구독 · feedFacilities 훅 · 시험 헬퍼 stub) · 어두움은 이 페이지에 단추 없음 · 검증 대기.
- 검증완료 — test_472_d_b05_pipe_undo 4(옛 코드 빨강 2 — ↶ 가 빈 목록 줌 · 단추 맞춤 0) · 영향 시험 63 파일 418 통과(옛 단언 고침 = 215_1
- 472 덧 — B06 헛 초안 · 지반 종류 어긋남(sub6) — 표준 횡단 = 열 때 패널이 config 를 · 설정값 받기가 저장분을 세션
std-cross에 베낌 → 안 씀 · 계산은 세션 → 저장분(section-context) → config · 같은 값이면 칸 지움 · 카드 단추 = 일곱 칸 통째 → 바꾼 칸만(앞서 바꾼 칸에 얹음 · [저장] patch · 노선 넘김도 빈 칸 안 실음) · 소단 사본berm= 떠남 확인 밖(소단 있는 프로젝트 열기만 해도 물음) · 지반 = 정본 상세 ripping_rock · 카드 「토사」 단추 꺼짐(이름은 늘 「토사」 · 켜짐/꺼짐이 값 · 사용자 확정 그대로) · 열기만 남는 칸 =berm(구조물 파생 · 빈[]) ·pipe-ids(관 id 장부) — 둘 다 떠남 · 되돌리기 고침 밖.- 검증완료 — test_472_open_no_draft 13(옛 코드 빨강 9) · 영향 시험 577 + 6 통과(옛 씨앗 단언 셋 고침 · golden · 472-5 그대로) · typecheck 0 · 화면(검증_sub6 새 탭 B06) 초안 칸 std-cross 0 · 떠날 때 확인창 없음 · 카드 1+0 「토사」 꺼짐 = ripping_rock · [측구] → 초안
{ditch_choice:false}하나 · ↶ → 칸 0 · 표준 노폭 3.5 → 칸 생김 · 3 → 칸 지움 · 누가토량 −17,570.7 · 측점 57(B06 · B05 · 새로고침 같음) · 검증 대기.
- 검증완료 — test_472_open_no_draft 13(옛 코드 빨강 9) · 영향 시험 577 + 6 통과(옛 씨앗 단언 셋 고침 · golden · 472-5 그대로) · typecheck 0 · 화면(검증_sub6 새 탭 B06) 초안 칸 std-cross 0 · 떠날 때 확인창 없음 · 카드 1+0 「토사」 꺼짐 = ripping_rock · [측구] → 초안
476. 노선 추천 때 초기 종단 미리 셈 · [적용] 늘 새 규칙 (요구 276 · 분석 에이전트 → 코더)
- 사용자 확정: 추천 후보마다 초기 종단(전 측점 R · R > 500 직선화 · 438 · L 20)을 미리 셈해 둠 · [적용] = 그것을 작업본 · 초기값에 씀 · 같은 노선도 옛 꼭짓점 이어받지 않음 · 기존 프로젝트 = 추천 [적용] 다시 누르면 새 초기 종단.
- 근거 =
docs/raw/조사/2026-10-19_475_요구275_저장차_초기종단.md④. - 476-0 분석(에이전트 · docs/raw/조사/2026-10-19_476_요구276_추천초기종단.md).
- 사용자 확정(요구 277) — 추천 [적용] = 평면 → 종단 → 횡단이 새로 따라옴 · 그 노선 기준 초기화 · 이전 수작업(종단 편집 · 횡단 손 입력 전부) 버림 · 초기값 = 깨끗한 셈 값.
- 476-1 구현 · 시험 · 화면(sub7 서버 · sub1 화면) — 측정: 후보당 끔 +0.9
1.4 s · 켬 +3.65.0 s · 저장본 꺼냄 0.35 s · 정함(브레인) = 뒤에서 미리 셈 그대로(기능 먼저 · 속도 따로).- ① [적용] = 옛 계획고 · 편집 · L 안 옮김(끔 · 균형 셈 실패 = 1차 계획선 438) · 요구 277 = 횡단 손 입력도 안 넘김(
carries_cross_inputs) ②build_sections· 따라감 ·seat_base_pvi셈 몫 뗌(동작 같음 · 횡단 이름 규칙 →_Engine_Sections_Names) ③ 새B05_Profile_Engine_InitialProfile(후보 노드 → 화면 펴기 짝draft_nodes↔ TS flattenServerPlan → 노선 짜기 → 관(새 세류선 교차 포함) · 구조물 · 추가 측점 따라감 → 438 → 켬 = 1 m 균형 얹기) ·_Router_RouteInitial_Initial(지문 · 저장본route_recommend/initial) · 응답initial_profile④ [적용] = [저장]과 같은 프로젝트 잠금 · 떠 두고 실패면 되돌림(응답 waited) · 부름 없던_write_working_route지움(700줄). - 검증완료 — test_476_1_apply_initial 10 · test_476_1_recommend_initial 14(미리 셈 ↔ 체인 파일 길 꼭짓점 차 0 mm · 끔 · 노선 바뀜 + 옹벽 + 추가 측점 · 켬) · 영향 시험 170 + 추천 125 + 시설 416 통과 · golden 그대로 · typecheck 0 · 영향 범위 확인(run_section_generation · resolve_extra_stations · 따라감 · _carry_profile · replan_route 부르는 곳 grep) · 화면(검증_sub7 · 5182) 끔 · 켬 [적용] 정본 = 미리 셈 계획고 차 0 · 꼭짓점 · 직선화 같음 · L 20 · R > 500 0 · 손 종단 편집 [저장] 뒤 같은 노선 적용 = 편집 빔 · 차 0 · ▲ 편집 뒤 [초기화] = 적용한 종단 · B05 표 = B06 = 새로고침(누가토량 −7,211.2) · 같은 노선 L형 측구 [저장] → [적용] = 기본 측구 · 겹친 [적용] 뒤 요청 waited · DB 행 · storage 되돌림 차 0 · 검증 대기.
- ① [적용] = 옛 계획고 · 편집 · L 안 옮김(끔 · 균형 셈 실패 = 1차 계획선 438) · 요구 277 = 횡단 손 입력도 안 넘김(
- 476-2 화면(sub1) — 추천 모달 종단 그림에 「적용될 초기 종단」 선(주황 점선 · 끔 = 지반선 + 초기 종단) · 범례 · 한 줄(꼭짓점 · 종단곡선 · 직선화 · 최대 종단경사(L) · 알림 N건 · 알림 글은 마우스 올림) · 실패면 이유 한 줄 ·
initial_profile세션에 안 적음 · [적용] = 확인 창(「종단 · 횡단 손 입력이 모두 지워지고 이 노선 기준으로 새로 시작」 · 요구 277).- 검증완료 — test_476_2 4 · 추천 영향 시험 72 통과(golden · 476-1 포함 · 빨강 1 = test_modal_top_and_add_word M02_SO_Text 「종류 더하기」 · 내 고침 밖) · typecheck 0 · 화면(검증_sub1 · 5174 · sub7 merge) 다섯 알약 선 · 한 줄 · 끔/켬 선 바뀜 · 끔 [적용] 뒤 B05 종단 = 모달 선 측점 57/57 계획고 차 0.046 mm · 켬 0.048 mm · 꼭짓점 57 = 57 · 편집 빔 · L 20 · R > 500 0 · 페이지 캐시 같음 · 옛 노선 초안 칸 없음 · 밝음 · 어두움 주황 선 · DB 행 · storage 되돌림 차 0 · 검증 대기.
477. 요구 272~277 장 마무리 (브레인) — (일부 · 남은 줄은 PLAN.md)
- 477-1 합치기 · 묶음 여섯 · typecheck · 장 시험 · 메인 서버 다시 켬 · 브레인 화면.
- 검증완료(477) — 472(0~6) · 473 · 475-1 · 475-3 · 476 메인 합침 · 묶음 여섯 · typecheck 0 · 장 시험 83 파일 606 통과 · 브레인 화면(검증_랩탑메인 · 저장 · [적용] 없음) 새 탭 · B06 · 새로고침 −17,570.7 · 57 · B05 · B06 보기 배관 삭제 ↶ ↷ ↶ 정본 · 배수유역도 복귀 · B06 열기만 = 떠남 확인 없음 · 추천 알약 다섯 초기 종단 선 · 한 줄 · 「셈하는 중」 글 · [적용] 확인 글 · 검증 대기.
- 477-3 문서 운영 — docs 폴더 정리 · 가이드 · 자동 레퍼런스(사용자와 대화 중 · 외부 도구 조사 중). → 사용자 확정 = docs 는 raw 만 · guide 는 요청 때만 · 문서 사이트 · 위키 안 씀.
478. 프로그램 문서 사이트 — 자동 추출 → 로직 묶음 → 페이지 (요구 278 · 시범 B05 · B06)
- 사용자 확정: 함수 · 변수는 문법대로 자동 추출 · 로직 묶음 · 페이지 문서도 추출 결과를 따라 바뀜 · 세 층을 사이트에서 위에서부터 눌러 내려가며 봄 · graphify · 짐작 위키 안 씀.
- 정함(브레인): MkDocs(Material) 사이트 · TS = ts-morph · 파이썬 = ast · 서버 주소 = FastAPI app.openapi() · 손글 = 묶음 「무엇을 하나」 한두 줄 + 페이지 규칙 · 사용자 결정만 · 추출이 바뀐 묶음 = 「설명 확인 필요」 표시.
- 폴더:
docs/mkdocs.yml·docs/tools/(스크립트 · 자기 package.json · requirements) ·docs/guide/B05_B06/page.md·groups/*.md(손글) ·docs/_data/(추출 JSON · git 밖) ·docs/_build/(원고 · 사이트 · git 밖) · 시험resources/tester/test_478_*. - 추출 꼴(
docs/_data/): functions.json [{id: "ts:<파일>#<이름>" | "py:<파일>#<이름>", lang, file, line, name, exported, doc, params, returns, calls[], called_by[]}] · session_keys.json [{key, reads[], writes[]}] · api.json [{method, path, handler, callers[]}] · registry.json(계산 등록부 id · 실행 자리 · TS 함수 · 파이썬 짝). - 정함(브레인 · 사용자 걱정 「직접 만든 생성기는 누락」) — 함수 화면 = 기성 도구(파이썬 mkdocstrings · TS TypeDoc) · 직접 만드는 것 = 묶음 · 페이지 · 흐름 · 세션 칸 · 서버 주소 짝만 · 누락 검사 = 기성 도구 목록 ↔ 우리 추출 목록 맞대기 · 모든 함수가 묶음 또는 「묶음 없음」에 나옴 · mkdocs build --strict.
- 478-1 추출 스크립트 셋 + JSON(sub2).
- 검증완료(sub2) — 시험 6 통과 · ruff · prettier · 한 명령 14.3 s(ts 7.8 · py 1.7 · api 4.4) · 함수 5746(TS 4674 · 파이썬 1072) · 세션 칸 45 · 서버 주소 41(짝 없는 TS 글자 0 · 부르는 TS 없는 주소 1 = POST route/solve) · 등록부 45 · 세는 규칙 = docs/tools/README.md · 등록부 파이썬 짝 범위 밖 2(B04 ford_height_m · B07 route_frame) · 검증 대기.
- 478-2 묶음 규칙 · 사이트 생성 · 손글 옮김 · 검사 시험(sub3 · 478-1 꼴로 동시).
- 검증완료(478-2) — test_478_docs 9 통과(가짜 3 · 진짜 6) · 함수 5,746 · 묶음 18 · 묶음 없음 0 · 세션 칸 45 · 서버 주소 41 · 손글 함수 빠짐 0 · TypeDoc ↔ ts-morph · griffe ↔ ast 차 0 · mkdocs --strict 경고 0 · 설명 없는 export 381(경고) · 원고 40 s + 사이트 50 s · 화면 3,021 쪽 · 함수 화면 = TypeDoc HTML · mkdocstrings · 검증 대기.
- 사용자 결정(10-19) — 문서 사이트 운영 안 함(사용자 · AI 둘 다 도움 적음 · 토큰만 듦) · docs/tools · mkdocs.yml · 시험 478 둘 · 문서 도구 지움 · docs = guide · raw 만.
- [취소] 478-4 개발 중 누락 막기 — 검사 빨강 조건(묶음 없음 > 0 · 설명 확인 필요 남음 · 짝 없는 세션 칸 · 서버 주소 · 범위 밖 새 페이지 폴더) · 자동 push 스크립트에 빠른 문서 검사(추출 시간 재서 가능하면) · 브레인 합침 문 시험에 넣음(빨강이면 안 합침).
- 478-3 브레인 확인 — 추출 21 s · 원고 + 사이트 137 s · 함수 5,746 · 묶음 18 · 묶음 없음 0 · 설명 없는 export 381 · 페이지 화면(묶음 카드) · 묶음 화면(설명 · 흐름 · 함수 목록) 잘 섬 · 흠 = 페이지 「묶음 사이 흐름」이 호출 수 전부를 그려 읽을 수 없음 · 묶음 안 흐름도 빽빽함.
- [취소] 478-5 흐름 그림 손봄 — 페이지 = 데이터 흐름 차례(노선 → 측점 → 지반 → 종단 → 횡단 → 토량 → 저장) 왼→오 · 공용 도구 · 페이지 틀 · 가게 같은 바탕 묶음은 그림에서 뺌 · 약한 선(호출 적음) 숨김 · 묶음 안 = 입구 함수 · 주요 단계만(나머지는 목록).
479. B06 횡단 왼쪽 아래 정보 칸 — 처음 빈 칸 · 고른 것만 (요구 280-1 · sub3 · Opus high)
- 정함(브레인): 고른 것 없음 = 빈 칸 · 선 · 암경계 고를 때만 그 정보 · 오른쪽 「암 절토」 칸 그대로 · 벽 · 본체 · 면적 고름 = 빈 칸 · 근거
docs/raw/조사/2026-10-19_요구280_A_B06정보칸_드롭다운.md1~2장. - 479-1 —
B06_Section_UI_Cross_Design_Pick.ts:632기본 암 갈래 → 암 고른 때만 ·_Cross_Card_Chrome.ts:177-182갈래 · 죽은 함수 걷음 · 확인:test_370_3_rock_cell·test_318_cross_card고쳐 씀 + 화면(새 탭 · 새로고침 = 빈 칸 · 선 · 암 고름 = 정보 · 풂 = 빈 칸 · B05 우측 판 그대로).- 검증완료(sub3) — 시험 9 파일 62 통과 · typecheck 0 · 화면 검증_sub3 카드 59 = 처음 · 새로고침 정보 칸 0 · 암 점선 고름 = 「암 경계 -0.5m」 1 · ▲ = -0.4 · ↺ = -0.5 · 사면 고름 「사면 이동 (우)」 · 다시 누름 = 0 · 어두움 같음 · B05 우측 판 발 줄 0 · 검증 대기.
480. 전역 드롭다운 — 마우스로 고르면 초점 뺌 (요구 280-6 · sub5 · Opus high)
- 정함(브레인): 마우스로 고른 때만 한 박자 뒤 blur(키보드 훑기 그대로) · 드롭다운만(숫자 칸 뺌) · B08 이정 상자 = 고르면 저장 · 닫힘 그대로 · 근거 분석 A 3~5장.
- 480-1 —
ui_template_native_menu.ts함수 하나 + 부름 셋(A00_Common/main.ts·ui_template/cad_host/cad_host.ts·design_profile_popout.ts) · CAD 앱 빌드 없음 · 확인: 고치기 전 휠 · ↓ 재현 → 새 시험(마우스 고름 뒤 초점 빠짐 · 키보드 고름 초점 남음) + 화면(B05 · B06 · B07 리본 · B08 · M02 각 하나 · 고른 뒤 휠 · ↓ = 값 그대로).- 검증완료(
9a8ff3ee8) — 시험 test_280_6 4 · 이웃 원본 시험 통과 · typecheck 0 · 고치기 전 B05 간격 고른 뒤 ↓ = 10 m → 측점 No. 바뀜(초점 SELECT) · 휠은 orca 가 select 위 휠을 못 쏨(재현 못 함) · 뒤 B05 · B06 구조물군 · B07 리본 선종류(iframe) · B08 수리 재현기간 · B09 쉬는 날 · M02 별칭 장부 갈래 = 고른 뒤 초점 BODY · ↓ 값 그대로 · 키보드 고름 = 초점 SELECT 남고 값 바뀜 · 어두움 같음 · 값 되돌림.
- 검증완료(
481. B05~B09 왼쪽 패널 아래 [?] [<] [>] 페이지 이동 (요구 280-2 · 481-1 sub2 · 481-2 sub5 · 481-3 sub6 · Opus high)
- 정함(브레인): 줄 = [?] [<] [>] + 그 페이지 단추 · [<] [>] = 이웃 진행 단계 단추 누름(
onStepClick한 길 · ☰ · 단계 판도 같은 저장 후 이동) · B05 ↔ B06 = 저장 없이 화면만 · B05 < · B06 > = 지금 떠남 물음 그대로 · B07 · B08 · B09 = 보이는 화면 저장 성공 뒤 이동 · 실패면 머묾 · B09 [>] 흐림 · [?] 는 이미 다 있음(설명resources/help/B0N/00_설명서.md= 사용자) · 근거 분석 B. - 481-1 공용 + B05 · B06 —
ui_template_help.ts·ui_template_workflow_layout.ts·design_dock.ts·design_shared.ts([노선 보기] · [횡단 보기] 지움) · 확인:test_design_view_parity+ 새 시험(차례 · 다섯 주소만 · B09 흐림) + 화면.- 검증완료 — 시험 81 통과(
test_280_2_step_nav새 ·test_design_view_parity외) · typecheck 0 · 화면(검증_sub2): B05~B09 줄 [?] [<] [>] 32×32 · 넘침 0 · B05 ↔ B06 = 페이지 안 다시 실음(표시 남음 · 저장 요청 0) · B09 [>] 흐림 · 밝음 · 어두움 · 검증 대기.
- 검증완료 — 시험 81 통과(
- 481-2 B08 · B09 저장 후 이동(480 뒤) — 저장 함수 다섯 성공 여부 돌려줌 · B08 = 왼쪽 옵션 + 지금 탭 · 떠난 탭
host.isConnected· 확인: 새 시험 + 화면(고침 → [>] → [<] = 값 남음 · 저장 실패 = 머묾).- 검증완료(
197f5b589) — 시험 test_481_2 6 · B08 · B09 이웃 원본 시험 303 통과 · typecheck 0 · 화면(검증_sub5 · ☰): B08 연암 90 → 85 + 수리 재현기간 100 → 50 → B09 = options · hydro PUT 뒤 이동 · 캐시 빔 → B08 = 85 · 50 남음 · 1본 빈칸 → 머묾 · 요청 0 · 알림 · B09 쉬는 날 → B08 = estimation PUT 1 → B09 = 값 남음 · storage 새 파일 넷 지워 처음과 같음.
- 검증완료(
- 481-3 B07 저장 후 이동 — 484-2 와 한 커밋 · 자동 B08 이동(
all_confirmed) 끔.- 검증완료(sub6) — 고친 장만 confirm 1 + complete 1 → B08 · confirm 실패 = 머묾(● 남음) · B08 → B07 = 고친 장 60 개체 그대로 · 잠금 없음 · 단계 4 COMPLETE · 검증_sub6 되돌림.
482. 노선 바뀜 뒤 구조물 측점이 옛 자리에 남음 (요구 280-3 · sub4 · Opus high)
- 사용자 확정(요구 281): 사용자는 노선 고칠 때 ↶ 안 씀 → 원인 1 은 고치되 사용자 길(끌기 · R · 교점 더함 · 지움 · B06 평면 패널 · [저장] · 새로고침 · [초기화] · 추천 [적용])을 화면에서 먼저 찾음.
- 정함(브레인): 원인 1 = 노선 초안 중 ↶ · ↷ 가 계획고만 되돌리고 관 · 구조물 · 추가 측점은 안 넣음(재현 유령 7 · 빠짐 7) → 그 걸음 세션 값을 같이 넣음 · 원인 2 = 옛 비정규 측점 이관이 「기타 구조물」을 만듦 → 막이(이름 빈 측점 · 낡은 종단 건너뜀 · 저장 잠금) · 이미 생긴 것 = 목록 알림만 · 원인 3(옛 틀 · 새 틀 누가거리 견줌) 같이 · 근거
docs/raw/조사/2026-10-19_요구280_C_노선바뀜_구조물측점.md. - 482-1 브라우저 —
design_pipeline_page.ts:290(691줄 · 넘으면Pipeline_Grade.ts) ·B06_Section_Section_Drafts.ts· 확인: 고치기 전 화면 재현 먼저(끌기만 · ↶ 포함 둘) → 새test_280_3_route_undo_facilities+ 분석 5장 기존 시험 + 화면(네 벌 측점 같음 · 유령 0 · 빠짐 0).- 검증완료(검증 대기) — 고치기 전 화면: 끌기 · 방향키 · R · 교점 더함 · 지움 · 손 옮김 뒤 끌기 · 스냅 끔 · B06 평면 끌기 · B05↔B06 · 새로고침 · [저장] · [초기화] · 추천 [적용] = 유령 0 · ↶ 만 유령 6 · 빠짐 6 → 고친 뒤 ↶ · ↷ · 관 손 옮김 뒤 ↶ = 네 벌 같음 · [저장] 뒤 GET 같음 · 새 시험 11 통과(옛 코드 ↶ 넷 실패) · typecheck 0 · 원인 3 = 상세 틀(옛 · 새)을 넘겨 견줌.
- 482-2 서버 —
B05_Profile_Structures_Migration.py·_Structures_Router.py·B06_Section_Router_Stations.py· 확인: 새test_280_3_migrate_guard(임시 storage) +test_452_server_keys_prune_migrate·test_272_2_station_sync.- 검증완료(검증 대기) — 새 시험 6 통과(옛 코드 다섯 실패) · 452 · 272-2 · 322-0 · 449 · 407-3 · 428 · 445 · 472-6 함께 통과 · 화면: 검증_sub4 이관 응답
legacy_etc[] · 파일 쓰기 0 · 「기타 구조물」 = B05 경고 알림만(안 지움) · 맞춤 실패 =StationsUnsynced→ 응답stations_synced거짓.
- 검증완료(검증 대기) — 새 시험 6 통과(옛 코드 다섯 실패) · 452 · 272-2 · 322-0 · 449 · 407-3 · 428 · 445 · 472-6 함께 통과 · 화면: 검증_sub4 이관 응답
483. B05 스냅 — 20 m 일반측점 그대로 · MC 특별측점 더함 · 1 m · 0.1 m 지움 (요구 280-4 · sub1 · Opus high)
- 정함(브레인): 스냅이 일반측점을 MC 로 옮기지 않음 → 20 m 그대로 + MC 가 측점 위 아니면 「No.N+10 (MC)」(407 꼴) · 측점 No. 간격에서 못 맞춘 곡선도 같은 규칙 · 「유지」 = 그 곡선 MC 에 묶음(저장 칸 없음 · 손 안 댄 곡선은 다시 맞출 때 N+0 · N+10 그대로) · N+0 으로 옮기면 특별측점 없어짐 · 옛 간격 0.1 · 1 m = 측점 No. · 근거
docs/raw/조사/2026-10-19_요구280_D_스냅_특별측점.md· 지식DB 노선측량.md:143-144. - 483-1 옮김 지움 — 서버
Core.py:397-398↔ TSSections_Stations.ts:292-299·SnapStep.ts:83-90· 확인:test_224_2고쳐 씀 · 새test_280_4_stations(거울 다섯 경우). - 483-2 1 m · 0.1 m 지움 — 고르기 목록 ·
STEPS·load_station_snap_step· 상태줄 글 · 확인:test_390_4·test_390_5고쳐 씀. - 483-3 유지 —
StationFit.ts+UI_RouteEdit.ts(695줄 · 셈은 StationFit) · 확인: 새test_280_4_fit·test_366_3·test_383_2·test_408+ 화면(10 m · MC N+10 = 20 m 목록 + N+10 (MC) · 앞 교점 옮김 뒤 남음 · N+0 = 없어짐) · 검증_sub8 옮긴 측점 11 곳 = 다음 [저장] 때 바뀜. - 검증완료(sub1) — 시험 관련 21 파일 182 통과 · typecheck 0 · 서버 Node 묶음 셋 다시 지어 바뀐 셈 0 건 · 화면(검증_sub1): 고르기 = 10 m · 측점 No. 둘 · 10 m 로 11번 밈 = 410 (MC) + 20 m 빠짐 0 · 측점 No. 로 바꿈 · 앞 9번 20 m 옮김 뒤 410 남음 · [저장] 뒤 서버 측점 58 = 화면 58 · 11번 N+0 = 곡선 측점 0 · 고정 곡선 못 맞춤 = 「측점 밖 곡선 1개」 + 423 (MC) · 20 m 그대로 · 저장본 · DB 행 되돌림.
484. B07 좌측 패널 ⚙ 설정 · 모달 · [현재 도면 확정] 지움 (요구 280-5 · 280-6 · sub6 · Opus high)
- 정함(브레인): 공용
createPanelCard에 ⚙(캐럿 왼쪽 · 누름이 접힘 안 일으킴) · 컨테이너 없는 항목 = 단추 안 오른쪽 · 표지 없음 · 모달 = 공용openModal· 평면도 ⚙ = [평면도 관리] 모달(단추 지움) · 횡단도 ⚙ = 배치 행열 ~ 안내선 숨기기 그대로 옮김 · 구조물 ⚙ = 「M02 그림 — 축척 없음」 · 근거docs/raw/조사/2026-10-19_요구280_E_B07설정_화면정리.md3 · 4.5장. - 사용자 확정(요구 281): 확정 = 잠금 없음 — [현재 도면 확정] · [수정] 지움 · [>] · 페이지 이동 = 고친 탭(●) + 지금 탭 저장 → 단계 4 완료 → 이동 · 원본 되돌림 = ⚙ [원본에서 다시 그리기].
- 484-1 ⚙ · 모달 — 새
B07_DesignDetail_UI_Settings.ts·ui_template_collapsible.ts·_UI_Panels.ts·_UI_PlanKinds.ts·_UI_Development.ts· 확인: 시험 + 화면(⚙ 자리 · 접힘 안 됨 · 모달 칸 = 옛 칸 값).- 검증완료(sub6) — 카드 ⚙ 5 + 토적 단추 ⚙ 1 · 표지 0 · 제목 높이 14 px 전후 같음 · 누름 = 접힘 · 탭 그대로 · 횡단 모달 4 · 4 · 1 = 서버 값 · 평면도 ⚙ = 평면도 관리 · 밝음 · 어두움.
- 484-2 확정 단추 지움 + 481-3 + 탭 줄 겹판 페이지 쪽(486 과
--cad-tab-slot-left/right약속) —_UI_Page.ts(633줄 → 저장 · 확정 묶음 새 파일) · 서버 단계 4 완료 길 · 확인: 시험 + 화면.- 검증완료(sub6) —
test_280_5_b07_settings9 + 기존 9 파일 57 통과 · typecheck 0 · 「현재 도면 확정」 글 0 · [원본에서 다시 그리기] 60 → 204 개체 · 저장본 풀림 · 탭 줄 겹판 흉내(left 300 · right 120) = 높이 26 · 위 0 · 값 지우면 제자리.
- 검증완료(sub6) —
485. B07 도면 X · Y 축척 (요구 280-5 · sub8 · Opus high)
- 정함(브레인): 종단 · 횡단 · 토적 · 전개도 X · Y 분모 숫자 칸(정수 · 범위 검사 · 기본 = 지금
config_system상수 · 토적 · 전개도 「자동」 남김) · 횡단 X ≠ Y 허용(기본 1/100 · 1/100) · 표준 횡단 뺌 · 프로젝트마다drawing_scales.json· 바꾸면 그 종류 저장본 n 장 묻고 다시 그림 · 근거 분석 E 3.4 · 지식DB설계제원_총괄.md8장. - 485-1 서버 — 새
B07_DesignDetail_Router_Support_Scale.py(GET/PUT) ·Engine_Template.pydrawing_scale(kind)· 엔진 상수 → 함수 · 횡단 덧그림mm_per_m둘로(TS · Node 묶음 둘 다시 지음) · 확인: 분석 E 3.4-3 시험 여섯 + 새 시험.- 검증완료 — 시험 83 통과(여섯 + B09 인쇄 · 전개도 · 새
test_280_5_b07_drawing_scales10) · typecheck 0 · 검증_sub8 API(종단 X 1/500 = 장 2→3 · 첫 점 x 1.0→2.0 mm · 도각 「500(H) · 200(V)」 · 횡단 mm/m 10·20 · 도각 「100(H) · 50(V)」 · 범위 밖 400 · 파일 지움 뒤 원래 값) · 검증 대기.
- 검증완료 — 시험 83 통과(여섯 + B09 인쇄 · 전개도 · 새
- 485-2 ⚙ 모달 축척 칸(484-1 합친 뒤) —
_UI_Settings.ts·_Api_Fetch.ts· 확인: 화면(종단 X 1/500 → 장 수 바뀜 · 되돌림).- 검증완료 — 새
_UI_Settings_Scale.ts·logic/_Scale_Check.ts·test_280_5_b07_settings12 통과 · typecheck 0 · 검증_sub8 화면(종단 X 1/500 = 장 2→3 · 도각 「500(H) · 200(V)」 · 횡단 X 100 · Y 50 = 「100(H) · 50(V)」 · 1/50 · 500.5 = 칸 붉음 + 저장 꺼짐 · 전개도 「자동」 둘 · 풀면 빈 칸 붉음 · 저장본 1장 물음 [취소] = 그대로 · 새로고침 뒤 200 · 50 남음 · 밝음 · 어두움 · [기본값] 저장 = 장 3→2 · 파일 지움) · 검증 대기.
- 검증완료 — 새
486. B07 CAD 화면 정리 — 머리 줄 · 겹친 단추 지움 (요구 280-6 · sub7 · Opus high)
- 정함(브레인): 제목줄(「Aislo CAD / B07 상세 설계」) · 램프 · 「현재 도면」 글 지움 · 저장 · JSON 내보내기 = 숨김(DOM 둠) · ↶ ↷ = 홈 탭 줄 오른쪽(줄 높이 26 px 그대로) · 페이지 탭 줄 = 출력 탭과 같은 줄(부모 탭 줄을 iframe 위에 겹침) · 우측 손가락 단추 = 자판 없는 기기만(
(hover:none) and (pointer:coarse)) · 하단 도면 이름 · ‹ › · 확정 칸 지움 · 근거 분석 E 4장. - 486-1 —
QuickAccessBar.tsx·Toolbar.tsx·Ribbon.tsx·ribbon.config.ts(QUICK_ACCESS 몫) ·App.tsx·QuantityPanel.tsx(지움) ·input-touch.*·host-burger.*·App.css(제목줄 ·.cad-tool몫) · 확인:test_cad_touch·test_cad_host_tabs고쳐 씀 ·npm run build· 화면(CAD 높이 ≈ +74 px · 홈 탭 줄 높이 전후 같음 · M02 · 미리보기 CAD 그대로).- 검증완료 — 캔버스 높이 846 → 888 px(CAD 몫 +42 · 부모 탭 줄 겹침 +32 = sub6) · 리본 탭 줄 26 = 26 · ↶ ↷ 24×20 탭 줄 안 · 💾 ⭳ 숨김 · 손가락 단추 none(터치 노트북 any-pointer coarse) · 하단 칸 0 · 자리 변수 255 · 91 px · M02 구조물 CAD · 평면도 미리보기 그대로 ·
test_cad_touch·test_cad_host_tabs·test_m02_drawing_card통과.
- 검증완료 — 캔버스 높이 846 → 888 px(CAD 몫 +42 · 부모 탭 줄 겹침 +32 = sub6) · 리본 탭 줄 26 = 26 · ↶ ↷ 24×20 탭 줄 안 · 💾 ⭳ 숨김 · 손가락 단추 none(터치 노트북 any-pointer coarse) · 하단 칸 0 · 자리 변수 255 · 91 px · M02 구조물 CAD · 평면도 미리보기 그대로 ·
487. CAD 글자 테두리 = 입력 칸 · 리본 아이콘 하나만 켜짐 (요구 280-6 · sub7 486 뒤 · Opus high)
- 정함(브레인): 스침 테두리 = 더블클릭 입력 칸과 같은 셈(새
helpers/text-frame.ts한 벌) · 잡는 범위 = 테두리 안 · 여러 줄 = 묶음 전체 · 도각 칸 글 = 칸 크기 · 스침 모양 = 바탕색만(켜짐과 다르게) · 초점 테두리 남음은 화면 재현 뒤 ·getBoundingBox안 고침 · 근거docs/raw/조사/2026-10-19_요구280_F_CAD동작_DWG.md1~2장. - 487-1 —
TextEntity.ts·text-inplace-edit.ts·screenCanvas.drawController.ts(691줄) ·input-controller.ts·Ribbon.tsx·QuickAccessBar.tsx· 확인: 새text-frame.test.ts·text-inplace-edit.test.ts+ 화면(왼 · 가운데 · 오른 · 돈 글 네 귀 차 ≤ 1 px · 켜짐 1개).- 검증완료 — 스침 테두리 네 귀 대 입력 칸 차: 가운데 0.018 · 왼(돈 글) 0.023 · 오른 0.017 px · 끝 글자 스침 = 그 글 · 「선」 → Esc 뒤 켜짐 1개(선택) · 스친 단추 테두리 없음(바탕만) · 초점 테두리 0(블러 전 재현: 클릭 + Esc = 1) · 밝음 · 어두움 · 스침 1.75 ms/번(813 개체) ·
text-frame.test.ts12 ·text-inplace-edit.test.ts7 · typecheck 0.
- 검증완료 — 스침 테두리 네 귀 대 입력 칸 차: 가운데 0.018 · 왼(돈 글) 0.023 · 오른 0.017 px · 끝 글자 스침 = 그 글 · 「선」 → Esc 뒤 켜짐 1개(선택) · 스친 단추 테두리 없음(바탕만) · 초점 테두리 0(블러 전 재현: 클릭 + Esc = 1) · 밝음 · 어두움 · 스침 1.75 ms/번(813 개체) ·
488. CAD 이름 · 선 속성 · 안내 글 · DWG 불러오기 (요구 280-6 · sub3 479 뒤 · Opus high)
- 정함(브레인): 「선가중치」→「선 두께」 · 「도면층」→「레이어」(CAD 안 글 · 툴팁 · 명령 목록 · 토씨 손봄 · 저장 열쇠 그대로) · 색 · 두께 · 선종류 = 고른 것의 값(다르면 빈 칸 · 색 = 점선 빈 견본) · 고른 것 있으면 고른 것만 바꿈 · 없으면 그리기 기본값 · 특성 판 같은 규칙 · 되돌리기 한 번(같은 흠 명령 8개 같이) · 폴리선 자식까지 · 안내 글 = 한 줄 「DWG · DXF 파일을 끌어다 놓거나 [삽입 → DWG 불러오기]」 · [DWG 불러오기] = M02 와 같은 서버 변환 · 원좌표 · 골라진 채 · 화면 맞춤 · ByLayer = 레이어 색(M02 불러오기도 같이) · 근거 분석 F 3~6장.
- 488-1 이름 · 안내 글 — 확인:
command-catalog.test.ts+ 「도면층 · 선가중치 없음」 한 줄 + 화면 innerText 0. - 488-2 선 속성 = 고른 것 — 새
helpers/selection-style.ts·RibbonWidgets.tsx·PropertiesEditor.tsx· 확인: 새selection-style.test.ts+ 화면(다른 선 둘 = 빈 칸 · 고름 = 둘 다 · Ctrl+Z 한 번). - 488-3 DWG 불러오기 —
commands.insert.ts·ribbon.config.ts(삽입 탭 몫) ·dxf-clip-paste.ts·Engine_Frame_Import.py· 확인:dxf-clip.test.ts·test_b07_dxf_clip.py+ 화면(DWG 붙음 · Ctrl+Z 한 번) · 겹침 486 · 487 =App.css·ribbon.config.ts·DropHint.tsx·Ribbon.tsx몫 나눔.- 검증완료(sub3) — 시험 command-catalog 5 · selection-style 6(옛 제자리 고침이면 Ctrl+Z 빨강) · dxf-clip · test_b07_dxf_clip 7 · 이웃 frame_import 15 통과 · check-types 0 · 화면 B07 검증_sub3 innerText 도면층 · 선가중치 0(홈 · 삽입 · 주석 · 뷰 · 출력 · 레이어 관리자 · 왼쪽 특성 판 · ▾) · 다른 선 둘 = 두께 · 선종류 빈 칸 · 색 점선 빈 견본(밝음 · 어두움) · 두께 3 = 둘 다 · 그리기 기본값 1 그대로 · Ctrl+Z 한 번 = 옛 값 · 색 끌기 셋 → Ctrl+Z 한 번 = 옛 색 · 안내 글 높이 20 px · 넘침 0 · DWG(REpyo) 도형 21 붙음 · 골라진 21 · 새 레이어 0 · 화면 안 · Ctrl+Z 한 번 = 101 → 101 · M02 [파일 업로드] ByLayer = #ff7f7f(옛 #f5f7fa) · 저장 안 함(새로고침 = 185 그대로) · 검증 대기.
490. B05 종단 그래프 — 누르면 임시 횡단이 열리는 자리에 마우스 표시 (요구 282 · sub2 481-1 뒤 · Opus high)
- 정함(브레인): 표시 자리 = 누름이 임시 횡단을 여는 자리와 같은 판정(
B05_Profile_UI_Profile_Render.ts:329-346·groundPickAt허용 거리 · 추가 측점 선) · 근처면 그 선 위 작은 원 + 세로 점선 + 측점 글(예 「No.12+5 · 눌러 임시 횡단」) · 손가락 커서 · 멀어지면 사라짐 · 측점선 · 단추 위에선 안 보임(그 몫) · 밝음 · 어두움 색 · 끌기 · 스크롤 중엔 안 그림. - 490-1 —
B05_Profile_UI_Profile_Render.ts(524줄) · 판정 셈은logic/한 함수로 누름과 같이 씀 · 확인: 새 시험(판정 함수 = 누름 판정 같은 값 · 허용 밖 null) + 화면(검증_sub2 · 원지반선 근처 = 원 · 측점 글 · 누름 = 같은 측점 임시 횡단 · 멀리 = 없음 · 추가 측점 선 · 팝아웃 종단 · 밝음 · 어두움).- 검증완료 — 시험 4 통과(판정 = 옛 누름 9 경우 같은 값 · 허용 밖 null) · typecheck 0 · 화면(검증_sub2 · 실제 마우스) 원지반선 ±7 px = 원 · 측점 글 · 손가락 / ±9 px = 없음 · 표시 측점 = 누름 임시 횡단 측점 4 곳 같음(6+8 · 6+10 · 6+17 · 9+14) · 추가 측점 선 6+17 표시 · 누름 같음 · ▲ 단추 · 끌기 · 스크롤 · [직선화] 중 = 없음 · 팝아웃 종단 7+1 표시 = 누름 · 밝음 · 어두움 색 바뀜 · 검증 대기
491. 다음 장 후보 (요구 280 장에서 창이 찾은 것 · 장 끝에 한 번에)
- 491-1 B05 · B06 — B06 [>] 고침 있을 때 떠남 물음 화면 미확인(481-1) · 🏠 · 뒤로 가기는 저장 안 함(481-2 · 분석 그대로) · 서버 종단 이름 「STA.0+410.000 (MC)」 ↔ 화면 「20+10 (MC)」 꼴 다름(483) · 옛 세션 초안 간격 0.1 · 1 m 브라우저만 소수 MC(483) · [저장] 이 route_recommend 캐시 10 개 새로 씀(483) · 고른(빨강) 추가 측점 선은 --plus 클래스 빠져 누름 · 표시 안 먹음(490). → 505~507 로 옮김(요구 309 조사 · 끝난 조각 걷음)
- 491-2 B07 · CAD —
UI_Page.tsnavigateDrawing ·cad_hostonNavigate 죽은 길 ·state.tscad-host-save 클래스 남음 · 리본 탭 단추 클릭 + Esc 초점 테두리(487) · 그립 · cloneKeepingLook vitest 빨강(전부터 · flatten) · M02 카드 미리보기엔 [삽입 → DWG 불러오기] 안 닿음 · 특성 판 색 끌기 되돌리기 칸 연발 · LAYMRG 제자리 고침 · 확정 도면 DWG 막힘 화면 미확인(488) · 페이지 navigateDrawing 걷음(484). → 505~507 로 옮김(요구 309 조사 · 끝난 조각 걷음) - 491-3 서버 · 기타 — 축척 주소
/api/projects/{id}/drawing-scales(cross-layout 꼴) · 커밋 제목 앞 BOM 한 글자(Out-File) ·main.py805줄(700 넘음) · orca 가 select 위 휠을 못 쏴 휠 재현 못 잼(480) · 검증_sub8 B05 노선을 누가 다시 확정(13:48 UTC · sub8 아님) · 개발 잠금풀기 중 축척 저장 = 우회 표식 지워져 잠김(개발 전용) · 축척 칸 붉은 글이 X 칸만 밀어 Y 칸과 높이 어긋남(485-2) · 검증_sub7 storage 없어 356-4 · 349-0 시험 늘 건너뜀 · 옛 시험 헬퍼 가짜 모듈 낡음(482) · dxf-clip.test.ts 픽스처 상대 경로라 openwebcad 에서 돌면 빨강(전부터). → 505~507 로 옮김(요구 309 조사 · 끝난 조각 걷음) - 491-5 횡단 구조물 형상(494) — 노출형 횡단수로 = 횡단 그림 부품 없음(측점도 안 섬 · 모양은 사용자 협의로 정해야 만듦) · B05 종단 원지반 누름 임시 횡단 = 간이 그림이라 구조물 구간이어도 형상 안 얹음 · B05 「횡단」 판은 카드 머리를 걷어 「⚠ 배관 관경 빈칸」 칩이 안 보임(
B05_Profile_UI_RouteEdit_Cross_Card.ts:150) · B05 에서 고른 측점으로 B06 넘어가면 고름은 이어지나 카드 목록이 0+0 에 머묾(스크롤 안 됨). → 505~507 로 옮김(요구 309 조사 · 끝난 조각 걷음) - 491-4 노선(492 · 493) — 노선 [저장] 직후 페이지 통째 새로 고침(전부터) · test_472_6_route_save 묶어 돌리면 가끔 실패 · 추천 [적용] 첫 HTTP keep-alive 끊김(미리 셈 동기 계산이 루프 막는지) · 분석 지형 = 수치지형도인데 sheet 지표면 모델 없으면 손 고침 [저장] 실패(switch_design_terrain · 검증_sub1) · test_b06_draft_pipe_replay 482-1 뒤 옛 문구(전부터 빨강). → 505~507 로 옮김(요구 309 조사 · 끝난 조각 걷음)
489. 요구 280 마무리 (브레인)
- 489-1 합치기 · CAD 빌드 · 서버 묶음 · typecheck · 장 시험 · 메인 서버 다시 켬 · 다음 장 후보.
- 검증완료(489) — 479 · 480 · 481-1
3 · 482 · 483 · 484 · 485-12 · 486 · 487 · 488 · 490 메인 합침 · 장 시험 68 파일 401 통과 · 49 건너뜀 · CAD vitest 30 통과 · typecheck 0 · CAD 빌드 · 묶음 둘(b07-extent · print_drawings) · 메인 서버 다시 켬 · 482 사용자 길 = ↶ 말고 재현 0(후보 = 옛 이관 「기타 구조물」 · [초기화] 되살림 · 초안 둔 채 새로고침 — 막이 · 알림 들어감) · 검증 대기.
492. 노선 모양 바뀐 [저장] = 초기화 + 초기값 다시 세움 (요구 283 · 284 · 285 · 492-1 sub4 · 492-2 sub1 · Opus high) — (일부 · 남은 줄은 PLAN.md)
- 492-1 서버(sub4) —
_save_route초기화 갈래(추천 [적용] 길과 한 벌) ·/design/save초기화면 브라우저 시설 · 넘김 칸 무시 · 초기값 사본 되돌림 범위 · 공유 storage 시험 셋 임시 사본 · 확인: 새test_283_route_change_reset(옛 코드 ① ② ④ ⑤ 실패) + 따라감 기대 시험 아홉 고쳐 씀.- 검증완료(492-1 ·
7a857d626) — 판정 = 저장 · 새 계획 폴리라인 1 mm(route_shape_changed· TS 짝routeShapeChanged= 492-2) · test_283 9 통과(옛 코드 8 실패 · 검증_sub8 자료 관 [388, 394] → [388]) · 관련 시험 117 + 실DB 472-6 둘 16 통과(storage 임시 사본) · typecheck 0 · 검증_sub4 API(storage 사본 · DB 되돌림): 스냅만 = reset false · 시설 그대로 / 교점 20 m = reset true · dropped 구조물 1 · 관 2 · 추가 측점 1 · 관 = 교차 하나(옆 0.00 m · 옵션 없음) · 종단 편집 0 · 보낸 추가 측점 무시 · 초기값 관 = 작업본 · 검증 대기.
- 검증완료(492-1 ·
- 492-2 브라우저(sub1) — 판정 함수(logic/) · 초안 띠 · [저장] 확인 창(버릴 수) · [취소] = 요청 0 · 저장 뒤 알림(dropped) · 확인: 새
test_283_route_reset_confirm+ 화면(분석 7장 목록).- 검증완료(492-2 ·
d2bf68b59·6dfadcbd4) — test_283_route_reset_confirm 28 통과(거울 = 파이썬route_shape_changed같은 값) · 저장 헬퍼 시험 셋 · 관련 시험 111 통과 · typecheck 0 · 화면(검증_sub1): 교점 22.4 m 끌기 = 띠 · [저장] 창 「구조물 1 · 관 1 · 추가 측점 1 · 종단 편집 1」 · [취소] = 요청 0 · 저장 뒤 관 = 교차 하나(351 · 옆 0.000 m · 옵션 없음) · 구조물 · 추가 측점 0 · 종단 편집 0 · 측점 = 격자 54 + 곡선 17 + 교차 관 1 · R 바꿈 · 교점 더함 · 지움 · B06 평면 패널 끌기 = 띠 · 창 · 알림 「지움: 구조물 0 · 관 1 · 추가 측점 0 · 새 교차 관 1」 · 추천 [적용] 같은 글 · 수 · [초기화] = 같은 자료 · 스냅 끔 · 지형만 = 창 없음 · 밝음 · 어두움 · storage · DB 행 백업으로 되돌림 · 검증 대기.
- 검증완료(492-2 ·
493. B05 [저장] = 보이는 화면 그대로 · 초기화 기준 = 노선 추천 [적용] (요구 288 · 289 · 290 · 492 손 고침 초기화 걷음 · 493-1 sub4 · 493-2 sub1 · 493-3 sub2 · Opus high)
- 사용자 확정(요구 289 · 290): B05 손 고침 [저장] = 보이는 화면 그대로(지움 없음) · 노선 고침 때 구조물 = 평면 자리 근접 · 일반 · 곡선 측점 = 거리 지킴 · 추천 [적용] = 초기화 기준(그 노선 초기값으로 새로 시작 · 사용자 구조물 지움) · [초기화] = [적용] 기준으로 되돌림.
- 정함(브레인): 자동 관도 구조물 규칙(평면 자리 근접) · 새 세류선 교차는 492 이전처럼 더함 · 길에서 멀어진 시설 = 화면 그대로(사용자 점검 · 경고 안 둠) · 손 고침 [저장]엔 띠 · 확인 창 · 초기화 알림 없음 · 추천 [적용] 확인 창(지워질 수)은 둠 · 492 판정 함수는 안 쓰게 되면 걷음.
- 493-1 서버(sub4) — 손 고침 [저장](
_save_route·/design/save) 초기화 갈래 걷고 492 이전 따라감 되살림 · 추천 [적용] 초기화 그대로 · [적용] 첫 시도 500(초기값 사본 뜨기 FileNotFoundError) 고침 · 확인: test_283_route_change_reset 고쳐 씀(손 고침 = 시설 따라감 · [적용] = 초기화) + 검증_sub4 API.- 검증완료(493-1) — 손 고침 판정(
route_shape_changed) · 한 본문 초기화 갈래 걷음 ·route_reset= 추천 [적용] 응답만 · 500 원인 = [적용] 떠 두기 중 뒤 추천 미리 셈이_derived파일 지움 → 떠 두기가 사라진 파일 건너뜀 · test_283 10 · 관련 시험 382 + 실DB 472-6 둘 16 통과(storage 임시 사본) · typecheck 0 · 검증_sub4 API(떠 둠 · 되돌림): 교점 20 m · 교점 지움 [저장] = 구조물 1 · 관 2(id 그대로) · 추가 측점 1 · 초기값 그대로 · route_reset 없음 / [적용] 세 번 = 200 · 첫 번 지움 구조물 1 · 관 2 · 추가 측점 1 · 관 = 교차 하나 · 500 없음 · B05 화면 목록 배관 2 · 옹벽 그대로 · 검증 대기.
- 검증완료(493-1) — 손 고침 판정(
- 493-2 브라우저(sub1) — 손 고침 띠 · [저장] 확인 창 · 저장 뒤 초기화 알림 걷음 · 추천 [적용] 확인 창 수 = 서버 지울 수(창 구조물 1 ↔ 알림 0 어긋남) · 확인: test_283_route_reset_confirm 고쳐 씀 + 화면(검증_sub1).
- 검증완료(493-2) — 띠 · [저장] 확인 창 · 저장 뒤 초기화 알림 · 초안 통째 비움 걷음 · [적용] 창 수 = 서버 저장분(구조물 · 관 저장 파일 · 추가 측점) · test_283_route_reset_confirm 7 · 관련 시험 371 통과(1 실패 = test_b06_draft_pipe_replay · 482-1 뒤 옛 문구 · 안 고친 파일) · typecheck 0 · 검증_sub1 ORCA(떠 둠 · 되돌림): 교점 끌기 → 띠 0 · 창 0 → [저장] = 구조물 1(620 m) · 관 1(351 m) · 추가 측점 1(450 m) 수 · 좌표 = 끌기 때 화면 그대로 · 노선 최대 1.58 m 바뀜 / [적용] 창 「구조물 1 · 관 1 · 추가 측점 1」 = 적용 뒤 알림 「지움: 구조물 1 · 관 1 · 추가 측점 1」 · [취소] = 저장 요청 0 · B06 평면 패널 띠 0 · 밝음 · 어두움 · 검증 대기.
- 493-3 화면 ↔ 저장 자리(sub2) — 교점 끌기 중 화면 시설 · 측점 자리 = [저장] 뒤 서버 자리(굽은 곳 관 2~7 m 어긋남) · 브라우저 · 서버 따라감 짝 거울 시험 · 확인: 거울 시험 + 검증_sub2 교점 끌기 → [저장] 전후 관 · 구조물 · 측점 좌표 차 0.01 m 안.
- 검증완료 — 원인 = 추가 측점이 끌기 걸음마다 정수 m 자리에서 다시 따라감(서버 = 정본 좌표 한 번 · 2~4 m) · 관 · 구조물 재현 0 → 추가 측점도 좌표 들고 감(
followPlusGround· GETstations) · test_493_3_follow_screen_save 7(고치기 전 대조 빨강) · 관련 42 파일 313 통과 · typecheck 0 · 검증_sub2 앞 · 곡선 교점 끌기 → [저장] → 새로고침 = 측점 61곳 좌표 차 0 m(관 1 · 구조물 3 · 추가 측점 4 · 초기화 없음) · 저장 안 하고 B06 다녀옴 · 새로고침 = 초안 그대로 · storage · DB 되돌림 차 0 · 2b7b12956(검증 대기).
- 검증완료 — 원인 = 추가 측점이 끌기 걸음마다 정수 m 자리에서 다시 따라감(서버 = 정본 좌표 한 번 · 2~4 m) · 관 · 구조물 재현 0 → 추가 측점도 좌표 들고 감(
- 정함(브레인 · 합친 판 확인 뒤): 관 = 모두 구조물처럼 땅 위 자리 고수 + 근접(요구 290) · 자동 세류선 관을 새 교차점에 다시 붙임 = 안 함(다음 장 후보 · 브라우저 세류선 + 짝 교차 셈 필요).
- 493-4 관 저장 자리(sub2) — 합친 판 검증_sub1 손 고침 [저장] 뒤 관만 1.27 m 움직임(화면 208597.117 · 367731.865 ↔ 저장 208597.886 · 367732.872 · 구조물 · 추가 측점 0 m) · 원인 먼저 · 화면 = 저장 · 확인: 거울 시험 관 x · y + 검증_sub2 두 번 이어 고쳐도 0.01 m 안.
- 검증완료(493-4) — 원인 = 관 PUT 이 세부유역 계산을 거치며 속성만 되붙여 x · y 를 버림(
carry_facility_attributes) → 저장이 노선 위 측점 자리로 채움 + GET 관 x · y = 노선 위 자리라 [저장] 다시 얹기가 베낌(검증_sub2 재현 0.62 m) · 되붙임에 x · y · 저장 = 좌표가 그 누가거리를 낳으면 땅 위 자리 그대로(누가거리만 옮긴 낡은 좌표 = 노선 위 · 구조물 규칙) · GET x · y = 정본 · 세류선 교차 다시 붙임은 안 함(브레인) · test_493_3_follow_screen_save 16(관 x · y 거울 · 두 번 저장 · 고치기 전 대조) · 관련 23 파일 158 통과 · typecheck 0 · 합친 판(4aeaa9442포함) 검증_sub2 ORCA(떠 둠 · 되돌림 차 0): 세류선 관 · 사용자 관 · 구조물 · 추가 측점 → 교점 끌기 [저장] → 새로고침 = 화면 그대로(관 374 · 620 · 구조물 720 · 추가 측점 470 · x · y 차 0 m) · 한 번 더 고쳐 [저장] = 관 x · y 그대로(626 · 723 · 482) · 추천 [적용] 창 「구조물 1 · 관 2 · 추가 측점 1」 = 알림 같음 · 새로고침 없이 화면 = 서버(관 351 하나) · ORCA 는 [저장] 끝난 탭과 응답 끊김(화면 CPU 놂 · 새 탭은 정상) · 검증 대기.
- 검증완료(493-4) — 원인 = 관 PUT 이 세부유역 계산을 거치며 속성만 되붙여 x · y 를 버림(
- 493-5 [적용] 뒤 화면 초안(sub1) — [적용] 직후 지운 추가 측점이 화면 목록 · 초안에 남고 그대로 [저장]하면 되살아남(실제 봄) · [적용] 뒤 세션 초안 = 새 초기값 · 확인: 시험 + 검증_sub1 추가 측점 둘 · 구조물 하나 → [적용] → 새로고침 없이 [저장] → 서버 0 그대로.
- 검증완료 — 원인 = 493-2 는 [적용] 길 초안 비움(
clearDrafts)을 안 걷음 · 추가 측점 저장분 기억(모듈 캐시 · 따라감 기억)이 페이지 다시 세움에도 남아 옛 [127 · 163] 을 읽음 → [적용] 뒤 저장분 다시 받음(reloadSavedPlusStations) · test_283_route_reset_confirm 9(고치기 전 대조 = 옛 저장분 남음) · 관련 29 파일 211 통과 · typecheck 0 · 검증_sub1 ORCA(떠 둠 · 되돌림 차 0): 옹벽 1 · 추가 측점 127 · 163 [저장] → [적용] 창 「구조물 1 · 관 1 · 추가 측점 2」 → 새로고침 없이 화면 추가 측점 0 · 초안 없음 · 옹벽 카드 없음 → [저장] → 서버 추가 측점 0 · 구조물 0 → B06(120 · 140 · 160 m · 127 · 163 카드 없음) → B05 같음 · 검증 대기.
- 검증완료 — 원인 = 493-2 는 [적용] 길 초안 비움(
494. B05 · B06 구조물 측점 횡단도에 구조물 형상 안 보임 (요구 292 · 494-1 sub1 · Opus high)
- 사용자 확정(요구 292): B05 · B06 에서 구조물 측점을 고르면 나오는 횡단도에 구조물 형상이 보여야 함 — 지금 안 보임.
- 정함(브레인): 원인 먼저(언제부터 · 어느 커밋 · 자료 없음인지 그리기 끊김인지) · 횡단도 구조물 형상 연결 = B05 · B06 자체 기능(M02 구조물 조합과 별개 · 사용자 정정).
- 사용자 확정(요구 295): 이미 빈 채 저장된 관 = 코드로 안 채움 · 그 프로젝트는 노선 추천 [적용](다른 항목)으로 새로 시작해 기본값을 받음.
- 494-1 원인 · 고침(sub1) — B05 임시 횡단 · B06 횡단 둘 다 · 확인: 시험(형상이 그려지는 길) + 검증_sub1 관 · 옹벽 · 횡단수로 측점 고름 → 횡단도 형상 보임(사진) · 밝음 · 어두움.
- 검증완료(sub1) — 원인: B06 화면 밖 카드 다시 그리기가 쉬는 틈(시간 제한 없음)만 기다려 새 구조물 측점 카드가 빈 설계로 남음 · B05 「횡단」 판이 들어올 때 이미 고른 구조물을 안 그림 · 고침: 쉬는 틈 한도 200 ms · 판 만들 때 지금 고름 따라감 · 시험 test_494_1(고치기 전 빨강) · typecheck 0 · ORCA 검증_sub1 옹벽 7+5 · 7+10 · 7+15 설계선 + 옹벽 · 관 17+11 · 맹암거 12+10 밝음 · 어두움 · 되돌림(구조물 0 · rev 0) · 남음: 노출형 횡단수로 = 그림 부품 없음 · B05 원지반 누름 임시 횡단 = 구조물 형상 안 얹음
- 494-2 새 교차 관 기본값(sub4) — 검증_브레인232 확인(요구 294): 노선 바뀜 길(손 고침 [저장] · 추천 [적용] · 추천 초기 종단)이 새 세류선 교차 관을 옵션 없이 만듦(
B05_Profile_Route_Save_Parts.py:92) → 관경 빈칸 → 횡단도 관 형상 없음 · 기본값 채우기(_apply_new_defaults)는 B04 유역 길에만 · 확인: 시험(새 교차 관 = B04 기본과 같음) + 검증_sub4 B06 관 형상 사진 · 이미 저장된 빈 관은 안 바꿈.- 검증완료(sub4) — 고침: 세 길이 지나는
followed_pipes에서 새로 더한 관(짝 -1)만 B04_apply_new_defaults· 시험 test_494_2(손 고침 · 추천 [적용] 체인 · 초기 종단 · 옛 코드 빨강 3) · test_283 새 교차 관 기대 = 기본값 · 관련 64 통과 · typecheck 0 · ORCA 검증_sub4 추천 [적용] → p38800 관경 1000 · 집수정 L · 초기값도 · B05 「횡단」 · B06 19+8 관 형상(tmp/494_2_b05_cross.jpg · tmp/494_2_b06_cross.jpg) · 상세 자료 culvert Φ1.0 · 빈칸 경고 0/59 · 되돌림(storage · DB 7 표 · p38800 빈 옵션 그대로)
- 검증완료(sub4) — 고침: 세 길이 지나는
495. CAD 고침 — 손가락 단추 지움 · 리본 초점 · 축척 칸 · 탭 구분선 · M02 DWG (요구 298-1 · 495-1 sub3 · 495-2 sub1 · Opus high)
- 정함(브레인): 근거
docs/raw/조사/2026-10-20_요구298_A_CAD.md· 데스크탑 CAD 빌드 = 10-20 끝(전역 싱크가 빼먹음) · B05 평면 상단 고르기 = 네이티브 select · 480 훅 닿음(같은 값 다시 고름 초점 틈만 화면 확인) · 표지 = 원본 개념 없음 → 491-2 그 조각 지움 · M02 [수정] 상세 = 같은 openwebcad(리본 [삽입] 안 [DWG 불러오기]). - 사용자 확정(요구 300): A1 = M02 [파일 업로드] 지움 · CAD [DWG 불러오기] 한 길.
- 495-1 CAD · B07 — 손가락 단추 지움(
input-touch.ts·input-touch.css·test_cad_touch고쳐 씀) · 리본<nav>(Ribbon.tsx:208) 마우스 누름 blur 한 곳(키보드 초점 남김 · 487 단추별 blur 셋 걷음) · 축척 칸 = 칸 밑 오류 글 숨김 + 줄 아래 알림 한 줄(_UI_Settings_Scale.ts:119-156·_UI_Style.css:508-529) · 메뉴 탭 · 내용 탭 구분선(App.css:108--color-smoke· 줄 높이 26 그대로 · 겹판_UI_Style.css:48326→25 ·test_280_5:166) ·npm run build· 확인:test_cad_touch·test_280_5· CAD vitest + 화면(B07 · M02 [수정] 상세 [DWG 불러오기] · 밝음 · 어두움).- 검증완료 — test_cad_touch · test_280_5 13건 통과 · CAD vitest 134건 통과 · typecheck error 0 · 화면(B07): 손가락 단추 DOM 0 · 리본 탭 · 묶음 · 접기 누름 + Esc 뒤 :focus-visible 0 · Tab 초점 :focus-visible 1 남음 · 축척 X 10 · Y 9999 = 입력 칸 높이 둘 다 30 · 알림 한 줄(높이 18) · 저장 꺼짐 · 구분선 rgb(193,199,207) 밝음 · rgb(74,65,96) 어두움 · 탭 줄 높이 26 · 겹판 25(스크롤 0) · M02 [수정] 상세 [삽입 → DWG 불러오기] 보임 · 495-1 의 B05 평면 상단 고르기 = 같은 값 다시 고름은 change 없음 → 초점 남는 틈(코드 근거 · ORCA 로 팝업 구동 불가 · 고치지 않음).
- 495-2 M02 [파일 업로드] — 결정 A1 뒤 · 범위 = 구조물 상세 + 도면 양식(B07 [도각 편집]은 다음).
- 검증완료 — test_m02_card_shell 12 · test_m02_router_drawing 통과 · typecheck 0 · 화면 5174: [파일 업로드] 0(카드 · 구조물 상세 · 도면 양식 · 밝음 · 어두움) · [삽입 → DWG 불러오기] REpyo.dwg = 도형 51→72(+21 = 옛 길 21 같음) · 골라짐 21 · Ctrl+Z 한 번 51 · [저장] · 새로고침 뒤 72 · 구조물 상세 47→68→Ctrl+Z 47(저장 안 함) · 떠날 때 물음 창 뜸 · /api/m02/drawing-import 부르는 곳 0(남김).
- 495-3 싱크 스크립트(브레인 ·
.claude/git-sync-all.ps1:129-132) —$cad·$cfg를 폴더마다(CAD 폴더 트리 해시 + 빌드 표지) · Node 묶음은 안 넣음(서버가 낡으면 스스로 지음common_util_node_bundle.py:58-110).- 검증완료 — 폴더마다 표지(CAD = openwebcad git 트리 · config = package-lock 해시 ↔ dist/.aislo_build · node_modules/.aislo_install) · 랩탑 Build-Folder · 데스크탑 창 같은 규칙 · -Check 는 「빌드 필요」만 · config 표지 처음 = npm ls 맞으면 표지만 · 구문 검사 0 · -Check 모의(메인 · sub8 = CAD 빌드 필요 · config 조용) · 첫 싱크 때 CAD 한 번씩 다시 지음.
496. B05 · B06 단추 줄 — [확정] 지움 · B06 [>] = 확정 후 이동 · [초기화] 테두리 · 맨 오른쪽 (요구 298-2 · 496-1 sub5 · 496-2 sub6 · Opus high)
- 정함(브레인): 근거
docs/raw/조사/2026-10-20_요구298_B_버튼셋_B05B06.md· 차례 [?] [<] [>] [저장] [초기화] · 새 모양danger-ghost(테두리 · 글 = 지금 빨강 · 채움 없음 · 올리면 채움 · 지금danger20 곳 그대로) · B05 [<] 흐림(B05 ↔ B06 은 다시 안 세움 → 주소 바뀔 때마다 다시 맞춤) · B05 [>] · B06 [<] = 지금대로(저장 없이) · B06 [>] = 확정 일 전부(미지정 측점 기본값 · 노선 CONFIRMED · 단계 2 · 3 닫음 · 측구 방향 역반영 · 배수 다시 셈) 뒤 B07 · 실패면 머묾 · [저장] = 이미 두 보기 한 본문(보는 화면 기준). - 사용자 확정(요구 300): B1 = [>] 성공 = 그 단계 완료 · 앞 단계 [저장] = 그 단계 진행 중 + 뒤 단계 STALE · B2 = 노선 모양 바뀐 채 B06 [>] = 저장 뒤 모달 「노선이 바뀜」 · [머묾] / [B07 로] 사용자 고름(넘어가면 새 노선으로 확정 뒤 이동).
- 흠(조사 B): 운영 모드에서 B05 · B06 화면의 B07 단계 단추 꺼짐 → B06 [>] 가 「미시작」 알림만(개발 모드 5173 은 우회돼 안 보임) →
currentStage목록 · B05 · B06 화면 2 · 3 · 4 켬. - 496-1 브라우저 공용 + B05 · B06 —
design_dock.ts·design_shared.ts·design_page.ts(onStepClick 4 이상 = 확정 후 이동) ·ui_template_help.ts·ui_template_workflow_layout.ts·ui_template_elements.ts(새 모양) · 로케일 · 확인:test_280_2_step_nav·test_design_view_parity·test_b06_save_channels:96·test_272_detail_memory·test_416_page_cache고쳐 씀 + 화면(차례 · 흐림 · 올림 채움 · B06 [>] = 단계 2 · 3 COMPLETE → B07 · 실패 머묾 · 밝음 · 어두움).- 검증완료 — 시험 9+10+15+38 통과 · TS 0 · 5180 화면: 차례 [?][<][>][저장][초기화] · B05 [<] 흐림 ↔ B06 켬 · [초기화] 투명 → 올림 빨강 채움(밝음 · 어두움) · B06 [>] 확정 1회 31 s → B07 · 단계 2 · 3 COMPLETE · 실패 = 머묾 · 노선 바꾼 [>] = 물음 [B07 로] 새 노선 확정 이동 / [머묾] 2 · 3 IN_PROGRESS 머묾 · [저장] 뒤 단계 다시 읽음 1회 · 운영 흉내 = 헬퍼 시험 · DB · storage 되돌림
- 496-2 서버 단계 상태 — 결정 B1 뒤 ·
B06_Section_Router_DesignSave.py한 곳 · B07~B09 [>] 단계 4 · 5 · 6 닫음 몫 포함.- 검증완료 — 새 시험 19 · 이웃 263 통과 · 검증_sub6 실측 처음 CCIINNN → B06 [저장] 그대로 → B06 [>] CCCCINN → B07 [>] CCCCCIN → B08 [>] CCCCCCI → B09 [>] CCCCCCC → B08 [저장] CCCCCIS → B06 [저장] CCIISSS · 되돌림 같음 · 새 창구
POST /api/projects/{id}/quantity/complete·POST /api/projects/{id}/estimation/complete(본문 없음) · 검증 대기.
- 검증완료 — 새 시험 19 · 이웃 263 통과 · 검증_sub6 실측 처음 CCIINNN → B06 [저장] 그대로 → B06 [>] CCCCINN → B07 [>] CCCCCIN → B08 [>] CCCCCCI → B09 [>] CCCCCCC → B08 [저장] CCCCCIS → B06 [저장] CCIISSS · 되돌림 같음 · 새 창구
497. B07 · B08 · B09 [초기화] · [저장] · [>] (요구 298-2 · 497-1 sub8 · 497-2 sub2 · Opus high · 495-1 · 496-1 뒤)
- 정함(브레인): 근거
docs/raw/조사/2026-10-20_요구298_C_초기화_B07B09.md· 셋 다 초기값 층 없음(GET 마다 앞 단계 저장본으로 셈 + 그 페이지 사용자 값 덮음) → 기준 = 사용자 값 없이 지금 앞 단계로 셈(떠 두지 않음 · 앞 단계 저장 = 저절로 새 기준) · [초기화] = 그 페이지 사용자 값만 지움 · 공용 확인 창 · 오버레이만 같이 씀(design_reset.ts는 B05 · B06 전용) · 단추 꼴 · 차례 = 496-1 약속 · B08 은 B07 도면 · 수량표를 안 읽음(B08 기준 앞 단계 = B05 · B06). - 사용자 확정(요구 300): C1 = 기준 = 앞 단계 바뀐 내용이 반영된 셈 값 · C2 = 지침(CLAUDE.md) 안 고침 · C3 = [초기화] 때 그 페이지 설정값도 모두 초기화(M02 마스터 층 자체는 안 건드림) · C4 = 올린 파일(B08 이정 그림 · B09 견적서) 남김 · C5 = B09 [내역 초기화] → 이름 [초기화] 하나 · C6 = B07 [저장] 둠 · B09 단추 줄 = [?] [<] [>] [초기화](요구 301 · [저장] 없음).
- 정함(브레인): B08 이정 [초기화] = milestone.json 기본으로 · 사용자 그림 붙은 거래처 경로 줄만 남김(그림 고아 · 다음 [저장] 지움 막음).
- 497-0 서버 reset 셋(sub1 · 브라우저보다 먼저) — B07 · B08 · B09 [초기화] 서버 창구 · 그 페이지 사용자 값 · 설정 모두 지움(C3) · 올린 파일 남김(C4) · 단계 = 그 단계 진행 중 + 뒤 STALE · 확인: 새 시험(임시 storage) + 검증_sub1 API 실측 · 되돌림.
- 검증완료 — 새 시험 5 · 이웃 110 통과 · 검증_sub1 실측 B07 확정 2 장 → 0(번호 남음) · 측점 18 확정 → 잠정 · 축척 · 배치 기본 / B08 연암 85 · 모래 20 → 90 · 12 · 수리 지움 · 그림 붙은 경로 1 줄 남음 · 그림 200 · 다음 [저장] 뒤 200 · 1본 8 남음 / B09 공기 77 · 단가 책 → 빈 값 · 책 없음 · 견적서 남음 · 두 번 같음 · 단계 = save · 되돌림 같음 · 창구
POST /api/projects/{id}/design-drawings/reset·…/quantity/reset·…/estimation/reset(본문 없음) · 검증 대기.
- 검증완료 — 새 시험 5 · 이웃 110 통과 · 검증_sub1 실측 B07 확정 2 장 → 0(번호 남음) · 측점 18 확정 → 잠정 · 축척 · 배치 기본 / B08 연암 85 · 모래 20 → 90 · 12 · 수리 지움 · 그림 붙은 경로 1 줄 남음 · 그림 200 · 다음 [저장] 뒤 200 · 1본 8 남음 / B09 공기 77 · 단가 책 → 빈 값 · 책 없음 · 견적서 남음 · 두 번 같음 · 단계 = save · 되돌림 같음 · 창구
- 497-1 B07 — 서버 reset(저장본
confirmed=False· 도면번호 남김) · [저장](지금 · ● 탭) · [초기화] ·B07_DesignDetail_Router.py·_Api_Fetch.ts·_UI_Save.ts·_UI_Page.ts· 새test_298_2_b07_reset.py· 확인: 화면(고침 → [초기화] = 셈 값 · 남길 설정 그대로 · [저장] 뒤 새로고침 남음).- 검증완료 — 새 시험 4 · 이웃 56 통과 · TS 0 · 5183 Playwright 검증_sub8: 줄 [?][<][>][저장][초기화] · [도각 편집] 윗줄 · 넘침 0 · [초기화] 투명 → 올림 빨강 채움(밝음 · 어두움) · [저장] 고친 것 없음 = 요청 0 · 장 하나 고침 [저장] = PUT 1 · 머묾 · ● 지움 · 개체 152 → 205 · 새로고침 남음 / 종단 축척 1:500 → [취소] 그대로 → [초기화] = 저장본 0 · 개체 152 · 축척 1:1000 · 자동백업 칸 지움 / [>] 고친 것 없음 = 저장 요청 0 → B08 · 고치고 [>] = 저장 → B08 · DB · storage 되돌림 같음 · 검증 대기.
- 497-2 B08 · B09 — B08 reset(지움 = 연암 · 할증 · 재료 칸 ·
hydro_inputs.json· 초안 넷 · 남김 = 1본 길이 · 조합 연결) · B09 PUT{user:{}}· B09 [>] = 저장 후 인쇄 미리보기(초안 등록부DRAFT.next·test_302_1지킴) ·test_184_3고쳐 씀 · 확인: 화면.- 검증완료 — 새 시험 10 · 이웃 53 통과 · TS 0 · 5177 검증_sub2(머리 없는 Edge): 줄 B08 [?][<][>][저장][초기화] · B09 [?][<][>][초기화] · B08 연암 85 저장 + 80 초안 → [취소] 그대로 → [초기화] 90 · 초안 0 · 이정 그림 200 · 경로 r497 남음 → [>] 단계 5 C → B09 / B09 간접재료비 1234 → [>] PUT 1 · 완료 → b09-print · 단계 6 C → [취소] 요청 0 → [초기화] 값 빈 · 견적서 남음 → 고침 없는 [>] PUT 0 → 인쇄 · [초기화] 투명 → 올림 채움(밝음 · 어두움) · storage · DB 되돌림 같음 · 검증 대기.
498. 노선 [저장] 뒤 토스트 · out of memory (요구 298-3 · sub4 · Opus high) — (일부 · 남은 줄은 PLAN.md)
- 498-1 메모리 — 고치기 전 재현 먼저(저장 다섯 번 · 메모리 · 옛 페이지 풀림 · 듣개 수 · WebGL 문맥 수 · DB · storage 백업) → 전역 듣개 넷 페이지 수명에 묶음(
design_leave.ts:101-107·ui_template_overlay_drag.ts:168-208·B05_Profile_UI_Panel_Settings.ts:140-146·ui_template_side_panels.ts:194-228) · 코리도 캐시 지금 노선만(B05_Profile_UI_Corridor.ts:45) · 확인: 저장 다섯 번 메모리 평탄 · 옛 페이지 풀림 ·design_save.ts는 498-3 몫.- 검증완료 — finishDrop 같은 기록 되받기 고리 그침(test_298_3_finishdrop_loop · 고치기 전 51 번 → 1 번) · 머리 없는 Edge 손 고침 [저장] 다섯 번 매번 60 s 평탄 · 화면 돌아옴 · 누름 됨 · DB · storage 되돌림 · 남은 것: 저장마다 약 80 MB 계단 =
RouteEdit_StructureMarks·RouteEdit_Keys창 키 듣개가 다음 키 누름 때만 떨어짐(키 한 번 = 513 → 189 MB) · 덧: 두 키 듣개 캔버스 수명에 묶음(listenWhileAlive · test_298_3_page_dispose 두 칸 고치기 전 빨강 → 통과 · 둘레 85 통과 · TS 0) · 머리 없는 Edge 끌기 손 고침 [저장] 다섯 번 키 누름 없이 GC 뒤 힙 39 → 123 → 205 → 205 → 206 → 206 MB(둘째 저장부터 평탄) · 매번 화면 다시 섬 · DB · storage 되돌림 · 남은 것: 옛 페이지 한 벌 =design_structure_pipe_calc.ts:28extraCountSource 모듈 칸이 앞 페이지 횡단 보기 닫개를 쥠(늘지 않음) · 한 벌 더 = DevTools 콘솔 손잡이(재는 도구 몫) · 검증 대기
- 검증완료 — finishDrop 같은 기록 되받기 고리 그침(test_298_3_finishdrop_loop · 고치기 전 51 번 → 1 번) · 머리 없는 Edge 손 고침 [저장] 다섯 번 매번 60 s 평탄 · 화면 돌아옴 · 누름 됨 · DB · storage 되돌림 · 남은 것: 저장마다 약 80 MB 계단 =
- 498-3 저장 모양(D1) · 토스트 — 496-1 뒤 ·
design_save.ts(헛 다시 읽기 :227 걷음 포함) ·RouteEdit_Apply.ts:146-157요약 토스트 지움(「새 교차 관」 한 줄 · 따라감 실패 · 저장 실패만 남김) · 확인: 손 고침 [저장] · 저장 중 [저장] · 저장 중 고침 + [>] · 고친 것 없는 [>] 화면.- 검증완료 — 새 시험 test_298_3_save_shape 8 · 둘레 272 통과(test_b06_draft_pipe_replay 1 = 고치기 전부터 · 안 건드린 Section_Store 글) · TS 0 · 머리 없는 Edge 5179 검증_sub4: 손 고침 [저장] 잠금 0 · 5.5 s 뒤 「저장했습니다」 · 저장 중 [저장] = 막힘 알림 · 서버 저장 1 번 · 저장 중 횡단 고침 + B06 [>] = 잠금 → 앞 저장 끝 → 확정 저장 → B07 · 단계 CCCCINN · 다시 읽은 값 = 마지막 화면 값(0.70) · 고친 것 없는 [>] = 저장 요청 0 · 2.3 s 에 B07 · 교점 끈 [저장] = 잠금 18 s · 다시 섬 · 알림 「저장했습니다」 한 장(새 교차 관 0) · 밝음 · 어두움 토스트 · DB · storage 되돌림 · 정함(브레인 A): 고친 것 없음 + 단계 2 · 3 COMPLETE 일 때만 바로 이동 · 남김: 상단측 손 고침 알림(
RouteEdit_Apply.tsrouteCarryPart) 그대로 · 검증 대기
- 검증완료 — 새 시험 test_298_3_save_shape 8 · 둘레 272 통과(test_b06_draft_pipe_replay 1 = 고치기 전부터 · 안 건드린 Section_Store 글) · TS 0 · 머리 없는 Edge 5179 검증_sub4: 손 고침 [저장] 잠금 0 · 5.5 s 뒤 「저장했습니다」 · 저장 중 [저장] = 막힘 알림 · 서버 저장 1 번 · 저장 중 횡단 고침 + B06 [>] = 잠금 → 앞 저장 끝 → 확정 저장 → B07 · 단계 CCCCINN · 다시 읽은 값 = 마지막 화면 값(0.70) · 고친 것 없는 [>] = 저장 요청 0 · 2.3 s 에 B07 · 교점 끈 [저장] = 잠금 18 s · 다시 섬 · 알림 「저장했습니다」 한 장(새 교차 관 0) · 밝음 · 어두움 토스트 · DB · storage 되돌림 · 정함(브레인 A): 고친 것 없음 + 단계 2 · 3 COMPLETE 일 때만 바로 이동 · 남김: 상단측 손 고침 알림(
499. 좌측 패널 하이라이트 = 닫혀 있으면 안 엶 · B06 평면 창 자리 (요구 298-4 · 298-6 · sub5 496-1 뒤 · Opus high)
- 정함(브레인): 근거
docs/raw/조사/2026-10-20_요구298_E_패널하이라이트_B06오버레이.md· 패널 여는 곳 = 한 곳(design_shared.ts:316onReveal →design_page.ts:153revealLeft) · 열네 길 모두 지남 · 쌓임은 이미 평면(4) 위 종단(3) · 실제 = 자리 다툼(평면 높이 기준이 가운데 위 칸 · 손잡이 겹침). - 사용자 확정(요구 300): E2 = 손잡이 그대로(덮이면 사용자가 창 조절) · E3 = 패널 열림 여부와 상관없이 카드 펼침 + 하이라이트 · 닫힌 패널은 안 엶 · 열면 바로 보임 · E1(요구 302 · 304) = 구조물 조합은 연결만 · 예외 없이 패널 안 엶 · 토스트 없음 · 우클릭 [추가] 때 빈 필수 칸 = 기본값 넣고 바로 추가(
B05_Profile_UI_Structures_Panel.ts:641-665). - 499-1 — onReveal · revealLeft 지움 · 열 때 고른 줄로 한 번 스크롤(
ui_template_workflow_layout열림 알림 +design_page) ·design_page.css횡단 보기 가운데 칸position: static한 줄 · z 199 미만 유지 · 확인:test_398_1뒤집음 ·test_116·test_409+ 화면(닫힌 패널 = 안 열림 · 열면 고른 줄 · 종단 판 90 % · 평면 열기 = 넘침 0 · 손잡이 둘 누름).- 검증완료 — 시험 42 통과(398_1 뒤집음 · 116 · 126 포장 바로 · 409) · TS 0 · 검증_sub5(Playwright 진짜 누름 · ORCA 탭 누름 안 닿음) 닫힌 패널 = B05 · B06 종단 알약 · B06 경고 칩 · 우클릭 [추가](옹벽 · 콘크리트 포장) 모두 패널 닫힘 유지 · 카드 펼침 · 목록 강조 · 토스트 · 확인창 0 · 우클릭 = 바로 추가(마커 1 → 2) · 열면 고른 줄 화면 안 · B06 종단 판 최대(75 %) + 평면 열기 = 기준 main · 넘침 0 px · z 4 · 밝음 · 어두움 · 평면이 종단 손잡이 덮음(E2 그대로)
500. B05 곡선 누름 = 측점 고름 유지 · 임시 횡단 잡는 띠 · 창 단추 (요구 299 · sub7 · Opus high)
- 정함(브레인): 근거
docs/raw/조사/2026-10-20_요구299_G_고름유지_임시횡단.md· 원인 = 평면 누름이 곡선 판정 앞에서 늘marks.deselect()(B05_Profile_UI_RouteEdit_Pointer.ts:246) · 오른쪽 판은 따로watching을 쥐어 어긋남(B05_Profile_UI_RouteEdit_Cross.ts:355) · 표시 · 누름 = 한 함수 한 값(logic/B05_Profile_Profile_CrossPick.ts:10GROUND_SLACK_PX = 8) · 임시 횡단 창 = 자체 겹침 창(B05_Profile_UI_Profile_CrossModal.ts:144-155). - 사용자 확정(요구 299 · 300): 고름 풀림이면 오른쪽 횡단도도 비움 · 띠 ±12 px · 임시 횡단 창 끌어 옮김(끝 측점 가림 = 사용자가 치움).
- 사용자 확정(요구 304): 측점 세로선 자리에서 임시 횡단 띠가 다른 곳보다 좁음 → 계획선 띠 ±12 px 안에서는 측점선보다 임시 횡단이 먼저(측점선은 띠 밖 길이에서 그대로 · ▲▼ 단추 몫 그대로).
- 500-2 측점선 자리 띠(sub7 · Sonnet high) —
B05_Profile_UI_Profile_Render.ts누름 · 스침 차례 ·logic/B05_Profile_Profile_CrossPick.ts· 확인:test_490_1·test_500_1+ 화면(측점선 위 계획선 ±12 px = 표시 · 누름 = 임시 횡단 · 띠 밖 측점선 누름 = 측점 고름 · 팝아웃 같음).- 검증완료 — 시험 10 통과(490_1 측점선 띠 안 10·10 · 띠 밖 null · 500_1 · 368_3) · TS 0 · 검증_sub7 측점선 20 m 위 원지반선 ±12 px = 24 px 구간 표시 · 누름 = 임시 횡단 0+19 · 측점 고름 안 함 · 띠 밖 530 누름 = 측점 20 고름 · ▲ 단추 위 표시 없음 · 밝음 · 어두움 점·선 색 · 팝아웃 = 같은 renderProfile 조각
- 500-1 — 교각점 · 손잡이 · 호 누름 = 고름 유지 · 빈 곳 · Esc 풀림 = 오른쪽 판도 비움 · 띠 8 → 12 px · [측점 추가] · [삭제] · [닫기] = 제목 줄 오른쪽(
margin-left:auto) · 창 제목 줄 끌어 옮김 · 확인:test_490_1_cross_pick고쳐 씀 + 화면(구조물 횡단선 → R = 파란 법선 · 종단 세로선 · 오른쪽 판 셋 남음 · 빈 곳 = 셋 다 풀림 · 띠 ±12 px · 팝아웃 종단 같음 · 밝음 · 어두움).- 검증완료 — 시험 48 통과(500_1 새 · 490_1 · 409 · 411_a 뒤집음 · 399 · 368_3 · 440 · 494_1) · TS 0 · 검증_sub7 17+11 배관 마커 고름 → 교각점 · 손잡이 · 호 = 고름 351 · 종단 강조 1 · 오른쪽 판 17+11 유지 · 빈 곳 · Esc = 고름 없음 · 강조 0 · 빈 판 · 띠 24 px 줄(옛 16) · 측점선 · ▲ = 표시 없음 · 창 단추 제목 줄 오른쪽 끝 같음 · 끌기 = 종단 칸 끝에 가둠 · 높이 285 그대로 · 밝음 · 어두움 · 팝아웃 = 같은 함수(화면 미확인).
501. 보안 대 속도 — 계산 자리 고름 (요구 298-5 · 브레인 · 결정 뒤)
- 정함(브레인): 근거
docs/raw/조사/2026-10-20_요구298_F_보안_속도.md· 지금 = TS 한 벌을 브라우저(즉시) · 서버(정본) 두 곳 · 등록부 45 = 브라우저 즉시 34 · 서버 정본 1 · 서버만 4 · 브라우저만 6 · [저장] 때 서버 다시 셈 = 위조 대부분 막힘 · 빈틈 = S1 임시 배포가 vite 개발 서버(원본 · 파일이 로그인 없이 나갈 수 있음 · 추정) · S2 로그인만으로 M01 로직 · 일위대가 · 호표 읽음 · S3 단가 계산 오라클 · S4 표제란 길 회사 검사 없음 · 추천 갈래 d(B05 · B06 기하 그대로 · B08 · B09 · M02 계산 서버 단독 · 운영 묶음 배포 · 마스터 권한 조임 · 인쇄물 서버 정본). - 보류(요구 300): F 그룹 전부 · 오늘 저녁이나 내일 다시 대화.
- 501-0 S1 실측 — 브레인 확인을 권한 장치가 막음 → 사용자 허락 뒤. → 완료 처리(요구 332 · 지금 유지 · 사용자가 시험하며 요청).
- 501-1 결정 F1~F9 뒤 계획 · 측정(조작 아홉 × 실행 자리 셋 × 회선 셋 · 목표 0.1 / 0.3 / 1 s). → 완료 처리(요구 332 · 지금 유지 · 사용자가 시험하며 요청).
- 501-2 분석 H(요구 304 · 브레인 에이전트 · 코드 고침 없음) — 시간 먼저 잼 → 보안 같이 · 계산마다 실행 자리 스위치(등록부 한 곳) 설계 · 「[저장] 정본 한 곳」 규칙 · 계획고 덮어쓰기(498-2) 길 · 보고
docs/raw/조사/2026-10-20_요구304_H_계산자리_시간_보안.md.- 검증완료 — 보고 커밋 · 문서 「보안 · 편의성 계산 자리 분석」(https://claude.ai/code/artifact/d453e6d5-1f10-4e37-9e40-ead63b4f4cee) 4 · 6절 채움 · 결정 F1
F9 · H1H3 = 사용자 (검증 대기).
- 검증완료 — 보고 커밋 · 문서 「보안 · 편의성 계산 자리 분석」(https://claude.ai/code/artifact/d453e6d5-1f10-4e37-9e40-ead63b4f4cee) 4 · 6절 채움 · 결정 F1
502. 요구 309 — 로그인 느림 · 연산 자리 체크박스 · 다음 장 후보 (브레인 · 조사 뒤 일감)
- 정함(브레인): 조사 = 클로드 에이전트 다섯(보고
docs/raw/조사/2026-10-21_요구309_A · B · C1 · C2 · C3_*.md) · 코드 고침 없음 · 일감은 보고 뒤 503~. - 502-1 로그인 느림 원인 — 보고 A · 확인: 단계별 시간 수치. · 조사 끝(보고 커밋 · 일감 503~507)
- 502-2 연산 자리 체크박스(시스템 관리자 대시보드) 검토 — 보고 B · 501 결정(F · H)과 같이 사용자 결정. · 조사 끝(보고 커밋 · 일감 503~507)
- 502-3 다음 장 후보 조사 — C1 B05 · B06 · C2 B07
B09 · CAD · C3 서버 · 시험 · 기반 → 남은 것만 503일감. · 조사 끝(보고 커밋 · 일감 503~507)
503. 로그인 느림 (요구 309-1 · 분석 A · 착수 = 사용자 지시 뒤)
- 정함(브레인): 근거
docs/raw/조사/2026-10-21_요구309_A_로그인느림.md· 차례 = 되튕김 → 로그인 DB 쓰기 묶음 · bcrypt 스레드 → 빌드본 배포(결정 뒤). - 사용자 확정(요구 310): NAS 일시 문제로 봄 · 흠(503-1 · 503-2)만 고침 · 503-3 결정 보류.
- 503-1 되튕김 — 「로그인 안 됨」 5 s 기억을 로그인 성공이 비움 · 확인: 화면 뜬 뒤 0.5 · 2 s 누름 = 대시보드.
- 검증완료(sub1 ·
0b8c34a2c): Playwright 0.5 · 2 · 6 s 누름 = 모두 대시보드(고치기 전 0.5 · 2 s 되튕김) · test_309_1_login 7 통과 · 검증 대기
- 검증완료(sub1 ·
- 503-2 로그인 서버 시간 — DB 쓰기 다섯 → 한 번 · bcrypt 스레드로(서버 안 멈춤) · 확인: 요청 시간 전후(약 1.0 s → 0.5 s 추정).
- 검증완료(sub1 ·
0b8c34a2c): 8001 httpx 10 번 중앙 1.25 s → 0.67 s · 동시 5 명 한 사람 2.02.8 s → 0.61.2 s · 틀린 비번 = 잠금 423 · login_logs 그대로 · 검증 대기
- 검증완료(sub1 ·
- 503-4 잠금 횟수 흠(503-2 때 찾음 · 브레인 판정 고침) — record_failed_login 이 UPDATE 왼→오 대입으로 4 번째 틀림에 잠김 · 경고 메일(5 번) 안 나감 → 5 번 틀림 뒤 잠금 + 메일 · 덧 = 쿠키 재로그인 신뢰 기기 UPDATE 같은 트랜잭션 · 확인: 4 번 = 안 잠김 · 5 번 = 잠김 + 메일 길.
- 검증완료(sub1): 잠금 = 별도 UPDATE(failures >= 5) · has_trusted_device 읽기만(last_used_at 은 마무리 트랜잭션 _trust_device 가 갱신) · test_309_1_login 12 통과 · 8001 일반 계정 1~4 번 401 안 잠김 · 5 번 401 잠김 + 경고 메일 발송 · 6 번 423 · users 행 되돌림 · 쿠키 재로그인 중앙 0.68 s → 0.49 s · Edge 화면 로그인 3 번 대시보드 · typecheck 0 · 검증 대기
- 503-3 결정(사용자) — 임시 배포 빌드본 · NAS DB 커밋 설정 · 배포 DB 분리 · bcrypt 비용. → 요구 311 = 배포도 지금 NAS DB 그대로(분리 · 설정 바꿈 없음) · 빌드본 · bcrypt 지금대로.
504. 연산 자리 체크박스 (요구 309-2 · 분석 B · 결정 뒤)
- 정함(브레인): 근거
docs/raw/조사/2026-10-21_요구309_B_연산자리_체크박스.md· 화면 체크 = 시간 재기 · 비교 · 편의(보안 이득 없음) · 보안 = 501(F · H)과 같이 · [저장] · [확정] 서버 정본 그대로. - 사용자 확정(요구 310): 스위치 구현 · 기본값 = 지금 등록부 자리 그대로(넣어도 바뀌는 것 0) · 바꿈은 사용자가 체크로 · 나머지 = 추천(묶음 8 · 전체 · git 설정 파일 · 다음 열기부터 · 시스템 설정 카드 · 시스템 로그 · 1단계 먼저).
- 504-1 결정 아홉(사용자 · 괄호 = 추천) — 목적(시간 · 비교 · 편의) · 단위(묶음 8) · 범위(전체) · 설정 자리(git 파일) · 열린 페이지(다음부터) · 지침 5장(시험용 예외) · 화면(시스템 설정 카드) · 기록(시스템 로그) · 차례(1단계 먼저). → 요구 310 = 추천대로.
- 504-2 1단계 최소 판 — 설정 파일 · 시스템 관리자 창구 · 체크 창 · 지금 바꿀 수 있는 둘(지반 높이 · 3D 길) · 504-1 뒤.
- 검증완료(
282b481f8· sub2) — 시험 test_309_2 · 카드 · 바로가기 21 통과 · typecheck 0 · 5177 화면 = 시스템 관리자만 카드 · ADMIN · USER 403 · G1 끔 → B05 지반 서버 요청 0 → 4 · 판 기본값으로 되돌림 · 밝음 · 어두움 창 확인.
- 검증완료(
- 504-3 계산 자리 창 45줄(요구 312) — 묶음 8 머리 아래 계산 45개 한 줄씩 · 잠긴 줄 까닭 글 · 판 꼴 그대로 · sub2(507-4 뒤) · 확인: 창 45줄 · G1 · D3 만 켜짐.
- 검증완료 — 5177 Playwright: 머리 8 + 계산 45 줄 · 이름 = 등록부 label · 켤 수 있는 줄 G1 · D3 만 · 머리 체크 끄면 줄도 꺼짐 · 서버 정본 칸 늘 잠금 · 밝음 · 어두움 한 장씩(tmp/shots_504_2) · 판 기본값 그대로 · test_309_2 두 파일 10 통과 두 번 · typecheck 0.
505. 다음 장 — B05 · B06 작은 흠 (분석 C1 · 결정 없음 또는 정함)
- 정함(브레인 · 바꿀 수 있음): 근거
docs/raw/조사/2026-10-21_요구309_C1_다음장_B05B06.md· 저장 중 [초기화] = 막음(D1 [저장]과 같게) + 서버 초기화 프로젝트 잠금 · 「계산 중」 누름도 카드 폄(E3) · 되살린 고름 · 🏠 · 뒤로 · 지형 · 스냅만 바뀐 [저장] = 지금대로 · 모델 없는 sheet = 고르기 숨김 + 409 사유 · 임시 횡단 창 = B06 카드 그림 · 빈칸 칩 = 그래프 오른쪽 위. - 사용자 확정(요구 310): 추천 노선 계산 = 파일 입력 직후 전처리에서만 · 프로젝트 접근(B05 열기 · 노선 [저장] · [적용] 뒤 다시 세움) = 영구 저장본 읽기만 · 정함(브레인) = 저장본 없으면 계산 안 함 · 「전처리 다시」 안내 · 나머지 = 브레인 제안대로.
- 정함(브레인 · 505-1 물음): 추천 모달 기본 다섯 + 저장 제약 다섯 = 저장본만(없으면 409 안내) · 사용자가 제약 · 비중 바꾼 요청 · [재계산] = 그 자리 셈 · 체인 쪽 미리 셈(업로드 · B04 재확정 · B01 사용 범위 · 스냅샷 없는 [초기화]) 둠.
- 정함(브레인 · 505-1 보고 물음): 프로젝트 접근 = 저장본이 있으면 엔진 코드 판(지문)이 달라도 그대로 읽음 · 지문 견줌은 전처리 체인에서만(엔진 고칠 때마다 「전처리 다시」 안내가 쏟아지지 않게) · 505-1 덧 = sub3 · 5d 도 sub3(Replan.py 같은 파일).
- 505-1 추천 노선 = 전처리에서만 — 페이지 GET · 노선 [저장] · [적용] 뒤 미리 셈 걷음(읽기만) · _prepare · followed_pipes 스레드(C1 2c · 5c) · 확인: B05 열기 · 노선 [저장] 뒤 미리 셈 0 · 전처리 체인에서만 생김 · [적용] 첫 요청 안 끊김. 검증완료 — test_309_3 아홉 · 추천 · 노선 · 493 · 494 둘레 261 통과(건너뜀 14) · typecheck 0 · 8005 검증_sub3(되돌림): B05 열기 · [적용] 뒤 「추천 미리 셈」 로그 0 · 저장본 없는 알약 0.5 s 「전처리를 다시 하면 생깁니다」 · 체인 한 줄(run_precompute) 60 s 뒤 같은 알약 0.6 s 저장본 · [적용] replan 200 · 화면 분석 지형이 설계 지형과 같으면 기본 갈래로 봄 · 초기 종단 지문 노선 파일 걷음. 검증 대기.
- 505-1 덧 접근 = 지문 달라도 읽음 — 추천 저장본: 같은 판 · 같은 입력이면 그 파일 지문으로 키 다시 내 찾음(
read_stored_any) · 초기 종단: 코드 지문 빼고 입력만 견줌(파일에 지문 칸 · 옛 파일은 그대로 읽음) · 체인 · 사용자 셈은 그대로. 검증완료 — test_309_3 열하나 · 둘레 20 파일 통과 · typecheck 0 · 8005 검증_sub3(지금 코드 지문 d270 ≠ 저장본 c878 · 되돌림 · 바뀐 것 0): B05 열기 · 추천 다섯 알약 모두 「저장된 결과」 0.2~0.5 s · 안내 0 · 초기 종단 오류 0. 검증 대기.
- 505-1 덧 접근 = 지문 달라도 읽음 — 추천 저장본: 같은 판 · 같은 입력이면 그 파일 지문으로 키 다시 내 찾음(
- 505-2 저장 · 고름 — 저장 중 [초기화] · 확정 중 키 고침 틈 · 계산 중 누름 카드 · B06 목록 0+0 · --plus 선 · snapOptions 0.1 · extraCountSource · sheet 숨김(C1 1 · 2b · 3 · 4d · 5d · 7 · 8 · 9 · 5d = sub3 몫). 검증완료 — test_505_2 여덟 + 둘레(346_4 · 398_1 · 298_3 · 493 · 368_3 · 490_1 · 390_5 · 431 · 224_2) 137 통과 · typecheck 0 · 5174 검증_sub1(DB · storage 되돌림 · 같음 확인): 확정 가림막 중 ↑ = 키 안 막음 · 「저장 중 고친 값은 아직 저장 안 됨」 알림 + 떠남 물음(고침 남음) · 저장 중 [초기화] = 「이전 수정을 저장 중」 알림 · 확인 창 0 · 끝난 뒤 = 확인 창 · B05 20+0 고름 → B06 목록 scrollTop 3296(고침 빼면 0 = 0+0) · 「계산 중」 점 켠 채 목록 누름 = 구조물 배치 폄 · 고른 추가 측점 선 위쪽 누름 = 임시 횡단(삭제 단추) · 밝음 · 어두움 한 장씩. 검증 대기.
- 5d sheet 숨김 — 고르기 목록이 DB 완료 모델도 봄(없으면 숨김) · 바꿈 모델 없음 = 409 사유 한 줄 · 노선 되돌림. 검증완료 — test_505_2_terrain_sheet 셋 · 133_1 맞춤 · 8005 검증_sub3(모델 641 잠시 FAILED · 되돌림): 목록 [las, sheet] → [las] · replan(sheet) 409 「고른 분석 지형의 지표면 모델이 없습니다 — 전처리에서 만든 뒤 다시 하세요.」 · storage · DB 행 바뀐 것 0. 검증 대기.
- 505-3 그림 · 글 — 임시 횡단 창 B06 카드 + 빈칸 칩 · 곡선 판 가림 · 누름 틈 · WF_State_Stale 글 · ui-button(C1 4b · 4c · 10 · 11 · C2 5-2). 검증완료 — 시험 test_505_3 둘(글 7 · 화면 3) + 둘레 9 파일 46 통과 · typecheck 0 · 5179 검증_sub4 19+8: 측점선 · 지반선 겹친 자리 누름 = 측점선이 받음 → 창 B06 카드 + 「⚠ 배관 관경 빈칸」 · 「횡단」 판도 칩 · 관경 800(세션만) → 관 · 집수정 형상 · Ctrl+휠 1.15 배 창 칸 안 · 곡선 판 위 58 = 도구줄 + 8 · 판 열면 오른쪽 = 판 왼쪽 − 8 · 밝음 · 어두움 한 장씩. 남음(밖) — 구조물 고른 채 새로 고침 = 평면 편집기 안 뜸(
B05_Profile_UI_RouteEdit.tsclosed선언 전 씀 · 전부터). 검증 대기. - 505-4 B05 작은 흠 둘(505-3 때 찾음) — 구조물 고른 채 새로 고침 = 평면 편집기 안 뜸(
B05_Profile_UI_RouteEdit.ts횡단 뜸 콜백이 만드는 도중 불려closed·view선언 전 씀 → 한 박자 뒤에 그림) · 빈 관경이 1000 으로 보임 → 빈 선택지(design_structure_form.ts관경 칸만 빈 보기 · 안 채움 · 새 관은 기본 1000 그대로). 검증완료 — 시험 test_505_4 셋(글 2 · 화면 1) + 둘레 16 파일 103 통과 · typecheck 0 · 5179 검증_sub4: 19+8 고른 채 새로 고침 = 「before initialization」 0 · 캔버스 그려짐 · 관경 칸 값 빈칸 · 첫 보기 빈 값 · 열기만 해서 구조물 목록 응답 그대로 · 새 배관 관경 1000. 남음(밖) — test_505_3 화면 첫 시험(곡선 판 · 꺾임점 픽셀 1199,296)이 내 고침 없이도 빨강(보이는 지도 자리 달라짐 · 505-3 때는 통과). 검증 대기.
506. 다음 장 — B07 · CAD · 시험 · 서버 기반 (분석 C2 · C3 · 결정 없음 또는 정함)
- 정함(브레인 · 바꿀 수 있음): 근거
docs/raw/조사/2026-10-21_요구309_C2_다음장_B07B09_CAD.md·docs/raw/조사/2026-10-21_요구309_C3_다음장_서버시험기반.md· 프로젝트 도각 = [초기화] 밖(확인 창 글로 안내) · B09 [인쇄 미리보기] = 저장 뒤 이동 · M02 카드 DWG = 도움말 한 줄 · 축척 주소 그대로 · live 시험 = 켤 때만 도는 표식. - 506-1 서버 다시 읽기 — uvicorn 제외 목록 절대 경로(
main.py) · 확인: 시험 · tmp .py 바꿔도 Reloading 없음 · 메인 서버는 쉬는 때 다시 켬.- 검증완료 —
reload_excludes(절대 경로 17) · test_506_1 3 통과 · 8001 실측: tmp · resources/tester .py Reloading 없음 · 모듈 폴더 .py Reloading 있음 · 로그인 · 대시보드 200. 메인 서버는 쉬는 때 다시 켬.
- 검증완료 —
- 506-2 시험 정비 — 빨강 둘(test_b06_draft_pipe_replay · test_269_panel_form) · vitest 실행 설정(dxf-clip 등) · test_472_6 live 표식(C3 1-1~1-4 · C2 6-d · 6-i). 검증완료 — pytest 4 파일 17 통과 · 9 건너뜀(live 는
AISLO_LIVE_DB=1일 때만) · openwebcad vitest 23 파일 265 통과(node 꼴 넷 + ctrl-shortcut-sheet 는 제외 · 각자 node/ui 설정으로 통과) · typecheck 0. 검증 대기. - 506-3 B07 · CAD — 저장 길(30 s 끊김 화면 · 자동백업 열쇠 프로젝트 · 옛 단계 규칙 · 개발 잠금풀기) · 죽은 길 · CAD 되돌리기 · LAYMRG · B09 [인쇄 미리보기] · M02 도움말(C2 가 · 나 · 다 · 4-1 · 6-e). 검증완료 — pytest 506-3 둘 16 · 둘레 B07 · B09 · M02 247 통과 · vitest undo-506-3 · selection-style · state 17 통과(옛 LAYMRG 는 빨강) · typecheck 0 · CAD 빌드 · 5177 화면(검증_sub2 · 되돌림): 색 다섯 번 끌기 → 되돌리기 한 번 = 처음 색 · 자동백업 열쇠
b07:{프로젝트}:cover· 미리받기 13 장째 [저장] = 「저장했습니다」 · 저장 중 새 GET 0 · [초기화] 물음 = 도각 안내 · B09 [인쇄 미리보기] = PUT 뒤 #/b09-print · complete 없음 · 7-3 실DB 표식 남김(되돌린 트랜잭션). 검증 대기. - 506-4 main.py 나눔 — 807 → 약 530(개발 전용 두 덩이 · C3-3).
- 검증완료 — main.py 807 → 541 ·
config/config_dev_server.py신설(동작 그대로) · test_73_16 · 302_1 · 298_2 통과.
- 검증완료 — main.py 807 → 541 ·
507. 다음 장 — 사용자 결정 뒤 큰 일 (분석 C1 · C2 · C3)
- 사용자 확정(요구 311): ① 노출형 횡단수로 · 개거 = 횡단면에 표시(마킹)만 · 형상 없음 ② 자동 세류선 관 = 로직 안 라벨(옮겨도 남음) · 노선 바꾼 [저장]에 복수 생성 없음 · 사용자가 지운 것은 다시 안 생김 ③ B05 MC = 사용자가 고칠 자리 → (MC) 붙임 · 글자 크게 · 굵게 · 색 · B07~B09 에도 (MC) ④ 개발 돕는 검증 스크립트 = 브레인 재량.
- 507-1 노출형 횡단수로 · 개거 = 횡단면 표시만(형상 없음) — 지금 측점 · 표시가 없으면 세움 · M02 표(사용자 마스터)는 안 고침 · 확인: 그 측점 횡단 카드에 이름 표시 · 형상 0 · sub4.
- 검증완료 — 부품 상자 형상 「표시만」(mark) 더함 · 두 종류 처음값 = 측점 세움 + 표시만 · B05 「횡단」 판 · 임시 횡단 창에 이름 칩 · 시험 129 통과(505-3 test_0 곡선 판 픽셀 누름만 실패 · 무관) · 화면 7+7 노출형 = 판 · 창 · B06 카드 이름 · 형상 0 · 세션 지움(저장 안 함).
- 507-2 자동 세류선 관 라벨 — 자동 관에 세류선 라벨(옮기고 고쳐도 남음) · 노선 바꾼 [저장] 때 라벨 짝이 있으면 안 더함 · 지운 자동 관 = 다시 안 생김(지움 표지) · [적용] · [초기화] = 초기값 · 확인: 앞 측점 노선 바꿈 [저장] 두 번 = 관 수 그대로 · sub3.
- 검증완료 — test_507_2 11 통과 · 둘레(493 · 494_2 · 449 · 283 · 346_3 · 312 · 428 · 476 · 347 · 459) 통과 · typecheck 0 · Playwright 검증_sub3: 교점 끌기 [저장] 세 번 관 2→2→2→2(새 관 0 · 옛 관 라벨 붙음) · 관 지우고 [저장] → 노선 바꿈 [저장] 관 0 그대로(교차 9.3 m 옮음 · 옛 규칙이면 더함) · 되돌림 같음.
- 507-3 MC 강조 — B05 · B06 MC 측점 글 = (MC) · 크게 · 굵게 · 색(밝음 · 어두움) · B07 CAD · B08 수량표 · B09 출력에 (MC) · 확인: 화면 · 도면 · 표 글 · sub1.
- 검증완료 — 경고색 토큰 · 평면 눈금 굵은 13px · 종단 12px 굵게 · 횡단 판 14px · B06 카드 16px(밝음 #b8860b · 어두움 #e0b64a) · B07 종단 표 · 횡단 제목 「No.29+19.0 (MC)」 · B08 토적표 · B09 인쇄 토적표 MC 4 곳 · 갈아끼움 이름 「STA… (MC)」 · 시험 test_507_3 6 + 둘레 260 통과 · typecheck 0 · 검증_sub1 storage · DB 그대로. 검증 대기.
- 덧 검증완료 — B07 계획평면도(노선배치도 · 지형) MC 4 곳 글 「NO.29+19.0 (MC)」 = 5 배수 아니어도 큰 글(4.5) + 원 · B05 종단 아래 표 측점 행 MC 4 칸 「29+19 (MC)」 굵게 · 경고색(밝음 #b8860b · 어두움 #e0b64a · 이웃 1 m 칸은 세운 6px 글 · 고른 측점 값 열 14px 굵게) · B07 횡단 장 단추 「3장 (No.29+19.0 (MC))」 한 줄 전체 · 시험 test_507_3 10 + 둘레 73 통과 · typecheck 0 · 검증_sub1 읽기만(저장 0). 검증 대기.
- 507-4 검증 스크립트 정비(브레인 재량) — 실제 마스터 파일을 쓰는 시험 = 임시 사본으로 · 화면 시험 실패해도 되돌림 · 픽셀 자리 의존 걷음 · 검증_sub7 시험 자리 · 시험 헬퍼 공용 불러오기 첫 걸음 · sub2.
- 검증완료 — 계산 자리 판 시험(단위 = 이미 임시 사본 · 화면 = 5177 이 8004 로 갈 때만 돌고 실패해도 판 되돌림) · 505-3 첫 시험 = 캔버스 교각점 색으로 찾음 · 검증_sub7 12 파일 =
helper_verify_project로 지금 있는 검증_subN · 공용 불러오기helper_ts_stub_loader본보기 3 헬퍼 + 새 시험 · 두 번 같은 결과(44 통과 · 4 건너뜀 · xfail 9~11 = 프로젝트와 무관한 낡은 기대 — 브레인 가림 전).
- 검증완료 — 계산 자리 판 시험(단위 = 이미 임시 사본 · 화면 = 5177 이 8004 로 갈 때만 돌고 실패해도 판 되돌림) · 505-3 첫 시험 = 캔버스 교각점 색으로 찾음 · 검증_sub7 12 파일 =
508. 다음 장 후보 (요구 309~313 장에서 창이 찾은 것 · 장 끝에 한 번에)
- 사용자 확정(요구 314): 시험 16(349 계열 11 · 233_4 다섯) 가림 · 도우미 정리 진행 · B07 횡단이 도각 · 칸 밖으로 나가는 것 = 사용자가 조절(코드 안 고침) · 계산 자리 창 목적 = 앞 · 뒤 한 벌 동작 · 시험하며 편의로 고름.
- 508-1 시험 — 508-1a 16 시험 가림(낡은 기대면 고침 · 제품 흠이면 보고) + 309-2 화면 시험 로그 행 = sub2 · 508-1b 옛 헬퍼 195 공용 로더 옮김(16 시험 헬퍼 빼고) = sub5. → 508-1a · 1b · 1c · 1d 끝(199 파일 1480 통과 · 빨강 0).
- 508-1a 시험 가림(sub2) — 233_4 다섯 = 낡음(500-2 누름 잡는 단계 · 짝 본문 찾기 고침) · 349 계열: 0d 둘 = 낡음(410 좌표 낡음 판정 · 가짜 구조물 정수 측점) · 0l · 0s · 0q · 0o 되돌리기 = 시험 기다림 모자람(472-5 덧 그리기 멈춤 ·
pipelineHolding기다림) · pipeline_once = 낡음(77be773c0상세 가게 칸 채움) · 0u = 프로젝트 바뀜(저장 반지름 초안 · 끈 꼭짓점 기준) · xpass 둘 걷음 · 309-2 화면 = 표식 브라우저 문자열 로그 행 지움 · 포트 = OWNERS.md 이 폴더 줄(다른 폴더 사본이 8004 판을 고치던 흠). 남은 xfail 둘 = 제품 흠(0o 노선 끌기 · 횡단 보기 진입에 cross 군더더기 차례 ·a02367e61) → 물음. 검증완료 — 고친 시험 두 번 같음(34 통과 · xfail 2 · 309-2 셋 통과 · 시험 로그 행 0 · 마스터 판 그대로). 검증 대기. - 508-1c cross 군더더기 · 시험 포트(sub2) — 맞춤(reconcile) cross 견줌 = 지금 측점 자리로 가른 뒤(
crossAtSeat·design_pipeline_cross.tsstaleInputs· page 699 → 697 줄) · 끌기 · 횡단 보기 진입 cross 셈 2 → 0 · 값 그대로 · 버림 쪽 따로 고침 없음(묶음 cross 입력이 초안 전 값 그대로 남음) · 0o xfail 둘 걷음 · 포트 박은 브라우저 시험 아홉 + 309-2 = 공용own_ports(OWNERS.md 이 폴더 줄) · 349_0j 넓힌 표본 수 = 낡은 기대(못 넓힌 미교차도 표본 실음 · 서버와 같음) 고침. 남은 빨강: test_app_settings CAD 명령 수 153 → 154(포트 무관 · 낡은 기대 추정). 검증완료 — 349 · 298_3 · 346_4 · 472_5 계열 두 번 같음(148 통과 · 0j 고친 뒤 10 통과 두 번) · 고친 화면 시험 5177 로 돎(16 통과) · typecheck 0. 검증 대기. - 508-1d 남은 빨강 가림 · 못 옮긴 헬퍼(sub5) — 빨강 26 = 모두 낡은 가짜 모듈(헬퍼 넷) · 제품 흠 0: 54_9 = 구조물 표 불러오기(322-1) 못 찾음 · 398_2 · 408 = 곡선 판 가둠(505-3)
ResizeObserver· 판 찾기 가짜 더함 · 323_9 = 라우터 draft 길import.meta.glob(302-1) 가짜 + 기대 낡음(498-3 D1 노선 그대로 [저장] = 가림막 없음) → 넷 다 공용 불러오기로 · test_app_settings CAD 명령 153 → 154(488-3 IMPORT) · 모양 다른 일곱(280_2 · 298_3 · 322_0 · 345_4 · 347 · 427_1 · 459)도 옮김(공용 옵션 둘 더함target·rewrite) · 제품 코드 안 고침. 검증완료 — 시험 199 파일 전 1450 통과 · 13 건너뜀 · 26 빨강 → 후 1480 · 13 · 0(두 번 같음 · 어긋남 = 빨강 26 → 통과만) · 일곱 헬퍼 출력 전 · 후 같음 ·npm run typecheck0. 검증 대기.
- 508-1a 시험 가림(sub2) — 233_4 다섯 = 낡음(500-2 누름 잡는 단계 · 짝 본문 찾기 고침) · 349 계열: 0d 둘 = 낡음(410 좌표 낡음 판정 · 가짜 구조물 정수 측점) · 0l · 0s · 0q · 0o 되돌리기 = 시험 기다림 모자람(472-5 덧 그리기 멈춤 ·
- 508-1b 옛 헬퍼 공용 불러오기 옮김(sub5) — 헬퍼 172 곳이
loadTs베낌을 걷고makeLoader호출로(7 묶음 커밋) · 공용 불러오기에 옵션 넷(requireFor풀이 함수 직접 ·interop·cache:false·fileStub) · 풀이 함수 본문은 옮겨 담음(동작 그대로) · 제품 코드 안 고침 · 검증완료: 시험 197 파일 전 1450 통과 · 13 건너뜀 · 26 빨강 → 후 1450 · 13 · 26(시험별 junit 대조 어긋남 0 · 빨강 26 은 전에도 빨강) · 공용 불러오기 쓰는 349 · 507-4 시험 9 통과 · 5 xfail 전 · 후 같음 ·npm run typecheck0. 못 옮김 목록: ① 전에도 빨강(낡은 가짜 모듈 — 옮기지 않음)helper_323_9_save_redraw(import.meta못 읽음) ·helper_398_2_curve_input·helper_408_radius_downstream(ResizeObserver가짜 없음) ·helper_54_9_etc_pill(common_util_structure_catalog.js.ts못 찾음) ② 모양이 달라 공용 옵션에 안 맞음(손으로 따로)helper_280_2_step_nav(import.meta.env.DEV글 바꿈) ·helper_298_3_page_dispose(ES2022 · 파일 키 캐시) ·helper_322_0_golden(파일 경로 가짜 맵) ·helper_345_4_corridor_worker(import.meta.url바꿈) ·helper_347_pipe_id_reconcile(호출마다 진짜 모듈 목록) ·helper_427_1_follow_seat·helper_459_route_seat(뿌리 기준 상대 경로 재귀) ③ 겹침 막음으로 뺌helper_346_2_pipeline_cross_page(349 헬퍼가 씀) · 349 계열 ·helper_233_4_empty_click(508-1a 몫). - 508-2 B05 · B06 — (B04 [자동 제안] 정리 = 510 으로) · 지움 표지 되살리기 단추 · 계산 자리 「서버」 3D 낡은 저장본 = 빈 화면 · 추천 창 [재계산]을 안내 줄에 붙이기 · 편집 중 여유 밖으로 끈 노선 등고선 즉시 다시 받기 · (자동 관 표시 · [추천 다시 셈] = 요구 315 안 함).
- 검증완료(sub4 · 요구 323 · 324 · 배정 = 남은 셋 · 지움 표지 단추는 배정 밖) — ① D3 = 서버: 낡은 저장본 = 옛 모형 세움 + 늦음 표시 · [3D 업데이트]만 서버 창구(/calc corridor.mesh · 라이브 계획선 샘플)가 지어 바꿔 끼움 · 같은 입력 다시 안 지음 · 실패 = 옛 모형 · 창 열 때 자동 안 지음 · both 그대로 ② [재계산] = 저장본 없음(409) 안내 줄 옆 · 칸 바꿈 뒤 종단 반영 옆 · 그 밖 숨김 ③ 놓은 뒤(잠잠 0.4 s) 범위 밖이면 편집 노선 bbox 로 잘린 도엽 다시 받음(서버 bbox · 열쇠 = 사본 지문 + 범위 · 여는 때도 통째 사본 안 받음 · 배수유역 범위 그대로) · 시험 test_508_2 넷 13 + 둘레(511 · 509 · 504 = 309_2 · 505_1 = 309_3 · 224_3 · 364_4 · 345_4 · 317 · 383_3 · 421) 통과 · 낡은 기대 셋(383_3 · 309_2 · 345_4) 고침 · typecheck 0 · Playwright 검증_sub4 셋 두 번 통과(옛 모형 22 조각 → 「서버에서 짓는 중…」 → 새 모형 · /calc 1 · 다시 0 / 다섯 갈래 숨김 · 수치지형도 409 안내 줄 옆 · 칸 바꿈 줄 / 끌어 놓기 → bbox 둘 0.13 + 3.8 MB · 끄는 동안 0) · 검증_sub4 등고선 = 라이다라 다시 받은 도엽은 하천중심선만 보임 · 판 · 3D 저장본 바이트 되돌림 · 파생 사본 storage/1/3/c725…/_derived/sheet_route 남김. 검증 대기.
- 508-3 B07 · CAD (요구 325) — 사용자 확정: 레이어 합치기 진행 · 미리받기 유지(무거운 것 뒤 · 조용히 · 페이지 옮겨도 유지 · 돌아오면 바뀐 도면만 · 아직 못 받은 도면 = 받는 중 알림 · 그 도면에 머물면 받은 뒤 보여 줌 · 도면마다 상태값 · 횡단은 측점마다) · 평면도 · 유역 서버 저장본(도면 크기 · 표기 영역에 맞춰 최적화).
- 508-3a LAYMRG Ctrl+Z 한 번에 도형 + 레이어 목록 — sub3. LAYDEL 도 같은 길 · Ctrl+Y 짝 · 검증 대기. 검증완료: vitest(layer-tools · state) 11 통과 · typecheck 0 · Playwright 8005/5178 CAD(/b07-cad)에서 LAYMRG · LAYDEL → Ctrl+Z → 층 목록 · 도형 층 처음대로 → Ctrl+Y 다시 합쳐짐 · 저장 안 함.
- 508-3b · c 도면 상태값(지문) · 미리받기 · 평면도 · 유역 저장본 — sub2. 서버
_Router_Support_Fingerprint.py(지문 · 목록 APIfingerprint·stations· 평면도 저장본 응답 글 그대로 · 지문 못 세면 목록 · 도면은 그대로) · 화면_Prefetch.ts(페이지 밖) · 고른 도면 받는 동안 다른 탭 · 페이지로 옮김 · 받는 중 CAD 시계 없음(beginLoading(false)) · 받는 중 CAD 고침은 고른 탭에 안 묻힘 · 평면도 등고선 · 계류 0.1 mm 솎음 + 배경 좌표 1 µm(지형 6.7 → 4.9 MB · 유역 27.7 → 23.2 MB) · 값 꼴(4.0 = 4) · 종단 경고 글은 지문에서 뺌. 옛 판 자료는 첫 B06 [저장]이 모든 측점 설계에 새 칸을 붙여 한 번은 모든 장이 다시 받아짐(실제 자료 바뀜). 남은 빨강test_cad_host_tabs머리줄 = 508-1fhost-burger.css고침 뒤 낡은 기대(이번 고침 밖). 검증완료 — test_508_3_b07_fingerprint 11 · B07 둘레 · 506-3 · cad_host 254 통과 · typecheck 0 · Playwright 검증_sub2(되돌림): 미리받기 차례 = 가벼운 것 10 → 평면도 6 · B06 첫 측점 깎기 비탈 [저장] → B07 돌아옴 = 지문 바뀐 6 장만 다시 받음(횡단 = 그 장 · 측점 0 하나 · 전개도 · 사면 담은 평면도 넷) · 평면도 지형 첫 열기 1.3 ~ 4.4 s → 저장본 0.2 ~ 0.4 s · GET 이 지운 파일 0 · 안 받은 유역도 열기 = 「받는 중」 → 4.4 s 뒤 보임 · 못 받은 장 = 「다시 받기」(밝음 · 어두움) → 누르면 받음 · 506-3 [저장] 중 새 GET 0. 검증 대기.- 계약: 지문 = sha1 앞 16자 · 파일 도장 = 8 MB 이하 내용 해시(경로 · 시각 · 크기로 기억) · 넘으면 시각:크기 · 공통 = 판 번호 · B07 엔진 코드 도장 · 도각(프로젝트 · 시스템) · 표제란 값 · B07 설정 파일(manifest 뺌 · plan_kinds) · 그 도면 manifest 칸 + 확정 저장본 도장 · 종단 = + 종단 내용 · 토적 = + 종단 + DB 유토 · 표준 횡단 = + DB 표준 설정 · 구조물 · 전개도 = + 종단 + 측점 상세 전부 + 시설 파일 · 횡단 장 = + 장(번호 · 측점 · 칸) + 측점 계획고 모음 · 측점 간격 + 측점 지문 모음(측점 = 장 입력 조각 · 종횡단 상세 그 측점 · 덧그림 범위) · 평면도 = + 종류 정의 · 장 번호 · 축척 + 노선 세계(노선 서명 · 좌표계 · 지표면 확정 값 · B03 입력 · B04 processed · models 도장 · 상세 유역 · 관 지점 · 곡선표 · 구조물 정본 · 종단 내용) + 사면 조각 고른 종류 = 그 장 측점(앞뒤 하나) 상세. 목록 API 항목마다
fingerprint· 횡단 장stations{측점: 지문}. 저장본 = 평면도(plan_*) 응답 통째_derived/b07_plan_<도면 id>/<지문>.json· 최근 2벌 · 같으면 읽기만 · 확정 저장본이면 안 씀 · 범위 = 지금 도곽 그대로 · 해상도 = 종이 0.1 mm 솎음(유역도 값을 계획평면도 등고선 · 계류에도). 화면 = 페이지 밖 모듈B07_DesignDetail_Prefetch.ts(프로젝트 하나 · 담는 장 상한 40 · 차례 = 목록 차례 가벼운 것 → 평면도 끝 · 연 도면 맨 앞 · B07 저장 중 쉼 · 실패 = 한 번 다시 → 목록 단추 「다시 받기」 표시 · 목록 다시 받으면 지문 다른 것만 버리고 다시 차례).
- 계약: 지문 = sha1 앞 16자 · 파일 도장 = 8 MB 이하 내용 해시(경로 · 시각 · 크기로 기억) · 넘으면 시각:크기 · 공통 = 판 번호 · B07 엔진 코드 도장 · 도각(프로젝트 · 시스템) · 표제란 값 · B07 설정 파일(manifest 뺌 · plan_kinds) · 그 도면 manifest 칸 + 확정 저장본 도장 · 종단 = + 종단 내용 · 토적 = + 종단 + DB 유토 · 표준 횡단 = + DB 표준 설정 · 구조물 · 전개도 = + 종단 + 측점 상세 전부 + 시설 파일 · 횡단 장 = + 장(번호 · 측점 · 칸) + 측점 계획고 모음 · 측점 간격 + 측점 지문 모음(측점 = 장 입력 조각 · 종횡단 상세 그 측점 · 덧그림 범위) · 평면도 = + 종류 정의 · 장 번호 · 축척 + 노선 세계(노선 서명 · 좌표계 · 지표면 확정 값 · B03 입력 · B04 processed · models 도장 · 상세 유역 · 관 지점 · 곡선표 · 구조물 정본 · 종단 내용) + 사면 조각 고른 종류 = 그 장 측점(앞뒤 하나) 상세. 목록 API 항목마다
- 508-4 계산 자리 2단계 — 서버 계산 창구(/calc → run_calc) · 토량 · 구조물 셈 · 이월 6 묶음 열기(504 보고 7.2). → 완료 처리(요구 332 · 지금 유지 · 사용자가 시험하며 요청).
509. B05 분석 지형 수치지형도 = 화면 느림 (요구 316 · 분석 · 착수 = 사용자 지시 뒤)
- 정함(브레인): 근거
docs/raw/조사/2026-10-21_요구316_수치지형도_느림.md· 주범 = 도엽 등고선 통째(4,200 가닥 · 꼭짓점 145만 · 한 프레임 6.56.8만 · 8793 % 화면 밖) · 둘째 = 고칠 때마다 지반고 서버 묻기(13 ms → 60170 ms). - 사용자 확정(요구 317): 도엽 등고선 두 번 받음 = 맞음(평면도 · 배수유역 범위 다름) · 배수유역도는 따로 범위를 줄임 · 509-2 동의 · 흠 고침 · 분석 지형(라이다 · 수치지형도) 고르기 = 추천 노선 창 안으로 · 지형마다 추천(예상노선 추적 · 영선 · 토공 최소 · 기울기 최소 · 비중) 전처리에 미리 셈 · [적용] = 그 지형 · 노선 · 초기화 기준.
- 정함(브레인 · 바꿀 수 있음): 배수유역도 범위 = 노선 교차 관으로 모이는 유역 바깥 + 여유(일꾼이 수치로 제안) · 수치지형도 고르기는 DB 모델 있을 때만(505-2 5d) · 그 지형 미리 셈 없으면 안내 + [재계산](사용자 셈) · 적용 뒤 B05 평면엔 지형 이름만(고르기 없음) · 수치지형도 격자는 적용 지형 = 수치지형도일 때만 받음.
- 509-1 도엽 등고선을 노선 띠(300 m)로 잘라 둠 — 작음 · 확인: 프레임 꼭짓점 · 느린 PC 흉내 p90 · sub4.
- 검증완료(sub4) — 범위 = 저장 노선 bbox + 띠 300 + 여유 300 m · 서버
_derived/sheet_route· 초안 띠가 범위 밖 = 통째 사본 · 등고선 36.8 → 2.0 MB · 수치지형도 프레임 lineTo 맞춤 2.9만 → 1.1만 · 확대 8칸 9.8만 → 1.8만 · CPU 4 배 p90 37.5 → 16.6 ms · 띠 안 높이 글이 더 보임(잘린 가닥의 글 자리) · 시험 8 ·3bc710a63· 검증 대기.
- 검증완료(sub4) — 범위 = 저장 노선 bbox + 띠 300 + 여유 300 m · 서버
- 509-2 수치지형도 격자(7.8 MB) 브라우저로 — 적용 지형 = 수치지형도일 때만 받음 · 509-5 와 같이 · sub3.
- 검증완료 — 분석 지형 = 설계 지형 하나 · [적용] 뒤 받아 둔 격자 버림 · 검증_sub3 수치지형도 적용 뒤 모델 641 격자 받음 · 노드 끌기 지반 POST 0 · 지반 단계 3.2 ms · 측점 지반 = 서버 수치지형도 값.
- 509-3 공용 선 그리기 화면 밖 구간 건너뛰기(B04 지도 · 배수유역도도 빨라짐) — 중간 · sub4.
- 검증완료(sub4) — 같은 쪽 화면 밖 구간 끊음 · 돌린 화면 = 반 대각선 넓힘 · 무작위 500 가닥 보이는 구간 빠짐 0 · B04 지도 전 · 후 화면 차 5 · 1 픽셀(밝음 · 어두움) · 시험 7 ·
3bc710a63· 검증 대기.
- 검증완료(sub4) — 같은 쪽 화면 밖 구간 끊음 · 돌린 화면 = 반 대각선 넓힘 · 무작위 500 가닥 보이는 구간 빠짐 0 · B04 지도 전 · 후 화면 차 5 · 1 픽셀(밝음 · 어두움) · 시험 7 ·
- 509-4 흠 — 수치지형도에서 Ctrl+Z 가 노드 끌기 안 되돌림 · 횡단 비탈 넓힘이 적용 지형과 상관없이 라이다 격자 · 509-5 와 같이 · sub3.
- 검증완료 — 분석 ≠ 설계 지형 상태가 없어져 둘 다 사라짐(넓힘 = ground 와 같은 설계 지형 격자) · 수치지형도 적용 뒤 끌기 → Ctrl+Z = 초안 없음 · 지반 처음 그대로.
- 509-5 분석 지형 고르기 = 추천 노선 창 안 — 지형마다 추천 다섯 전처리 미리 셈 · 창 안 지형 바꿈 = 그 지형 저장본 · [적용] = 지형 · 노선 · 초기값 · B05 평면 지형 고르기 걷음 · 확인: 두 지형 추천이 다름 · 적용 지형대로 평면 · 종단 · 횡단 · sub3.
- 계약 — 저장본 자리 = 추천 저장본 폴더 그대로(키 지문에 지형 · request.terrain) · POST /route/initial terrain = 창 지형 · 기본 갈래는 지형 상관없이 저장본만(없으면 409 안내 + [재계산]) · [적용] = /route/replan as_initial + draft.terrain = 창 지형(서버는 as_initial 일 때만 지형 바꿈) · 손 [저장] 초안 terrain = null.
- 검증완료 — 미리 셈 151 s(라이다 · 수치지형도 다섯씩) · 창 열 갈래 모두 저장본 · 다섯 갈래 두 지형 값 다름 · 수치지형도 토공 최소 [적용] 32.8 s → 평면 「지형 수치지형도」 · stage1 sheet · 모델 641 확정 · 초기값 다시 섬 · 되돌림(storage 차이 0 · DB 행 같음).
- 509-6 배수유역도 범위 따로 줄임 — 노선 교차 관 유역 바깥 + 여유 · 평면도 등고선 범위와 따로 · 확인: 받는 양 · 그리기 시간 전 · 후 · 배수유역 값 그대로 · sub4.
- 검증완료(sub4) — 범위 = 세부 유역 ∪ 줌아웃 한계(노선 2 배) + 여유 300 m ·
_derived/sheet_drainage· 등고선 36.8 → 2.0 MB · 프레임 lineTo 3.5만 → 0.8만 · CPU 4 배 p90 16.7 → 8.3 ms · 배수유역 · 관 파일 전 · 후 같음 · 좁고 긴 판은 맞춤 화면 위아래에 범위 끝이 보임 · 시험 5 ·3bc710a63· 검증 대기.
- 검증완료(sub4) — 범위 = 세부 유역 ∪ 줌아웃 한계(노선 2 배) + 여유 300 m ·
510. 자동 관 제안 = B05 배수유역 영역 단추 (요구 320-2 · sub3 · Opus high)
- 사용자 확정(요구 320): 배수유역 범위 지금 유지 · 자동 관 지정 = B05 배수유역 기준 · 세류선 교차 지점 고르는 로직은 가져가되 구조물 만들기 · 노선 바뀜 따라감은 지금 방식(507-2 라벨 포함) · 자동 추가 단추 = B05 배수유역 영역 · 제안 뒤 사용자가 골라 넣음.
- 정함(브레인 · 바꿀 수 있음): 먼저 지금 로직 확인(B04 [자동 제안] · 관 자리 제안 D2 · B05 배수유역 판 · B05 · B06 관 넣기 길) · B04 [자동 제안] 단추는 B05 로 옮김(B04 전처리 첫 자동 관은 그대로).
- 510-1 로직 확인 + 단추 — B05 배수유역 영역 [자동 제안] → 후보 표시 → 고른 것만 지금 관 넣기 길로 · 확인: 후보 = 세류선 교차 · 넣은 관 라벨 · 노선 바꿈 [저장] 따라감 · 지운 관 다시 안 생김.
- 로직 확인 — B04 화면엔 [자동 제안] 없음(관 지도 = 재계산 · 우클릭만) · 옛 [자동 제안] = B05 배수유역 칸(369 · 전체 자동 · 지정 포함 추가 = 관 목록 통째 바꿈 · 라벨 없음) · D2 관 자리 제안 = 간격 보충(흐름 세기 + 오목) · B04 첫 자동 관 = 세류선 교차 5 m 솎기(그대로) · 관 넣기 길 = 배수유역 패널 addPipe · 라벨은 화면이 모르고 저장 때 id 로 되붙던 것.
- 검증완료 — 서버 POST drainage/pipe-proposals(세류선 교차 + 분석이 지금 노선이면 간격 보충 · 상태 있는 관 · 지운 관 · 새) · 배수유역 칸 목록 + 점선 원 · 고른 것만 addPipe(교차 = 라벨) · 옛 두 방식 창 · 옛 제안 목록 관 자리 줄 걷음 · 시험 test_510 6 + 둘레(507_2 · 494_2 · 449 · 369 · 347 · 349 · 126 · 291_1 등) 통과(b05_structures_router 이관 5 = 옛 가짜 함수 모양 · 무관) · typecheck 0 · Playwright 검증_sub3: 관 지움 [저장] = 지움 표지 → [자동 제안] 11건(지운 교차 385 · 간격 보충 10) → 둘 고름 → 관 2(385 라벨 = 표지 그대로 · 지움 표지 걷힘) → 노선 끌기 [저장] 두 번 관 2→2→2(385→387→399 · 480→478→498 · 교차 13 m 옮음 · 새 관 0) · 다시 물으면 교차 = 있는 관 · 되돌림(storage 차이 0 · DB 행 같음 · 백업 지움). 검증 대기.
- 510-2 서버 자동 관 옛 길 걷음(auto all · add) + 낡은 시험 다섯 맞춤 — 작음 · sub3.
- 검증완료 — 부르는 곳 0 확인(화면 · 서버 · B03 체인 · 시험) 뒤 걷음:
AUTO_MODES·build_detail/_build/_build_cached/_detail_key/_retag의 auto ·detail-basins·drainage/liveauto 칸 ·computeDetailBasins셋째 인자 · 전처리 첫 자동 관(세류선 교차) 그대로 · test_369 의 all/add 시험 걷고 기본·목록·낡음 셋 남김 · test_b05_structures_router 이관 5 = 가짜 함수가 (legacy, standing) 쌍 대신 목록만 줌(제품 코드 흠 아님 → 가짜를 쌍으로) · 둘레(510 · 507_2 · 494_2 · 449 · B04 배수 · 312 · 342_3 · 347 · 349 · 369 · b05_structures_router 등 22 파일) 두 번 138 통과 · typecheck 0. 검증 대기.
- 검증완료 — 부르는 곳 0 확인(화면 · 서버 · B03 체인 · 시험) 뒤 걷음:
511. 계산 자리 끝까지 (요구 320-4 · 단계 A → B → C)
- 사용자 확정(요구 320): 지금 사용자가 고를 수 없음(45 중 2) → 단계적으로 끝까지 진행.
- 정함(브레인): A = 서버 계산 창구(늘 떠 있는 Node · 같은 TS) + ③ 토량 · 구조물 셈 · ④ 이월 · ⑧ 고정 브라우저(시험용) 열기(+12) · B = 472-4 ③ 짝 모으기(측점 · 지반 · 종단 · 관 세트 · 구조물 짝) 단계마다 열기(+26 · 계획 = 분석 에이전트) · C = 유토 배분 E2 TS 옮김(+1) · 배수유역 · 관 자리 제안 · 노선 추천 · 넓힘(DB 씀) 넷 = 서버만(브라우저에서 못 돎 · 까닭 글).
- 정함(브레인 · 511-A 물음): 「서버」 = 진짜 서버 값을 화면에 씀 · P7 · D4 = 서버 단계 · R2 · R4 · R8 · C7 = 끌기 중 브라우저 미리보기 · 놓을 때 서버 값 + 차이 · 시간 기록(크면 대조만) · E1 · R9 = 잠잠 400 ms 뒤 · F8 · F10 = 판만.
- 511-A 서버 계산 창구 + 12 열기 — sub2 · 확인: 바꾼 묶음 = 서버 결과 = 브라우저 결과(거울) · 왕복 시간 표.
- 계약 —
POST /api/projects/{id}/calc{run, inputs}(프로젝트 권한 · 본문 상한 · 호출량 = 미들웨어) → 늘 떠 있는 Node 하나(design_calc_node.ts --serve· 죽음 · 묶음 바뀜 = 다시 띄움) · 시험용 id = 등록부node:밖 따로(TRIAL_IDS). - 「서버」 길 — 비동기 자리 = 서버 값만(F7 저장 노선 cross · C4 소단 사본 · P7 직선화 · D4 발자국 단계) · 동기 그리기 자리 = 잠잠 400 ms 뒤 서버 값으로 다시 그림(E1 유토곡선 · R9 열쇠 넘김 · F7 초안 면적) · 끌기 도구(R2 · R4 · R8 · C7) = 브라우저 값 + 놓은 뒤 서버 대조 · F8 · F10 = 브라우저 부름 0(판만).
- 기록 =
window.__aisloCalcServer.calls(id · 브라우저 ms · 왕복 ms · Node ms · 같음) · 왕복 흉내 =__aisloCalcServer.delayMs. - 시간 표(랩탑 5177 검증_sub2 · 중앙값 · 브라우저 ms → 왕복 ms 흉내 0 / 30 / 80 · 보낸 양) — F7 면적 1 → 155 / 246 / 140(830 KB) · E1 유토 0.1 → 105 / 212 / 203(843 KB) · C4 소단 0 → 19 / 83 / 113 · R9 넘김 0.2 → 63 / 52 / 137(12 KB) · D4 발자국 50 → 179 / 232 / 230(443 KB · Node 59
77) · R4 맞춤 0.7 → 42 / 50 / 105 · R8 갈아끼움 2 → 501 / 512 / 413(2.2 MB) · 늘 떠 있는 Node 1.4 MB 33 ms · 새 Node 110170 ms · 서버 = 모든 묶음에서 느림(잠잠 400 ms 더함). - 검증완료 — 시험 511-A 넷(창구 권한 403 · 413 · 400 · 떠 있는 Node = 파일 길 · 죽어도 다시 · 거울 ③ ④ ⑧ · 판 따라 길) + 둘레 1 001 통과(345_5b 1 실패 = CurveBar 글 · 이 작업 밖) · 화면 = 기본값 /calc 0 · 묶음 셋 server → 계획고 ▲ · 교각점 끌기 → 그 묶음 id 만 /calc · 답 전부 = 그 페이지 TS 값 · 판 바이트 · 감사 행 되돌림 · storage = 파생 haul 캐시 한 벌 바뀜만 · 화면 밖 = R2 손잡이 · P7 직선화 · C7 반폭(거울 시험만) · 검증 대기.
- 계약 —
- 511-B 짝 모으기 단계마다 열기 — 계획 =
docs/raw/조사/2026-10-22_요구320_계산자리_B단계.md· 정함(브레인) = DTM 아닌 지표면 = 파이썬 길 남기고 그 줄 잠금 · F9 = 폼 기본값 도구로 재분류 · P1 폴백 파이썬 남김 ·/cross-design/preview걷음 · 기준값 다시 뜸 = B-2 끝에 차이 보고 판정.- /calc 파일 경로 막기(sub3) — 단계 격자 =
{model_id, smooth, design}→ 서버가 그 프로젝트 storage 안 DTM 격자 경로로 갈음(dtm_grid_npz·read_surface_grid와 한 벌) · 경로 칸(stages.grid.path·stations.grid) = 400 · 창구 묶음 안 파일 읽기 =gridAt하나(다른 id 경로 칸 없음 ·stations.sections는 이미 막음).- 검증완료 — test_511_b_calc_path_guard 3(경로 칸 · 문자열 · ../ · 절대 경로 · 다른 프로젝트 모델 = 400 · Node 안 부름 · 모델 id = 서버 경로) + 511_a · 344_1 · 133_1 · 505_2 · 509_5 통과. 검증 대기.
- B-1 단계 Node 입구 · 판 다섯 줄(511-A 뒤 · 창 1).
- 검증완료 — Node 단계 입구
stage.route · follow · stations · profile · cross(design_calc_node_stages.ts· 등록부 밖STAGE_IDS· 창구가 받음 · 한 요청 = 묶음 한 바퀴 · DTM 격자 경로 기억 · 관 세션 장부 사본) · 페이지 follow 자리 맞춤 · cross 맥락 =logic/design_pipeline_stage_inputs.ts(페이지 693 → 659 · 빼기만) · 판 = 단계 다섯 줄 잠금(까닭 「짝 모으는 중 · B-n」) · F9 = 폼 기본값 · 기본값 바뀜 0(판 파일 그대로) · 화면(검증_sub2 · Playwright) = 노선 초안 둔 채 다시 열기 다섯 단계 0 차 · 저장 노선 넷 0 차(횡단은 페이지가 다시 셈 창구 = 파이썬 저장 설계 · 관 측점 면적 최대 5.07 ㎡ 차 · B-4 몫) · 단계 입구 끌림 11 파일(plantedBase종단도 측점 표 · B-3 이 logic 으로) = 472-3 알려진 끌림에 올림 · 시험 test_511_b1 6 + 둘레(511_a · 309_2 · 349 · 472_3 · 346_1 · 365 · 384 · 415 · 451 · 457 · 472_5 · 472_6 · 505_2 · 509 등) 277 통과 · typecheck 0. 검증 대기.
- 검증완료 — Node 단계 입구
- B-2 측점 R5 R6 R7 F3 G4(창 A) · B-3 종단 P1~P5 P8(창 B · Alignment.ts 먼저 나눔) · B-4 횡단 G2 C1 C2 C3 C5 C6 F4 F5 F6(창 C) — 셋 동시.
- B-2 측점(sub3) — 서버 측점 생성(
build_sections· 모든 체인) = DTM 이면 늘 떠 있는 Nodestations.sections(B05_Profile_Sections_Generate.ts=buildStations+sectionsGround· 측점key더함 · 파이썬은 머리만 ·B05_Profile_Engine_Sections_Node.py) · 비DTM · Node 못 돌림 = 파이썬generate_sections· 이월 열쇠 = 측점key(없으면 파이썬station_keys) ·stations.list= 측점 목록 · 창구는stations.sections막음 · 등록부 R5 R6 R7 = node:stations.list · G4 = node:stations.sections · round6 = 십진 반올림 · 추천 저장본 지문에 TS · stations 줄 엶(기본 both · 「서버」 = 잠잠 뒤 서버 측점 · 정의는 창구가 붙임).- 검증완료 — 고정 자료 Node 길 = 파이썬 길 0 차(다섯 갈래 · 측점 57) · 검증_sub3 사본 종단 · 횡단 파일 59 개 0 차 · 「종횡단 한 번」 중앙 파이썬 0.60 s → Node 0.65 s · 화면(검증_sub3 · Playwright) 측점 59 · 초안 61 = 서버 판 0 차(왕복 32
106 ms · Node 24 ms) · golden 넷 기준값 그대로(다시 뜸 없음) · KNOWN 그대로 = R7(성 1e-4 ㎡ 1 · 누가 0.01 ㎥ 4 · 10-17 정본 표본) · X2(336 곳 = 고정 자료 노선 3자리 · 4자리 노선이면 14 곳 ≤ 1e-4 ㎡ · 0.01 ㎥ = B-3 · B-4 몫) · W0 · typecheck 0. 검증 대기.
- 검증완료 — 고정 자료 Node 길 = 파이썬 길 0 차(다섯 갈래 · 측점 57) · 검증_sub3 사본 종단 · 횡단 파일 59 개 0 차 · 「종횡단 한 번」 중앙 파이썬 0.60 s → Node 0.65 s · 화면(검증_sub3 · Playwright) 측점 59 · 초안 61 = 서버 판 0 차(왕복 32
- B-3 종단(sub4) — 종단 다시 셈(
rebuild_alignment_profile· 일곱 곳 이름 그대로) · 1순위 첫 계획선 · 계획고 옮김 = 늘 떠 있는 Nodeprofile.base · profile.alignment · profile.carry(design_calc_node_profile.ts) · 파이썬 = 입력 + 정본 꼴(Engine_Grade_Node.alignment_record) · 노선 [저장] 계획고 옮김 = 편집 옮김 + 꼭짓점 세움 Node 한 부름 · P1 2~4 순위 · 추천 엔진 짝 파이썬 남김 · TS 표본 격자 0.000001 m · Alignment.ts 700 → 630 +_Edit100 · 기준표 logic(Grade_Criteria· X5) · plantedBase logic = Node 입구 끌림 11 걷힘 · 판 profile 줄 엶(기본값 both) · 「서버」 = 화면 묶음 planline · profile 이 창구 → Node(both = 단계 동기 그대로).- 검증완료 — 정본 글 = 옛 파이썬 길과 같음(test_511_b3 9 · storage 종단 16 파일 첫 계획선 16/16 · 다시 셈 16/16) · 화면(검증_sub4 · Playwright) 판 both ↔ server 종단 값 같음 · 서버 부름 왕복 96
98 ms(Node 2633 ms) · both 부름 0 · 노선 바뀐 [저장] 뒤 종단 정본 해시 = 옛 파이썬 = Node · 초안 대 저장 계획고 77 측점 최대 0.0000005 m · 「계획고 옮김」 같은 조건 전 1.01.2 s(중앙 1.05) → 후 0.50.9 s(중앙 0.85) · 셈 몫 0.14 → 0.03 s · 남은 몫 = DB 종단 행 grade_summary 갱신 대기 0.47~1.53 s(0.7 s 목표 미달 · 셈 밖) · 둘레 시험 502 + 판 화면 7 통과 · typecheck 0 · DB · storage 되돌림 같음. 검증 대기.
- 검증완료 — 정본 글 = 옛 파이썬 길과 같음(test_511_b3 9 · storage 종단 16 파일 첫 계획선 16/16 · 다시 셈 16/16) · 화면(검증_sub4 · Playwright) 판 both ↔ server 종단 값 같음 · 서버 부름 왕복 96
- B-4 횡단(sub2) — 정함(브레인 · 물음 답) = DTM 이면 [저장] 횡단 한 바퀴 = Node 한 부름 · 비DTM = 파이썬 길 · 기본 설계 셋 = cross.design · GET 형상 = facility.attach · 늘 떠 있는 Node · preview 걷음 · 페이지 cross 서버 길(구조물 층까지 페이지와 같게) · 끝에 cross 줄 엶.
- 5.07 ㎡ 까닭 — 견준 층 차이(저장 설계 = 엔진 + 구조물 폐회로 층 · Node 단계 = 엔진만 · 층 얹으면 관 351 절 4.6024 · 성 3.307 같음 · 정본 = 저장 값) · 나머지 0.001~0.067 ㎡ = 지반 표본 출처(TS 격자 대 파이썬 표본 · G1 몫).
- run_calc = 늘 떠 있는 Node.
- 기본 설계 셋(체인 · 노선 저장 이월 · [측점 만들기] · GET 빈 측점 · B05 확정 역반영) = Node cross.design 묶음 + 시설 구간 TS.
- /cross-design/preview 걷음(창구 · 스키마 · recompute_designs_for_alignment · 화면 폴백).
- GET · 재생성 형상 얹기 = Node facility.attach.
- [저장] 횡단 한 바퀴 = Node cross.enforce(DTM) · 비DTM = 파이썬 그대로.
- 페이지 cross 서버 길 + cross 줄 엶.
- 시험 · 시간 전후 · Playwright 검증_sub2 [저장] · [확정].
- 검증완료 — 거울 test_511_b4_cross_save_mirror 4(가짜 지형 · 넓힘 · 지표면 끝 · 포장 · 기울임 · 세월교 · 소단 · 정본 못 읽음 = 파이썬 길 대 Node 길 0 차) · 화면 test_511_b4_cross_server_browser 2(검증_sub2 · 판 both 대 server cross 출력 · 상세 설계 0 차 · 저장 노선 cross.refresh 535 ms · 초안 stage.cross 462 ms · Node 61
93 ms · 잠잠 400 포함) · 검증_sub2 [저장] 다시 셈 중앙 0.7 → 0.5 s(보정 몫 0.3 → 0.1) · [확정] 2.2 → 2.1 s · 화면 [저장] · [확정](→ B07) 0.91.0 s · 2.7 s · 계산 값 차 0(판 both · server 같음) · GET 형상 얹기 +5.6 ms · 둘레 시험 600 여 통과(글 읽는 시험 10 · 등록부 · 판 시험 기대 맞춤) · typecheck 0 · DB · storage 되돌림 차 0. 검증 대기.
- B-2 측점(sub3) — 서버 측점 생성(
- B-5 노선 R1 R3 · F1 좌표 맞춤 · F3 남은 부름(창 A · Router_Replan.py 먼저 나눔).
- 노선(sub3) —
Router_Replan.py688 → 612(폴리라인 파일 쓰기 =B05_Profile_Route_Polyline_Write.py) · 노선 저장 폴리라인(편집 갈래) = 늘 떠 있는 Noderoute.polyline(buildEditedPolyline+nodeEdits· 파이썬은 csv · 곡선표 반올림만 · 단순화 갈래 · Node 못 돌림 = 파이썬 짝) · 위반 글 = 파이썬 꼴(fixed1) · 저장 좌표 맞춤(F1) = Nodefacility.follow+ fill(fillStructureCoordinates· 옛 좌표 지킴 · 0.1 mm ·pointAtChainage와 한 벌) · F3 남은 부름 = Nodestations.plan· 등록부 R1 R3 F3 node: · 알려진 차 = 교각 딱 5° 배수 원호 점 ±1(브레인 승인). - 줄 엶 — route(「서버」 = 잠잠 뒤
route.polyline) · follow(끌기 도구 꼴 · 잠잠 뒤 창구가 저장 정본 맥락을 프로젝트 id 로 모아 Node route · follow 두 단계 · 곁 자료 다시 붙임 · 계획고 옮김 = 끌기 중 화면 입력 그대로) · sub4(B-3) 합침. - 검증완료 — test_511_b5_route_node 22(노선 파일 Node = 파이썬 바이트 · 좌표 맞춤 · 측점 계획 · 맥락 · 두 단계 = 묶음 첫 바퀴 · 화면 셋) · 저장 노선 편집표 있는 6 벌 0 차 · 노선 저장 체인(검증_sub3 · 같은 노선 7 번씩) 중앙 파이썬 10.6 s · Node 11.2 s(쌍 차 중앙 −0.8 s · 다른 창 부하로 8.9~16.5 s) · 저장 뒤 정본 해시 0 차(측점 파일 차 = 정수 · 실수 꼴과 key 칸 = B-2 몫 · 수치 0) · 폴리라인 쓰기 +0.9 ms · 화면(검증_sub3 · Playwright · 저장 안 함) = route 초안 190 점 · 측점 61 0 차(27 ms) · follow 끌기 네 걸음 뒤 0 차(231 ms) · 둘레 540 통과 · typecheck 0. 실데이터 구조물 0 개(storage 전체) → 좌표 맞춤은 합성 열 갈래로만. 검증 대기.
- 노선(sub3) —
- B-6 정리 — 알려진 차 빈 목록 · 쓰는 곳 없는 파이썬 짝 걷음.
- 검증완료(sub2) — 걷음 = 옛 server-calc 묶음(
B06_Section_Server_Calc_Node.ts135 줄 ·build:server-calc· Prebuild BUNDLE · 따로 한 커밋210ff06de) ·common_util_excavation.py통째 ·carry_edits·seat_route_moved(시험 헬퍼로) ·attach_underdrains·attach_wall_structures·load_wall_structures·tangent_elevation·dedupe_station_keys·loose_chainage· 남는 짝 17 파일 머리 「남는 까닭」(DTM 아닌 지표면 · Node 못 부를 때 · 2~4 순위 폴백 · 추천 · B04 B07 B08) · 등록부 until 걷음 · C6 · F8 pair 맞춤 · golden KNOWN 셋(R7 표본 출처 · W0 · X2 입력 선 자릿수)은 짝 밖이라 남김(까닭 고침) · 계산 자리 창 45 줄 = 41 · 서버만 넷 · 옛 「짝 모으는 중」 글 걷음 · test_322_3_flow 빨강 고침 · 시험 97 파일 562 통과 · typecheck 0. 남은 것 = 472-3 KNOWN_PULLS(화면 기하 끌림 · 계산 짝 아님) ·common_util_route_polyline.py745 줄(전부터). 검증 대기.
- 검증완료(sub2) — 걷음 = 옛 server-calc 묶음(
- /calc 파일 경로 막기(sub3) — 단계 격자 =
- 511-C 유토 배분 TS 옮김 · 남은 넷 = 서버만 까닭 글.
- 정함(사용자 · 요구 321) — 09-06 「배분 산식 브라우저 번들 밖」 풂 · 판 haul 줄 엶 · 기본값 server(지금 /haul-plan · 판 파일 바뀜 0) · both = 배분 모듈 dynamic import 해 브라우저 셈.
- 지금 정본은 파이썬이 아니었음 — /haul-plan · [저장] 정본 모두 같은 TS 를 server-calc 묶음 새 프로세스로 셈 → 둘 다 늘 떠 있는 Node 로(
haul.view·structure.layouts·masshaul.cumulative·haul.plan) · 옛 묶음 = 시험 대조만(B-6 걷음 몫) · 서버만 G3 D1 D2 N1 = 줄마다 까닭 글. - 검증완료 — 거울 test_511_c_haul_node 4(저장 유토곡선 프로젝트 일곱 × 문맥 넷 × 그림 · 수량 + 끝 경우 여섯 = 새 길 · 옛 묶음 · 브라우저 함수 0 차 · [저장] 정본 golden 문맥 셋 0 차) · 화면 test_511_c_haul_browser 2(검증_sub4 B05 계획고 ▲ · server = /haul-plan 1 · 배분 모듈 안 받음 · both = /haul-plan 0 · 모듈 받음 · 유토곡선 그림 같음 · 창 E2 열림 기본 꺼짐 · 서버만 넷 까닭 다름) · 시간 중앙 /haul-plan 셈 70 → 2 ms · [저장] 면적 · 유토곡선 셈 193 → 91 ms · 둘레 208 중 206 통과(309_2_browser R1 「B-5」 기대 = B-5 가 route 엶 뒤 안 맞춘 옛 기대 · 이 작업 밖) · typecheck 0 · 판 파일 바이트 · 감사 행 되돌림 · storage = 검증_sub4 파생 haul 캐시 한 벌 바뀜만. 검증 대기.
512. 배수유역도 [업데이트] · B07 유역도 등고선 · 700 줄 나눔 (요구 326)
- 사용자 확정: B07 유역도 등고선 기본 5 m · 그 도면 옵션 창에서 10 m 로만(1 m = B05 · B06 전용) · 배수유역도 점선 원 · [배관 배치 초기화] · [배관 삭제] · [유역 재분할] 지움 → [업데이트] 하나(누르면 늘 다시 셈 · 노선 바뀌어도 옛 그림 그대로 · 노선 바뀐 뒤 = 처음부터 셈) · 낡은 채 B06 → B07 = 확인 창 → 자동 업데이트 → 이동 · 700 줄 = 묶음으로 나눔.
- 512-1 B07 유역도 등고선 5 m 기본 · 옵션 창 10 m(sub2) · 시험 test_cad_host_tabs 머리줄 낡음 고침 — 확인 = 유역도 크기 전후 · 옵션 바꿔 다시 받음.
- 검증완료 — 원인 = 1 m 아님(도엽 N3L 주곡선 5 m · 계곡선 25 m 그대로 · 등고선 층이 응답의 97 %) · 유역도 종류
contour_interval_m5 기본 · 10(평면도 관리 모달 · 유역도일 때만 보임) · 지문 = 그 도면만(종류 목록 지문에서 간격 뺌 · 기본 종류 조각 차례 맞춤 → 파일로 내려도 지문 그대로) · 검증_sub2 유역도 23.17 → 11.91 MB · 5 → 10 → 5 = 받은 도면 plan_watershed 만 · 다른 15 장 지문 그대로 · 5 로 돌아오면 첫 지문 · 저장본 재사용(만든 시각 그대로) · 안 누르고 닫기 = 그대로 · 새로고침 · 어두움 확인 · test_512_1 3 · B07 평면 둘레 · test_cad_host_tabs(508-1f ☰ 자리 = 탭 줄 + 도구 줄 묶음으로 단언 고침) 75 통과 · typecheck 0 · 되돌림(plan_kinds 폴더 · 10 m 저장본 지움 · 백업 tmp/backup_512_1). 검증 대기.
- 검증완료 — 원인 = 1 m 아님(도엽 N3L 주곡선 5 m · 계곡선 25 m 그대로 · 등고선 층이 응답의 97 %) · 유역도 종류
- 512-2 B05 배수유역 영역 업데이트 — 확인 = 노선 바꿈 → 옛 그림 · [업데이트] → 노선 곁 빈 곳 없음 · 낡은 채 B06 [>] 확인 창. 뒤에
ui_template_locale_b2.ts1031 줄 나눔.- 검증완료 — 빈 곳 까닭 = 초안 노선으로 셈한 유역 위에 저장 노선선을 그림 → 답에 셈한 노선(
route_xy)을 실어 그 선을 그림 · 시험 test_512_2 5 · test_349 9 · 둘레 330 여 통과 · typecheck 0 · 화면(5178 검증_sub3): 노선 초안 = 요청 0 · 단추 낡음 점 → [업데이트] 6.8 s 뒤 그림 바뀜(덮개 없음) · 노선 17 m 옮김 = 옛 길 노선 71.8 m 유역 밖 → 0 m · 유역 면적 합 441,332 ㎡ · 전체 유역 441,398 ㎡(빈 칸 38 ㎡ = 다각형 단순화) · 평면 그대로 [업데이트] 4.8 s 다시 셈 · 낡은 채 B06 [>] = 확인 창 → 업데이트 4.7 s → 확정 요청(검증 중 막음) · 낡지 않으면 확인 창 없음 · 취소 = 요청 0 · 밝음 · 어두움 점 보임 · 흐름 방향 저장본 두 벌 되돌림 · 사전 b2 1031 → 586 + b5 449(키 585 그대로) · Node 묶음 셋 다시 지음. 검증 대기.
- 검증완료 — 빈 곳 까닭 = 초안 노선으로 셈한 유역 위에 저장 노선선을 그림 → 답에 셈한 노선(
- 512-3 700 줄 나눔 파이썬(sub1) —
master_formula.py880 ·gen_md.py791 ·pum_md_tool.py766 ·common_util_route_polyline.py745. 검증완료 — 네 파일 모두 700 줄 아래(686·517·164·455) · 시험 통과(마스터 검사 · 품셈 md · 노선 폴리라인 묶음) · gen_md 색인·pum_md_tool 도움말·status·check 출력 전후 같음 · 시험 2건(test_m01_draft 둘 · test_430 편집기_배선)은 나누기 전부터 실패. - 512-4 700 줄 나눔 CSS(sub5) — CAD
App.css910 ·B01_Dashboard_UI_Style.css812 ·B06_Section_UI_Style_Cross.css743 ·B03_FileInput_UI_Style.css714.- 검증 대기 · 검증완료 — 넷 모두 둘로 나눔(
App_Layers.css·_Style_Company.css·_Cross_Chart.css·_Style_Card.css) · 원본 = 앞 파일 + 줄바꿈 하나 + 뒤 파일(prettier 가 파일 끝 빈 줄을 못 둠) · 부르는 곳 차례 그대로 · 규칙 목록(CSSOM) B01·B03·B06 동일 · CAD 빌드 규칙 160 개 차례·내용 동일 · 시험 13 개 중 3 개는 이 일과 무관한 옛 실패(test_368_3PLUS_OWNER_PREFIX ·test_cad_host_tabshost-burger ·test_modal_top_and_add_wordM02_SO_Text).
- 검증 대기 · 검증완료 — 넷 모두 둘로 나눔(
- 512-5 700 줄 나눔 TS(sub6) —
common_util_mass_haul_balance.ts842 → 467(+_types157 ·_apply257) ·B05_Profile_UI_Profile_Table.ts702 → 548(+_Table_Selected173). 검증완료: typecheck 통과 · 시험 40 통과(511_c_haul_node · 472_3 · unpruned · stone_deduction · 507_3) · 종단 표 전후 DOM 해시 같음 · 줄 대조 =export만 늘음. 검증 대기. - 정함(브레인): 배수유역 자동 모드(⚙) 걷음 그대로(요구 326-6 「[업데이트] 로만」) · 새로 연 페이지도 옛 그림 = 저장된 옛 유역 파일로 그림.
- 512-6 노선 [저장] 뒤 새로 연 B05 = 저장된 옛 유역 그림 + 낡음 점 · B06 [>] 확인 창 → 업데이트 → 확정 → B07 끝까지(DB 행 백업 · 되돌림 · sub3).
- 검증완료 — 낡은 분석 GET = 마지막 [저장] 세부 유역 저장본(
04_detail_cache.pkl)의 옛 유역 · 옛 노선선 + 관만 지금 노선 위(저장본 없음 · 깨짐 = 관 자리만) · 화면 코드 그대로 · test_512_6 3 · 둘레 23 통과 · typecheck 0 · 화면(5178 검증_sub3): 노선 안 바뀜 = 낡음 점 없음 · 평면 꼭짓점 끌기 → [저장] → 새로고침 = 옛 유역 1 개 44.22 ha · 옛 노선선(지금 노선과 9.5 m 차 · 노선 유역 밖 0 m) · [업데이트] 낡음 점 · 자동 제안 꺼짐 → [업데이트] = 지금 노선 0 m 차 · 노선 유역 밖 0 m · 노선 곁 30 m 빈 곳 32 ㎡(단순화) · 낡음 점 꺼짐 · B05 [>] = 확인 창 없이 B06 · B06 [>] = 확인 창 → [업데이트 뒤 이동] → live 5.0 s → 확정 22.7 s → B07 열림 · 분석 지문 = 지금 노선 · 다시 연 B05 낡음 점 없음 · 되돌림 DB 행 · storage 223 파일 해시 전후 같음(백업 tmp/sub3_5126). 검증 대기.
- 검증완료 — 낡은 분석 GET = 마지막 [저장] 세부 유역 저장본(
- 512-7 장 끝 빨강 시험 가림(sub5) — 393_1 횡단 판(513-2 뒤 낡음) · 368_3 PLUS_OWNER_PREFIX · modal_top_and_add_word M02 「종류 더하기」 · m01_draft 둘 · 399 · 390_5 — 낡은 기대 = 시험 고침 · 제품 흠 = 보고 · 확인 = 그 시험들 통과.
- 검증완료 — 393_1 (판 안 열림 뜻으로 고침) · 368_3 (상수 위치
common_util로) · M02 「종류 더하기」→「종류 추가」(제품 글자 하나) · m01_draft (진짜 폴더로직_자체.json안 복사) · 399 · 390_5 는 지금 통과 · 시험 71 통과 · typecheck 통과. 검증 대기.
- 검증완료 — 393_1 (판 안 열림 뜻으로 고침) · 368_3 (상수 위치
513. 평면도 우클릭 구조물 메뉴 · B05 우측 패널 상태 유지 (요구 327)
- 사용자 확정: 평면도 우클릭 = 종단도와 같은 구조물 메뉴(추가 · 삭제 · 공용 로직) · 측점 고름이 패널을 열지 않음 — 안 보여도 내용은 갱신 · 열림 · 닫힘은 그대로(B05 ~ B06 좌측 구조물 칸도 같은 규칙).
- 513-1 평면도 우클릭 구조물 메뉴(sub4) — 확인 = 평면에서 추가 · 삭제 → 종단 · 횡단 · [저장] 뒤 같음.
- 검증완료 — 검증_sub4 평면 우클릭 = 종단과 같은 항목(군 5 · 배관 위 「배관 삭제」) · 509 m 기타 · 배관 추가 → 종단 알약 · 좌측 B05 · B06 칸 25+9 · [저장] 뒤 새로고침 같음 · 평면 「배관 삭제」 → 저장 뒤 관 388 만 · 노선 밖 · 노드 위 메뉴 없음 · 어두움 OK · test_513_1 4 통과.
- 513-2 B05 우측 패널 · B05 ~ B06 좌측 구조물 칸 열림 상태 유지(sub7) — 확인 = 닫힌 채 측점 고름 → 안 열림 · 열면 고른 측점 내용.
- 검증완료 — 횡단 판 닫힌 채 100 m 고름 = 닫힘 · 내용 860.0 · 열면 같은 내용 · 열린 채 120 m = 열림 · 859.3 · 「구조물 배치」 카드 · 좌측 패널 닫힌 채 우클릭 추가 · 고름 = 닫힘(B05 · B06) · 시험 67 통과 · typecheck 통과.
- 513-3 관 아닌 구조물도 우클릭 삭제(종단 · 평면 공용 · sub4) — 지금
onStructureRemove가 관만 · 확인 = 옹벽 · 측구 등 우클릭 삭제 → 종단 · 평면 · 횡단 · 좌측 칸 · [저장] 뒤 같음.- 검증완료 — 검증_sub4 종단 우클릭 옹벽 시작 측점 · 평면 우클릭 맹암거 · B06 종단 흙막이 끝 측점 「구조물 삭제」 → 초안 · 측점선 · 알약 · 평면 마커 · 좌측 칸 · B06 카드(2+11 · 5+8 ~ 5+18 · 4+2 ~ 4+12 빠짐) 같음 · 저장 안 하고 B06 옮김 같음 · [저장] 뒤 새로고침 같음 · 관 「배관 삭제」 그대로 · 노드 19 그대로 · DB 행 · 파일 되돌림 · test_513_3 2 · 둘레 309 통과 · typecheck 0 · 덧: RouteEdit.ts 699 → 691 줄(상태줄 글 짓기
_Render·_Contour로) · test_430 · test_399 통과.
- 검증완료 — 검증_sub4 종단 우클릭 옹벽 시작 측점 · 평면 우클릭 맹암거 · B06 종단 흙막이 끝 측점 「구조물 삭제」 → 초안 · 측점선 · 알약 · 평면 마커 · 좌측 칸 · B06 카드(2+11 · 5+8 ~ 5+18 · 4+2 ~ 4+12 빠짐) 같음 · 저장 안 하고 B06 옮김 같음 · [저장] 뒤 새로고침 같음 · 관 「배관 삭제」 그대로 · 노드 19 그대로 · DB 행 · 파일 되돌림 · test_513_3 2 · 둘레 309 통과 · typecheck 0 · 덧: RouteEdit.ts 699 → 691 줄(상태줄 글 짓기
514. 우클릭 삭제 일원화 · 낡은 유량 가림 · B07 유역도 가볍게 (요구 328)
- 사용자 확정: 알약만 있는 구조물(대피로 · 노출형 횡단수로 등)도 우클릭 삭제 · 우클릭 글 = 관 · 세월교 · BOX 모두 「구조물 삭제」 하나 · 유역도 낡은 동안 관 카드 유량 = 「낡음」 가림 · 유역도 가볍게 = B07 만(B05 · B06 결과 그대로).
- 514-1 알약 구조물 우클릭 삭제 + 삭제 글 「구조물 삭제」 일원화(종단 · 평면 · B06 · sub4) — 확인 = 알약 구조물 우클릭 삭제 → 종단 · 평면 · 좌측 칸 · [저장] 뒤 같음 · 글 하나.
- 검증완료 — 검증_sub4 알약만 구조물 대피로 · 노출형 횡단수로 · 반사경 + 세월교 · BOX 넣고 [저장] → 종단 알약 우클릭 대피로 · 평면 마커 우클릭 노출형 횡단수로 · B06 알약 우클릭 반사경 · 세월교(관 길) 「구조물 삭제」 → 알약 · 평면 마커 · 좌측 칸 · 초안 · B06 카드(세월교 286 m 빠짐) 같음 · 저장 안 하고 B06 옮김 같음 · [저장] 뒤 새로고침 = 알약 BOX · 배관 · structures 0 · 관 383 · 388 · 횡단 117 · 우클릭 글 = 관 · 세월교 · BOX 측점선 · 알약 모두 「구조물 삭제」 · 어두움 메뉴 OK · DB 7표 · 파일 해시 되돌림(백업 tmp/sub4_5141) · test_514_1 3 · 513_1 4 · 513_3 2 · 둘레 83 · 472_3 통과 · typecheck 0 · test_440 3 빨강 = 옛 stub 빠짐(안 고친 파일 · 이 일 무관). 검증 대기.
- 514-2 유역도 낡은 동안 관 카드 유량 「낡음」 가림(sub3) — 확인 = 노선 바꿈 → 가림 · [업데이트] → 값 · 안 낡으면 값.
- 검증완료 — 판정 한 곳(배수유역 판 낡음 →
setDrainageStale) · 세월교 · 물넘이 칸 안내 「설계유량 낡음 — 배수유역도 [업데이트] 뒤 셈」 · 낡은 동안 월류 높이 자동값 안 채움 · B06 폼도 [업데이트] 뒤 새 유량(옛 빈틈) · 새 test_514_2 5 · 관련 시험 392 통과 · test_440 오류 3 = 옛 stub 빠짐(이 일 무관) · typecheck 0 · ORCA 검증_sub3: 안 낡음 「필요 수심 0.44 이상」 → 노선 점 끌기 → 「낡음」(B05 · B06 · 새로고침 뒤 · 밝음 · 어두움) → [업데이트] 8~13 s → 「필요 수심 0.44 이상」(B05 · B06) · 세션 되돌림 · 서버 관 정본 그대로. 검증 대기.
- 검증완료 — 판정 한 곳(배수유역 판 낡음 →
- 514-3 B07 유역도 등고선 엔티티 가볍게(sub2) — 확인 = 유역도 MB 전후 · CAD 화면 같음 · B05 · B06 등고선 응답 해시 전후 같음.
- 검증완료 — 유역도 등고선 · 계류 = 폴리선 하나 + 꼭짓점 목록(자식 Line · UUID 없음 · CAD 가 읽을 때 선분으로 펼침 · DXF · 인쇄 PDF = 열린 선) · 검증_sub2 유역도 5 m 23.17 → 3.22 MB · 10 m 11.91 → 1.77 MB · 등고선 1501 · 계류 166 줄 · 꼭짓점 105,441 · 좌표 · id · 색 해시 전후 같음 · CAD 화면 같음 · 1761 개 · 고르기 1501 · 옮기기 1501 · 지우기 166 · DWG 내보내기 200(5.78 MB) · 새로고침 = 그대로 · B05 · B06 등고선 6 · 배수 3 응답 해시 전후 같음 · 엔진 도장 바뀜 = 한 번 다시 셈 · test_514_3 · vitest polyline-points-514-3 · 관련 시험 64 통과 · typecheck 0. 검증 대기
- 514-4 전역 싱크 막힘 — test_508_2_browser 추천 창 「저장본 있는 갈래 없음」(512-3 지문 glob 넓힘 뒤 추천 저장본 낡음 판정인지) · 노선 크게 끌기 들쭉날쭉(sub4) — 확인 = 원인 한 줄 · 제품 흠이면 고침 · 그 시험 세 번 연속 통과.
- 검증완료 — 원인 = 지문 glob 아님(묶음 지문 같음 · 접근은 이미 엔진 지문 무시) · B05 · B06 [저장]이 손대지 않은 표준 횡단면 기본값을 종단 정본 options 에 실음 → 추천 키 꼬리 None ≠ 기본값 dict → 전처리 저장본 못 찾음(409) · 고침 = 프로젝트 접근이 「없음 = 기본값」 두 꼴 다 견줌(지금 꼴 먼저 · 추천 · 초기 종단 ·
standard_forms· Store 파일 그대로 = 엔진 지문 안 바뀜) · 고친 표준은 그대로 409 · 검증_sub4 다섯 갈래 409 → 저장본 · 검증_sub8(기본값 실림) 저장본 + 초기 종단 그대로 · 검증_sub3 = 옛 저장본이 지금 입력 어느 꼴과도 안 맞음(자료 탓 · 전처리 다시 하면 생김) · 끌기 들쭉날쭉 = 평면 보던 화면이 계정 설정(user_ui_prefs)에 남아 판마다 더 줄인 화면에서 시작(노선 2201 → 5516 m) + 둘째 도엽 4 초 안 못 옴 → 시작 전 그 열쇠 비움 · 끝나면 되돌림 · 둘 다 올 때까지 기다림 · test_508_2_browser 세 번 연속 3 통과(받은 양 · 노선 1787.2 m 같음) · 새 test_514_4 3 · 관련 시험 52 통과 · typecheck 0. 검증 대기
- 검증완료 — 원인 = 지문 glob 아님(묶음 지문 같음 · 접근은 이미 엔진 지문 무시) · B05 · B06 [저장]이 손대지 않은 표준 횡단면 기본값을 종단 정본 options 에 실음 → 추천 키 꼬리 None ≠ 기본값 dict → 전처리 저장본 못 찾음(409) · 고침 = 프로젝트 접근이 「없음 = 기본값」 두 꼴 다 견줌(지금 꼴 먼저 · 추천 · 초기 종단 ·
515. 요구 329 남은 시험 빨강 가림 B (sub3)
- 지정 시험 단독 재현 · ① 낡은 기대 수정 / ② 지킴 시험 아닌 항목 삭제 / ③ 제품 흠 보고.
- 바꾼 시험 파일 묶음 재실행 · 커밋 · push.
- 검증완료 — ① 23(구조물 명세 helper의
logic/상대 불러오기·baseType가짜 의존성, B09 안내 글, 대시보드 카드 범위·mount 가짜, M02 견본 관 값, 시트 번호 helper 기대) · ② 3(실제 사용자 마스터 값·전체 로직을 읽는 M01 둘, 실제 마스터 동력상하차기 값 한 건) · ③ 0. 지정 파일 열 개를 각각 재현하고 함께pytest실행 = 130 통과·경고 1(httpx deprecated) · 제품 코드·마스터 파일 안 고침.
- 검증완료 — ① 23(구조물 명세 helper의
516. 계산 등록부 거울 시험 메움 (요구 329 · sub1)
- 지운 화면 시험을 가리키는 등록부 10행을 남은 지킴 시험과 대조.
- 덮는 시험은 기존 이름으로 바꾸고, 없는 계산만 합성 자료 Node ↔ 파이썬 거울 시험 보강.
- 등록부 시험 · 바꾼 거울 시험 · 실자료 표식 · typecheck 확인 뒤 커밋 · push.
- 검증완료 — 10행 모두 기존 지킴 시험이 덮어 지운 이름만 걷음 · R3은
test_430_route_edit_rules에 합성 자료 TSnodeEdits= 파이썬node_edits직접 대조 보강 · 등록부 + 관련 거울 12파일 89 통과 · 바꾼 시험 실자료 표식 0 · typecheck 0 · 등록부 다른 행 변경 없음.
- 검증완료 — 10행 모두 기존 지킴 시험이 덮어 지운 이름만 걷음 · R3은
517. B07 표준 횡단면도 = B06 저장값 (요구 330 · 331)
- 사용자 확정: B07 횡단은 B06 저장 정보로 그림 · B06 → B07 는 늘 저장 뒤라 B07 = 최신(알림 없음) · 추천 · 표준 횡단 지금 유지(추천 열쇠 흠 안 고침).
- 517-1 B07 「표준 횡단면도」 = B06 이 저장 · 셈에 쓴 값 그대로(횡단경사 max → B06 값) · B07 이 그리는 노선(route_id)의 저장값만 읽음(최근 종단 행 아님) · 코덱스 — 확인 = B06 저장값 3% → B07 표준도 3% · 노선 둘 프로젝트에서 그리는 노선 값.
- 검증완료: 합성 3건과 B07 Router · 표준도 · 지문 관련 230건 통과(실패 0) · ruff format 완료.
518. 472-3 계산 · 그림 분리 · ⚠ 흠 넷 재현 · 433 확인 (요구 334 · 코덱스)
- 사용자 확정: 472-3 반영(구조물 모양 계산을 그림 파일에서 떼어 logic 으로 · 값 · 화면 그대로) · ⚠ 433-7 · 11 · 17 · 19 재현만 · 433 묶음 지금도 맞는지 확인만.
- 518-1 검사 도구 헛잡음 15 + B05 Corridor 8 파일 계산 떼기(sub5) — 확인 = test_472_3 KNOWN 줄 줄어 통과 · golden · 거울 · typecheck.
- 검증완료 — 헬퍼 = 줄 머리 import 만 셈 · 헛잡음 6 줄 걷음(남은 ui_template_locale 10 =
Route_Carry_Patch→common_util_svg진짜 끌림 · 518-3 몫) · B05 8 줄 걷음 · 시험 110 통과 · 묶음 · 브라우저 새 판 = 옛 판 결과 같음 · 검증 대기.
- 검증완료 — 헬퍼 = 줄 머리 import 만 셈 · 헛잡음 6 줄 걷음(남은 ui_template_locale 10 =
- 518-2 B06 Culvert 6 · Box 2 · Ford 3 계산 떼기(sub6) — 확인 = 같음.
- 검증완료 — logic 새 파일 9(Culvert · _Geom · _Extra · _Tiers · _Types · _Wire · Box_Geom · Ford_Geom · Ford_Pavement) · 그림 파일 5 는 그리기만 · 옛 순수 기하 6 파일 지움 · 부르는 쪽 import 줄만 · test_472_3 자기 11 줄 + 안 끌리게 된 Design_Surface 1 줄 걷음 · 시험 69 파일 384 통과 · typecheck · design-calc · corridor · b07-extent 묶음 · 브라우저 옛 판 ↔ 새 판 130 측점(관 16 · BOX 2 · 세월교 2 · 물넘이 65) 기하 JSON · SVG 같음 · 검증 대기.
- 518-3 B06 Wall 2 · Revetment · Body_Guard · Design_Surface · Excavation · Structure_Layouts · Route_Carry_Patch 계산 떼기(sub7) — 확인 = 같음.
- 검증완료 — logic 새 파일 5(Cross_Wall_Geom · Cross_Wall_Hatch_Geom · Cross_Excavation_Geom · Cross_Design_Surface_Geom · Cross_Revetment_Geom) · logic 으로 옮김 3(Body_Guard → Cross_Body_Guard · Structure_Layouts · Route_Carry_Patch) · 그림 파일 5 는 그리기만 ·
inferStationInterval→ common_util_station(ui_template_locale 끌림 10 줄 걷음 · SESSION_PULLS 빈 목록) · test_472_3 자기 5 줄 걷음 · Wall_Hatch · Excavation · Design_Surface 3 줄 = 518-2 전 Culvert · Box · Ford 그림 파일이 그리기 함수로 부름(518-2 합친 뒤 걷음) · origin/main_laptop_1 합침(B05 logic 이동 충돌 6 = import 줄 · 양쪽 살림) · 고친 대상 시험 294 통과 · 넓힌 시험 856 통과 · golden · typecheck 0 · design-calc · corridor · b07-extent 묶음 · 옛 판 ↔ 새 판 그림 대조(벽 84 · 터파기 168 · 물빼기 266 · 띠 12 · 포장층 22 · 기슭막이 배치 171) 2,018,121 바이트 같음 · 화면(검증_sub7 · B06) 횡단 63 SVG 1,619,983 바이트 지문 같음 · 검증 대기.
- 검증완료 — logic 새 파일 5(Cross_Wall_Geom · Cross_Wall_Hatch_Geom · Cross_Excavation_Geom · Cross_Design_Surface_Geom · Cross_Revetment_Geom) · logic 으로 옮김 3(Body_Guard → Cross_Body_Guard · Structure_Layouts · Route_Carry_Patch) · 그림 파일 5 는 그리기만 ·
- 518-4 ⚠ 433-7 · 433-11 · 433-17 · 433-19 지금도 생기는지 재현(sub2 · 고치지 않음) — 결과 = 흠마다 생김 / 안 생김 · 근거. → 검증완료(조사 · 브레인 PLAN 닫음).
- 518-5 433 묶음 나머지 · 440-3 · 440-4 지금도 맞는지(sub3 · 고치지 않음) — 결과 = 줄마다 남음 / 고쳐짐 · 근거 → 브레인이 PLAN 닫음. → 검증완료(조사 · 브레인 PLAN 닫음).