Commit Graph
792 Commits
Author SHA1 Message Date
eomsangdon 419b83ad64 Merge remote-tracking branch 'origin/sub_laptop_8' into main_laptop_1 2026-10-19 10:52:12 +09:00
eomsangdonandClaude Opus 5.5 cd6ad892af test(472-6 6-A 시험 갈래): 서버를 AISLO_DESIGN_SAVE_FAIL_AFTER=<차례> 로 켜면 그 차례 뒤 일부러 실패 — 화면에서 실패 · 되돌림 확인용(평소 없음)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 10:51:06 +09:00
eomsangdonandClaude Opus 5.5 63f994972c feat(472-6 6-A 브라우저 한 본문): 노선 안 바뀐 [저장] · [확정] = 차례 조각을 모아 /design/save 한 요청
- design_save: 노선 초안이 없으면 saveOneBody — 차례마다 조각(본문 · 저장 뒤 정리) · 서버가 다 저장한 뒤에만 정리(초안 비움 · 화면 맞춤) · 실패 = 차례 이름째 「아무것도 저장 안 함」 · 되돌림 실패 = 「복구 확인 필요」 · 기다림 알림
- 조각 함수: 페이지 설정 · 관 · 구조물(보기 목록) · 추가 측점 · 계획고(한 벌 종단도) · 관 옵션 · 상단측 · 횡단(횡단 보기) — 옛 flush 함수는 노선 바뀐 저장 길에 그대로(조각을 써서 같은 본문)
- 보기 몫 steps · cross → parts · crossPart · 노선 바뀐 저장 길은 옛 차례 그대로(6-B)
- 옛 9 차례를 단언하던 시험 10 개를 한 본문 꼴로(옛 PUT 줄 → SAVE 줄 · 조각 정리 차례) · 위키 [저장] 표

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 10:41:58 +09:00
eomsangdon 396abc8c3e Merge remote-tracking branch 'origin/sub_laptop_4' into main_laptop_1 2026-10-19 10:14:51 +09:00
eomsangdonandClaude Opus 5.5 12c3282abf feat(472-6 6-A 서버 한 본문 창구): POST /design/save — [저장] · [확정] 차례를 서버 한 창구에서 · 전부 아니면 없음
- B06_Section_Router_DesignSave: 페이지 설정 → 관 → 구조물 → 추가 측점 → 계획고 → 관 옵션 → 상단측 → 횡단 = 옛 창구 함수를 안쪽으로 부름(지우지 않음) · 측점 맞춤 · 재계산 · 하위 차례 실패도 실패
- common_util_save_guard: DB 행(projects · 단계 · 노선과 자식 넷) · storage(저장 범위 · 관 차례면 배수 폴더) 떠 둠 → 실패면 바뀐 표 · 바뀐 파일만 되돌림 · 되돌림 실패 = 500 「복구 확인 필요」 · 프로젝트 잠금(뒤 요청 기다림 · waited)
- 시험 test_472_6_design_save 5(storage 되돌림 · 중간 실패 행 · 해시 그대로 · 정상 = 옛 차례와 행 · 파일 같음 · 복구 실패 알림 · 잠금) — 검증_sub8 끝에 차 0
- 노선 바뀐 저장은 옛 길 그대로(6-B)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 10:11:36 +09:00
eomsangdonandClaude Opus 5.5 77be773c07 refactor(472-5 5-B 값 주인 하나): 횡단 상세 객체 = 상세 가게 하나 — 계산 묶음 페이지는 지문(노선 · 표본)만
- 상세 가게 칸 셋(B06_Section_Section_Canon.ts · 가벼운 자리): 저장 정본 상세(받을 때 · 세션 · 판 바뀜 · 되돌릴 때 · 갈아끼움 제외) · 초안 전 hold 상세(판 바뀌면 새 판) · 노선 초안 상세(= pipelineDetail)
- 페이지: canon.detail · held.detail · shown 사본 걷음 — 저장 기준 셈(savedEdits · storedPvi · crossNow)은 가게 칸을 읽음 · 초안 버림 = 가게 hold 상세로 정본 잡음
- 떠남(forgetSectionMemory) · invalidate 때 칸 셋 비움 · savedStations 는 sub2 관 · 구조물 줄로 셈 → 남김
- 시험: test_472_5b_detail_owner(옛 코드 빨강 3) · 묶음 헬퍼 넷(365 · 346_2 · 349_0j · 451_drop)이 종단도 흉내 정본을 가게 칸에도 채움
- 위키 design_page 값 · 규칙 · 층 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 10:07:30 +09:00
eomsangdon d204cd7932 Merge remote-tracking branches 'origin/sub_laptop_4' and 'origin/sub_laptop_8' into sub_laptop_2 2026-10-19 09:57:37 +09:00
eomsangdonandClaude Opus 5.5 086ead9d6a fix(472-5 5-A 값 주인 하나): 관 · 구조물 주인 = 설계 가게 칸 — 화면 사본은 가게 알림으로 맞춤 · 되돌리기도 알림
- 되돌리기 · 다시하기(세션 직접 되씀) 뒤 announceDesignStore — 관 · 구조물 · 추가 측점 듣는 쪽을 되돌린 값으로
  (옛: 종단 목록 · 횡단 판 · 배수 편집기가 옛 값을 쥐고 다음 조작이 되돌림을 덮음)
