Commit Graph
15 Commits
Author SHA1 Message Date
eomsangdonandClaude Sonnet 5.5 1a8dddb3cc refactor(512-3 common_util_route_polyline): 점 다듬기·꺾임점 뽑기·원호 맞춤 바탕을 common_util_route_polyline_geom.py 로 나눔 — 745 → 455 줄 · 밖 이름은 common_util_route_polyline 그대로 · 소스 지문 목록은 route_polyline*.py 로 넓힘
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 20:04:45 +09:00
eomsangdonandClaude Opus 5.5 4eec3a4b37 feat(509-5 · 509-2 B05 추천 지형): 분석 지형 고르기 = 추천 노선 창 안 · 지형마다 추천 미리 셈 · [적용] = 창 지형이 설계 지형 · 평면은 지형 이름만 · 설계 지형 격자 하나(수치지형도 적용이면 그 격자)
- 전처리 미리 셈이 고를 수 있는 지형마다(설계 지형 먼저 · 수치지형도는 DB 모델 있을 때만) 다섯 갈래 + 초기 종단
- 창 지형 바꿈 = 그 지형 저장본만 · 없으면 409 안내(+[재계산]) · 기본값 판정에서 지형 뺌
- POST /route/initial terrain = 창 지형 · [적용] draft.terrain = 창 지형 · 손 [저장]은 지형 안 바꿈(서버도 as_initial 일 때만)
- 평면 분석 지형 고르기 · 화면 취향(routeedit-terrain) 걷음 · 지반고 · 묶음 초안 = 설계 지형(null) · 적용 뒤 받아 둔 격자 버림
- 시험 test_509_5 · test_509_2 · 걷은 고르기를 보던 옛 시험 새 동작으로(352_3 건너뜀)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 20:41:20 +09:00
eomsangdonandClaude Opus 5.5 7ae7515773 fix(505-1 덧 · 505-2 5d B05): 추천 접근 = 엔진 지문 달라도 저장본 읽음 · 모델 없는 sheet 고르기 숨김 · 409 사유
- 추천 저장본: 프로젝트 접근(화면 기본 갈래)은 같은 판 · 같은 입력이면 그 파일 소스 지문으로 키를 다시 내 찾음(read_stored_any) · 지문 견줌 · 다시 셈은 전처리 체인만
- 초기 종단 저장본: 접근은 코드 지문 빼고 입력만 견줌 · 파일에 코드 지문 칸 · 지문 칸 없는 옛 파일은 그대로 읽음
- 분석 지형 고르기 목록: 설계 지형 아닌 쪽은 DB 완료 모델도 있어야 둠(없으면 숨김)
- 노선 [저장] 설계 지형 바꿈에 모델 없음(LookupError) = 되돌림 + 409 사유 한 줄
- 시험 test_309_3 둘 더함 · test_505_2_terrain_sheet 새로 · test_133_1 DB 모델 맞춤

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 13:28:06 +09:00
eomsangdonandClaude Opus 5.5 d42726030e fix(505-1 B05): 추천 노선 미리 셈 = 전처리 체인에서만 · 프로젝트 접근은 저장본 읽기만
- B05 열기(GET /route/plan) 미리 셈 예약 걷음 · 체인 쪽(업로드 · B04 재확정 · B01 사용 범위) 그대로
- 추천 창 기본 갈래(기본 다섯 · 저장 제약 · 종단 켬 · 설계 지형) = 저장본만 · 없으면 409 「전처리를 다시 하면 생깁니다」(판 글 · 토스트)
- 사용자가 바꾼 제약 · 비중 · 종단 끔 · 다른 분석 지형 · [재계산] = 그 자리 셈
- 화면이 실은 분석 지형이 설계 지형과 같으면 설계 지형으로 봄
- 저장본 꺼내기 path.touch 걷음 · 초기 종단 지문 노선 파일 칸 걷음(셈이 안 읽음) · 초기 종단 지문 함수 캐시
- B04 _prepare 재투영 · 피클 읽기 · followed_pipes 스레드로
- 시험 test_309_3 새로 · 224_3 · 364_4 · 476_1 새 규칙에 맞춤

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 13:14:33 +09:00
eomsangdonandClaude Opus 5.5 dfe17b5ee0 fix(B05 추천 저장본): 다른 지문 저장본 남김 · 30일 지난 것만 지움 · 재계산 · 최근 두 벌 = 같은 지문 안 · route_initial 시험 묶음 캐시 비움 (420-2)
- purge_outdated — 다른 판 · 소스 지문은 안 읽고 남김 · STALE_DAYS 30 지난 파일만 미리 셈 때 지움(두 PC · 여러 워크트리가 storage 같이 씀)
- drop_pool_results([재계산]) · prune_stored(종류별 두 벌) — 지금 판 · 지문 파일만
- test_route_initial — 시험마다 _POOLS 비움(autouse) · test_weight_ends_match_branches xfail(엔진 pick 정밀 · 빠른 판 섞어 견줌 · 419 에서 풂)
- 시험 420_1 — 다른 지문 남음 · 30일 지난 것 지움 · 재계산 · 정리에서 다른 지문 안 건드림

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QfHKQs7J3hQELKMWQMUJEy
2026-10-18 13:05:05 +09:00
eomsangdonandClaude Opus 5.5 eee1da09fa feat(B05 추천 횡단 토공): CrossEarth 새 파일 · 표준 횡단면 = 저장 패널값 · 판 8 + 소스 지문 · [재계산] 서버 · with_profile 저장 (420)
- 새 B05_Profile_Engine_RouteInitial_CrossEarth.py — cross_earthwork(line, chainages, design_z, terrain, standard) · cross_earthwork_delta(before, after, changed_chainages, …) · attach_cross_earth(결과 표 절 · 성 = 횡단)
- 균형 종단 · 횡단 토공 표준 횡단면 = 프로젝트 저장 패널값(추천 · [적용] 둘 다) · generate_initial_route standard 인자
- 저장본 ALGO_VERSION 8 · 엔진 소스 지문 열쇠 · 표준 횡단면 열쇠 · 옛 판 · 옛 지문 미리 셈 때 지움
- 요청 recompute — 묶음 잠금 안에서 이 묶음 저장본 · _POOLS 버리고 새로 셈 · 저장본 request 엔 안 적힘
- initial_choice.json with_profile([적용] 「종단 반영」) · 미리 셈 다섯 갈래 종단 켬
- 시험 420_1 새로 · 224_3 · 364_4 · route_initial 고쳐 씀

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QfHKQs7J3hQELKMWQMUJEy
2026-10-18 12:43:20 +09:00
eomsangdonandClaude Opus 5.5 28e4b0eaf3 fix(B05 노선 추천 측점 맞춤): 합친 꼴 먼저 판에 측점 밖 생기면 옛 차례 판과 견줌 · 추천 창 설명 · ALGO_VERSION 7 (406-4)
- 측점 맞춤 — 같은 쪽 합친 꼴부터 놓다 뒤 곡선이 측점을 잃으면 옛 차례(그대로 → 합침) 판도 맞춰 측점 밖 적은 쪽 · 같으면 곡선 적은 쪽
- 검증_sub4 다섯 갈래 측점 밖 ≤ v5(weighted 5 → 1)
- 추천 창 「측점 맞춤」 설명 — 6m 한도 문구를 지금 규칙(같은 쪽 합침 · 거리 한도 없음 · 복도 · 계류 · 기울기 · 토공)으로
- 시험 test_406_1 — 측점에 놓을 수 없는 쌍 안 합침 · 언덕 세 갈래 다른 선

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014utrjfoW831Vc5wJUd13kL
2026-10-18 10:32:36 +09:00
eomsangdonandClaude Opus 5.5 6b24de2b71 feat(B05 노선 추천 측점 맞춤): 거리 한도 걷어 내고 직접 잼 · 합친 꼴부터 놓기 · ALGO_VERSION 6 (406-2)
- 큰 R(widen) · 측점 맞춤(Station) — 추천 후보는 이탈 한도(4 m · 6 m) 대신 Guard 직접 잼 · 예상노선 추적 · 새 초기 노선은 그대로
- 측점 맞춤 — 같은 쪽으로 가장 많이 합친 꼴부터 · 자리 = 기울기 → 가까운 측점 → 토공 가늠 나은 곳 · 잼 못 지나면 덜 나쁜 놓기 0 → 1 → 3 %p 단계 · 그래도 못 놓으면 기울기 먼저(그 자리)
- Pool._trace 큰 R 판 뒤 합치기 → 측점 맞춤 · 엔진 grade_excess 걷음
- 검증_sub4 v5 대비: gradeline · earthwork · gentle 측점 밖 0 · 기울기 위반 5/4/4 → 1 · 같은 쪽 짧은 직선 15/17/14 → 8 · 절성토 ±1 % · weighted 곡선 35 → 26 · 측점 밖 1 → 5

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014utrjfoW831Vc5wJUd13kL
2026-10-18 10:00:17 +09:00
eomsangdonandClaude Opus 5.5 86884935dd feat(383-1): R = 일반측점 기본 제약 — 새 초기 노선 맞춤 + 스냅 켬 · 추천 후보마다 맞춤(ALGO 5) · [적용] 스냅 켬
- 새 초기 노선: 예상노선 폴리라인 곡선 MC 를 일반측점에 맞춤 + 곡선표 station_snap 켬(못 맞추면 지금 선 + 켬) · 옛 사본 그대로
- 추천: 후보마다 맞춘 선으로 고르기 · 쓸기 · 거름 · 측점 밖 0 후보 앞세움 · 남은 측점 밖 곡선 = 못 지킨 구간(station)
- 추천 [적용] = 측점 스냅 켬 저장 · 첫 셈 74.6 s → 42.6 s(검증_sub1)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
2026-10-17 15:07:01 +09:00
eomsangdonandClaude Opus 5.5 63032d6cce fix(노선추천): 364-5 한 측점을 다투는 이웃 곡선 — 덜 꺾인 쪽 끔(꺾임점째 뺌 · 안 되면 꺾임만) · 이웃 MC 20 m 안 측점 밖 쌍 없앰 · ALGO_VERSION 4
브레인 판 다섯 갈래 측점 밖 곡선 합 16 → 3(토공 8/39 → 2/34 · 영선 5/34 → 0/30 · 비중 3/35 → 1/33) · 이탈 한도 · 기울기 잣대 그대로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
2026-10-17 00:16:01 +09:00
eomsangdonandClaude Opus 5.5 29ef36e20d feat(노선추천): 351-2 곡선 MC 일반측점 맞춤 — 고른 선의 곡선 가운데를 20 m 측점 위로(IP 밀기 · R 맞춤 · 합침 · 못 놓는 곡선만 그 자리) · 맞춘 선 · 맞추기 전 선 두 벌 저장 · 모달 「측점 맞춤」 켬끔 · 서버 원호 미리 보기 · 「측점 밖 곡선 N개」 · 이탈 한도 6 m · ALGO_VERSION 3 · 「재계산」 이름
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
2026-10-16 21:29:19 +09:00
eomsangdonandClaude Opus 5.5 39d3007c28 fix(노선추천): 351-1 저장 빈틈 넷 — 재확정 체인 끝 미리 셈 · 기본값 · 저장된 제약 결과는 「최근 2벌」 정리에서 따로 셈 · 저장된 제약으로도 미리 셈 · B01 사용 범위 바꾸면 예상노선 다시 씀 + 미리 셈
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
2026-10-16 20:33:27 +09:00
eomsangdonandClaude Opus 5.5 1fcdf5aa4c perf(영구저장): 343-2 도엽 3D 면 열쇠 · 지표면 모델 id 유지 · 비용면 메모리 기억 · 추천 노선 열쇠 · 횡단 상세 ETag
- 도엽 3D 면 — 결과 옆 dtm_sheet_{방식}.key.json(등고선 이름:mtime:크기 · 노선 · CRS · 격자 · 여유 · 스무딩 · 화면 상자 · ALGO) 같으면 건너뜀
- 지표면 모델 — (방식 · 필터 · 파일) + 파일 지문 같으면 행 id 살려 고쳐 씀 · 이번 결과에 없는 옛 행만 지움
- 비용면 · 계류 메모리 기억(비용면 서명 · 계류 파일 지문 · 좌표계) · 추천 열쇠 = 서명(배열 통째 해시 없앰)
- 추천 저장본 종류(갈래 · 지형)당 최근 2벌 · 꺼내면 최근으로
- 횡단 상세 GET — 측점 파일 안 지움(valid_cross_names) · 본문 해시 ETag 304
- 시험 test_343_2_persist_keys 13건

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014utrjfoW831Vc5wJUd13kL
2026-10-16 11:10:13 +09:00
eomsangdonandClaude Opus 5.5 c4a09c1ca2 fix(B05추천): 328 추천 저장본 ALGO_VERSION 1 → 2 — 큰 R 로 셈이 바뀌어 옛 저장본(R 12) 무효
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Se7ytqbohmBQnfYpwYFnYf
2026-10-15 12:52:08 +09:00
eomsangdonandClaude Opus 5.5 f127c0179e feat(노선추천): 327-1 추천 결과 영구 저장 — 입력 지문 키 · 같은 입력이면 저장본 · 바뀐 입력만 셈해 더함
- 새 B05_Profile_Engine_RouteInitial_Store(ALGO_VERSION · request_fingerprint · 읽기 · 쓰기 · 묶음 잠금) · 자리 B05_Profile/route_recommend/<키>.json · 덮어쓰기 없음 · 상한 없음
- 엔드포인트 몸통 compute_initial(찾기 → 셈 · 더함 · 덮개 수 꺼낼 때 다시 셈 · stored 표시) · precompute_defaults(기본 다섯 알약)
- resolve_inputs 로 기본값 풀이 한 곳 · 머리글 「파일 안 씀」 정정
- 시험 test_224_3_recommend_store

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014utrjfoW831Vc5wJUd13kL
2026-10-15 12:34:58 +09:00