Commit Graph
5235 Commits
Author SHA1 Message Date
eomsangdonandClaude Opus 5.5 7978579313 fix(494-1 구조물 측점 횡단 형상): B06 화면 밖 카드 = 쉬는 틈 한도 · B05 횡단 판 = 들어올 때 고른 측점
- 원인 B06 = 구조물을 놓으면 새 측점 카드가 빈 설계로 먼저 서고 다시 셈 뒤 화면 밖 카드는 쉬는 틈 줄에서만 갈아 끼움 · 시간 제한이 없어 틈이 안 오는 창(ORCA 내장 · 가려진 창)에서는 설계선 · 옹벽 없는 카드가 그대로 남음(검증_sub1 옹벽 7+5 · 7+10 재현 · 다시 셈 값은 맞음)
- 고침 = createIdleQueue 쉬는 틈 한도 200 ms(늦어도 그 안에 그림)
- 원인 B05 = 「횡단」 판이 고름 바뀜만 들어 고른 구조물을 들고 들어오면 빈 판 · 다시 누르면 고름이 풀림
- 고침 = 판 만들 때 지금 고름을 한 번 따라감(판은 안 폄)
- 시험 test_494_1_idle_queue(쉬는 틈 없는 창 흉내 · 들어올 때 고름 · 고치기 전 빨강) · helper_411_a 에 readSelection 흉내 · 들어옴 장면

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 12:54:12 +09:00
eomsangdon 6786523382 Merge remote-tracking branch 'origin/main_laptop_1' into sub_laptop_2 2026-10-20 11:23:26 +09:00
eomsangdonandClaude Opus 5.5 e434d17928 fix(493-4 관 저장 자리 = 화면 자리): 관 PUT 이 땅 위 좌표를 버려 노선 위 측점 자리로 덮던 것 · GET 관 좌표 = 정본 땅 위 자리
- 원인 = 관 PUT 이 세부유역 계산을 거쳐 속성만 되붙임(carry_facility_attributes · x · y 빠짐) → 저장이 노선 위 측점 자리로 채움 + GET 관 x · y = 노선 위 자리라 [저장] 다시 얹기가 그 자리를 베낌 · 검증_sub2 재현 0.62 m(검증_sub1 1.27 m)
- carry_facility_attributes 가 x · y 도 되붙임 · save_pipe_points = 좌표가 그 누가거리를 낳으면 땅 위 자리 그대로 · 누가거리만 옮긴 낡은 좌표는 노선 위(구조물 fill_structure_coordinates · TS placeOnLine 같은 규칙)
- GET 관 지점 x · y = 정본 좌표(없으면 노선 위 자리) · 지도 lonlat 은 노선 위 그대로
- 거울 시험 test_493_3_follow_screen_save 에 관 x · y(끌기 뒤 화면 = 관 PUT 뒤 정본 · 두 번 고쳐도 그대로 · 누가거리만 옮긴 관 = 노선 위 · 고치기 전 대조 0.2 m 넘게 덮임) · test_428 GET 좌표 글 맞춤

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 11:23:18 +09:00
eomsangdonandClaude Opus 5.5 4aeaa9442b fix(493-5 [적용] 뒤 화면 초안 = 새 초기값): 추천 [적용] 뒤 추가 측점 저장분 다시 받음
- 원인: 페이지를 다시 세워도 추가 측점 저장분 기억(모듈 캐시 · 따라감 기억)이 남아 [적용]으로 지운 측점을 목록 · [저장]에 되살림
- reloadSavedPlusStations — 저장분 · 땅 위 자리 · 받음 표시 · 따라감 기억 비우고 다시 받음 · saveRecommendedRoute 가 clearDrafts 뒤 · 다시 세우기 앞에서 부름
- 시험: test_283_route_reset_confirm 에 [적용] 뒤 저장분 = 서버(0) · [저장] 본문 없음 · 대조(다시 안 받으면 옛 저장분) · 배선 차례

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 11:14:00 +09:00
eomsangdonandClaude Opus 5.5 38037895b1 Merge origin/sub_laptop_1 (493-2) into main_laptop_1
충돌 1 = B05_Profile_Api_PlusStations.ts 붙어 있는 두 추가(493-3 savedPlusRows · 493-2 fetchSavedPlusStations) 양쪽 살림

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AbccG79TsSMUjnGqBq1MUE
2026-10-20 10:11:13 +09:00
eomsangdon 6140e1eecf Merge remote-tracking branch 'origin/main_laptop_1' into sub_laptop_2 2026-10-20 09:51:16 +09:00
eomsangdon 990e6a5b55 Merge remote-tracking branch 'origin/main_laptop_1' into sub_laptop_1 2026-10-20 09:51:15 +09:00
eomsangdonandClaude Opus 5.5 21b8c3231b fix(493-1 손 고침 저장 = 화면 그대로): 노선 손 고침 [저장] 초기화 갈래 걷음 · 시설 따라감 되살림 · 추천 [적용] 500 고침
- 손 고침 [저장](교점 끌기 · 더함 · 지움 · R · /design/save) = 492 이전 따라감 — 구조물 · 관(옵션) · 추가 측점 지킴 · 새 세류선 교차 관만 더함 · 초기값 그대로(요구 289 · 290)
- 추천 [적용](as_initial) = 초기화 + 초기값 다시 뜸 그대로 · 응답 route_reset 은 [적용]에만
- route_shape_changed 걷음(TS 짝 걷기 = sub1) · 한 본문 초기화 갈래 · 초기값 사본 떠 두기 걷음
- [적용] 500 = 떠 두기 중 뒤 추천 미리 셈이 _derived 파일을 지움(FileNotFoundError) → 떠 두기 · 되돌림이 사라진 파일 건너뜀
- 시험: test_283_route_change_reset 고쳐 씀(손 고침 = 따라감 · [적용] = 초기화 · 사라진 파일) · 492 때 고친 따라감 시험 원래 기대로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 09:48:52 +09:00
eomsangdonandClaude Opus 5.5 2b7b129566 fix(493-3 화면 ↔ 저장 자리): 추가 측점 = 끌기 동안 땅 위 좌표를 들고 따라감 — 걸음마다 정수 m 에서 다시 놓아 [저장] 자리와 2~4 m 어긋나던 것
- 원인 = 노선 초안 follow 가 추가 측점을 누가거리만 들고 걸음마다 앞 선 위 정수 m 자리에서 다시 투영(반올림 누적) · 서버 [저장]은 정본 좌표에서 한 번 · 관 · 구조물은 좌표를 들고 가 차 0
- followPlusGround(common_util_route_follow) — 같은 누가거리 저장분 · 앞 걸음 좌표에서 따라감 · follow 단계가 걸음 출력마다 좌표 줄을 기억(B05_Profile_Pipeline_Grade)
- 첫 걸음 = 서버 정본 좌표 — GET plus-stations 에 stations(누가거리 · x · y) · 화면 savedPlusRows · 초안 둔 채 열기 = 초안 노선 자리
- 거울 시험 test_493_3_follow_screen_save(직선 · 곡선 교점 · R · 교점 더함 · 지움 · 앞 교점 여러 걸음 오감 = 관 · 구조물 · 추가 측점 화면 자리 = 서버 자리 · 고치기 전 셈 대조 = 2 m 넘게 어긋남)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 09:45:41 +09:00
eomsangdonandClaude Opus 5.5 7f5019c7ff fix(493-2 손 고침 저장 그대로): 492-2 띠 · [저장] 확인 창 · 저장 뒤 초기화 알림 걷음 · 추천 [적용] 창 수 = 서버 지울 수
- 손 고침 [저장] = 492 이전처럼 바로 저장(확인 창 없음 · 세션 초안 통째 비움 없음) · 평면 · B06 평면 패널 띠 걷음
- 추천 [적용] 확인 창 = 서버 저장분(구조물 · 관 저장 파일 · 추가 측점) 수 — 응답 route_reset.dropped 와 같은 셈 · 세션 초안 안 셈 · 종단 편집 수 뺌
- 안 쓰게 된 것 걷음: routeShapeChanged(TS) · draftShapeChanged · askRouteReset · ROUTE_RESET_BAND · pageRoutePlan · 띠 CSS
- 추가 측점 저장분 받기 fetchSavedPlusStations 한 줄
- 시험: test_283_route_reset_confirm 고쳐 씀(걷음 소스 · 창 수 = 알림 수 · 관 저장 파일 없음 0) · 저장 헬퍼 셋 확인 창 가짜 걷음

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 09:34:05 +09:00
eomsangdon 51204db543 Merge remote-tracking branches 'origin/sub_laptop_1' and 'origin/sub_laptop_4' into main_laptop_1 2026-10-20 07:32:22 +09:00
eomsangdonandClaude Opus 5.5 d2bf68b598 feat(492-2 노선 바뀜 확인): 모양 바뀐 노선 초안 띠 · [저장] · 추천 [적용] 확인 창(지워질 수) · 저장 뒤 초기화 알림
- 판정 = 저장 노선 대 초안이 그릴 선 정점 1 mm(`routeShapeChanged` · 파이썬 `route_shape_changed` 짝) · 스냅 · 간격 · 지형만 = 아님
- 띠 = 평면(노선 편집) 위 한 줄 · B06 평면 패널로 같이 옮겨짐 · 저장 노선 = 페이지 자료 줄 `pageRoutePlan`(조작마다 안 물음)
- [저장] 확인 창 = 잠금 막 · 서버 요청 앞 · 구조물 · 관 · 추가 측점 · 종단 편집 수 · [취소] = 요청 0 · 추천 [적용] 같은 글 · 수
- 저장 뒤 = 응답 `steps.route.route_reset` 지운 수 한 줄 · 초기화면 세션 초안 통째 비움 → 서버 정본으로 다시 세움 · 옛 서버(칸 없음) = 알림 건너뜀
- 시험: 새 test_283_route_reset_confirm(띠 · 확인 창 수 · [취소] · 스냅만 · 거울) · 저장 헬퍼 셋 확인 창 가짜 · 476-2 확인 글 기대 고침

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 07:20:10 +09:00
eomsangdonandClaude Opus 5.5 7a857d626a fix(492-1 노선 바뀜 초기화): 노선 모양이 바뀐 [저장] · 추천 [적용] = 서버 초기화 + 초기값 다시 뜸
- 판정 = 저장 · 새 계획 폴리라인 1 mm 견줌(`route_shape_changed` · TS 짝 `routeShapeChanged` = sub1) · 스냅 · 간격만 = 따라감 그대로
- 체인 초기화 = 사용자 구조물 · 추가 측점 · 관(옵션 포함) 버림 · 관 = 새 노선 세류선 교차만 · 1차 계획선 · 횡단 기본 설계 · 응답 route_reset {reset, dropped}
- 한 본문 초기화 = 보낸 관 · 구조물 · 추가 측점 · 계획고 · 관 옵션 · 넘김 칸 안 씀(페이지 설정만) · 되돌림 범위에 initial_snapshot
- 추천 초기 종단 미리 셈 = 같은 초기화 시설 · 지문에서 시설 파일 뺌
- 시험: 새 test_283_route_change_reset(옛 코드 8 실패) · 검증_sub8 자료 고정 · 실DB 시험 둘 = storage 임시 사본(helper_temp_storage) · 따라감 기대 시험 문구 고침

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 07:12:35 +09:00
eomsangdon 77e31953ef Merge remote-tracking branches 'origin/sub_laptop_4' and 'origin/sub_laptop_8' into main_laptop_1 2026-10-19 22:54:54 +09:00
eomsangdonandClaude Opus 5.5 682be199fd feat(485-2 B07 축척): ⚙ 모달 X · Y 축척 칸 — 종단 · 횡단 · 토적 · 전개도 · 분모 정수 · 범위 밖 = 칸 붉음 + 저장 꺼짐 · 토적 X · 전개도 「자동」 · 저장본 n 장 물음 · 저장 뒤 화면 다시 세움 · [기본값] · 새 _UI_Settings_Scale.ts · 판정 logic/_Scale_Check.ts · 시험 test_280_5 축척 셋
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:53:40 +09:00
eomsangdonandClaude Opus 5.5 2307d7d9f4 fix(482-2 이관 막이): 옛 비정규 측점 이관이 「기타 구조물」을 만들지 않게 — 이름 빈 측점 건너뜀 · 낡은 종단이면 건너뜀 · 저장 잠금 안 · 이미 생긴 것은 알림만 · 측점 맞춤 실패 알림
- Migration: 이름 빈 측점 = 추가 측점 정본 소관
- Structures_Router: 이관 = 프로젝트 저장 잠금 안 · 종단 정본이 지금 심는 자리를 다 못 세웠으면 skipped · 응답 legacy_etc(옛 이관 「기타 구조물」)
- B05 화면: legacy_etc 가 있으면 경고 알림(지우지 않음)
- Router_Stations: 맞출 측점이 있는데 샘플링 조건 없음 = StationsUnsynced · 추가 측점 PUT 응답 stations_synced
- 새 시험 test_280_3_migrate_guard(임시 폴더) · 옛 코드에서 다섯 실패

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:51:52 +09:00
eomsangdon 025a07c356 Merge remote-tracking branch 'origin/sub_laptop_2' into main_laptop_1 2026-10-19 22:44:06 +09:00
eomsangdonandClaude Opus 5.5 6414fb83d8 feat(490-1 임시 횡단 표시): B05 종단 그래프 — 누르면 임시 횡단이 열리는 자리 가까이 원 · 세로 점선 · 측점 글 · 손가락 커서
- 판정 셈을 logic/B05_Profile_Profile_CrossPick.ts 한 함수(crossPickAt)로 뺌 — 누름 · 표시가 같은 판정
- 원지반선 위아래 8 px · 추가 측점 선 = 그 측점 · 측점선 · 단추 · 도구 중 · 끌기 · 스크롤 = 안 그림
- 포인터 이동 소수 px 를 누름과 같이 내려 맞춤 — 0.5 m 경계 1 m 어긋남 막음
- 시험 test_490_1_cross_pick · test_368_3 연결 자리 갱신

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:43:19 +09:00
eomsangdon ca1c91e7db Merge remote-tracking branches 'origin/sub_laptop_4' and 'origin/sub_laptop_6' into main_laptop_1 2026-10-19 22:39:50 +09:00
eomsangdonandClaude Opus 5.5 4da510f6df fix(482-1 노선 바뀜 구조물 측점): 노선 초안 중 되돌리기 · 다시하기가 관 · 구조물 · 추가 측점도 그 걸음 사진으로 묶음에 넣음 · 초안 측점 맞춤이 상세 틀(옛 · 새 노선)을 앎
- design_pipeline_page follow 되살림 차례 = 계획고 사진 + 가게 관 · 구조물 · 추가 측점(묶음 측점 유령 · 빠짐 없앰)
- Section_Store 가 노선 초안 동안 상세 틀을 정해 넘김 · Drafts = 옛 틀이면 저장분으로 맞춤 · 얹음 · 새 틀이면 저장분 종류 대조 안 함
- 새 시험 test_280_3_route_undo_facilities(헬퍼 둘 · 검증_sub4 읽기만) · 옛 코드에서 되돌리기 넷 실패

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:39:37 +09:00
eomsangdon 1e71ef8085 Merge remote-tracking branches 'origin/sub_laptop_3' and 'origin/sub_laptop_7' into sub_laptop_2 2026-10-19 22:28:47 +09:00
eomsangdonandClaude Opus 5.5 cdfd2c6663 feat(487 CAD 글 테두리 · 리본 켜짐): 스침 테두리 = 더블클릭 입력 칸 한 벌(text-frame) · 잡는 범위 = 테두리 안 · 리본 켜짐 하나만
- 새 helpers/text-frame.ts — 정렬 · 가운데 맞춤 · 실제 글꼴 폭(굵게 · 기울임) · 회전 · 여러 줄 묶음 · 도각 칸 = 테두리 한 셈
- TextEntity 스침 · 고름 테두리 = 그 네 귀(여러 줄은 묶음 하나) · distanceTo = 테두리 안 0 · getBoundingBox 그대로
- 입력 칸 자리 · 폭 · 높이 = 같은 셈(여유 = 안쪽 여백) · 더블클릭 범위 = 테두리 + 집기 반경
- measureTextScreen 글꼴 받음 · 디버그 창구 textFrame(화면 네 귀)
- 리본 스침 = 바탕만(hover 기기만) · 켜짐 = 테두리 + 밑줄 · 누른 뒤 blur(초점 테두리 남음 막음)
- 시험 text-frame.test.ts 새로 · text-inplace-edit.test.ts 칸 폭 · 여백 · test_cad_host_tabs 줄바꿈 무관

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:25:55 +09:00
eomsangdon be519af601 Merge remote-tracking branches 'origin/sub_laptop_1', 'origin/sub_laptop_3', 'origin/sub_laptop_5', 'origin/sub_laptop_6', 'origin/sub_laptop_7' and 'origin/sub_laptop_8' into main_laptop_1 2026-10-19 22:25:12 +09:00
eomsangdonandClaude Opus 5.5 8c53124348 feat(485-1 B07 축척): 도면 X · Y 축척 서버 — 프로젝트마다 drawing_scales.json · GET/PUT /api/projects/{id}/drawing-scales · 엔진 drawing_scale(kind) 문맥 변수 · 종단 · 횡단(X ≠ Y) · 토적 · 전개도 · 바뀐 종류 저장본 풂 · 덧그림 mm_per_m_x · _y · 범위 밖 400 · 시험 test_280_5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:23:02 +09:00
eomsangdonandClaude Opus 5.5 6695dfaee9 feat(488-3 DWG 불러오기): 삽입 탭 [DWG 불러오기](IMPORT) — 끌어다 놓기와 같은 서버 변환 · 원좌표 · 골라진 채 · 화면 맞춤 · 되돌리기 한 번 · 파일 입력 문서에 숨겨 붙임 · ByLayer 도형 = 레이어 색(B07 붙이기 · M02 불러오기 같은 _color) · 시험 catalog · test_b07_dxf_clip 한 건씩
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:17:13 +09:00
eomsangdonandClaude Opus 5.5 197f5b589f feat(481-2 B08 · B09 저장 후 이동): 단계 이동 = 보이는 화면 저장 성공 뒤 · 실패면 머묾
- B08 = 왼쪽 옵션(옵션 · 이정 캐시) → 지금 탭(자재 · 수리 · 떠난 탭 host.isConnected 거짓이면 안 부름) · 캐시 없으면 요청 없이
- 저장 함수(옵션 · 자재 · 수리 · B09 run) 성공 여부 돌려줌 · B09 = 불러오기 전 · 고침 없음이면 요청 없이 이동
- 시험 test_481_2_save_move 새로 · 121 · 122 원본 줄 기대 갱신

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:14:21 +09:00
eomsangdonandClaude Opus 5.5 99df7c2512 feat(488-2 CAD 선 속성): 색 · 선 두께 · 선종류 = 고른 것의 값(다르면 빈 칸 · 색 = 점선 빈 견본) · 고른 것만 바꿈 · 폴리선 자식까지 · 사본 갈아 끼움으로 Ctrl+Z 한 번 = 옛 값 — 새 helpers/selection-style.ts 를 리본 · 특성 판 · COLOR · LINETYPE · LWEIGHT · TRANSPARENCY · MATCHPROP · SETBYLAYER · LAYMCH · LAYCUR 가 같이 씀 · 시험 selection-style.test.ts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:13:08 +09:00
eomsangdonandClaude Opus 5.5 659baa7751 feat(484 B07 설정): 좌측 ⚙ 설정 모달 · [현재 도면 확정] · [수정] 지움 · 저장 후 이동(481-3) · 탭 줄 겹판 자리
- 공용 createPanelCard 곁값 onSettings — 캐럿 왼쪽 ⚙ · 누름이 접힘 안 일으킴(B08 · B09 그대로)
- 평면도 ⚙ = 평면도 관리 모달([평면도 관리] 단추 지움) · 횡단도 ⚙ = 배치 칸 · 표 배율 · 안내선(카드 밑 칸 지움) · 구조물 ⚙ = 「M02 그림 — 축척 없음」 · 종단 1장 · 토적 = 단추 안 ⚙ · 표지 없음
- ⚙ 머리 [원본에서 다시 그리기] — 그 묶음 도면을 연 때만 · 저장본이면 invalidate
- 잠금 없음(요구 281) — 읽기 전용 안 묶음 · 자동 B08 이동 · 「모든 횡단 확정」 잠금 지움
- onStepClick 한 길 = 고친 탭(●) + 지금 탭 저장 → B08 · B09 면 단계 4 완료(새 POST design-drawings-complete) → 이동 · 실패 = 머묾
- 저장 · 원본 묶음 = 새 B07_DesignDetail_UI_Save.ts · 모달 = 새 B07_DesignDetail_UI_Settings.ts(UI_Page 633 → 543줄)
- 탭 줄 = .cad-host 의 --cad-tab-slot-left/right(px · CSS left · right 꼴) 있으면 리본 빈 자리에 겹침 · 없으면 지금 자리
- 시험: 새 test_280_5_b07_settings · 130 · 153-1 · 180-3 · 212-3 · 269 · 311 고쳐 씀

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:13:04 +09:00
eomsangdonandClaude Opus 5.5 75f990c97e fix(483-3 B05 스냅): 손대지 않은 곡선 MC 꼴(N+0 · N+10) 유지 — 고친 곡선만 고른 간격
- StationFit fitAfter · fitDrag(before) — 고치기 전 노선의 곡선 꼴을 IP 자리 + 곡선 칸 열쇠로 기억 · 밀 거리 = 측점 간격
- 10 m 배수(No.N+10)도 측점 위(offStationMcs · 맞춤) · 서로 다른 측점 = 누가거리
- RouteEdit = fitAfter 한 줄 · fitLimits stationM · 694줄
- 시험 = 새 test_280_4_fit(고치기 전 동작 = 190 → 180 대조) · 366_3 · 390_5 이음 글

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:08:09 +09:00
eomsangdonandClaude Opus 5.5 9a8ff3ee86 feat(480 드롭다운): 마우스로 고른 뒤 한 박자 뒤 초점 뺌 — 키보드 고름 그대로 · 공용 진입 · CAD iframe · 종단 새 창 세 자리
- ui_template_native_menu.ts releaseSelectAfterPick — 창 캡처 pointerdown · keydown · change · 아직 그 select 에 초점일 때만 blur
- 시험 test_280_6_select_release 새로 · 옛 가짜 import 두 헬퍼(282-1 · 224-1c)에 새 함수 흉내

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:07:40 +09:00
eomsangdonandClaude Opus 5.5 dce63ccc21 feat(486 B07 CAD 화면): 제목줄 · 램프 · 하단 도면 칸 지움 · ↶ ↷ = 리본 탭 줄 오른쪽 · 손가락 단추 = 자판 없는 기기만 · 탭 줄 빈 자리 변수
- 제목줄(Aislo CAD · 부제 · 「현재 도면」 램프) 지움 · --cad-title-height 0 · 💾 · JSON 내보내기 = DOM 두고 숨김(QUICK_ACCESS_HIDDEN)
- 빠른 실행 = 리본 탭 줄 빈 자리 뒤 · 접기 단추 앞(줄 높이 26 그대로 · M02 hostSave 면 안 그림)
- 빈 자리([출력] 오른쪽 ~ ↶ 왼쪽) → .cad-host 에 --cad-tab-slot-left/right(iframe 끝 기준 px) — 부모 탭 줄 겹침 자리
- ☰ 비키기 패딩 = 리본 탭 줄로 · 손가락 단추 = (hover: none) and (pointer: coarse) 만
- 하단 도면 이름 · ‹ › · 확정 칸(QuantityPanel) · 이동 요청 지움
- 시험 test_cad_touch(미디어 조건) · test_cad_host_tabs(머리줄 · 빈 자리 변수) 고쳐 씀

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:07:35 +09:00
eomsangdonandClaude Opus 5.5 add2887c30 feat(488-1 CAD 이름 · 안내 글): 도면층 → 레이어 · 선가중치 → 선 두께(CAD 안 글 · 툴팁 · 명령 목록 · 토씨 손봄 · 저장 열쇠 그대로) · 우측 위 안내 한 줄 「DWG · DXF 파일을 끌어다 놓거나 [삽입 → DWG 불러오기]」 · 시험 한 줄
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:07:07 +09:00
eomsangdon b66d4d705e Merge remote-tracking branches 'origin/sub_laptop_1' and 'origin/sub_laptop_2' into main_laptop_1 2026-10-19 22:06:17 +09:00
eomsangdonandClaude Opus 5.5 d593075ea5 feat(481-1 페이지 이동): B05~B09 좌측 아래 [?] [<] [>] — 이웃 진행 단계 단추 누름 · B05 · B06 [노선 보기] · [횡단 보기] 지움
- ui_template_help: [?] 뒤 [<] [>] · 다섯 주소 목록만(b09-print · B03 · B04 · M01 · M02 뺌) · B09 [>] 흐림 · ui-step-nav 이벤트
- ui_template_workflow_layout: ui-step-nav 듣개 — 켜진 칸 ±1 단계 단추 click(onStepClick 한 길) · 꺼진 단계 = 그 단추 title 알림
- CSS: [<] [>] = [?] 같은 정사각 · 늘어남 규칙에서 뺌(overlay · B09 도크 한 줄)
- design_dock · design_shared · locale_b2: switchView 단추 · 글 지움
- 시험: test_280_2_step_nav(새) · test_design_view_parity(단추 셋)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:05:26 +09:00
eomsangdonandClaude Opus 5.5 37e3ee6126 fix(479 B06 횡단 정보 칸): 처음 빈 칸 · 암 정보는 암 점선 고를 때만 — 안 고름 암 갈래 · 그림 없는 카드 암 칸 · 죽은 buildRockBoundaryControl 걷음 · 시험 370-3 · 318 · 137 고쳐 씀
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:03:40 +09:00
eomsangdonandClaude Opus 5.5 20d0fd5e51 fix(483-1·2 B05 스냅): 일반측점을 MC 로 옮기지 않음 · MC 특별측점 더함 · 스냅 간격 1 m · 0.1 m 지움
- 서버 snap_curve_stations ↔ TS snapCurveStations · gridIndices 지움 — 스냅 켬 = 끔과 같은 측점(20 m 그대로 + 「No.N+10 (MC)」)
- 고르기 = 10 m · 측점 No. 둘 · load_station_snap_step = 10 만 · 옛 0.1 · 1 = 측점 No.
- 시험 = 새 test_280_4_stations(거울 다섯 경우) · 224_2 · 344_3 · 366_3 · 390_4 · 390_5 · 407 고쳐 씀

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 21:58:53 +09:00
eomsangdonandClaude Opus 5.5 7a6c6a2b95 chore(정리): graphify · 위키 찌꺼기 — main.py 리로드 건너뜀 목록의 graphify-out · 위키 린터 스크립트
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6BNBFXFndbqYxu6sZuknK
2026-10-19 20:35:13 +09:00
eomsangdonandClaude Opus 5.5 482a443dce chore(문서): 문서 사이트 운영 안 함(사용자) — docs/tools · mkdocs.yml · 시험 478 둘 지움 · 생성물 무시 줄 걷음 · docs = guide · raw
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6BNBFXFndbqYxu6sZuknK
2026-10-19 20:02:53 +09:00
eomsangdonandClaude Opus 5.5 47a63d3fa4 feat(478-2 문서 사이트): 진짜 추출로 맞춤 — TypeDoc kind-dir(대소문자 겹침 막음) · 도구 대 추출 비교 규칙 · 공용 도구 묶음 · 손글 지문 · TS 메뉴 쪽
- TypeDoc router kind-dir — structure 는 같은 이름 인터페이스 · 함수가 Windows 에서 한 파일로 덮임 · 겹침 링크 안 함
- 비교: TS = export 함수 · 메서드 · 생성자 · 접근자(상속 · 숨은 생성자 뺌 · export * 는 원본으로) · 파이썬 = 안쪽 함수 뺀 전부 ↔ griffe(속성 · 자동 생성 __init__ 반영)
- groups.yml 공용 도구(common_util_* 끝 규칙) · 묶음 없음 0 · 손글 18 묶음 지문
- 결과: 함수 5,746 · 묶음 18 · 세션 칸 45 · 서버 주소 41 · strict 경고 0 · test_478_docs 9 통과

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 19:22:10 +09:00
eomsangdonandClaude Opus 5.5 67e58c45a4 merge(478-2): origin/sub_laptop_2(478-1 추출) 합침 — package.json = ts-morph + typedoc 줄 합침 · README = 추출 + 사이트 절
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 19:00:38 +09:00
eomsangdonandClaude Opus 5.5 9e315a8abb feat(478-1 문서 추출): 추출 스크립트 셋 + JSON — ts-morph · ast · app.openapi() · 한 명령 extract_all
- extract_ts.mjs — 함수(kind · exported · doc · params · returns · calls · called_by · 다시 내보내기) · 세션 칸 · 서버 주소 글자 · 계산 등록부 그대로
- extract_py.py — def 전부 · docstring 첫 줄 · 부르는 함수 · FastAPI 라우트 데코레이터
- extract_api.py — 서버 안 켜고 openapi 주소 → handler · TS 부르는 곳 짝 · 짝 없는 것 따로
- 범위 = scope.json 한 곳 · 세는 규칙 = README · 시험 test_478_extract(6)
- 수치 = 함수 5746 · 세션 칸 45 · 서버 주소 41 · 등록부 45 · 14.3 s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 18:53:44 +09:00
eomsangdonandClaude Opus 5.5 2e6086c5ee feat(478-2 문서 사이트): 묶음 규칙 · 원고 생성 · mkdocs 설정 · 손글 옮김 · 검사 시험(가짜 추출)
- docs/tools/groups.yml · group.py — 함수를 로직 묶음에 자동 배정(계산 등록부 id · 파일 이름 무늬 · 안 맞음 = 묶음 없음 · 함수 목록 지문)
- docs/tools/build.py — 추출 JSON + 손글로 페이지 · 묶음 화면 · 함수 칸 · mermaid 흐름 · 세션 칸 · 서버 주소 · 설명 확인 필요 표시 · 함수 화면은 TypeDoc(markdown) · mkdocstrings(griffe)
- docs/mkdocs.yml · nav_hook.py — Material · 한국어 · 검색 · mermaid · 왼쪽 메뉴 페이지 → 묶음 → 함수
- docs/guide/B05_B06 — 8 파일을 page.md(개요 · 규칙 · 사용자 결정) + groups/*.md 17 개로 줄여 옮김
- resources/tester/test_478_docs.py · fixtures/478_docs — 가짜 추출로 배정 · 사이트 strict · 도구 대 추출 · 진짜 추출은 있을 때만

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 18:53:43 +09:00
eomsangdon 6dee76952f Merge remote-tracking branch 'origin/sub_laptop_7' into main_laptop_1 2026-10-19 17:24:18 +09:00
eomsangdonandClaude Opus 5.5 466a2d6204 fix(476-1 · 요구 277): 추천 [적용] = 횡단 손 입력도 버림 — 새 노선 기준 초기화
- carries_cross_inputs(initial) = not initial — [적용]이면 측점마다 기본 설계(손 노선 [저장]은 같은 자리 넘김 그대로)
- 시험 test_476_1_apply_initial 「적용은 횡단 손 입력 버림」(옛 코드 = 넘김)
- 위키 rules · operations_b05 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 17:23:21 +09:00
eomsangdon 5e6dd88fdb Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-10-19 17:03:43 +09:00
eomsangdonandClaude Opus 5.5 b916397141 fix(476-2 추천 초기 종단): 초기 종단 한 줄 = 알림 N건 · 알림 글은 마우스 올림
화면 확인(검증_sub1) 알림 37~94건이 한 줄에 다 붙어 줄이 넘침.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 17:02:56 +09:00
eomsangdonandClaude Opus 5.5 f9b157f002 fix(476-1 ④): 추천 [적용]도 [저장]과 같은 프로젝트 잠금 · 떠 두고 실패면 되돌림
- replan_route as_initial = guard.project_lock 안 · DB 행(지표면 확정 포함) · storage(STORAGE_SCOPE + 배수) 떠 둠 → 실패(409 · 예외)면 되돌림 · 응답 waited
- 본체 `_save_route`(손 노선 [저장] = /design/save 가 잠금 · 떠 두기)
- 부름 없던 `_write_working_route` 지움(700줄)
- 시험 test_476_1_apply_initial 겹침 기다림 · 실패 되돌림 · 손 저장 잠금 밖 · 346-3 가짜 세계에 떠 두기 가짜

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 16:56:48 +09:00
eomsangdon 2083ad15b2 Merge remote-tracking branch 'origin/sub_laptop_7' into sub_laptop_1 2026-10-19 16:51:03 +09:00
eomsangdonandClaude Opus 5.5 aa87dcfd68 feat(476-1 ③): 추천 후보 초기 종단 미리 셈 — 응답 칸 initial_profile · 저장본
- 새 `B05_Profile_Engine_InitialProfile` — 후보 노드 → 화면 펴기 짝(`draft_nodes` ↔ TS flattenServerPlan) → 노선 짜기(csv 4자리) → 관 · 구조물 · 추가 측점 따라감(새 세류선 교차 관 포함) → build_sections(438 1차 계획선) → 켬 = 1 m 균형 종단 얹기(seat_base_pvi)
- 새 `B05_Profile_Router_RouteInitial_Initial.initial_profile_of` — [적용] 체인과 같은 입력 모으기 · 지문(후보 · 지형 · 페이지 설정 · 시설 파일 · 측점 옵션 · 균형 인자 · 코드) · 저장본 `route_recommend/initial/<키>.json` · 실패 = {error}
- compute_initial 응답에 `initial_profile`(stations_m · ground_m · plan_m · line · pvi_count · curve_count · straightened · max_grade_pct · curve_length_m · warnings · with_profile · seconds)
- 시험 test_476_1_recommend_initial — 미리 셈 ↔ 체인 파일 길 꼭짓점 차 0 mm(끔 · 노선 바뀜 + 옹벽 + 추가 측점 · 켬) · 지문 · 응답 칸
- 위키 calculations N2 · rules 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 16:49:59 +09:00
eomsangdon 0ff310604e Merge remote-tracking branch 'origin/sub_laptop_4' into main_laptop_1 2026-10-19 16:46:15 +09:00