- 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>
- carries_cross_inputs(initial) = not initial — [적용]이면 측점마다 기본 설계(손 노선 [저장]은 같은 자리 넘김 그대로)
- 시험 test_476_1_apply_initial 「적용은 횡단 손 입력 버림」(옛 코드 = 넘김)
- 위키 rules · operations_b05 줄
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 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>
- Engine_Sections `build_sections`(측점 틀 · 지반 · 438 1차 계획선 · 포장 제안 · 파일 안 씀) · run_section_generation = 읽기 → 셈 → 쓰기
- 횡단 이름 규칙 → 새 `B05_Profile_Engine_Sections_Names`(700줄 · 다시 내보냄)
- resolve_extra_stations 사본 칸(structures · plus) · 따라감 셈 몫 `followed_structures` · `followed_plus_rows` · `followed_pipes` · `section_seed` · `seat_base_pvi` 뗌
- 체인 · 추천 초기 종단이 같은 조각을 부를 자리
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- run_route_save_chain `initial`(= as_initial) — 끔 · 균형 셈 실패면 `_carry_profile` 안 부름 = 막 쓴 1차 계획선(438 · L 20) 그대로
- 손 노선 [저장]은 그대로 계획고 옮김
- 횡단 손 입력 넘김 판정 한 자리 `carries_cross_inputs`(사용자 답 대기 · 지금 = 넘김)
- 시험 test_476_1_apply_initial · 346-3 가짜 _recompute 칸 더함
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 서버 initial_profile 펴기(세션에 안 적음) · 실패면 이유 한 줄
- 종단 그림에 초기 종단 선(주황 점선 · 끔이면 지반선 + 초기 종단) · 범례
- 한 줄 = 꼭짓점 · 종단곡선 · 직선화 수 · 최대 종단경사(L)
- [적용] = 「종단 손 편집은 새 초기 종단으로 바뀜」 확인 뒤
- 시험 test_476_2 · test_421 [적용] 단언 = 확인 창 뒤 고른 후보
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 최신 노선 id = 저장 창구가 견주는 workflow 노선 · 추가 측점 = 가운데 두 측점 사이
- 옛 차례 대 한 본문 비교에서 행 자동 번호(id) 뺌 — 새 추가 측점 행은 두 길이 다른 번호를 받음
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- design_profile_save.ts 새 파일 — 한 본문 [저장] 조각 · [확정] 직전 저장 · 저장 뒤 서버 선형 넘김
- 높이 캐스케이드 설명을 B05_Profile_UI_Profile_Heights 머리로 옮김
- 팝아웃 시험 목록에 새 파일 · 저장 조각 시험(test_472_6_profile_save) 추가
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 암 경계 · 암 절토 경사 저장소(`B06_Section_UI_Page_Persist`) = 세션 칸이 주인 — 읽을 때마다 측점 열쇠 칸(`readCells`) · 고칠 때 지금 칸을 읽어 그 측점만 바꿔 씀(`putCell`) · 메모리 맵 · load · 갈아끼움 다시 읽기(keyedStores · reloadKeyedStores) 걷음 · ↶ 뒤 다음 조작이 되돌림을 덮던 흠(N5) 고침
- 저장 재료 = `offsets()` · `ratios()`(새 Map) · ↶ ↷ 가 rockb · cutslope 칸을 바꾸면 조정창과 같은 onRestore 로 카드 · 면적 다시
- B05 상단측 메모리 맵(uphillOverrides · load/saveUphillOverrides) 걷음 — 읽는 곳 없이 저장 뒤 비우기만 하던 사본 · 값 주인 = 세션 칸 `uphill` · 상단측 차례 = 기본 조각 그대로
- 노선 바뀐 [저장] 성공 뒤(페이지 다시 세운 뒤) 옛 노선 번호의 노선 범위 초안(`clearRouteDrafts`) · `route-draft-hold` 비움 · 넘김 규칙 그대로 · 같은 번호면 노선 칸 안 지움 · 실패면 그대로
- 시험 test_472_5r_rock_owner 7(옛 코드 빨강 5) · 옛 단언 고침(176_3 · 271 · 443 상단측 조각 · 344_3 저장소 load)
- 위키 암선 · 암 경사 · ↶ ↷ 규칙 · 노선 저장 뒤 정리 줄
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 자리 칸 목록 한 벌 = TS `SEAT_KEYS`(Station_Swap · 파이썬 Router_Design 이 그 글을 읽음) — two_stage_slope · rock_boundary_offset_m · cut_slope_ratio_user · section_mode · ditch_side
- 자리 판정 한 벌 = `sameSeat` ↔ 파이썬 `same_seat`(중심 0.01 m · 왼쪽 축 1e-3 · 모르면 같은 자리 = 옛 동작)
- 끌기 세션 넘김 · Node stations.carry = `carryKeyedStates`(목록 측점 자리 · 값마다 쓴 때 자리 `@seat` — 되돌리기로 되살린 값도 제 자리로)
- 미리보기 = `pipelineCrossSource` 가 저장분 · 세션 자리 칸에 자리째 실음 → `crossAtSeat` 가 새 자리면 뺌
- B06 갈아끼움(노선 초안) = 자리 바뀐 측점 설계의 자리 칸 걷고 기본값(`unseated` · 브레인 덧)
- 서버 노선 저장 = `carry_cross_inputs` 자리 칸 같은 자리만 · 손 단면 유형 · 측구 방향 = `compute_default_designs` 입력
- 옛 단언 시험 고침(자리 모름 목록 = 같은 자리 = 손 상단측도 넘김 · 「@seat」 칸 거름) · 새 시험 test_475_3_seat_carry
- 위키 rules 넘김 규칙 줄
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- B05_Profile_Engine._route_geojson x · y 3 → 4자리(z 3자리 그대로) · 짝 머리 표시
- draftLine 그린 선 x · y 4자리 · 곡선 start · apex · end 4자리 · R 3자리(= RouteCurve.as_dict) · 파이썬 round 짝(toFixed)
- 교점 끌기 재현 브라우저 ↔ 서버 차 0.81 → 0.00 ㎥ · 옹벽 + 추가 측점 0.88 → 0.00 ㎥(test_475_1_route_digits)
- 472-1 헬퍼 — 옮김 인자 · 페이지 배선(stationsAt · storedPvi) · 단면 모양 = 따라간 구조물(헛 차 덤 고침) · golden 값 그대로
- 옛 시험 두 곳(346_1) — 안 깎은 선 단언 → 서버 저장 자리 단언
- 관 지문 허용오차 주석 · calculations R1 줄
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 화면 검증(검증_sub8)에서 찾음 — 저장 뒤 옹벽 초안이 끌기 전 자리(600)로 남아 다음 [저장]이 옛 자리로 되돌릴 뻔함
- design_pipeline_page 네 줄(commit) · routeSaved 가 노선 초안 비우기 전에 부름 · 시험 test_472_6_route_save
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 옛 노선 지문 관 파일(옛 누가거리 394 · 좌표 351) — 측점 계획 · 관 지점 GET · 화면 · 상세 얹기는 351 인데
세월교 노면 하강(ford_surface_drops) · 물넘이포장 구간(ford_pavement_ranges · tilt_ranges) · 카드 이름
(relabel_pipe_stations) · B07 관 글 재료(load_note_sources) · 옛 비정규 측점 이관 심는 자리만 394 로 읽음
→ [저장] 재계산 · [확정] · 상세 값이 화면과 갈림
- B05_Profile_Engine_Sections.route_pipe_points — 관 지점 정본을 지금 노선에 얹어 읽음(_load_pipe_points 이월)
· 노선 경로 안 줌 = 노선 파일 하나(ROUTE_DATA_FILE · 노선 풀기도 같은 이름을 씀) · 노선 못 읽으면 저장분 그대로
- load_culvert_sets · attach_saved_shapes(saved_pipes 걷음) · relabel_pipe_stations(상세 GET 은 노선 경로 넘김)
· B07 load_note_sources · Structures_Router 이관 심는 자리 = 이 한 벌
- 시험 test_472_d_route_pipe_readers(옛 코드 빨강 2) · test_472_d_pipe_route_attach 「노선 모름 = 파일 누가거리」
단언은 옛 동작이라 「노선 파일 하나 = 351」로 고침 · 위키 rules · calculations 줄
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- load_culvert_sets · culvert_sets_from · attach_culvert_sets · attach_culvert_specs + 얹기 상수 셋 옮김(700 → 576)
- 부르는 쪽(Engine_Attach · Engine_Tilt · Router_Design_Ranges) · 시험 import 만 새 자리로
- test_b06_pipe_length 소스 읽기 = 새 파일 · 위키 B06_backend 자리 고침
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- POST /design/save 에 route(노선 초안) · carry(옛 노선 세션 칸) 칸 · 서버 = 노선 저장 → Node facility.rebase(rebasePipeDraft · rebaseStructureDraft) → 6-A 차례(새 노선) → Node stations.carry(routeCarryPatches) → 횡단 저장
- 되돌림 범위 = 노선 행 · 자식 표 · 단계 · 배수 폴더 · 노선 파일 · 지표면 확정(설계 지형 바꿈)
- 손 상단측은 안 넘김(요구 274) · 노선 바뀐 [확정] = [저장](새 노선 본 뒤 다시)
- 브라우저 = 노선 초안 + 사용자 칸만 한 본문 · 옛 차례 길(saveRouteDraft 뒤 flush · carryAfterRouteSave · keepDraftsOnNewRoute) · 부름 0 된 flush 창구 여섯 · saveCachedCrossPatches 걷음
- 등록부 R9 stations.carry · F10 facility.rebase · 옛 차례 단언 시험 한 본문 꼴로 · test_472_6_route_save(옛 길 = 새 길 · 실패 되돌림)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 관 목록 받기(followPipeList)가 「고른 관 사라짐」으로 먼저 고름을 풀어 폼 다시 엶이 안 돎 → 사라진 관 하나 · 새로 선 관 하나면 그 관으로 고름을 옮긴 뒤 목록을 받음 · 폼 다시 엶 · 알약 고름도 따라감
- 시험 test_472_5_shop_owner 배선 단언 글을 새 줄로(옛 줄 글 그대로 단언 · 동작 같음 + 따라감)
- 위키 rules · operations_b05 줄(관 자리 읽기 한 벌 · 관 지움 ↶ 정본 설계 · 폼 따라감)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 관 지움 ↶ = 351 측점이 새로 서며 freshDesign(잠정 status · 포장 권장 pavement_suggested 빠짐 → 성토 경고 안내가 달라짐) → 같은 자리 정본 행이 있으면 그 설계 사본
- 지금 상세에 같은 자리 측점이 있으면(격자에 구조물 놓기 등) 옛 규칙 그대로 · 노선 초안 차례 그대로
- 시험 test_272_swap_keeps_canon 관 지움 되돌림(옛 코드 실패)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 관 지점 정본 지문이 지금 노선과 어긋난 저장분(검증_sub4 · 파일 394 · 좌표 351) — 측점 계획(_load_pipe_points) · GET 은 351 에 얹고 서버 상세 읽기(attach_saved_shapes)만 파일 누가거리로 찾아 351 관 세트 빠짐 → 새로고침 = 관 세트 없음 · 관 지움 ↶ = 화면이 다시 얹어 관 세트 있음(누가토량 갈림)
- saved_pipes(노선 경로) — 상세 GET · 재생성 응답 · 설계 미리보기가 노선 경로를 넘김 · 노선 못 읽으면 저장분 그대로
- 시험 test_472_d_pipe_route_attach(옛 코드 실패) · golden 헬퍼도 같은 읽기
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>