- 종단 보기 — 가게 관 → 배수 편집기 adoptPipes(숨어도 · 제 쓰기 메아리 빼고 · 옵션만 바뀐 것도) · 가게 구조물 → takeStructures(보일 때)
- 횡단 보기 — 판이 마지막으로 읽거나 쓴 값과 다르면(옵션만도) 다시 실음(seen · foreign) · 제 쓰기는 쓰기 전에 적음
- 종단 고름 · 알약 관 = 시설 줄(가게 초안 자리 · 노선 따라감 뒤도) — 옛 알림 자리 안 봄
- 시험 test_472_5_shop_owner(옛 코드 실패 확인) · test_188_1 글 한 줄(까닭: 고름 관 원천 바뀜) · 위키 values · rules

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 09:53:26 +09:00
eomsangdonandClaude Opus 5.5 919cd68ba5 refactor(472-4 ① X6 넘기는 칸 한 벌): 옮긴 측점 · 노선 바뀜 횡단 입력 목록 정본 = TS ROW_CARRY_KEYS 하나 · 파이썬은 그 글을 읽음
- B06_Section_Router_Design.CARRY_INPUT_KEYS = Station_Swap.ts 의 ROW_CARRY_KEYS 선언을 읽음(손 목록 걷음)
- 공유 JSON 은 안 씀 — 이 TS 를 끄는 헬퍼 로더(측점 가게 · 묶음 단계)가 JSON 가져오기를 못 풀어 넓게 깨짐
- 시험 test_472_station_user_fields X6(파이썬 목록 글 없음 · 같은 일곱) · Router_Design · Station_Swap 관련 298 통과

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 09:50:34 +09:00
eomsangdonandClaude Opus 5.5 65b4b13ed7 refactor(472-5 5-A 나눔): 구조물 · 배수 판 셋 690줄 넘음 — 동작 같게 나눔
- B06_Section_UI_Page_Structures_Panel 700 → 타입을 _Panel_Types 로(다시 내보냄)
- B05_Profile_UI_Structures_Panel 693 → 관 목록 받기(임시 · 고른 관 따라감)를 _Panel_Pipes 로
- B05_Profile_UI_Drainage_Panel 691 → 표시 토글 상태를 _Drainage_Show 로
- 시험 test_233_3 — 옮긴 줄을 새 파일에서 읽음(까닭: 같은 줄이 자리만 옮김)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 09:42:53 +09:00
eomsangdon 9d70d5de74 Merge remote-tracking branches 'origin/main_laptop_1' and 'origin/sub_laptop_2' into sub_laptop_3 2026-10-19 09:23:59 +09:00
eomsangdonandClaude Opus 5.5 3a64f9a812 feat(472-4 ② 횡단 짝 모으기): [저장] · [확정] 횡단 설계선 · 면적 · 소단 구간을 Node 입구 한 갈래로(C1 · C2 · C4 · X3 풀림)
- Router_Design enforce 셋 · 넓힘 뒤 설계 — 파이썬은 입력 조립만 · 측점 묶음을 Node 한 번(B06_Section_Engine_Design_Node · cross.design) · Node 못 부르면 파이썬 짝
- 소단 구간 셈을 화면 파일에서 common_util_berm_spans.ts 로 · 서버도 같은 TS(cross.berm_spans) · Persist 가 다시 내보냄
- 값: 고정 자료 기준값 0 차(면적 · 계획고 · 누가토량 −17,570.7) · 설계선 점 13 곳 1e-4 m(반올림 동점 · 브레인 승인) — 기준값 시험에 판정 더함
- 시험: compute_cross_design 갈아 끼우던 시험 다섯을 묶음 자리로(까닭: [저장] 다시 셈이 묶음으로 부름) · 소단 글 시험 자리 옮김
- 등록부 · 위키 계산 목록 · B06 지침 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 09:21:42 +09:00
eomsangdon b0a3f7d227 Merge remote-tracking branch 'origin/dev' into sub_laptop_4 2026-10-19 09:11:45 +09:00
eomsangdonandClaude Opus 5.5 a90f8595b8 refactor(472-2 2-B 세션 끌림): 서버 Node 묶음(design-calc · sc · co)이 화면 · 세션 코드를 안 끔
- 그림 신원표 = 새 common_util_pick_tag(tagShape · pipeTagId) — 관 id 는 화면이 열 때(usePipeIds) 세션 장부를 꽂음 · 안 꽂으면 옛 자리 이름(장부가 프로젝트 모를 때와 같은 값)
- 구조물 그림 다섯(Box · Culvert · Ford · Ford_Pavement · Revetment)이 design_pipe_ids · design_pick_match 대신 이것을 씀
- Culvert_Wire 한계 토스트 = 알림 창구(setCulvertNotice) — 화면 Cross_View 가 토스트를 꽂음 · Wire 가 ui_template · Section_Common 안 끔
- 472-3 알려진 끌림 다섯 걷음(b_page_state · pick_match · pipe_ids · selection · Section_Common) · 남은 줄 = 헬퍼 정규식 헛잡음
- 헬퍼 286_1 흉내 → 진짜 pick_tag · 폴더 지침 끌림 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 09:09:47 +09:00
eomsangdon 454313f88e Merge remote-tracking branch 'origin/dev' into sub_laptop_2 2026-10-19 09:08:46 +09:00
eomsangdonandClaude Opus 5.5 0be32b8c50 refactor(472-4 ② 나눔): B06_Section_Router_Design 699줄 — 포장 · 세월교 구간 읽기 · 판정을 _Router_Design_Ranges 로(동작 같음)
- pavement_suggestions · pavement_ranges · ford_pavement_ranges · ford_surface_drops · ford_drop_at · paved_at 옮김 · Router_Design 이 다시 내보냄(부르는 곳 그대로)
- 시험 test_349_0n · test_349_0p — 정본 읽기(load_culvert_sets · load_structures) 갈아 끼움 자리를 나눈 모듈로(까닭: 읽는 함수가 옮겨 감)
- Router_Design 699 → 605줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 09:06:54 +09:00
eomsangdon b89587269d Merge remote-tracking branches 'origin/main_laptop_1', 'origin/sub_laptop_4' and 'origin/sub_laptop_8' into sub_laptop_3 2026-10-19 08:56:52 +09:00
eomsangdonandClaude Opus 5.5 84b683845a fix(472 덧 종단 경고): [저장] · [확정] 재계산이 종단 경고를 저장 입력으로 다시 씀 · 경고 글 TS 한 벌
- 서버 재계산(_recompute) 맨 앞 refresh_alignment — 저장 base_pvi · 편집 · 정책 · 기준으로 경고만 지금 코드 값 · 기하(계획고 · 곡선 · 표본 · 위반)는 저장값 그대로 · 같으면 안 씀 · grade_summary 함께
- 파이썬 경고 글을 TS buildAlignment 꼴로(접두 「chainage 」 뺌 · 기울기 초과 · 불균형 총괄 줄 뺌 — violations · balance 칸이 정본)
- 거울 시험 test_472_save_warnings(옛 코드 실패 확인) · 기준값 경고 칸만 다시 뜸(server_save 5→50 · server_route 51→50 · 브레인 승인) · W0 정리 · W1 지움
- 위키 계산 목록 P8 · [저장] 차례 cross 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 08:55:38 +09:00
eomsangdonandClaude Opus 5.5 89e04280d0 fix(472-2 덧 횡단 차례): 횡단 파일 = 측점(누가거리) 차례로 읽음 — 이름 차례면 cross_01080.16m 이 cross_01080m 앞
- cross_files_in_order 한 벌(Engine_Sections) — B06 상세 GET(_read_section_detail) · B07 측점 파일(_cross_files) 둘 다 이것으로
- B07 측점 도면 장 나눔의 이름 차례 sorted 걷음
- 시험 test_472_2_cross_order(옛 코드 빨강 셋 → 초록)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 08:54:48 +09:00
eomsangdonandClaude Opus 5.5 a6a1b92132 refactor(472-2 2-B 걷어내기): B06 안 쓰는 길 지움 · 서버 Node 묶음 화면 · 세션 끌림 정리
- POST /sections/{r}/cross-design 엔드포인트 · CrossDesignResponse(파이썬 · TS) · CrossDesignRequest(TS) · TS computeCrossDesign 지움 — 부름 0(파이썬 CrossDesignRequest 는 test_316 이 써서 둠)
- 바깥 부름 0 export 지움 — readCrossDesignChoice · currentStationScope · culvertRequiredHalfWidth · calculateYScale · mountSectionStructureMenu · Culvert_Const 다섯 · outletSlopeFactory
- PIPE_DISPLAY_NAME = common_util_structure_catalog 로 — Section_Common 이 IrregularStations(화면) 안 끔
- Api_Fetch 세션 · 사진첩 창구 = 새 B06_Section_Api_Context.ts(fetchSectionContext · fetchCurrentRouteId · seedStandardCross) — Api_Fetch 가 b_page_state · Profile_History 안 끔
- 시험 경로 따라 고침(seedStandardCross 글 검사 · 헬퍼 흉내 모듈 이름 · 라우터 목록 시험)
- 위키 줄 번호 · 지운 엔드포인트 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 08:54:41 +09:00
eomsangdonandClaude Opus 5.5 dd70ce9b90 fix(467 덧 셋): 제자리로 온 관 = 저장 정본 표본 · 일반 측점 자리 관 지움 = 갈아끼움 · 시설 줄 종류 표 전 측점 안 칠함
- swapCrossSections 같은 자리 원천 끝에 저장 정본(Section_Canon CanonRow 에 자리 · 표본 · Section_Store 가 savedDesigns 넘김) — 옮겼다 제자리로 온 관 · 버린 노선 초안 뒤 측점 = 정본 표본 · 기하
- sameStationList — 시설 측점(irregular) 자리가 일반 측점으로 돌아가면 다른 목록(관 지운 카드가 남던 흠)
- design_facility_lane paint — 종류 표 전 빈 측점을 종단도에 안 씀
- 시험 test_272_swap_keeps_canon · test_272_berm_source 에 셋(옛 코드 실패 확인)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 07:54:29 +09:00
eomsangdonandClaude Opus 5.5 58be37b0d5 fix(466 덧 · 470 N1 N2): [확정] 성공 뒤 상세 비움 · B06 폼 관 옮김 + 옵션 = 옮긴 관에 붙음
- [확정] 성공 길도 [저장]처럼 invalidateSectionDetail — 다음 페이지(B07)가 정본을 받음
- B06 폼 onPipeUpdate — 옮긴 뒤 옵션 · 캐시 얹기 · 집계 항목을 옮긴 자리(맞춘 정수 m)로 찾음(옛: 옛 자리로 찾아 옵션 잃음 · 비운 옛 자리 그림에 얹음)
- 시험 test_466_pipe_move_options · test_272_detail_memory 확정 항목

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 07:41:22 +09:00
eomsangdon bc481453d7 Merge remote-tracking branches 'origin/main_laptop_1' and 'origin/sub_laptop_5' into sub_laptop_7 2026-10-19 07:36:44 +09:00
eomsangdon 839edd586c Merge remote-tracking branch 'origin/dev' into sub_laptop_7 2026-10-19 07:36:43 +09:00
eomsangdon b5ae0a1a0b Merge remote-tracking branch 'origin/sub_laptop_7' into main_laptop_1 2026-10-19 07:35:57 +09:00
eomsangdonandClaude Opus 5.5 57db7a0608 fix(467 덧 고름 되돌림): 횡단 다시 셈 입력 물러섬 = 저장 정본 설계 · 고름 단추가 메모리 상세를 안 덮음
- Cross_Refresh refreshLocally — 세션 고름(단추 · 노견 확장 · 소단 깊이 · 암 경계 · 암 경사) ?? 저장 정본(savedDesigns) · 정본에 없는 측점만 메모리 설계 · 소단 깊이 · 소단 제원은 이번 원천 그대로(↶ 뒤 앞 값이 안 남음)
- Design_Sync handleDesignChange — target.design 덮기 셋 뺌(세션만 · 카드는 다시 셈 알림이 그림)
- 새 시험 test_272_choice_undo(옛 코드 = 넷 다 ↶ 뒤 앞 고름에 머묾)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 07:32:17 +09:00
eomsangdonandClaude Opus 5.5 6971c42c1e fix(466 상세 가게 · 묶음 출력): 페이지를 떠나면 상세 메모리 비움 · 조용한 차례도 가게 측점 = 상세 측점
- 상세 가게 forgetSectionMemory — 페이지 dispose 에서 메모리 · 받는 중 약속만 비움(세션 정본 그대로) · 다시 열기 = 새로고침 길
- 묶음 열 때 관 · 구조물 · 추가 측점 초안이 있으면 측점을 냄 — 새로고침 · 다시 열기 = 초안 측점(옛: 새로고침 뒤 관 초안 측점 빠짐)
- 버린 노선 초안 차례 끝 · 조용히 연 차례 끝 = 가게 측점 · 종단 = 지금 상세 측점 · 저장 기준(갈아끼움 없음)
- 화면 선만 바뀜(비정규 측점 도착) = 상세가 그 선 대비 낡았으면 cross 한 번 더(recrossIfStale)
- 시험 test_272_detail_memory · test_272_drop_store_stations

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 07:27:40 +09:00
eomsangdon 9f05c9ffcb Merge remote-tracking branch 'origin/dev' into sub_laptop_5 2026-10-19 07:26:21 +09:00
eomsangdonandClaude Opus 5.5 1f00e13852 fix(467 B1 덧 같은 자리): 노선 초안 없는 차례 = 같은 자리 앞 횡단(없으면 그 자리 옛 횡단) 기하 · 표본 그대로
- 격자 측점에 구조물을 놓고 빼면 열쇠가 바뀌어 브라우저 표본으로 갈렸음(검증_sub5 440 m · 소단 놓고 뺌 = 누가토량 0.04 ㎥ 갈림)
- 시험 test_272_swap_keeps_canon 에 격자 구조물 놓고 뺌 = 정본 표본 · 기하

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 07:26:10 +09:00
eomsangdon 861f987506 Merge remote-tracking branch 'origin/sub_laptop_5' into sub_laptop_1 2026-10-19 07:22:37 +09:00
eomsangdonandClaude Opus 5.5 0ffabd6fbf fix(468 값 안 변함 ③): 되돌리기 빈 칸 · 접힘 파생값 · 배지 소수 한 자리
- 사진첩: 「{}」 · 「null」 · 「""」 = 칸 없음 — 빈 맵 쓰기가 걸음이 되어 ↷ 를 버리던 흠(R4) · 「[]」(관 · 구조물 모두 지움)은 값으로 둠
- 세션 맵 · 연동 플래그: 빈 맵 persist = 칸 지움(갈아끼움 이동이 「{}」 여섯 칸을 만들지 않음)
- 종단도: 본문 0 크기(판 접힘)에도 낡음 예약 · 유토 총괄값 · 배분 선반입 · 측점 자료를 셈 · 그리기만 건너뜀 — 떼어 낸 유토 판은 그림
- 배지: 소수 한 자리 고정(−17,570.0㎥)
- 시험: test_272_history_empty_cells · test_272_hidden_summary(옛 코드 7 실패)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 07:21:14 +09:00
eomsangdonandClaude Opus 5.5 d28f1e8584 fix(467 값 안 변함 ②): 갈아끼움 정본 표본 유지 · 소단 원천 한 벌
- (B1) 노선 초안 없는 차례 = 같은 열쇠 · 누가거리 0.01 m 안 앞 횡단 기하 · 표본 그대로(축 허용 1e-3) · 노선 초안 차례는 옛 규칙 · 가게 routeDraft 로 가름(Section_Store 한 줄)
- (B2) 소단 사본(세션 berm) = 페이지 시설 줄이 씀(같으면 안 씀 · 쓰면 cross 한 번 · 늦은 import) · 횡단 보기 syncBermSpans 쓰기 뺌 · 다시 셈 = 사본 없으면 저장분 design.berm(파이썬 berm_from 짝 storedBermSpec)
- 새 시험 test_272_swap_keeps_canon · test_272_berm_source(TS ↔ 파이썬 거울) · helper_271 에 Persist 덧대기(import.meta 로더 밖)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 07:09:44 +09:00
eomsangdonandClaude Opus 5.5 60acb5ba79 fix(463 B05 B06 한 페이지): 페이지 설정 한 칸 · 강제 받기 · 측점 만들기 뒤 상세 알림 · [저장] 상단측 차례 같은 본문
- (B) 종단도 기준(기울기 상한 · 최소고 강제 · 시작 측점) = 세션 초안 ?? 저장 노선 설정 — 두 보기가 그린 뒤 applyPageSettings 하나 · B06 이 받은 노선은 캐시에
- (C) 상세 강제 다시 받기 = 듣는 쪽 한 번(숨은 종단 보기 옛 객체 안 쥠) · [측점 만들기] 뒤 캐시 비우고 강제로 받음
- (D) [저장] 상단측 차례 = flushRouteParts 한 벌(노선 캐시 지표 조건 + 확정 지표면 id · 비정규 빈 목록) — 종단 보기를 열든 안 열든 같은 요청
- 시험 test_271_detail_notify · test_271_save_same · test_271_profile_settings · 옛 저장 시험 가짜 창구에 flushRouteParts

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 23:51:49 +09:00
eomsangdonandClaude Opus 5.5 8ff4dce260 fix(459 덧 노선 밖 시설): 시점 앞 · 종점 뒤 0.51 m 넘은 관 · 구조물 = 측점 계획 · 알약에서 뺌 · 좌표 그대로 · 노선 밖 알림
- 판정 routeOutside ↔ route_outside(TS ↔ 파이썬 · 끝 선분 연장으로 나간 거리 · 옆으로 먼 것은 아님)
- 따라감(followStructures · projectPipePoints)이 outside 표시(파생값 · 구조물 저장 때 뺌) · planStations 가 뺌
- 서버는 측점 세울 때 노선 좌표로 그때그때(resolve_extra_stations xy · 부르는 곳 여섯) · 노선 저장 응답 pipes · structures.outside
- 알림 「노선 밖 N 곳」 = [저장](design_save) · 초안 동안(followPlusDraft 가 follow 출력 통째 받음 · page 부름 인자만 바꿈 · 700줄 그대로)
- 시험 test_459 노선 밖 하나 · 344_2 · 346_3 응답 기대값에 outside

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 23:28:02 +09:00
eomsangdon 6ab8fb5322 Merge remote-tracking branch 'origin/sub_laptop_2' into sub_laptop_4 2026-10-18 23:18:04 +09:00
eomsangdonandClaude Opus 5.5 e90b546ed9 fix(462 B05 B06 한 페이지): 시설 줄 페이지 한 벌 — 알약 · 비정규 측점 · 흙덮기 관 · 관 id 장부를 숨은 보기와 무관하게 · 관 옵션 넘김 세션 칸
- design_facility_lane 새 파일 — 페이지가 세움 · 관 알림 · B06 관 목록 · 구조물 · 종류 · 추가 측점 → 종단도 · 평면 마커 원천 한 곳
- B05 다리 = 목록 · 종류 · 저장만 · B06 종단도 = 읽기만 · 숨었다 보일 때 다시 셈 없음(편집 두 번 옮김 길 걷힘)
- 노선 따라감 = 시설 줄 follow(편집 안 옮김) · 사용자 고침만 계획고 편집 옮김
- pipeOptionQueue(메모리) → 세션 칸 pipe-option-queue
- 시험 test_271_facility_lane(R3 뒤집기 · B06 먼저 = B05 먼저 · 따라감) · 옮긴 자리 문자열 시험 맞춤

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 23:05:23 +09:00
eomsangdonandClaude Opus 5.5 0dad7f792e fix(458 B06 갈아끼움): 떠난 측점 옛 자리에 새 측점이 서면 새 카드 번호 · 초안 사본 표시 안 들고 감 · 노선 밖 관은 시종점 카드 이름 안 가져감
- 구간 끝 · 관 측점이 격자 자리를 떠나면 그 자리 새 일반 측점과 번호 겹침(station_000000080000 둘) — 옛 자리에 다른 측점이 서면 새 번호 · 아니면 옛 번호(433-4 MC)
- 갈아끼움이 preview 표시를 들고 가면 다음 측점 맞춤이 그 측점을 버림(시점 측점 사라짐 실측) — 지움
- 시험: test_458 카드 번호 · preview 둘 더

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 22:56:52 +09:00
eomsangdonandClaude Opus 5.5 37a738aff4 fix(458 B06 노선 바뀜): 주인 측점 거리 상한 0.51 m · 시종점 밖 시설 안 얹음 · 갈아끼움 grid 지움 · 늘 다시 얹기 · 이름 = 계획 제목
- 관 세트 주인 측점 = 0.51 m 안 가장 가까운 측점(TS attachCulvertSets ↔ 파이썬 attach_culvert_specs) · 넘으면 연동 이웃에도 안 얹고 missed
- 형상 얹기 한 벌(attachShapes ↔ attach_shapes) — 시종점 측점 자리인데 좌표가 노선 진행 반대쪽 0.51 m 넘게 바깥 = 「노선 밖」 · 안 얹음 · 안 얹은 것 돌려줌(서버 = 로그 경고)
- 측점 갈아끼움 — 격자 아닌 자리면 앞 횡단 grid 표시 지움 · 갈아끼움 뒤 가게 초안 없어도 늘 다시 얹음 · 카드 · 종단 측점 이름 = 계획 제목 · 안 얹은 시설 알림(바뀐 때 한 번)
- 시험: test_458_swap_attach(재현 A · D) · test_323_4 거울 moved 경우(상한 · 시종점 밖 · 연동 폭) · test_299 같은 키 견본 = 주인 0.51 m 안으로 · 273_2 흉내 돌려줌

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 22:44:41 +09:00
eomsangdon 01bd11dd1f Merge remote-tracking branch 'origin/sub_laptop_7' into main_laptop_1 2026-10-18 22:04:20 +09:00
eomsangdonandClaude Opus 5.5 db80a22f67 fix(451 B06 새로고침 hold): 되돌림 측점 같음 판정 = 초안 얹기 다시 뒤 측점으로 (440-4)
- 초안 둔 채 새로고침 뒤 버림 기록이 saved-diff 로 남던 것 — 다시 얹은 뒤 견줌 · saved

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 22:03:28 +09:00
eomsangdon 34e42e0605 Merge remote-tracking branch 'origin/sub_laptop_6' into main_laptop_1 2026-10-18 22:02:30 +09:00
eomsangdon 5b3aa0bc18 Merge remote-tracking branch 'origin/sub_laptop_3' into main_laptop_1 2026-10-18 22:01:18 +09:00
eomsangdon c3ab456627 Merge remote-tracking branch 'origin/sub_laptop_5' into main_laptop_1 2026-10-18 21:47:25 +09:00
eomsangdonandClaude Opus 5.5 c4f5530a49 fix(451 B06 새로고침 hold): 노선 초안 전 상태 세션 한 벌 — 초안 둔 채 새로고침해도 초안 전 열쇠 · 칸 · 관으로 되돌림 (440-4)
- 초안 시작 hold = 측점 열쇠 · 횡단 초안 칸 · 가게 관 · 구조물 · 세션 한 칸(route-draft-hold)에도
- 초안 둔 채 새로고침 = 그 한 벌(초안이 옮겨 쓴 세션 칸 · 초안 자리 관을 처음 값으로 안 뜸)
- 묶음 초안 전 가게(beforeDraft) = hold 관 · 구조물 — 버리면 초안 전 관 자리로 되씀
- 되돌림 = 초안 얹기 다시(되쓴 관) 뒤 초안 전 열쇠 · 세션 한 벌 지움

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 21:43:17 +09:00
eomsangdonandClaude Opus 5.5 6836bcef1f fix(455 433-13③ 옛 정책 경고): 옛 정책 빈 법정 최소 R · L = 첫 계획선 설계 기준(criteria) — 화면 readAlignment ↔ 서버 rebuild 같은 규칙 · 초안 경고 = 저장 뒤 경고
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 21:43:08 +09:00
eomsangdonandClaude Opus 5.5 e5dcb695e6 feat(448 B05 페이지 설정): [저장] · [확정] 영구저장 — 세션 초안 · settings 차례 · 경고 기준 갈아 끼움
- 세션 칸 pagesettings(설계속도 · 지형 · 기준값 · 최소고 강제 · 시작 측점) · 열 때 최신 응답 위에 얹음
- 저장 차례 settings = 노선 뒤 · 관 앞(기본 창구 · 노선 바꾼 [저장]에도 돎)
- PUT /route/page-settings — stage 2 params 에 사용자 값만 병합(상태 · STALE 그대로) · 종단 정책 · criteria 갱신 뒤 위반 · 요약 다시 셈(기하 그대로)
- 시 · 종점 계획고 조정 = 첫 · 끝 측점 계획고 편집(끝점 ▲▼ 와 같은 길) · 샘플 간격 두 칸 읽기 전용
- E1 재설계 요청이 설계속도 · 최소고 강제 · 시작 측점 옮김 · E2 B06 재생성 지형 기본 특수 · E3 초기값 스냅샷 stage 2 params 뜸 · 되돌림
- 노선 추천 · 평면 R 설정 읽기가 params.options 를 봄(옛 맨 위 칸 폴백)
- 시험 test_442_2_page_settings · test_442_2_grade_limit_mirror · design_store_save 차례 갱신

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 21:37:54 +09:00
eomsangdonandClaude Opus 5.5 eedafe8db9 fix(451 B06 세션 캐시 판): 세션 상세 뒤에서 서버 판 확인 · 다르면 서버 값 위 내 칸만 · 숨은 종단 보기 관 id 장부 · 384_3 단언 427 의도
- 433-16: 새로고침 · 새 탭 = 세션 상세로 먼저 섬 · 뒤에서 상세 GET(ETag 304) · 판이 다르면 서버 값 위에 이 탭에서 고친 사용자 칸만 · [저장] patch 바탕도 새 판 · 노선 초안 hold 는 버릴 때 새 판
- 440-3: 숨은 종단 보기도 관 세션 id 장부 돌림(평면 마커 누름 = 초안 자리) · 그리기는 보일 때
- 384_3: pvi 단언 = 저장 꼭짓점 + 심은 측점마다 세운 꼭짓점(427)
- 384_7: 세션 쓰기 = 받을 때 · 판 확인 새 판 둘

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 21:37:07 +09:00
eomsangdonandClaude Opus 5.5 e51dd2a801 fix(450 B06 측점 갈아끼움): MC 곡선 열쇠 이음 · 자리 같은 단면 서버 표본 유지 · 구간값 죽은 길 걷음 · 표 위 CAD 한도
- 433-4 갈아끼움이 curveMoves 거꾸로 맵으로 옛 MC 횡단을 이어 받음 — 설계 · 측점 id · moves 짝 남음
- 433-11 자리 · 축 같은 앞 단면은 지반 표본 · 상단측 · 중심고 그대로 — 덧 측점 넣기 · 빼기 뒤 누가토량 = 서버
- 433-19 Span_Control.update(culvertopt 큐) 걷음 — 구간 줄은 다단 벽만
- 433-20 표 위 CAD 요소 2000 넘음 = 초안에 안 씀 · 알림(서버 max_length 짝)
- 시험 test_433_4 · test_433_11 · test_433_19_20 새로 · 346_2 단언 · 440 헬퍼 로더 맞춤

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 21:34:51 +09:00
eomsangdonandClaude Opus 5.5 5478eb1f88 fix(452 서버): 구 구조물 이관은 저장 종단만 · 관 PUT 뒤 옛 횡단 파일 지움 · 시종점 열쇠 한 규칙
- 433-17① 이관 원천 = 저장 종단 파일 비정규 측점(서버가 직접 읽음) · 화면은 노선 id 만 보냄 — 초안 관 자리가 「기타」로 안 섞임
- 433-10 구조물 측점 다시 뜸(관 PUT · 측점 만들기) 끝에 옛 자리 cross_*.json 정리
- 433-18 서버 station_keys = 맨 앞 · 맨 끝 end:BP/EP 먼저 · 구간형 :start · :end · B06 stationKeysOf 도 맨 앞 · 맨 끝 end — 거울 시험 test_452

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 21:32:29 +09:00
eomsangdon 1f2c083bd4 Merge remote-tracking branch 'origin/dev' into sub_laptop_6 2026-10-18 19:32:00 +09:00