Commit Graph
8312 Commits
Author SHA1 Message Date
eomsangdon 5a4e07f25b Merge remote-tracking branch 'origin/sub_laptop_8' into main_laptop_1 2026-10-16 14:10:12 +09:00
eomsangdonandClaude Opus 5.5 337edb3f20 fix(B05 노선편집): 349 테마 바꿈 뒤 평면 캔버스 다시 그림 — 밝음 ↔ 어두움(단추 · 시스템) 알림에 다음 프레임 다시 그리기 · 바탕 · 등고선 · 노선 · 발자국 색 토큰 다시 읽음
- _RouteEdit_Render.watchTheme(data-theme · prefers-color-scheme · 공용 색 캐시가 먼저 비워지게 다음 프레임) · 편집기가 붙이고 떠날 때 뗌
- 시험: test_349_routeedit_theme_redraw 3 · 관련 37 통과 · typecheck 0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Se7ytqbohmBQnfYpwYFnYf
2026-10-16 14:09:13 +09:00
eomsangdonandClaude Opus 5.5 14348279fa fix(노선추천): 349 노선 추천 창 옛 글 — 미리 보기 줄 = [적용]하면 바로 저장 · 새 초기값 · 종단 반영 설명 = [적용] 뒤 본 설계 값과 차이 · [적용]하면 이 종단이 첫 계획선(편집 [확인] · 아래 띠 글 지움)
- 다른 옛 글: 노선 편집 상태 줄 「곡선 기준 R — [확인] 때 반영」 → [저장] 때 · 분석 지형 풍선 「편집 창 분석」 → 노선 편집 분석
- 시험: test_349_old_wording 3 · 관련 77 통과(7 건너뜀) · typecheck 통과

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VmC34fsxxbweEG3RUjs3Mn
2026-10-16 14:08:22 +09:00
eomsangdonandClaude Opus 5.5 d36137f850 fix(초기화): 349 [초기화] 확인 글 — 초기값 = 파일 올린 뒤 자동설계 또는 마지막으로 [적용]한 추천 노선 · 다시 셈 아님(저장해 둔 초기값 그대로) · 끝 알림 = 초기값으로 되돌렸습니다
- 「마지막으로 확정한 노선 · 재계산에 시간」 글 지움 · 영문도 같이 · design_reset 머리 글도 같은 뜻

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VmC34fsxxbweEG3RUjs3Mn
2026-10-16 14:08:21 +09:00
eomsangdonandClaude Opus 5.5 031b5be1d4 feat(B05 노선편집): 349-0 처음 그림 · [맞춤] = 등고 영역 맞춤 · 뜬 종단 판은 덮이기만 — 판이 없다고 보고 칸 전체 가운데에 등고선 범위 ∪ 노선을 85% 몫(둘레 여유) · 판 끌기 · 접기에 평면 자리 · 글판 · 잰 값 창 · 곡선 바 그대로
- 새 logic/B05_Profile_RouteEdit_Fit(unionArea · fitAreaToView) — 옛 _Visible 자리
- _RouteEdit_Cover 지움 · View · CurveBar · CSS 의 덮인 높이 따라가기 걷음(345-5 덧 · 덧 2)
- 글판 · 도움말 접기(덧 3)는 그대로
- 시험: test_345_5b_plan_visible_area 3 고쳐 씀 · test_345_5c 자리 줄 고침 · 관련 86 통과 · typecheck 0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Se7ytqbohmBQnfYpwYFnYf
2026-10-16 13:55:35 +09:00
eomsangdonandClaude Opus 5.5 e5cd5ef813 chore(요구): 234 — B05 평면 판이 올라와도 다시 맞추지 않음 · 처음 그림 = 판 없다고 보고 등고 영역 알맞게 · 판은 덮이기만 · 아티팩트 보고 뒤 깃 싱크 · 다음 작업
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6BNBFXFndbqYxu6sZuknK
2026-10-16 13:49:59 +09:00
eomsangdon 0eb5fffcb9 Merge remote-tracking branch 'origin/sub_laptop_4' into main_laptop_1 2026-10-16 13:46:07 +09:00
eomsangdonandClaude Opus 5.5 281c71b55b refactor(logic): 348-1 순수 계산 TS 49 파일 <페이지>/logic/ 로 옮김 — 이름 앞머리 그대로 · 동작 고침 없음
- 옮김: B04 2 · B05 23 · B06 11 · A00_Common/design 13 (9,299 줄) · 이미 logic/ 에 있던 16 파일 그대로
- 안 옮김: 묶음 입구(package.json build:*) · 파이썬 · 순수지만 계산 아닌 8 (보기 결선 · 콜백 · API 타입 · 갈아끼움 알림판)
- import 266 줄(142 파일) · 시험 · 주석 · 짝 표시 문자열 경로 고침 · B05 · B06 CLAUDE.md 짝 줄 logic/
- 시험 도우미 새 경로: 가짜 require 열쇠 · B05()/B06() 부름 · 형제 import 자리 · tsc 묶어 돌리는 시험 · 정규식 · rglob
- design_view_cross 줄 한도 시험 685 → 688 (긴 import 경로 줄바꿈 3줄)
- 확인: typecheck 0 · 서버 묶음 넷(corridor · server-calc · b07-extent · b07-note) 다시 지어 코드 같음(//#region 경로 주석만 다름) · 관련 시험 270 파일 — 남은 실패 19 는 옮기기 전과 같음

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014utrjfoW831Vc5wJUd13kL
2026-10-16 13:44:50 +09:00
eomsangdonandClaude Opus 5.5 b8b4421ff0 fix(349): 횡단 상세 안쪽 호출 길 복구 — GET 처리기만 ETag · 조립 함수는 request 없이
343-2 ETag 가 get_section_detail 에 request 인자를 더해 [저장] 뒤 서버 재계산 · 3D 길 모형 서버
짓기 · B09 인쇄 도면 · B07 덧그림 범위가 TypeError 로 끊기던 흠. 처리기 = get_section_detail_route
(ETag · 304) · get_section_detail = 조립만(안쪽 호출 넷 그대로). 진짜 처리 길 시험 test_349.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
2026-10-16 13:21:55 +09:00
eomsangdon 109d5e9a8f Merge remote-tracking branch 'origin/sub_laptop_2' into main_laptop_1 2026-10-16 13:08:22 +09:00
eomsangdonandClaude Opus 5.5 835d8ce828 feat(종단알약): 346-2 덧 3 노선 초안 동안 구조물 · 관 알약 = 묶음 follow 뒤 자리
- 새 logic/B05_Profile_Structure_Follow followedMarks: 묶음 입력(follow 뒤) 관 · 구조물의 새 누가거리를 알약 목록에 얹음 · 구조물 id 짝 · 구간형 시작 · 끝도
- 관 알약 id(세션 id) ≠ 묶음 관 id(서버 고정 id) — 누가거리 차례 짝 · 관 수가 안 맞으면 관은 안 옮김
- Structures_Marks: 노선 초안이 있으면(지금 프로젝트 묶음) 따라간 목록으로 알약 · 띠 · 툴팁 · 초안 버리면 저장 자리
- 시험 test_346_2_draft_cross_pills 5(횡단 카드 = 새 노선 상세 · 숨은 동안 안 그림 · 초안 버림 = 저장 노선 · 알약 자리)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QfHKQs7J3hQELKMWQMUJEy
2026-10-16 13:07:30 +09:00
eomsangdonandClaude Opus 5.5 ec28d9d451 feat(횡단보기): 346-2 덧 3 노선 초안 동안 횡단 카드 = 묶음 새 노선 상세
- Station_Swap shownDetail: 노선 초안 동안 카드가 그릴 상세 = pipelineDetail(cross 단계 결과) · 없으면 저장 노선 캐시
- followSwaps 가 묶음 profile · cross 단계 뒤 새 상세를 들음 — 보일 때만 다시 그림(보이는 카드 먼저 길 그대로) · 숨었으면 다시 보일 때
- 묶음은 종단 보기가 세움 — 차례 번호(가게 generation)가 날 때 붙음 · 초안 버리면 상세 null = 저장 노선 카드
- design_view_cross 2줄(가져오기 · 그리기 상세) · 685 줄 그대로 · 저장 · 재계산 길은 저장 노선 상세 그대로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QfHKQs7J3hQELKMWQMUJEy
2026-10-16 13:07:20 +09:00
eomsangdon 422d0962a4 Merge remote-tracking branch 'origin/sub_laptop_8' into main_laptop_1 2026-10-16 13:04:15 +09:00
eomsangdonandClaude Opus 5.5 abe6168f3f feat(B05 노선편집): 345-5 덧 3 상태 · 범례 · 도움말 글판 접기 — 상태 · 범례 글판 작게(두 줄 · 폭 460 px 안 · 반투명 토큰 바탕) · ▾ 접으면 한 줄 「계획노선 N m」 · 도움말 기본 접힘 · [?] 펼침 · 접힘 기억 페이지 동안
- _RouteEdit_Chrome: 접기 단추 둘 · 모듈 값 기억 · 상태 글 바뀌면 요약 글 다시 씀(MutationObserver)
- Style_RouteEdit: 글판 격자(상태 두 줄 자름 · 범례 두 줄 · ▾) · 접기 단추만 클릭 받음
- 시험: test_345_5c_info_hint_collapse 4 · 관련 62 통과 · typecheck 0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Se7ytqbohmBQnfYpwYFnYf
2026-10-16 13:03:26 +09:00
eomsangdon 1a0cbdad1d Merge remote-tracking branch 'origin/sub_laptop_5' into main_laptop_1 2026-10-16 13:00:45 +09:00
eomsangdonandClaude Opus 5.5 9adc35473e fix(종단보기): 346-3 덧 계획고 초안 이음매 — 노선 저장 뒤 노선 초안 칸(DRAFT_ROUTE_ID 0 · sub7) 계획고를 새 노선으로 · 없으면 옛 노선 칸 · 두 칸 다 비움
- design_save 의 DRAFT_ROUTE_ID = design_pipeline_page 값과 같음(합친 뒤 시험이 대조)
- 시험: test_design_store_save 덧 하나 · 관련 52 통과 · typecheck 통과

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VmC34fsxxbweEG3RUjs3Mn
2026-10-16 13:00:04 +09:00
eomsangdon 0a41f3869a Merge remote-tracking branch 'origin/sub_laptop_5' into sub_laptop_8 2026-10-16 12:58:32 +09:00
eomsangdonandClaude Opus 5.5 2764117120 fix(종단보기): 346-3 덧 [저장] 뒤 「노선 밖 고침」 알림 두 줄 → 한 줄 — carryStationDrafts 조용히 꼴(quiet · 기본은 알림 그대로) · 수는 결과 한 줄에 합침
- 시험: test_346_3_route_save_screen 9 · 관련 97 통과 · typecheck 통과

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VmC34fsxxbweEG3RUjs3Mn
2026-10-16 12:34:14 +09:00
eomsangdonandClaude Opus 5.5 d5360194c9 fix(노선추천): 346-3 덧 남은 「[노선 반영]」 글자 — [초기화] 풍선 = 다시 계산은 [저장]에서 · [노선 추천] 풍선 = [적용]은 바로 저장 · 새 초기값
- 주석 글자도 지금 흐름으로([저장] · [저장 전으로]) — RouteEdit · _History · _Draft · design_view_profile
- 남김: design_profile · design_pipeline_page 주석(sub7 일하는 중) · 「없앰」을 적은 주석 · 서버 옛 칸 설명

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VmC34fsxxbweEG3RUjs3Mn
2026-10-16 12:34:13 +09:00
eomsangdon 2084533aa8 Merge remote-tracking branch 'origin/sub_laptop_7' into main_laptop_1 2026-10-16 12:33:17 +09:00
eomsangdonandClaude Opus 5.5 a35d49b4e2 feat(계산묶음): 346-1 · 346-2 남은 단계 붙임 — cross · masshaul · haul · drainage · corridor · 노선 초안 동안 유토곡선 = 새 노선 횡단
- design_pipeline_page: 단계 다섯 한 줄씩(부르기만) · 단면 유형 기본값 = 새 지형 상단측(서버 노선 저장 규칙) · haul · corridor 는 노선 초안 동안만 · 열 때 한 번 셈(발자국 바로 보임)
- 노선 초안 동안 종단도 = 새 노선 상세(pipelineDetail — 지반 · 측점 · 횡단 면적 → 유토곡선) · 저장 노선 횡단 다시 셈 안 함
- 횡단 입력 = 저장 상세의 측점 입력을 측점 열쇠로(design_pipeline_cross · 넘기는 칸 = 서버 CARRY_INPUT_KEYS 와 같음)
- 저장 관 목록(좌표 · id) = 관 입력 바탕 · 첫 계산도 저장 노선 기준으로 좌표 따라감(createFollowStage)
- 노선 초안 동안 계획고 = alignment-draft 노선 0 칸(DRAFT_ROUTE_ID) · 초안 버리면 비움 · [저장] 이음 = sub5
- 상단측 짝(logic/B05_Profile_Pipeline_Detail uphillSide ↔ Engine_Sections_Core uphill_side) · 측점 열쇠 = common_util_station_key 한 벌
- 시험 test_346_2_pipeline_cross_page 14 · 옛 시험 둘 새 꼴에 맞춤(317 · 230_2) · 346-1 도움 파일 창구 셋 가짜

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TteK8mfYZetk5P3bEZkyVZ
2026-10-16 12:32:11 +09:00
eomsangdon 8f4f3b1348 Merge remote-tracking branch 'origin/sub_laptop_2' into main_laptop_1 2026-10-16 12:29:09 +09:00
eomsangdonandClaude Opus 5.5 da3dfc1ca8 feat(종단보기): 346-2 덧 2 B05 종단 보기 · 3D 측점선도 갈아끼운 상세로 — 보일 때만 · 숨었으면 다시 보일 때 · 횡단 보기 없이도
- design_view_profile_sections: 노선마다 상세 갈아끼움을 듣고 종단도 · 표 · 3D 측점선 다시(보일 때만 · 숨으면 flushSwap 이 다시 보일 때) · 가게 stations 도 들어 횡단 보기를 안 열어도 갈아끼움(먼저 부른 쪽만 · 다음은 「같은 목록」)
- design_view_profile: 받는 줄만(보임 · 떠날 때 끊음 · 다시 보일 때 flushSwap)
- 갈아끼움 알림판 B06_Section_Swap_Bus(가져오기 없음 · 돌고 도는 가져오기 막음) — 조정창 값 · 암 경계 옮김을 어느 보기가 갈아끼웠든 한 번 · 횡단 보기는 알림으로 다시 그림
- 시험: 종단 보기 보임 7 → 8 · 숨음 = 안 그림 · 다시 보임 = 6 · 3D 측점선 같은 차례 · 옛 시험 둘(342-1 화면 선 = listedBase · 323-9 열쇠 모듈 진짜로) 맞춤

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QfHKQs7J3hQELKMWQMUJEy
2026-10-16 12:28:11 +09:00
eomsangdon b659ed28ca Merge remote-tracking branch 'origin/sub_laptop_3' into main_laptop_1 2026-10-16 12:21:01 +09:00
eomsangdonandClaude Opus 5.5 69d84e5ca9 feat(측점열쇠): 346-2 덧 2 열쇠 한 벌 — 구간형 :start · :end · 묶음 측점 종류(grid · end) · 같은 열쇠 둘째 규칙 공용
- common_util_station_key(ts · py 짝): role 덧붙임(구간형 시작 · 끝 = structure:<id>:start · :end · 기준은 structure:<id> 그대로) · grid(원래 격자 번호) · end(BP/EP) 종류 · dedupeStationKeys(같은 열쇠 둘째부터 at:<누가거리>)
- B06 stationKeysOf 가 같은 규칙(측점 계획 · 구조물 목록의 시작 · 끝 자리 · 공용 dedupe)
- 거울 시험에 새 갈래(구간형 · grid · end · dedupe)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QfHKQs7J3hQELKMWQMUJEy
2026-10-16 12:20:06 +09:00
eomsangdonandClaude Opus 5.5 82ab2c60b7 test(B05 배수유역): 347 덧 2 test_298 · test_126 본문 검사 자리 — 요청 감싸기를 나눈 B05_Profile_UI_Drainage_Run 을 봄
- 동작 그대로(최신 응답만 · 지도 칸 표시만 · 실패 토스트 한 줄) · 검사 자리만 판 → _Run · 판은 createDetailRunner 에 apply · label 넘김 확인
- test_298 12 · test_126 9 통과 · 판 · 배수유역 파일을 읽는 옛 시험 19 파일 다시 돌려 모두 통과

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XWh5wNNycMkbwMpACz1rte
2026-10-16 12:19:58 +09:00
eomsangdon b0eb19897b Merge remote-tracking branch 'origin/sub_laptop_6' into main_laptop_1 2026-10-16 12:19:05 +09:00
eomsangdon 0c19bd78f4 Merge remote-tracking branch 'origin/sub_laptop_5' into main_laptop_1 2026-10-16 12:18:15 +09:00
eomsangdonandClaude Opus 5.5 322725bf9c feat(B05 되돌리기): 346-4 한 줄 — 노선 편집 되돌리기를 페이지 사진첩 하나로 합침
- Ctrl+Z · Y · 편집기 [되돌리기] · [다시하기] · [반영 전으로] = 페이지 사진첩(_Profile_History) — 평면 · 종단 · 횡단 · 관 · 구조물을 만진 차례 거꾸로
- 편집기 쌓기 · [반영 전으로] 뒤 사진첩 한 걸음(_Draft.watch) · 사진첩이 되쓴 route-draft 는 fromPage 로 편집기 새 걸음(같은 선 옛 걸음의 고정 · 추천 꼬리표째)
- 쌓는 줄 없는 조작(횡단 카드 등) = 놓은 뒤 · change 뒤 400 ms 한 번 찍음 · 고름 · 관 id · 종류 캐시 · 구조물 넘김 · b08 · b09 칸은 사진 밖
- 「마지막에 만진 판만」(_RouteEdit_UndoOwner) 지움 · 편집기는 단축키 안 들음
- 시험 test_346_4_one_undo.py · 345-3 시험 · 219-1 헬퍼 새 꼴로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013QyNXY2TUKXCFMwAca2APG
2026-10-16 12:17:57 +09:00
eomsangdon f9c70757b4 Merge remote-tracking branches 'origin/main_laptop_1' and 'origin/sub_laptop_5' into sub_laptop_2 2026-10-16 12:16:54 +09:00
eomsangdon ab14354d9f Merge remote-tracking branch 'origin/dev' into sub_laptop_2 2026-10-16 12:16:50 +09:00
eomsangdon cedd2ed194 Merge remote-tracking branch 'origin/sub_laptop_2' into main_laptop_1 2026-10-16 12:15:54 +09:00
eomsangdonandClaude Opus 5.5 e8f32cbabb fix(시험): 346-3 서버 길 시험(test_346_3_route_save · sub1) 되살림 — 같은 이름으로 덮었던 화면 시험은 test_346_3_route_save_screen 으로
- 서버 길 시험 = 덮기 전 판과 같음(차이 0) · 둘 함께 22 통과

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VmC34fsxxbweEG3RUjs3Mn
2026-10-16 12:15:15 +09:00
eomsangdonandClaude Opus 5.5 20f2044afe feat(횡단목록): 346-2 덧 측점 수가 바뀔 때 횡단 목록 갈아끼움 — 묶음 측점 → 새 상세 · 열쇠로 이어 받기 · 보이는 카드 먼저
- logic/B06_Section_Station_Swap: 묶음 측점(PipelineStation[]) → 새 상세 객체 · 같은 측점(열쇠 · 없으면 같은 자리 같은 종류)은 앞 횡단 이어 받음(설계 · 구조물 제원 · 이름) · 자리 · 지반 표본만 새것 · 새 측점 = 지반 표본 + 기본 설계 · 빠진 측점 뺌 · formatStation(파이썬 format_station 짝)
- Section_Store swapSectionStations: 같은 목록이면 그대로 · 바뀌면 캐시 · 세션 상세 갈아끼움 · 옛 열쇠 = 세워 둔 목록(옮긴 관도 옛 id) · 새 열쇠 = 묶음이 정한 것 · 노선 모양이 바뀐 차례면 세션 고침 넘김(사라진 측점 = 「노선 밖 고침 N 건」) · 듣는 쪽 subscribeSectionDetail
- 횡단 보기 followSwaps(가게 stations 따라감): 조정창 값(반폭 · 기슭막이 · 유입 · 집수정 · 추가 벽)을 옮긴 자리로 · 암 경계 · 암 경사 다시 읽음 · 보일 때 카드 · 종단도 다시 · 떠난 보기의 옛 맵은 지금 값을 안 덮음
- 카드 통째 그리기 = 보이는 줄 + 한 줄만 바로 · 나머지는 같은 id 빈 자리 → 쉬는 틈에 진짜 카드
- 시험: 셋 늘고 둘 빠진 목록(카드 8) · 관 45.054 → 47 m 고침 이어 받음 · 노선 밖 고침 버림 · 조정창 옮김 · 같은 목록 안 갈아끼움 · 보이는 카드 수

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QfHKQs7J3hQELKMWQMUJEy
2026-10-16 12:14:54 +09:00
eomsangdonandClaude Opus 5.5 6086f30982 feat(노선추천): 346-3 추천 [적용] = as_initial 로 서버 노선 저장 — 초기값 = 추천 노선 · 잠금 막 · 초안 비움 · 새로고침 없이 다시 세움 · 실패 = 오류 한 줄 · 평면에 실린 채 남음
- _RouteEdit_Initial onApply → 평면 되돌리기 한 칸 그대로 + saveRecommendedRoute
- 시험: test_346_3_route_save 7(안 바뀜 안 보냄 · 계약 꼴 · 저장 뒤 가게 비움 · 결과 한 줄 · 넘김 차례 · as_initial · 실패) · 관련 242 통과 · typecheck 통과

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VmC34fsxxbweEG3RUjs3Mn
2026-10-16 12:14:22 +09:00
eomsangdonandClaude Opus 5.5 47366d3740 feat(종단보기): 346-3 [노선 반영] 없앰 — [저장]이 노선부터(POST /route/replan · draft = 계약 RouteDraft · 안 바뀌면 안 보냄) · 뒤 차례는 새 노선 · 횡단 초안 측점 열쇠로 넘김 · 결과 한 줄
- design_save 차례 = 노선 → 관 → 구조물 → 계획고(옛 노선 칸 → 새 노선) → 암거 옵션 → 상단측 → 횡단(carryStationDrafts 뒤 저장) · 잠금 막 = [저장] 하나 · 실패 = 멈춤 · 초안 그대로 · 오류 한 줄
- [확정] 중 노선이 바뀌면 노선만 저장하고 다시 세움(새 노선으로 다시 [확정])
- _RouteEdit_Apply = 노선 저장 이음(편집기 등록부 · pendingRouteSave · saveRouteDraft · carryAfterRouteSave · routeSaveSummary · rebuildAfterRouteSave) · 단추 듣기 없음
- 결과 한 줄 = 관 지킴 · 새 교차 관 · 오목 보충 · 구조물 옮김 · 멀어짐 · 노선 밖 고침(서버 cross_dropped + 화면) · 배수유역 낡음
- RE_Chrome [노선 반영] 지움 · [반영 전으로] → [저장 전으로] · replanRoute 본문 = RouteSaveBody
- 시험: test_design_store_save 차례 넷 더함 · 꼴 시험 셋 고쳐 씀 · 323_9 대역

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VmC34fsxxbweEG3RUjs3Mn
2026-10-16 12:14:22 +09:00
eomsangdonandClaude Opus 5.5 73117fa931 feat(B05 노선편집): 345-5 덧 2 곡선 바 판 위 · [맞춤] 단추 — 꺾임점 곡선 바 아래 한계 = 뜬 종단 판 바로 위(판 끌기 · 접기 따라 다시 자리) · 도구줄 [맞춤] = 노선 전체를 판 위 보이는 영역에(회전 0)
- _RouteEdit_View.fitView(처음 열기 · [맞춤] 한 벌) · _RouteEdit_Cover.onCoverChange(덮인 높이 바뀜 알림 · 떠난 편집기는 뗌)
- 시험: test_345_5b_plan_visible_area 3 · 관련 81 통과 · typecheck 0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Se7ytqbohmBQnfYpwYFnYf
2026-10-16 12:12:43 +09:00
eomsangdon 5795f359cc Merge remote-tracking branch 'origin/sub_laptop_8' into main_laptop_1 2026-10-16 12:07:59 +09:00
eomsangdonandClaude Opus 5.5 4a55092bf8 feat(B05 노선편집): 345-5 덧 뜬 판 가려짐 정리 — 노선 맞춤 = 뜬 종단 판 위 보이는 영역 가운데 · 상태 · 범례 · 잰 값 글판 = 판 바로 위(판 높이 끌기 · 접기 따라감)
- 새 logic/B05_Profile_RouteEdit_Visible(덮인 높이 · 보이는 영역 맞춤 — 덮인 높이 0 이면 computeRouteView 와 같음)
- 새 _RouteEdit_Cover(칸 · 판 ResizeObserver → --b05-routeedit-cover) · fitCanvas 가 편집 평면 칸만 붙임
- 보던 화면 되살림도 판 밑 노드는 안 보인 것으로
- 시험: test_345_5b_plan_visible_area 2 · 관련 68 통과 · typecheck 0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Se7ytqbohmBQnfYpwYFnYf
2026-10-16 12:07:08 +09:00
eomsangdon 6d118c8913 Merge remote-tracking branch 'origin/sub_laptop_3' into main_laptop_1 2026-10-16 12:04:34 +09:00
eomsangdon 635b557215 Merge remote-tracking branch 'origin/sub_laptop_7' into main_laptop_1 2026-10-16 12:04:33 +09:00
eomsangdon 358a61b000 Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-10-16 12:03:42 +09:00
eomsangdon b9ed9ee101 Merge remote-tracking branches 'origin/main_laptop_1', 'origin/sub_laptop_1' and 'origin/sub_laptop_7' into sub_laptop_8 2026-10-16 12:02:08 +09:00
eomsangdon 2153a4a639 Merge remote-tracking branch 'origin/dev' into sub_laptop_8 2026-10-16 12:02:06 +09:00
eomsangdonandClaude Opus 5.5 13a3e50e6f fix(설계 저장): 347 덧 [확정] 때 관 저장이 배수유역 다시 셈 — side.savePipes(confirm) 한 줄(승인)
- [확정] = PUT pipe-points ?recompute=true(낡았으면 지금 노선으로 배수유역부터) · [저장] = 낡음 달고 저장

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XWh5wNNycMkbwMpACz1rte
2026-10-16 12:02:03 +09:00
eomsangdonandClaude Opus 5.5 44561251ea feat(배수유역): 347 덧 관 고정 id — 측점 열쇠 pipe:<id> · 옮겨도 · 노선 바뀜 · 다시 셈에도 그대로
- PipePoint.id · ensure_pipe_ids(빈 id = p<누가거리 cm> · 겹치면 꼬리) — 읽기(parse) · 되붙이기(carry · 원본 id) · 저장(save) 세 자리 · 옛 자료는 다음 저장에 남음 · 노선 투영 · 새 자동 관 = 새 id
- 화면 관 모양 DetailPipePoint.id · 배관 편집기 관이 id 를 쥐고 요청에 실음 · reconcilePipes 제자리 · 하나 옮긴 관 id 따라감
- 시험 test_347_pipe_id(8 · station_key = pipe:<id> · 화면 거울) · test_b04_pipe_points_facility 옛 자료 = id 하나만 더함 · test_312 옛 분석 = 낡음(409) 뒤 지문 찍고 자동 배치(새 지문 동작에 맞춤)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XWh5wNNycMkbwMpACz1rte
2026-10-16 12:02:02 +09:00
eomsangdonandClaude Opus 5.5 37698a8360 feat(계산묶음): 346-1 발자국 계약 칸 — PlanFootprint 에 slopeLeftCut · slopeRightCut · ticks · records(sub6 footprint 단계가 내는 꼴 그대로)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TteK8mfYZetk5P3bEZkyVZ
2026-10-16 12:00:54 +09:00
eomsangdon b22633c4b5 Merge remote-tracking branch 'origin/sub_laptop_8' into main_laptop_1 2026-10-16 12:00:30 +09:00
eomsangdonandClaude Opus 5.5 aeca9616cc feat(계산묶음): 346-1 묶음을 B05 페이지 · 노선 편집에 붙임 — 노선 초안 캐시 칸 · 노선 고칠 때마다 종단 따라옴 · ▲▼ = grade · 단계 붙임
- design_pipeline_page.ts 새 — 프로젝트마다 묶음 하나(종단도 dispose 때 버림) · route · ground(sub8) · follow · planline · profile · stations · footprint(sub6) 붙임 · cross · masshaul · haul · drainage 는 붙으면 한 줄 · 첫 계산은 처음 고칠 때 · 가게 stations · profile · footprint · generation
- B05_Profile_UI_RouteEdit_Draft.ts 새 — 사진첩 감싸기(쌓기 · 되돌리기 · 다시하기 · 열 때로 = 초안 넘김 · 같으면 null) · 저장 안 한 초안 되살림 · RouteEdit.ts 는 줄 셋(700줄 안)
- logic/B05_Profile_Pipeline_Grade.ts 새 — follow(관 · 구조물 좌표 · 계획고 옮김) · planline(저장 기준 · 초안이면 바뀐 구간만 새 지반 첫 계획선) · profile(buildAlignment) · routeRange · gradeRange — sub1 짝 부르기만
- design_profile — listed 를 design_profile_base.ts 로 나눔 · rebuild = pipelineGrade · render · 구조물 측점 = 다시 셈 · adoptPipeline(초안 동안 편집은 메모리만 · [저장]이 안 보냄) · pipelineSource
- design_pipeline — input() · dispose()
- 시험 test_346_1_pipeline_page 12 건(실제 단계 · 노선 1,078 m 점 옮김 23 ms · 늦은 응답 버림 · 초안 캐시 칸 살아남음) · popout 시험 문맥에 pipelineGrade 자리

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TteK8mfYZetk5P3bEZkyVZ
2026-10-16 11:59:45 +09:00
eomsangdonandClaude Opus 5.5 3995e91a1c refactor(346-3): 노선 저장 횡단 이월 측점 열쇠 = common_util_station_key 한 벌
- station_keys 가 station_key(sub2 짝)를 부름 · 관 pipe:<id>(id 없으면 at:<0.01 m>) · 구조물 structure:<id> · 같은 열쇠 둘째는 at:(B06 stationKeysOf 와 같음)
- 파일 차례 관 열쇠 없앰 · 시험 test_346_3_route_save 고쳐 씀

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
2026-10-16 11:59:38 +09:00