chore(plan): 43~54장 · CODEX 완료 기록 옮김(PLAN 정리)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FJqWQpoB1RE7hiaQ2wH8qV
This commit is contained in:
@@ -0,0 +1,361 @@
|
||||
# 2026-10-05 ~ 10-06 계획 — 43~54장 · CODEX (PLAN.md 에서 옮김)
|
||||
|
||||
## 43. 일위대가 · 구조물 카드 3차 수정 (사용자 지시 10-5 새벽 · 밤새 · 아침 보고)
|
||||
|
||||
- 사용자 원문 = `docs/raw/M02_구조물조합개편/사용자요구_1005.md` · 보고 https://claude.ai/artifact/XKVEDerf42aAXTuakdQMsc
|
||||
- 검증 방식(토큰 · 시간 줄이기 · 이번부터): 수치 판정은 `orca eval` 한 번에 도는 시나리오 JS(`resources/tester/ui_checks/<번호>_<이름>.js` · git 추적 · 다시 씀) · 스냅샷은 요소 못 찾을 때만 · 사진은 항목당 1장까지 · 시험으로 되는 것은 화면 안 씀 · 창마다 15분 상한
|
||||
|
||||
- [x] 43-1 수량산출 칸 누름 = 모달 하나(sub2) — 위 = 지금 수량(손 · 칸 · —) · 손 입력 칸 · [연결 풀기] · 아래 = 그 열 면적산출 시트(실제 값 · 이은 칸 색 · 읽기만) · 칸 누름 = 그 칸으로 이음(함께 · 바꾸기 물음 그대로) · 로직 줄 · 자재 줄 같음 · 두 단계 모달([엑셀에서 고르기]) 없앰 · 끝 ef24de8b6(모달 하나 · 시트 바로 · 손 5 → 396,398 · B6 → 990,996)
|
||||
- [x] 43-2 로직 줄 누름 모달(넣을 값)에서 수량 칸 뺌(sub2) — 입력값 · 메모만 · 끝 ef24de8b6
|
||||
- [x] 43-3 자재 줄 2행 · 가격 다섯(sub6) — 1행 = 코드 · 이름 · 규격 · 수량산출(기준 수량) · 단위 · M01 자재 가격 다섯 칸(빈 것도 「—」) · 기준단가 칸 강조 · 2행 = 수량산출(손 · 칸 · —) · 반영 금액(기준단가 × 수량) · 로직 줄 2행과 같은 꼴
|
||||
- 검증완료(sub6 · bc1314e94): 가격 다섯 = M01 값 열 다섯(물가자료 · 유통물가 · 물가정보 · 거래가격 · 관급) · ui_checks/43-3_자재가격.js — MT004177 6,545 · 6,727 · 6,090 · 6,181 · — · 기준 = 물가정보(굵게) · 수량산출 위 「1 포」 · 금액 위 6,090 · 빼기로 되돌림 · 시험 46 통과
|
||||
- [x] 43-4 구조물 조합 일위대가 카드 = 상세 그대로(sub1) — 단가산출 로직 표(2행) + 자재목록 · 순서 단추 · 로직 추가 없음 · 줄 누름 = 옵션 모달 · 수량산출 칸 = 43-1 모달 · 카드 안 가로 스크롤 · 고침은 카드 [저장] · 떠날 때 물음(공용 카드 틀) · 한 줄 표는 카드에서 안 씀 · 끝 ca4fcf036(카드 = 상세 카드 갈래 · 가로 스크롤 628 > 311 · 한 줄 표 지움)
|
||||
- [x] 43-5 도면 · 일위대가 · 면적산출 상세 머리 [돌아가기] = 일반 버튼(sub5) — 알약 · ghost 아님 · 흠 E1(어두움 머리 단추 대비)도 함께 재고 고침 · 끝 e2a938f2c(공용 기본 단추 · 높이 32 · E1 = 잼 착오(색 전환 120ms 중 읽음) · 어두움 8.01)
|
||||
- [x] 43-6 흠 E2 도면 표 선 색(sub8) — 놓은 표 lineColor 비면 기본 선 색으로 채움(한 곳) · 41 미리보기(T1) 사진 확인
|
||||
- 검증완료(sub8 · b1dbd9c3c) — TableEntity.fromJson 한 곳(놓기 · [업데이트] · 다시 열기)에서 선 색 · 굵기 · id 비면 기본값 · vitest 8 · ui_checks/43-6_도면표_선색.js: 변환 답 lineColor 없음 → 저장 JSON 표 lineColor #fff · 굵기 1 · id 있음 · 되돌림 · T1 미리보기 사진 1장(커서에 표 · 안내 글)
|
||||
- [x] 43-9a 새 항목 = 칸 셋 자동 생성 · 일위대가 ↔ 면적산출 함께 가져오기(sub7 · 서버 · 길) — 구조물 [새 항목] 때 도면 · 일위대가(SU) · 면적산출 빈 문서 자동 생성 · 일위대가나 면적산출 카드 [가져오기] = 둘을 함께 덮어씀(알약 연결 · 입력값 · 수량 포함) · 도면은 따로 · 끝 = 새 항목 칸 셋은 집계표 저장 때 이미 생김(`backfill_missing_structures`) · 함께 길 = copy 길 `pair=true`(`store.copy_pair` · 면적 먼저) · 화면 함수 `copyLaborAreaFrom(열, 원본, from)` · 검증완료(`test_m02_pair_copy.py` 5)
|
||||
- [x] 43-9b 카드 빈 상태 단추 없앰 · 가져오기 잇기(sub1 · 43-4 뒤) — 카드 셋 [새로 만들기] · [복사 생성] 없앰 · 빈 칸도 가져오기 · 수정 · 일위대가 · 면적산출 [가져오기] = 43-9a 함께 길 · 가져오기 창 안내 한 줄 · 집계표 줄 조회 후 선택도 같은 길 · 검증완료(`ui_checks/43-9b_빈카드_함께가져오기.js` · 시험 90)
|
||||
- [x] 43-7 끝 검증(sub4) — 합친 뒤 ui_checks 시나리오 전부 + 멈췄던 줄(T1) 한 번 · 20분 상한 · 수치 표 · 끝(sub4 · 새 세션 · 5분 · 시나리오 6 중 5 통과 → 43-5 덧 1e512c2c0 [도면으로 보내기] 18px → 일반 단추 · 다시 통과)
|
||||
- [x] 43-8 메인 반영 · 전역 싱크(기준 한 점) · 아침 보고(검증 최적화 방법 포함) · main · 아홉 폴더 · 원격 노트북 가지 · dev = 6d10f9603(트리 20f686b1e) · 검증 대기
|
||||
|
||||
## 44. B05 · M01 · M02 · 공통 · 대시보드 · CAD 수정 (사용자 지시 10-5 · 사용자 자리 비움 · 끝까지 진행)
|
||||
|
||||
- 원문 = `docs/raw/사용자요구/2026-10-05_수정요구.md`
|
||||
- 검증 = 고친 창이 시나리오 JS 한 번(`resources/tester/ui_checks/44-N_이름.js`) · 끝 검증은 새 세션 한 창이 시나리오만 다시 돌림 · 창마다 15분 상한
|
||||
- 정함(브레인): 체인톱 두 입력(가격 → 자재품목 「동력체인톱」 · 기본 = 이름 차례 첫 값 / 오일 → 「작동유」)은 사용자 지시라 이 두 입력만 로직 자료를 고침 · 다른 로직 자료는 손대지 않음
|
||||
|
||||
- [x] 44-1 B05 계획노선 편집 거리 측정(sub3) — 첫 점이 찍힌 노선(예상 · 계획)을 기억해 둘째 점은 그 노선에만 붙음(가려진 다른 노선 무시)
|
||||
- 검증완료 — 둘째 점 · 커서 미리보기 = 첫 점 노선만 · 길이 = 노선 따라 잰 누가거리 차(전과 같음) · `ui_checks/44-1_구간재기_노선기억.js` · `44-1b_구간재기_화면.js` pass
|
||||
- [x] 44-2 B05 계획노선 편집 횡단 글자(sub4) — 아래쪽 좌우 표고 · 원지반 · 기본계획 횡단 글자 = 지금의 절반 · 오른쪽 측점 표기 글자 = 제목과 같은 크기 · 검증완료(시나리오 44-2_횡단_글자.js · 글자 셋 5.5px · 측점 16px = 제목 16px · B05 계획노선 편집 전용 클래스라 B06 영향 없음)
|
||||
- [x] 44-3 B05 좌측 패널 하단 고정 다시(sub5) — 구조물 목록 · 초기화 · 저장 · 횡단(종단) 단추 = 위 구분선 아래 패널 바닥에 고정 · 풀린 까닭 찾아 막음
|
||||
- 풀린 까닭 = 473d959d6(24-3b) 좌측 자리를 빈 채 틀에 넘겨 공용 쪼개기 건너뜀 · 보기 전환이 패널 클래스를 덮어 ui-sidebar-fill 지움 · 검증완료(test_design_panel_dock_fixed · ui_checks/44-3 B05·B06·B05 단추 바닥 간격 0px · 긴 패널 위 칸만 스크롤) · 검증 대기
|
||||
- [x] 44-4 M01 단가산출 로직 상세 화면(sub6) — 좌측 차례 = 기본정보 › 시험계산 › 단가산출 상세 › 텍스트 수식 · 우측 패널 둘(다이어그램 · 상세내용 / 원문) · 둘은 하나만 열림 · 둘 다 닫기 됨 · 토글 단추 · 원문 패널 = 그 로직의 품셈 원문(지식DB 원문 연결)
|
||||
- 검증완료 — 시나리오 `resources/tester/ui_checks/44-4_로직상세_패널.js` 통과 · `test_m01_logic_source.py` 5 통과(정본 로직 1469 줄 원문 연결 1469) · 검증 대기
|
||||
- [x] 44-5 M01 체인톱 입력 자재 연결(sub7) — 체인톱 가격 = 자재품목 「동력체인톱」(기본 = 이름 차례 첫 값) · 체인톱 오일 = 자재품목 「작동유」 · 손 입력 없앰
|
||||
- 검증완료 — GF000002 · GF000056 · GF000076 입력 둘 걷고 호표 재료 줄(「작동유」 → 기어작동유 4,612원/ℓ · 「동력체인톱」 → 400mm 530,000원 · 비목 경비) · 잡품 = 휘발유값 40%(주⑤) · 같은 단가면 원가 전후 같음(GF000002 계 454,056) · 손 입력 빈칸 견본 대비 +14,137(체인오일 9,685 + 손료 4,452) · `ui_checks/44-5_체인톱_자재.js`
|
||||
- [x] 44-6 M02 일위대가 표(sub2) — 칸 연결 표기 「12.5(B6)」 · 옵션 값 줄 = 이름 ~ 합계 칸에 걸친 한 줄(행 높이 안 커짐) · 총합계 행 전체 합계 칸 테두리 · 색 · 「별칭」 열 추가(사용자 이름 · 저장)
|
||||
- 검증완료 — pytest 35 통과 · 화면 시나리오 `44-6_일위대가_표.js`(별칭 열 · 옵션 줄 colspan 8 · 높이 22 · 전체 합계 테두리 · 색 · 버림 확인) · 검증 대기
|
||||
- [x] 44-7 M02 일위대가 상세 단위 드롭다운 · 대시보드 일위대가 카드 없앰(sub1) — 검증완료(시험 30 · ui_checks/44-7)
|
||||
- [x] 44-8 CAD 한글 입력(sub8) — 글자 · 표 편집 · 명령줄에서 한글 IME 입력 됨
|
||||
- 검증완료 — vitest `ime-sink.test.ts` 2 통과 · 시나리오 `resources/tester/ui_checks/44-8_CAD_한글입력.js` = 문자 단계 받개 초점 잡힘 · 조합 키 막음 0 · 글자 「가나다」 · 명령 끝 뒤 초점 풀림 · 되돌린 뒤 글자 0 · 검증 대기
|
||||
- [x] 44-10 덧 B05 횡단 글자 배율(sub4) — 횡단 SVG 를 접힌 · 좁은 칸 크기(최소 240×150)로 짓고 칸이 커지면 통째로 늘어나 글자가 몇 배로 보임(사용자 「아까는 엄청 컸음」) → 판 크기 바뀌면 다시 지어 배율 1 · 글자 11px 로 되돌림 · 끝 9b4b56edc(고치기 전 접힘 · 좁음 뒤 펼침 = 배율 2.1 · 11px 가 화면 23.4px · 고친 뒤 배율 1 · 화면 10.9px)
|
||||
- [x] 44-11 덧 M01 로직 상세 오른쪽 패널 접기 = 공용 접기 템플릿(ui_template_collapsible · 제목 행 · 캐럿)으로 맞춤(sub6) — 요구 「템플릿 확인 후 반영」 누락분 · 끝 1ca99ed3a(공용 접기 카드 · 캐럿 · 하나만 열림)
|
||||
- [x] 44-9 합치기 · 끝 검증(시나리오) · 메인 반영 · 노트북 싱크 · 보고 · main · 노트북 아홉 = 8990729a6 · 끝 검증 sub4 5분 시나리오 9 중 8 → 44-1b 판정 덧(72795f749) · M01 시험 빨강 둘(GC000027 · GC001043)은 이번 일 전부터 · 검증 대기
|
||||
|
||||
## 45. M02 단추 양식 · 좌측 하위 컨테이너 · 분류 표 키 줄 (사용자 지시 10-5)
|
||||
|
||||
- 원문 = `docs/raw/사용자요구/2026-10-05_수정요구.md` 끝 「추가작업」
|
||||
|
||||
- [x] 45-1 M02 전체 — 알약 꼴로 그린 단추를 공용 기본 단추로(sub1) · 알약 템플릿은 알약(연결 알약 · 이름표)에만 · 먼저 전수 목록(파일 · 단추 글 · 지금 꼴) 뒤 바꿈
|
||||
- 검증완료 — `ui_checks/45-1_M02_단추_꼴.js` · 알약 꼴 단추 0/68 · 작은 단추 모서리 4px · 연결 알약 15/15 알약 꼴 그대로
|
||||
- [x] 45-2 M02 좌측 패널 — 구조물 조합 안 하위 컨테이너(구조물 도면 · 일위대가 · 면적산출 · 각 「전체 항목」) 없앰(sub5) · 들어가는 길 = 구조물 조합 항목 → 카드 셋 · 대시보드 · 주소(open=…) 길 정리
|
||||
- 검증완료 — `ui_checks/45-2_좌측_하위_없앰.js` · 좌측 하위 0 · 카드 [수정] 셋 → 상세 → [돌아가기] 카드 3
|
||||
- [x] 45-3 구조물 조합 상세 분류 표 — 일위대가 · 도면 · 면적산출 키 줄 안 보임(sub7) · 저장 자료 · 장부는 그대로(보기에서만 뺌)
|
||||
- 검증완료 — 키 줄 0 · [저장] 앞뒤 장부 키 · 도번 · 면적번 같음 · 집계표 파일 그대로 · 프로젝트 층 표는 원래 키 줄 없음(같은 규칙) · 가져오기는 카드 [가져오기]로
|
||||
- [x] 45-5 구조물 조합 상세 — 분류 표와 카드 셋 사이 공간 줄임 · 분류 표 아래 구분선 · 카드 칸 위 구분선 없앰(sub7) · 끝 4ee2a4b74(간격 107 → 12px · 구분선 둘 없앰)
|
||||
- [x] 45-4 합치기 · 끝 검증(시나리오) · 노트북 싱크 · 보고 · 끝 검증 sub4 4분 5/5 · main · 노트북 아홉 = 9e2c034d9 · 검증 대기
|
||||
|
||||
## 46. 구조물 옵션 그룹 — 구조물 하나 · 조합 여럿 (사용자 지시 10-5 · 승인 · 마스터 창)
|
||||
|
||||
- 시스템 공통 · 시스템 관리자만 · 층(마스터 · 회사 · 개인) 구분 없음 · 자리 = M02 좌측 「구조물 옵션 보이기」 컨테이너
|
||||
- 그룹 = 구조물 종류 안에 사용자가 만든 이름 붙은 묶음 · 옵션을 넣음(빈 그룹도 됨) · 프로젝트 B05 · B06 폼에서 보조 컨테이너 하나(제목 = 그룹 이름) · 그 안에서 구조물 조합 항목 하나를 지정
|
||||
- 그룹에 안 넣은 옵션 = 지금처럼 본체 칸 · 본체 「집계 항목」 하나
|
||||
- 옵션 하나는 그룹 하나에만
|
||||
- 옛 「종류마다 보일 옵션 고르기」(체크) = 그대로 둠 · 남길지 지울지 사용자
|
||||
|
||||
- [x] 46-1 코드 모으기 — `M02_MasterTemplete/` 아래 새 폴더 하나에 옵션 보이기 코드 전부(서버 · 화면 · 글자 · 스타일 · API 함수 · 길) · B05 쓰는 곳 · 시험 경로만 고침 · 동작 그대로 · 끝 bd3c48c5(`StructOptions/` · `M02_SO_*`)
|
||||
- 검증완료 — 시험 15 통과 · 길 주소 그대로 · 검증 대기
|
||||
- [x] 46-2 그룹 편집 화면 — 종류 고름 → [그룹 추가] · 이름 고치기 · 지우기 · 순서 · 옵션을 그룹에 넣고 빼기 · [저장] · 정본 = 마스터 템플릿 JSON 한 벌(`{type_id: [{id, 이름, 옵션[]}]}`) · 서버 쓰기 = 시스템 관리자 · 끝 37634e2c(좌측 줄 = 시스템 관리자만 · 옵션 줄 「들어갈 자리」)
|
||||
- 검증완료 — 시험 5 · ORCA 배수관 그룹 둘(유입구 기슭막이 옵션 5 · 빈 그룹) [저장] → 정본 · `/structure-types` groups 같음 · 끝나고 빈 표로 되돌림 · 검증 대기
|
||||
- [x] 46-3 B05 · B06 폼 — 그룹마다 보조 컨테이너(제목 · 그 그룹 옵션 · 「집계 항목」 [고르기][해제]) · 구조물 저장에 그룹별 집계 항목 칸 추가(`structures.json` · `pipe_points.json`) · 그룹 정의가 사라진 연결은 값 보존 · 경고 · 끝 15e08b28 · 322cd150(숨은 칸 안 옮김 · 갈래 바뀌면 다시 세움)
|
||||
- [x] 46-4 집계 연결 — 스냅샷 · 집계표 채우기가 본체 + 그룹별 연결을 각각 한 열로 셈 · 미지정 그룹 = 「미지정 n건」에 포함 · 끝 15e08b28(복사본 `{구조물 id}__{그룹 id}`)
|
||||
- [x] 46-5 자체검증 — 고친 대상 시험 · ORCA 화면(그룹 만들기 → B05 보조 컨테이너 → 조합 지정 → [저장] → 집계표 열) · 바꾼 값 되돌림
|
||||
- 검증완료 — 시험 223 + 104 통과 · ORCA 데스크탑_메인: 배수관 폼 상자 둘(유입구 칸 5 옮김 · 집수정 고르면 빠지고 기슭막이면 돌아옴 · 빈 그룹 「옵션 없음」) · 4+5 관 빈 그룹에 SS000054 → [저장] → pipe_points `group_items` · 복사본 `pipe@85.05__gj35pug` · 집계표 줄 s85.05 · [해제] [저장]으로 되돌림(복사본 지움 · 칸 0) · 검증 대기
|
||||
- 흠(이번 일 밖) — M02 주소 `?open=옵션` 진입 때 구조물 조합 표가 늦게 떠 옵션 화면을 덮음(제목만 남음) · 줄을 다시 누르면 열림
|
||||
|
||||
데스크탑 보조 검토 2건(10-5):
|
||||
|
||||
- [x] 46-6 B05 · B06 하단 종단 패널 높이 조절 안 됨 — 원인 = `design_page.css` 의 `.design-page__profile` 이 `display: contents` → 패널 부모 높이 0 → 끌기 상한 0 → 늘 180px · 고침 = 상한 기준을 부모 대신 `.design-page__main` 높이로(`B05_Profile_UI_Profile_Drag.ts:150` · `_Profile_Heights.ts:159` 두 곳) · 검증 = B05 · B06 끌어서 높이 바뀜 · 상한 = main × 0.9 · 끝 acf7570d
|
||||
- 검증완료 — ORCA 실제 마우스 끌기: 종단 보기 180 → 429 · 맨 위 770(= 856 × 0.9) · 횡단 보기 180 → 379 · 끝나고 180 으로 되돌림 · 검증 대기
|
||||
- [x] 46-7 「제안값 넣기」 걷어냄 — 단추 3곳(계곡 통과 시설 묶음 · 기슭막이 벽마다 · 일반 옵션 칸) · 회색 「제안 …」 글 · 단추 스타일 지움 · 대신 구조물이 생길 때 기본값을 칸에 실제 값으로 넣음 · 값 출처 한 벌 = 등록부 `default`(하드코딩 관종 · 관경 · 집수정 · BOX 규격 · 날개벽 · 세월교 폭을 등록부로 옮김) · 사용자 정함(10-5)
|
||||
- 넣는 때 = 자동설계가 시설을 놓을 때 + 사용자가 [추가] 할 때
|
||||
- 「빈칸 = 미확정」 판정 뒤집음 — 기본값 있는 칸은 늘 값 · 기본값 없는 칸만 빈칸 = 미확정
|
||||
- 이미 있는 프로젝트의 빈칸 = 그대로 둠
|
||||
- 끝 79ca2208(auto 이름 — 동시 git 작업과 겹침 · 내용 = 46-7 파일 11) · 관 벽 높이 · 월류 폭 · 필요 수심은 값을 지어내지 않고 「비우면 …」 안내만(엔진 동작)
|
||||
- 검증완료 — 시험 4 + 관련 104 통과 · ORCA 새 배수관 = 파형강관 · 1000 · 기슭막이 · 돌쌓기(찰) · 10 · 새 돌쌓기(메) = 높이 2.5 · 길이 10 · 전후 5 · 제안 단추 · 제안 글 0 · 검증 대기
|
||||
- [x] 45-6 구조물 조합 [삭제] 단추 = 다른 색(공용 기본 단추의 위험 갈래)(sub1 · 사용자 지시 10-5) · 끝 aa2845eef(카드 셋 · 일위대가 줄 [삭제] = danger · 대비 밝음 5.44 · 어두움 5.79) · 검증 대기
|
||||
- [x] 45-7 일위대가 표(카드 · 상세) 항목 이름 줄바꿈 → 표 줄 깨짐 고침(sub2 · 사용자 지시 10-5) · 끝 2334a2abc(이름 칸 flex 빼 칸 선 이어짐 · 이름 한 줄 말줄임 · 끊긴 선 3 → 0) · 검증 대기
|
||||
|
||||
## 47. 오른쪽 접는 패널 · 원문 보기 · 줄 단추 · 카드 ? (사용자 지시 10-5)
|
||||
|
||||
- 원문 = `docs/raw/사용자요구/2026-10-05_수정요구.md` 끝 「추가 2」
|
||||
- 정함(브레인): 오른쪽 패널 = 공용 부품 하나(패널 여럿 · 접으면 세로 띠 · 하나만 열림 · 폭 공유 · 모두 접힘 됨 · 열림 · 폭 계정 취향) — M01 로직 상세(흐름도 · 원문) · 일위대가 상세(원문) · 면적산출 상세(일위대가 · 도면)가 같이 씀 · 면적산출 두 패널도 3번 규칙(하나만 열림)을 따름
|
||||
|
||||
- [x] 47-1 구조물 조합 카드 [?] = 카드 제목 옆 · 도움말 = 설명 · 단축키 · 기능 · 사용법(sub1) — 검증완료(ui_checks/47-1 · 카드 3 · ? 제목 옆 3 · 네 절 3)
|
||||
- [x] 47-2 구조물 조합 도면 카드의 파일 불러오기 단추 없앰(상세에서만)(sub1) — 검증완료(미리보기 📂 0 · 상세 📂 1)
|
||||
- [x] 47-3 공용 오른쪽 접는 패널 부품 + M01 로직 상세 적용(흐름도 · 원문 따로 · 각각 접고 폄 · 하나만 열림 · 폭 공유)(sub6) — 검증완료(ui_checks/47-3) · 검증 대기
|
||||
- [x] 47-4 일위대가 상세 오른쪽 원문 패널(줄 고르면 그 로직 원문 · 접고 폄)(sub2 · 47-3 부품 뒤)
|
||||
- 검증완료 — 카드 패널 0 · 상세 1 · 고른 줄 원문(6-1-1 · 6-3-3) · 접고 폄 그대로 · M01 47-3 시나리오 그대로
|
||||
- [x] 47-5 일위대가 줄 누름 = 하이라이트 + 원문 · 줄 단추 위로 · 아래로 · 옵션(넣을 값 모달) · 삭제 · 단추 사이 간격 공용 템플릿(sub2)
|
||||
- 검증완료 — 카드 · 상세 줄 고름 1줄 · 모달 0 · [옵션] 모달 1 · 단추 사이 4px · 아래로 · 위로 뒤 고름 유지 · 원문은 47-4
|
||||
- [x] 47-6 면적산출 상세 오른쪽 도면 패널 추가(그 열 도면 보기 · 접고 폄)(sub3 · 47-3 부품 뒤)
|
||||
- 검증완료 — ui_checks/47-6 통과(5178 · 하나만 열림 · 폭 576 공유 · 모두 접힘 · 도면 iframe 887px)
|
||||
- [x] 47-7 합치기 · 끝 검증(시나리오) · 노트북 싱크 · 보고 · 끝 검증 sub4 3분 5/5 · 충돌 둘(시험 파일 둘 다 남김 · DrawingCard = 47-6 mountStructure + 47-2 noImport) · main · 노트북 아홉 = 92c10f5cc · 검증 대기
|
||||
|
||||
## 48. B05 계획노선 편집 — 구간 재기 실시간 값 · 노선 추천 설명 칸 (사용자 지시 10-5 · 데스크탑 보조)
|
||||
|
||||
- 정함(사용자): 첫 점을 찍을 때 그 노선 땅 높이를 한 번에 받아 둠 → 커서 이동 중 서버 안 부름(편집 중 계산 안 나감 원칙 유지) · 클릭하면 지금처럼 그 두 점만 정밀 조회로 고정
|
||||
- [x] 48-1 구간 재기 — 첫 점 뒤 커서 자리 길이 · 지반고 · 종단기울기를 작은 창에 바로 표시(높이 받는 중이면 길이만 + 「높이 읽는 중」 · 노선이 바뀌면 다시 받음) · 끝 · 검증 대기
|
||||
- [x] 48-2 노선 추천 모달 — 기존 칸 그대로 · 오른쪽 세로 구분선 + 설명 칸(갈래 여덟 · 고른 갈래 강조 · 공통 제약 넷) · 서버 엔진 실제 동작 기준으로 적음 · 끝 · 검증 대기
|
||||
|
||||
## 48. 구조물 옵션 정의 페이지 — 정의 한 벌 · 화면은 정의대로 (사용자 지시 10-5 · 계획만 · 착수는 사용자 답 뒤)
|
||||
|
||||
- 원문 = `docs/raw/사용자요구/2026-10-05_수정요구.md` 「구조물 옵션 정의 페이지」
|
||||
- 목표 = 사용자(비프로그래머)가 M02 화면에서 구조물군 · 종류 · 옵션 · 값을 만들고 바꾸면 B05 · B06 화면이 코드 고침 없이 따라감
|
||||
- 지금 = 구조물 37종 · 옵션 정의가 코드 폴더 자료 `B05_Profile/B05_Profile_Structure_Types.json`(B05 폼 일부가 읽어 그림) · M02 `구조물옵션표시.json` · `구조물옵션그룹.json`(46장 그룹) · 배수 시설 등 손코딩 폼 섞임
|
||||
- 원칙(브레인 제안 · 사용자 확인 전): ① 정의 자리 = M02 마스터(지금 자료 그대로 옮김 · 키 유지) ② 이름 · 키 나눔(이름 자유 · 키 안 바뀜 → 저장 값 안 깨짐) ③ 옵션 꼴 고정(고르기 · 숫자 · 글 · 예/아니오 + 공통 칸 기준 측점 · 길이 · 높이 · 전/후) — 새 꼴만 코딩 ④ 지우기 대신 「안 씀」 ⑤ 상위 → 하위 규칙 = 선택지 · 보이기 · 기본값 셋만(계산 · 연동 제어는 뒤) · 손코딩 특수 동작은 이름 붙여 정의에서 붙이고 뗌
|
||||
|
||||
- [x] 48-0 사용자 답(10-5) — ① 정의 고침 = 시스템 관리자만 ② 바꿈은 아주 드묾 · 바로 적용 · 지난 정보는 지난 이력으로 남김(변수 없음 오류 금지) ③ 종류마다 옵션 선택지 목록 고침 = 맞음 ④ 행열 = B05 좌측 패널 칸 배치 = 맞음 ⑤ 기준 측점 = 기준 측점 내용(종류마다 표시 켬끔) · 길이 · 높이 · 전/후 = 형상 — 그룹을 정의할 때 받을 정보
|
||||
- 정함(브레인 · 사용자 답 반영): 정의 = `resources/master_template/구조물정의.json` 한 벌(구조물군 · 종류 · 옵션 · 선택지 · 배치 · 그룹(46장 안음 · 형상 칸 길이 · 높이 · 전 · 후 받기 켬끔 + 뜻) · 규칙 · 동작 이름) · 키는 만들 때 자동 · 안 바뀜 · 이름 자유 · 지움 = 「안 씀」 · 판 번호 + 저장마다 `구조물정의_이력/판_N.json` · 프로젝트 구조물 값에 저장 때 판 번호 · 지금 정의에 없는 키 값 = 「지난 정의 값」 읽기만 칸(오류 없음 · 계산은 없는 값으로) · 쓰기 = 시스템 관리자만 · 옛 B05 자료(`B05_Profile_Structure_Types.json` · 구조물옵션표시 · 구조물옵션그룹)는 판 1 로 옮김(키 그대로 · GET /structure-types 응답 꼴 유지)
|
||||
- [x] 48-1 정의 틀 확정(담을 것 표 · 키 규칙 · 꼴 목록 · 규칙 꼴) + 지금 자료를 M02 마스터 정의로 옮김(화면 변화 0 · 서버 · 화면이 새 자리를 읽음) · 끝 bf1fa5081(`구조물정의.json` 판 1 · 틀 `docs/raw/M02_구조물옵션정의/정의_틀.md` · GET/PUT `/api/m02/structure-definition`)
|
||||
- 검증완료 — 시험 81 통과(정의 5 · 옵션 · 그룹 · B05 구조물) · 화면 37종 · 옵션 235 · 배수관 그룹 3 그대로(ui_checks 48-1_구조물정의_읽기) · 검증 대기
|
||||
- [x] 48-2 M02 정의 화면 — 구조물군 · 종류 · 옵션 · 값 이름 바꿈 · 순서 · 배치 격자(줄 · 칸 너비) · 공통 칸 켬끔 · 옵션 값 목록 · 안 씀 · 46장 그룹(일위대가 그룹 · 변수 편입) 그대로 안고 감
|
||||
- 검증완료 — 시험 27(정의 화면 · 손질 · 48-1 · 옛 보이기 · 그룹) · ui_checks/48-2_M02_구조물정의_화면 통과(군 8 · 종류 37 · 배수관 옵션 21 · 격자 칸 21 · 겹침 빨강 2 · 저장 꺼짐 · 판 그대로) · 지난 판 길(`/structure-definition/history`) 새로 · 선택지 「안 씀」은 정의 틀에 칸이 없어 「빼기」로(빠진 값 = 지난 정의 값) · 검증 대기
|
||||
- [x] 48-3 B05 · B06 좌측 「구조물 배치」 칸 = 정의대로 그림(첫 작업 · 손코딩 폼을 정의 그리기로 · 특수 동작은 붙여 둠) · 끝 fc54a385d(공용 그리기 `_Structures_Define` · 정의 덧칸 = GET `/m02/structure-definition` 을 종류에 얹음 · 배치 줄 · 칸 · 너비 · 안 씀 · 기준 측점 켬끔 · 지난 정의 값 읽기만 상자 · 그룹 형상 칸 값 = 옵션 `{그룹 id}__{칸}` · 손코딩 시설 폼 = 동작 「계곡통과시설」로 남기고 안 씀 · 선택지 · 규칙만 칸 표식으로 붙임)
|
||||
- 남김 — 시설 폼 칸 이름 · 차례는 손코딩 그대로(정의 이름 바꿈은 레지스트리 칸만) · 기준 측점 끔은 구간형만(점형 · 범위 계산형은 기준 측점이 곧 위치) · 꼴 `bool` 칸 그리기 없음
|
||||
- [x] 48-4 상위 → 하위 규칙(선택지 · 보이기 · 기본값) · 끝 fc54a385d(상위 칸 change 즉시 · 가린 상위에 매인 줄은 안 걸림 · 규칙이 가린 칸은 저장 안 건드림)
|
||||
- 검증완료 — 시험 8 + 23 통과 · ORCA 랩탑_보조 판 1 목록 17건 칸 차례 · 2열 · 가림 0 · 지난 정의 값 0 · 선택지 밖 값 0 = 옛 화면과 같음 · 정의 사본(메모리) 흙막이 이름 · 차례 · 안 씀 · 선택지 줄임 · 기본값 · 가림 / 배수관 관경 선택지 800 · 1000 · 기본값 · 날개벽 가림 따라감(ui_checks 48-3_구조물배치_정의그리기) · 검증 대기
|
||||
- [ ] 48-5 값에 따른 변수 · 제어(별도 · 사용자 지시 뒤)
|
||||
|
||||
## 49. 원문 보기 패널 양식 · M01 원문 깨짐 (사용자 지시 10-5 · 바로)
|
||||
|
||||
- [x] 49-1 오른쪽 패널 = 좌측 패널과 같은 접기 양식(공용 createWorkflowPanelHandle collapseToward right · 가장자리 손잡이) — 공용 부품 ui_template_side_panels 를 그 양식으로 고침 → M01 로직 상세(흐름도 · 원문) · M02 일위대가 상세(원문) · 면적산출 상세(일위대가 · 도면) 모두 따라감 · 하나만 열림 · 폭 공유 · 모두 접힘 규칙 유지(sub6)
|
||||
- [x] 49-2 M01 원문 보기 md 깨짐 고침 — M02 는 정상(같은 원문 부품) · 차이 찾아 고침(sub6)
|
||||
- [x] 49-3 오른쪽 패널 내용 = 메인 화면 스크롤과 따로 스크롤(패널 높이 = 화면 안 · 패널 안에서만 스크롤)(sub6 · 사용자 덧 10-5)
|
||||
- [x] 49-4 원문 표 = 높이 제한 · 자체 세로 스크롤 없음(가로 넓은 표만 가로 스크롤) · M01 · M02(sub6 · 사용자 덧 10-5)
|
||||
- [x] 49-5 원문 보기 M01 · M02 한 벌 — 같은 부품 · 같은 CSS · M02 꼴(글자 16px)(sub6 · 사용자 덧 10-5)
|
||||
- 검증완료 — ui_checks/49_오른쪽패널_양식.js(세 화면 손잡이 꼴 · 하나만 열림 · 폭 공유 · 머리띠 아래 멈춤 · 몸 스크롤 따로 · 표 칸 수 · 원문 꼴 같음) · test_m01_logic_source · test_ui_side_panels · typecheck · 검증 대기
|
||||
- [x] 49-4 원문 표 = 높이 제한 · 자체 스크롤 없이 다 보임(패널 자체가 따로 스크롤)(sub6 · 사용자 덧 10-5) · 끝 · 검증 대기
|
||||
- [x] 49-5 원문 보기 한 벌로 — M01 · M02 가 같은 원문 부품 · 같은 꼴(M02 꼴이 기준 · 가독성 좋음)(sub6 · 사용자 덧 10-5) · 끝 · 검증 대기
|
||||
- [x] 49-6 구조물 조합 일위대가 카드(미리보기) 자재목록 [자재 추가] 숨김 — 로직 추가 숨김과 같게(sub2 · 사용자 10-5)
|
||||
- [x] 49-7 구조물 조합 카드 [?] 도움말을 상세 셋(도면 · 일위대가 · 면적산출) 머리 제목 옆에도 — 같은 글(CardHelp 한 벌)(sub1 · 사용자 10-5)
|
||||
- [x] 49-8 구조물 조합 「찾기」 칸 없앰 → 그 자리만큼 화면 넓게(sub2 · 사용자 10-5)
|
||||
- 48 · 49 보고 https://claude.ai/artifact/ST6a4q5eCXcu593LLvxNFe · 노트북 아홉 = 1b457a3cc
|
||||
|
||||
## 50. 일위대가 조합 서고 · 일위대가 상세 표 · 면적산출 알약 · 원문 (사용자 지시 10-5 · 조사 끝 · 착수는 사용자 답 뒤)
|
||||
|
||||
- 원문 = `docs/raw/사용자요구/2026-10-05_수정요구.md` 「일위대가 조합 · 면적산출 알약」 · 조사 = 각 창 `tmp/조사_50-1~4.md`(sub3 · sub6 · sub7 · sub2)
|
||||
- 되는가: 넷 모두 됨 · 큰 것은 50-3(서고) 하나 · 나머지는 2~5걸음
|
||||
|
||||
- [x] 50-0 사용자 답(10-5) = 추천대로 — ① ⚠ + [×] ② 「T1 도면」 ③ 절 통째 + 항 강조 · 주N 19개도 ④ 단가산출 · 단가승격 · 일위조합 ⑤ 다시 누르면 닫힘 ⑥ 기준 + 반영 둘 다 ⑦ 승격 때 입력값 고정 ⑧ 사전조합 줄 수량 손 입력 · 기본 1 ⑨ 사전조합 = 승격 + 사전조합만 ⑩ 참조 따라감 · 프로젝트 굳힘 ⑪ 위 층만 ⑫ 자재 줄 없음 · 갈래 A
|
||||
- [x] 50-1 면적산출(sub3) — 도면 보낸 범위 점선 테두리 + 이름표(같은 열 도면 연결표 읽음 · 채움 없음) · 칸 고르면 그 칸 알약 강조 + 한 번 반짝 + 보이게 스크롤 · 로직 지운 뒤 남은 알약 ⚠ + [×](지움은 사용자 [저장] · 알약 목록 확정 신호 뒤에만 ⚠)
|
||||
- 검증완료(10-5) — 시험 36 통과 · 화면(orca eval) ui_checks/50-1_알약_강조_표시.js(⚠ = X 만 · 범위 「T1 도면」 점선 · 채움 투명 · 칸 B1 → X · B2 → L 강조 · [×] 로 연결 −1) · 50-1_보낸범위_읽기.js(가짜 연결표 2줄 · 실패 = 빈 목록) · M02 면적 상세 실화면 알약 13 · 3개 ⚠ 0 · 검증 대기
|
||||
- [x] 50-2 원문(sub6) — 서버 원문 블록에서 마크다운 기호(역슬래시 · 「>」 · 주석) 벗김(원본 자료 손 안 댐 · M01 · M02 함께) · 출처 항 · 주 번호를 실어 그 항 강조 — 검증완료(시험 9 통과 · 정본 출처 깨짐 0 · 항·주 30건 전부 표시 · ORCA 50-2 시나리오 · 검증 대기)
|
||||
- [x] 50-3 일위대가 조합 서고(갈래 A · 참조 + 서버 펼침) — ① 서버 자료 틀: 층 양식 길에 새 종류 promote(단가승격 · SP-) · precombo(사전조합 · SC-) · 참조 {층 · 주인 · 키} · 저장 때 순환 · 위 층만 · 같은 참조 두 번 막음 · 쓰는 곳 있으면 지우기 409(sub7) ② 계산: calc 가 참조 줄을 펼쳐 셈(재귀 · 캐시 · 깊이 상한)(sub7) ③ 서고 화면: 구조물 조합 아래 「일위대가 조합」 컨테이너(층 단추 · 단가승격 · 사전조합 목록 · 새로 · 복사 · 지우기 · 상세 = 도면 · 면적 · 자재 없음)(sub1) ④ 상세 고르기: 고르기 창 탭 단가산출 · 단가승격 · 사전조합 + 층(sub2) ⑤ 복사 · 가져오기 · 프로젝트 때 참조를 값으로 굳힘 · 로직 지우기 검사 넓힘(sub7) — 차례 ① → ② → (③ · ④ 함께) → ⑤ · 끝 · 검증 대기
|
||||
- ① ② ⑤ 서버(sub7) 끝 · 검증완료(`test_m02_labor_ref.py` 18) — 새로 · 복사 길 `POST /api/m02/layers/{층}/library/{promote|precombo}`(`문서` 또는 `본뜬`) · 고침 · 지우기 · 목록 = 양식 길(목록 줄에 `제목` · `단위`) · 참조 알약 키 「참조|층|주인|키」 · 승격 저장 뒤 쓰는 일위대가 `계산값` 은 그 문서 다시 저장 때 새로 셈
|
||||
- [x] 50-4 일위대가 상세 표(sub2) — 줄 누르면 표 아래 그 줄 상세(M01 시험계산 기준단위 표 부품 그대로 · calc 답에 버리던 재료 · 노무 · 경비 줄 실음 · 한 줄만 열림) · 이름 왼쪽 「구분」 열(줄 모양에서 읽음 · 저장 안 함) · 승격 줄 상세 = 원 로직 표 · 사전조합 줄 상세 = 안 줄 목록 한 층(50-3 뒤) · 끝 · 검증 대기
|
||||
- [x] 50-5 합치기 · 끝 검증(시나리오 · Sonnet) · 노트북 싱크 · 보고 · 끝 · 검증 대기
|
||||
- 50 끝 검증 sub4(Sonnet) 12분 6/6 · main · 노트북 아홉 = 1375b13e5 · 남은 것: 승격 고친 뒤 쓰는 일위대가 목록 합계는 그 문서 다시 저장 때 새로 셈 · 다이어그램은 참조 줄 안 그림 · test_m02_template_layers 1 빨강(46-3 Table_Fill · 데스크탑 몫)
|
||||
|
||||
## 51. 하나씩 고침 (사용자 지시 10-5)
|
||||
|
||||
- [x] 51-1 오른쪽 패널 높이 = 화면에 맞춤(보이는 창 높이 − 머리띠 · 창 크기 바뀌면 다시) · 메인 스크롤 때 화면 안에 붙어 따라 움직임 · 패널 안만 따로 스크롤 — M01 로직 상세 · M02 일위대가 상세 · 면적산출 상세(공용 ui_template_side_panels 한 곳)(sub6)
|
||||
- 검증완료 — 51-1_오른쪽패널_높이.js 세 화면 ok · 칸이 아래면 칸 위부터 · 붙은 뒤 창높이−머리띠 · 검증 대기
|
||||
- [x] 51-2 일위대가 상세 줄 상세 = 그 줄 바로 아래 하위 행(표 칸에 맞춤 · 재료 · 노무 · 경비 줄마다 이름 · 수량 · 단위 · 노무비 · 재료비 · 경비 · 합계 칸) · 줄 누르면 접고 폄(▸/▾) · 표 아래 따로 상자(50-4 M01 꼴) 없앰 · 승격 = 원 로직 줄 · 사전조합 = 안 줄(sub2 · 사용자 정정 10-5) · 끝 · 검증 대기
|
||||
- [x] 51-3 로직 고르기 창 — [찾기] 단추 없앰(치는 대로 걸러짐 · 다른 찾기와 같게) · 단가승격 · 사전조합 따로 단추(탭) 없앰 → 한 목록에 「구분」 칸(단가산출 · 단가승격 · 일위조합)으로 보여 고르게(층 단추는 그대로)(sub3) · 끝 · 검증 대기
|
||||
- [x] 51-4 일위대가 조합 컨테이너 = 항목 둘만(「단가산출 승격」 · 「일위대가 사전조합」) · 새로 · 본떠 만들기 · 지우기 단추 없앰 · 항목 누르면 상세 = 표 목록 + [생성] · [복사] · [삭제](사전조합도 같게)(sub1) · 끝 · 검증 대기
|
||||
- [x] 51-5 단위 고르기(UnitPick 등) 고른 뒤 보이는 단위 단추 = [저장] 같은 기본 단추 크기(sub6) · 끝 · 검증 대기
|
||||
- [x] 51-6 사전조합 상세(서고 모드)에 줄 고르기 — [추가] 로 고르기 창(단가승격 · 사전조합만 · 51-3 한 목록 꼴 · 위 층만) · 줄 수량 손 입력(기본 1) · 위로 · 아래로 · 삭제(sub1 · 51-4 뒤 이어서) · 끝 · 검증 대기
|
||||
- [x] 51-7 일위대가 표 하위 행 펼침 화살표(▸/▾) 없앰 — 줄 누름 펼침 · 접힘은 그대로(sub2)
|
||||
- [x] 51-8 M01 로직 상세 오른쪽 패널(원문 · 흐름도) 높이 = 화면 — 51-1 뒤에도 M01 만 240px(브레인 실측: innerHeight 1072 · 패널 top 132 · h 240 · bottom 372 · M02 일위대가는 948 맞음)(sub6) · 끝 ae04b403d · 브레인 실측 M01 h 940 = 화면(1072 − top 132)
|
||||
- [x] 51-9 로직 고르기 창 — 구분 · 상세구분 두 칸 한 줄(2열) · 결과 이름 왼쪽 맞춤 · 찾기 공용 양식(ui_template 에 없으면 M01 자재 · 기계 고르기 중 나은 것을 공용 템플릿으로 올려 같이 씀)(sub3) · 끝 2a914e11e · 공용 찾기 템플릿
|
||||
- [x] 51-10 서고 목록(단가산출 승격 · 일위대가 사전조합) = M01 공용 표 양식 · 단추 템플릿(M01 로직 목록 화면 꼴) · 사전조합 줄 넣기 = 일위대가 상세 [로직 추가] 와 같은 고르기(같은 부품 · 단가승격 · 사전조합만 · 따로 창 없앰)(sub1 · 51-9 고르기 양식 뒤 잇기) · 끝 9443a0371
|
||||
- 51장 합침 · 노트북 아홉 = 9e2ce4ed2 · 검증 대기
|
||||
- [x] 51-11 사전조합 줄 = 일위대가 상세와 같은 고르기 내용(단가산출 · 단가승격 · 사전조합 모두 · 사용자 정정 10-5 · 50-0 ⑨ 바뀜) — 서버: 사전조합 담은로직에 로직 줄({로직 · 입력값 · 수량}) 허용 · 계산 · 순환 · 지우기 검사(sub7) · 화면: 사전조합 상세 고르기 창 걸러냄 없앰 · 로직 줄 [옵션] · 수량 = 일위대가 상세와 같게(sub1 · sub7 뒤) · 끝 서버 31874ea3a · 화면 d495f7875 · 노트북 아홉 = c7a84a0ed
|
||||
- [x] 51-12 단가승격 · 사전조합 문서에 구분 · 상세구분 · 연결 정보 — 정함(브레인): 승격 = 원 로직의 구분 · 상세구분을 받아 저장(연결 = 원 로직 키 · 출처) · 사전조합 = 사용자가 고름(같은 구분 · 상세구분 목록 · 처음 값 = 첫 줄의 것) · 서고 목록 · 고르기 창 걸러 보기 · 표에 함께 · 있는 SP-000001 · SC-000001 은 읽을 때 채움(sub7 서버 → sub1 서고 화면 · sub3 고르기 걸러 보기) · 끝 서버 0b1133394 · 서고 74af9f8d9 · 고르기 25dda4d85
|
||||
- [x] 51-13 일위대가 표 일위조합(사전조합) 줄 하위 행 = 조합의 세부 항목 한 층(안 줄마다 이름 · 수량 · 단위 · 노무비 · 재료비 · 경비 · 합계 = 서버 calc 「안」 의 기준 × 수량 · 합 = 위 줄) · 끝까지 다 펼치지 않음 · 단가산출 · 단가승격 줄은 지금 그대로(sub2) · 끝 86d4f3e88(하위 2 = 안 2 · 합 맞음)
|
||||
- [x] 51-14 일위대가 상세 표 순서 열 단추 2행(위 = 위로 · 아래로 / 아래 = 옵션 또는 수정 · 삭제) · 단가승격 줄 [옵션] = 그 승격 문서 입력값 고침(서고 원본 · 쓰는 모든 구조물에 따라감 · 그 층 쓰기 권한 없으면 읽기만) · 일위조합 줄 [수정] = 모달에 그 사전조합 상세(안 줄 [옵션] · 수량 · 저장 = 서고 원본 · 권한 같음)(sub2 · 정함 브레인) · 끝 b7b827a83 · 노트북 아홉 = a7b10ab74
|
||||
|
||||
## 52. B05 · B06 좌측 구조물 배치 = 사용자 구조물 표대로 (사용자 지시 10-5 · 구조물마다 작업 창 하나)
|
||||
|
||||
- 범위(사용자 10-5 밤): B05 · B06 좌측 패널 생성 + 기존 로직 연결만 · 횡단도 새 그리기 · CAD 연결 · 수량 표시는 다음 작업
|
||||
- 운영: 사용자가 구조물 표(엑셀 꼴)를 주는 대로 → 브레인이 `docs/raw/구조물정의_표/NN_군_종류.md` 로 보관 → 구조물마다 작업 창 하나 · 화면 + 연동 계산(구조물별 계산 파일 따로) · M02 「구조물 옵션 정의」 = 이름 · 값 이름 바꾸기만(구조 정본 = 구조물 명세 코드 · 키는 정의 파일에도 올려 이름만 바꿈)
|
||||
- 공용 틀(첫 구조물 때 함께): 종류 = 기본 옵션(기준 측점 No + 거리) + 컨테이너[](제목 · 필수/선택 · 여러 개) + 항목[](고르기 · 숫자 · 자동 계산 · 연동 계산 · 상위 값에 따른 선택지) · 값 저장 = 컨테이너 인스턴스마다 · 옛 값은 지난 정의 값으로 보존
|
||||
- 정함(브레인 · 사용자가 바꿀 수 있음): 유출 보호공 형태 = 구조(흙막이)에 따라 흙막이 6가지만 · 도수로/돌붙임 = 구조만(다음 표에서 더함) · 길이 = 전 + 후(둘을 넣으면 나머지 하나 계산 · 마지막에 고친 둘을 지킴) · 관 길이 = 자동(기존 B05 관 길이 계산이 있으면 그대로 · 없으면 그 측점 설계 횡단 사면 끝 좌↔우 거리) · 높이 = 손 입력 + 횡단도 값 연동(되는 만큼 · 안 되면 까닭 보고) · 사용자 표에 없는 옛 항목(관종 등)은 화면에서 빼고 값은 지난 정의 값으로 남김
|
||||
|
||||
- [x] 52-1 공용 틀 + 횡단배수 › 배관(표 01)(sub5) · 끝 11e12b657(공용 틀 `A00_Common/design/design_structure_spec` · `_form` · 배관 명세 `_pipe` · 계산 `_pipe_calc` · 명세 종류 등록 = `STRUCTURE_SPECS` · 시설 폼은 `facility === "pipe"` 자리에서 명세 폼으로 갈아 끼움(다른 시설은 손코딩 그대로 — 52-2~ 는 같은 자리에 명세를 끼움) · 저장 키 = pipe_points 옛 키 · 선택 컨테이너 `{머리}_{n}_{항목}` · 잇기 = 필수 정의 그룹 id · 선택 `{link}{n}` · 종류 단위 잇기 = 기준 측점 아래 옛 집계 항목 줄(summary_item · 명세 컨테이너 종류만 가림) · 이름 = 정의 판 6 `종류.pipe.이름` · 필수 제목 = 그룹 이름)
|
||||
- 검증완료 — 시험 test_52_structure_spec_pipe 8 · 병합 · 정의 그리기 · 폼 키 37 통과 · ORCA ui_checks/52-1_배관_컨테이너(sub5_검증): 컨테이너 5 · 필수 3 늘 보임 · 흙막이 추가 둘 → 빼기 하나 · 형태 집수정 3 / 흙막이 6 · 길이 10 · 전 3 → 후 7 · 후 4 → 길이 7 · 잇기 유입 지정 · 유출 지정 뒤 풂 · 저장 → 다시 열기 그대로 · B05 = B06 그리기 · 관 길이 11.00 m · 되돌림 같음 · 검증 대기
|
||||
- 남은 연동 — 흙막이 추가 · 도수로/돌붙임 값 · 잇기는 저장만(B06 그리기 · 집계표 줄 안 섬 · 집계표 `_with_group_items` 는 정의 그룹만 셈) · 집수정 높이(`inlet_basin_height_m`) 횡단 연동 없음 · 관 길이는 횡단 자료가 실린 뒤만 보임 · 이름 표(`종류.pipe.이름`) M02 화면 고침 칸 없음(파일만) · 옛 시험 test_m02_structure_definition 5건(판 1 박음) · test_structure_group_items 1건(`groups.FILE` 없음)은 이 일 전부터 깨짐
|
||||
- 사용자 덧(10-5): 컨테이너마다 구조물 조합 항목 키(SS · 집계 항목)를 잇게 됨 — 잇는 코드는 이미 있음(항목 고르기 · summary_item) → 공용 틀 컨테이너에 「구조물 조합 항목」 잇기 칸
|
||||
- [x] 52-2 횡단배수 › 박스암거(표 02 고친 판 · 본체 규격 2.0×2.0 · 3.0×3.0 · 사용자 입력 / 유입 구조 · 유출 구조 = 없음 · 날개벽 · 흙막이)(sub3 · 52-1 공용 틀 뒤) · 끝 01ac9abf3 · 끝 01ac9abf3 · 합치기 692655025
|
||||
- [x] 52-3 횡단배수 › 물넘이 포장(표 03 · 경사각도(필수 · 각도 손 입력) / 도수로/돌붙임(선택 · 구조 도수로 · 돌붙임))(sub7 · 52-1 공용 틀 뒤) · 끝 04ba81618
|
||||
- 명세 `design_structure_ford_pavement` · 키 `ford_slope_deg`(도) · `ford_chute_{n}_structure` · 옛 월류 폭 · 높이 · 바닥 경사 · 두께 · 길이 = 지난 정의 값 · 잇기 `gfordpaveslope`(정의 그룹 · 판 10) · `gfordpavechute{n}`(집계표 선택 컨테이너)
|
||||
- 경사각도 ↔ 옛 바닥 경사(%) 안 이음 — 옛 값 = 횡단 방향 파임 기울기(유입 → 유출) · 표 03 은 방향 안 적음 · 뜻 애매 · 사용자 답 필요
|
||||
- 검증완료 — 시험 11 통과 · ORCA sub7_검증 12+18 옛 값 물넘이 포장: 컨테이너 경사각도 · [+ 도수로/돌붙임] · 옛 칸 0 · 지난 정의 값 5 · 각도 12.5 · 선택 둘 → 첫째 빼기 = 도수로 · 잇기 당겨짐 · 저장 → 다시 열기 같음 · B05 = B06 · 되돌림 · 검증 대기
|
||||
- 흠(이번 일 밖) — test_m02_so_def_spec 4건 = 세월교 명세 import 를 헬퍼가 못 읽음(52-4 합치기 때부터)
|
||||
- [x] 52-4 횡단배수 › 세월교(표 04 · 세월교(필수 · 관경 800 · 1000 · 1200 · 1500 · 월류 폭 손 · 월류 높이 = 월류 폭과 연동 자동 · 수량(련) 손) / 유입 · 유출 구조(필수 · 없음 · 날개벽 · 흙막이)) · 월류 폭 ↔ 높이 관계는 지식DB 근거로(없으면 사용자에게 물음)(sub6 · 52-1 공용 틀 뒤)
|
||||
- 명세 `design_structure_ford` · 계산 `design_structure_ford_calc`(높이 = 설계유량 · 월류 폭의 Manning 필요 수심 · 0.01 올림 · 그 아래 안 받음) · 근거 통수단면.md:23~33(Manning) · :59(n 0.017) · 경사 10 % = 실무 역산(설정값 · 지식DB 수치 없음) · 구조 키 `inlet_type` · `outlet_type` + 옛 `wing_in` · `wing_out` 함께 · 옛 관종 · 날개벽 치수 = 지난 정의 값 · 잇기 `gford` · `gfordin` · `gfordout`
|
||||
- 검증완료 — 시험 17 통과 · ORCA sub6_검증 세월교 1: 컨테이너 3 · 폭 8 → 높이 0.26 · 폭 4 → 0.40 · 0.01 적으면 0.40 · 수량 3 · 잇기 셋 지정 · 유출 풂 → [저장] → 다시 열기 같음 · B05 = B06 · 되돌림 · 검증 대기
|
||||
- [x] 52-5 횡단배수 › 노출형 횡단수로 · 개거(겉도랑)(표 05 · 컨테이너 없음 · 기준 측점 아래 구조물 조합 항목 잇기 하나)(sub8 · 52-1 공용 틀 뒤 · 공용 틀에 「종류 단위 잇기」 = sub5 덧) · 끝 9e4b4abdf
|
||||
- 명세 초안(sub8 · 52-1 틀 받기 전) — 지금 폼: 노출형 횡단수로 = 옵션 0 · 집계 항목 줄 1 / 개거 = 옵션 2(규격 · 연장) + 집계 항목 줄 · 모두 기준 측점 하나(점형)
|
||||
- 정함: 두 종류 = 기본 옵션(기준 측점 No + 거리) · 컨테이너 0 · 옵션 0 · 측점 바로 아래 구조물 조합 항목 잇기 1(= 52-1 「종류 단위 잇기」) · 개거 옛 옵션(규격 · 연장)은 정의에서 빼 지난 정의 값으로 남김
|
||||
- 영향: 개거 새 값에는 연장 · 규격이 없음 → B08 개거 수량은 옛 값이 있는 것만 계산 · 새 것은 「연장을 적어야 섬」 사유(사용자 표대로 · 확인 필요)
|
||||
- 끝 9e4b4abdf · 검증완료 — 정의 판 7(개거 옵션 0 · 이력 판_6) · B05 · B06 두 종류 옵션 칸 0 · 컨테이너 0 · 잇기 줄 1(기준 측점 바로 아래) · 저장 → 다시 열기 잇기 이름 그대로 · 옛 값(규격 · 연장) = 지난 정의 값 · 되돌림 확인(ui_checks/52-5_횡단수로_개거) · 정의 시험 5건(test_m02_structure_definition)은 「판 1」 고정값 탓 판 6 때부터 실패 · 검증 대기
|
||||
- [x] 52-6 횡단배수 › 맹암거(표 06 · 새 종류 · 종단배수 맹암거와 다른 종류 · 새 키 · 컨테이너 맹암거(필수 · 암거 높이 · 암거 경사 손 입력)) · 구조물 정의 · B05 종류 목록 · 집계에 새 종류 더함(sub4 · 52-1 공용 틀 뒤)
|
||||
- 끝: 정의 판 8(이력 판_7) — 새 종류 `cross_underdrain`(A 횡단배수 · 점형 · 이름 맹암거 · 약자 횡맹 · 색 #3aa0a8 · 종단배수 `underdrain` 그대로) · 옵션 `culvert_height_m`(m) · `culvert_slope_pct`(%) 손 입력 · 기본값 없음 · 비워 둘 수 있음(`empty_means` · B05 단계 필수 금지 정책) · 컨테이너 = 정의 그룹 `gcrossud` 「맹암거」(늘 한 벌 · 잇기 `group_items` = 집계표 셈) · 코드 고침 0(구조물 목록 정본 종류 — 52-1 명세 폼은 관 시설 폼 자리라 정의 그룹 길로)
|
||||
- 검증완료 — 시험 test_52_6_cross_underdrain 8 · 정책 · 정의 그리기 · 배관 명세 · 그룹 · 측점 왕복 52 통과(test_m02_structure_definition 5건은 앞서 깨짐 그대로) · ORCA ui_checks/52-6_횡단맹암거(랩탑_보조 · 저장 요청 가로챔 · 서버 쓰기 0): B05 · B06 A 목록에 맹암거 · B06 B 목록에 종단배수 맹암거 따로 · 컨테이너 1 · 높이 0.6 · 경사 2.5 · 잇기 지정 · 3+7(67 m) · 알약 횡맹 · 다시 열기 같음 · B05 = B06 · [저장] PUT 몸통 같은 값 · 되돌림 같음 · 검증 대기
|
||||
- 남은 것 — 종류 단위 「집계 항목」 줄도 함께 보임(명세 종류만 가리는 52-1 규칙) · 횡단도 · B07 · B08 그리기 · 수량 없음(표 06 값 쓰임 미정)
|
||||
- [x] 52-1b 배관 남은 연동 — 흙막이 추가 · 도수로/돌붙임 컨테이너마다 집계표 한 줄(잇은 구조물 조합 항목 · 그 컨테이너 값 · 복사본 `pipe@측점__{link}{n}` · `M02_Table_Fill_Spec`) · 옛 값 = 컨테이너 없는 옛 관 · 인스턴스 없는 잇기는 줄 없음 · 옛 「자동(규칙)」 그대로(sub5) · 범위 줄임(사용자 10-5): 횡단도 그리기 · 집수정 높이 ↔ 횡단도는 다음 수정 몫
|
||||
- 검증완료 — 시험 test_52_1b_pipe_links 3 · test_52_structure_spec_pipe 8 통과 · ORCA ui_checks/52-1_배관_컨테이너(sub5_검증): 집계표 줄 0 → 3(유입 잇기 1 · 흙막이 추가 1 · 도수로/돌붙임 1) · B05 = B06 그리기 · 되돌림 줄 0 · 복사본 없음 · 옛 빨강(정의 그룹 늘어 미지정 수 · 관 줄 나눔) test_structures_summary_snapshot 1 · test_m02_table_fill 2 는 이 일 전부터 · 검증 대기
|
||||
- [x] 52-7 안전부대용지 = 표 07 · 대피로(컨테이너 상세 내용 필수 · 상세 = 대피소 · 정차/작업장 · 차돌림곳 · 옛 대피소 · 차돌림곳 종류 값은 대피로 + 상세로 읽음 · 넓힘 계산은 상세 따라 그대로) · 반사경 · 경계석 · 위험표시 · 국가지점번호판 · 취수정 · 준공표지판 · 차단기 = 컨테이너 없음 · 종류 단위 잇기 · 가드레일(컨테이너 상세 내용 필수 · 형태 글 손 입력 · 길이 · 기준측점 전 · 후 = 배관 길이 = 전 + 후 맞물림 그대로 씀)(sub1) · 끝 4b796e508
|
||||
- [x] 52-8 종단배수 전체 = 숨김 그대로(구조물 연결 없음) · 계류사방 = 숨김(옛 값 · 도면 · 집계 그대로 · 고르기 목록에서만 뺌)(sub2) · 끝 6bd9773d0
|
||||
- [x] 52-9 안전부대용지 › 유용토운반작업장(사토장) · 토사채취장(토취장)(표 08 · 컨테이너 상세 내용 필수 · 부피 손 입력 m³)(데스크탑 메인) · 있는 키 그대로(spoil_bank · borrow_pit) · 컨테이너 = 정의 그룹 「상세 내용」(gspoildetail · gborrowdetail · 그룹 상자 · 잇기 = group_items · 집계 그룹마다 한 줄) · 부피 = 옛 용량 키 `capacity_m3`(B06 사토 배분이 읽는 자리 · b05 · 손 입력) · 옛 칸(쌓는 쪽 · 비탈 기울기 · 추가 운반거리 · 면적)은 정의에서 빼 지난 정의 값 · 이름 = 유용토운반작업장(사토장) · 정의 판 7(이력 판_6 = 52-5 와 같은 내용) · 정의 그룹 있는 종류도 종류 단위 잇기 줄 가림(hasSpecContainers) · 그룹 상자 최소 폭 0 · 배치 꼴은 그대로(사토장 = 구간 · B06 사토 배분이 시작 ~ 종료를 씀 / 토취장 = 기준 측점)
|
||||
- 검증완료 — 시험 test_52_9_spoil_borrow 5 · 레지스트리 정책 20 통과 · ORCA ui_checks/52-9_사토장_토취장(데스크탑_메인): 컨테이너 1(상세 내용) · 칸 = 사토장 부피 / 토취장 부피(㎥) · 컨테이너 밖 칸 0 · 종류 단위 잇기 줄 가림 · 옛 사토장 지난 정의 값 4(side · fill_slope_ratio · extra_distance_m · area_m2) · 부피 90 · 새 사토장 150 · 토취장 80 · 잇기 둘 · 저장 → 다시 열기 그대로 · B05 = B06 · 되돌림 같음(목록 17) · 검증 대기
|
||||
- [x] 52-10 노면공 › 콘크리트 포장(컨테이너 상세 내용 필수 · 포장사양 고르기 = 콘크리트(XXX 는 사용자 답 대기) · 높이 손 입력) · 기타 › 이름 손 입력(기준 측점 · 선택 컨테이너 상세 내용 · 비고 글) · 「상세 설계」 칸 뜻은 사용자 답 대기(데스크탑 서브) · 끝 355361bd
|
||||
- [x] 52-11 M02 구조물 옵션 정의 = 명세 이름 고치기 칸(구조물군 · 종류 · 컨테이너 제목 · 항목 이름 · 값 이름 · 구조는 못 바꿈 · 새 판 · 이력 · B05 · B06 이 그 이름으로 그림)(sub8)
|
||||
- 끝 103a207ce · 검증완료 — 배관 나무 57줄(컨테이너 5) · 이름 칸만 고침(키 · 필수/선택 · 꼴 읽기만) · 컨테이너 제목 · 항목 · 값 이름 고침이 미리보기 · B05 배관 폼(메모리 사본)에 그대로 · 빈 이름 저장 막힘 · 옛 편집기 숨김(명세 없는 종류는 그대로) · 되돌림 · 판 7 그대로 · 시험 13 통과(ui_checks/52-11_정의_이름고치기) · 검증 대기
|
||||
- [x] 52-6b 맹암거 잇기 줄 겹침(컨테이너 안 + 종류 단위) → 종류 단위 줄 가림 규칙 넓힘(sub4) · 끝 e197727a9
|
||||
- [x] 52-2b B06 조정 줄 자리 판정(B06_Section_UI_Adjust_Dock.ts slotUsable)이 숨은 명세 칸을 쓸 수 있는 자리로 봄 → 박스암거 · 세월교 조정 줄이 숨은 칸으로 감 · 숨은 줄 아래 칸은 빼기(sub3) · 끝 220a7ddc5
|
||||
- [x] 52-12 정의 그룹 꼴 종류도 이름 나무로 · 옛 편집기(구조 바꾸기) 모든 종류에서 숨김(sub8 · 개선)
|
||||
- 끝 2471a14a6 · 검증완료 — 맹암거 = 그룹 제목 › 칸 2 · 바닥막이 선택지 이름(값 그대로) · 개거 = 고칠 이름 없음 · 종류 이름만 · 옛 편집기 0(모든 종류) · 미리보기 · B05 새 구조물 폼(메모리 사본)에 그룹 제목 · 칸 이름 · 선택지 글 그대로 · 되돌림 · 판 8 그대로 · 놓은 구조물 수 그대로 · 시험 5 통과 · 검증 대기
|
||||
- [x] 52-13 끝 검증 — 52 시나리오 전부를 메인 기준 커밋에서 새 창이 한 번에 돌림 + 예외(빈 값 · 옛 값 프로젝트 · 저장 안 하고 옮기기)(sub2 · Sonnet · 전부 합친 뒤) · 끝 e32229fef(통과 14/14)
|
||||
- [x] 52-14 공용 틀에 「글 손 입력」 항목 꼴 · 기타 선택 컨테이너(상세 내용 · 비고 · 추가/빼기) · 기타 이름 = 집계표 이름(기존 집계 잇기)(sub5)
|
||||
- 끝: 항목 꼴 「글」(`kind: "text"` · 길이 상한 100 · 비우기 됨 · M02 이름 나무 꼴 「글」) · 기타 = 선택 컨테이너 「상세 내용」(비고 글 · 저장 키 `etc_detail_{n}_note` · 잇기 `getcdetail{n}` · 종류 단위 잇기 줄 가림) · 다 빈 선택 인스턴스도 첫 칸을 빈 글로 남겨 자리를 지킴(잇기 · 집계 줄 · 다시 열기) · 집계 건 이름(`그룹`) = 상세 종류 이름(비면 「기타」 · 컨테이너 건 = 이름 + n)
|
||||
- 검증완료 — 시험 test_52_14_etc_text 6 · 52 명세 · 52-1b 21 통과 · ORCA 5180(sub5_검증) ui_checks/52-10_노면공_기타(52-14 덧): 기타 상세 내용 셋 추가 → 2 빼기 → 둘(비고 「52-14 비고」 · 빈 것 · 잇기 둘 다 · 3 의 잇기가 2 로 당겨짐) · 저장 → 다시 열기 · B06 같음 · 집계 건 「52-10 시험 기타 1 · 2」 집계표 열에 듦 · 되돌림 구조물 6 그대로 · 52-1 시나리오 한 번 그대로(집계표 줄 0 → 3 · B05 = B06 · 되돌림) · 52-1 화면 스크립트는 보이는 명세 폼을 잡게 고침(52-10 뒤 폼 둘) · 옛 빨강: test_m02_so_def_spec 4(헬퍼가 52-4 ford 파일을 못 읽음 · 이 일 전부터) · 검증 대기
|
||||
- [x] 52-15 B06 좌측 목록에서 포장을 처음 누르면 같은 측점 관이 먼저 골라짐 → 누른 종류가 골라지게(sub4) · 뿌리 = 카드 고름이 측점으로 다시 풀어 관 먼저 · 누른 구조물 id 를 카드 고름에 넘김(목록 · 종단 알약 · B05 넘김값) · 관 측점선 짝 알약 = 관 · B06 목록 고름이 알약 강조도 맞춤 · B05 목록은 원래 맞음
|
||||
- 검증완료 — ORCA ui_checks/52-15_같은측점_고르기(랩탑_보조 · 22+0 관 + 콘크리트 포장 21+15~22+5): B05 · B06 네 길(다른 측점 → 포장 · 다른 측점 → 관 · 관 → 포장 · 포장 → 관) 모두 누른 종류 · 포장 고름 칸 sid = 포장 id · B05 → B06 넘김값 포장 · 알약 둘 길 포장 · 카드 직접 = 관(옛 규칙) · 되돌림 sessionStorage 키 7 · 시험 49 통과(옛 빨강 test_b06_detail_options 1 은 이 일 전부터) · 검증 대기
|
||||
- [x] 52-16 깨진 옛 시험 정리 — test_m02_structure_definition 5건(판 1 가정 · 지금 판 10) → 판을 박지 말고 판 오름 · 이력 확인으로(sub6 · Sonnet) · 끝 b02cd0bb9
|
||||
- [x] 52-17 공용 틀 선택 컨테이너 「하나만」 표시 — 사용자 표에 「여러개」 가 없는 선택 컨테이너(물넘이 포장 도수로/돌붙임 · 기타 상세 내용)는 하나까지만 · 배관 흙막이 추가 · 도수로/돌붙임은 여러 개 그대로(sub5 · 52-3m 뒤) · 끝 6f1d0508a
|
||||
- 검증완료 — 52 시험 57 통과 · typecheck 깨끗 · ORCA 5180(sub5_검증): 물넘이 · 기타 = 하나 넣으면 [추가] 없음 · 빼면 다시 · 옛 저장 둘은 B05 · B06 다 보이고 [추가] 없음 · 배관 흙막이 추가 셋까지 · B05 = B06 · 되돌림 완료
|
||||
- [x] 52-7c 랩탑_보조 7+5~8+0 대피소 빠짐 조사 · 옛 종류 저장 왕복에서 안 빠지게(sub1) · 끝 bf33a8a9a(검증 시험 건 · 잃음 아님 · 옛 종류 12건 왕복 시험)
|
||||
- [x] 52-18 정의 그룹 꼴 상자(맹암거 · 대피로 · 가드레일 · 사토장 · 토취장)를 명세 꼴 상자와 같은 모양으로 — 잇기 글 「집계 항목」 → 「구조물 조합」 · 숫자 칸 −/+ 단추 · 칸 배치 같게(브레인 화면 확인에서 찾음 · sub1) · 끝 5a1bcde1d
|
||||
- [x] 52-19 박스암거 사용자 입력 가로 비우고 저장 → 다시 열면 규격 칸 빈 글(「사용자 입력」 이어야) · 세로만 남음(52-13 관찰 · sub3) · 끝 1a9055444
|
||||
- [x] 52-20 B05 구조물 목록에 숨긴 종단배수 구조물 이름이 영문 키(ditch_side)로 보임 · B06 은 「측구(옆도랑)」(52-13 관찰 · sub8) · 뿌리 = B05 패널에 켜진 종류만 넘겨 꺼진 B군 이름 · 폼을 못 풂 → 종류 전부를 넘기고 고르기 목록에서만 꺼진 종류 · 고를 종류 없는 군을 가림(B06 그대로)
|
||||
- 검증완료 — typecheck 깨끗 · 시험 41 통과 · ORCA 5183 52-8 시나리오: B05 목록 「측구(옆도랑)」 · 측구 열면 군 B · 골막이 군 D · 잇기 1 · 보이는 군 A C E G 기타(전과 같음 · F 가림) · G 종류 쇄석 가림 · 우클릭 B·D 0 · B06 그대로(F 보임 · 측구 군 B) · 초안 비움 → 목록 17 그대로 · 검증 대기
|
||||
- [x] 52-21 sub2_검증 프로젝트 구조물 6건(돌쌓기 · 옹벽) 시험 값으로 덮임 — 같은 원본 복제(랩탑_보조 · 같은 structure_id 6건)로 되살릴지 사용자 결정(브레인 시도 = 권한 막힘) · 사용자 10-6 「검증 프로젝트는 수정해도 상관없음 · 필요시 재생성」 → 되살리지 않음
|
||||
|
||||
## 53. B05 · B06 좌측 패널 점검 — 횡단도 고르기 · 구조물 목록 · 하이라이트 (사용자 10-6)
|
||||
|
||||
- 기준: 52장 구조물 표 20종 전부 · 검증 프로젝트는 창마다 자기 것(고쳐도 됨 · 필요하면 자동설계로 다시 만듦) · 범위 = 좌측 패널 연결만(횡단도 새 그리기 · CAD 아님)
|
||||
- [x] 53-1 B06 횡단도에서 구조물을 누르면 좌측 패널이 그 구조물로 켜지는지 — 종류 · 컨테이너 상자(누른 것이 유입 · 유출 · 흙막이 추가 등이면 그 상자로) · 목록 강조 · 고친 값이 횡단도에 되돌아감 · 다른 구조물 · 빈 곳 누르기 · 같은 측점 여럿(sub3) · 끝 26c2e8b05(점검 116 · 흠 10 고침 · 그리기 몫 흠 남김)
|
||||
- [x] 53-2 좌측 하단 구조물 목록 · 하이라이트 — 목록 이름(새 종류 · 숨긴 종류) · 목록 누르기 ↔ 종단도 알약 · 3D · 횡단도 강조 양방향 · 마우스 올림 · 추가 · 삭제 · 저장 뒤 목록 차례 · 스크롤 · B05 = B06(sub4) · 끝 5b351e8c6
|
||||
- 흠 11 · 고침 11: B05 목록 → 3D 강조 없음 · 구조물 알약 → 3D 안 따라옴 · 물넘이포장(측점선 없음) 알약 안 켜짐(B05 목록 · 알약 · B06 알약 · 카드) · B06 정규 측점 구조물 고르면 카드가 알약 끔 · 측점 사이 기준점(25+10 등) 알약 끔 · B06 목록 풂 뒤 알약 남음 · 목록 풂 뒤 같은 카드 관 알약 무반응 · 알약 툴팁 · 벌룬이 기타 손 이름 아님 · 집계표 기타 머리 빈 이름 = 「기타 구조물」 · 빈칸 글(→ 「기타」) · [저장] 뒤 강조 풀림(다시 열면 되살아나 어긋남) · 목록 줄 마우스 올림 표시 없음
|
||||
- 관찰(안 고침): B06 목록에서 풀어도 횡단 카드는 켜진 채(카드 해제를 엮으면 관 폼 여는 길이 끊김) · 알약 글은 약호라 기타 여럿이 「기타 1」 둘로 보임(툴팁은 손 이름)
|
||||
- 검증완료 — ORCA 5179 sub4_검증(표 20종 + 측구 · 골막이 · 기슭막이 · 대피소 · 기타 다섯: 같은 이름 둘 · 다른 이름 · 빈 이름 둘 · 같은 측점 4+5 셋 · 9+0 둘) ui_checks/53-2_목록_강조: 이름 44 × B05 · B06 · 목록 누르기 44 × 2 · 알약 44 × 2 · B06 카드 42 · 3D 부재 11 측점(가려진 6 건너뜀) · 스크롤 · 마우스 올림 × 2 · 추가 · 삭제 · 저장 · 다시 열기 · B05 → B06 넘김 — 전부 0 실패 · 집계표 기타 열 = 53-2 손이름(2) · 53-2 다른이름 · 기타(2) · 시험 93 통과(옛 빨강 test_b06_detail_options 1 은 이 일 전부터) · typecheck 깨끗 · 검증 대기
|
||||
|
||||
## 54. 구조물별 수정 요청 1차 — 공통 · 배관 (사용자 10-6 · 원문 docs/raw/사용자요구/2026-10-05_수정요구.md 끝)
|
||||
|
||||
- 운영: 사용자가 구조물별로 요청을 거듭 넣음 → 브레인이 구조물마다 창 하나에 지시
|
||||
- [x] 54-1 공통 문구 · 배관 좌측 패널(sub5) — 잇기 단추 「고르기」 → 「선택」(명세 꼴 · 정의 그룹 꼴 모두) · 「지난 정의 값」 상자 모든 종류에서 숨김(값은 파일에 그대로 · 코드 삭제는 나중) · 관 길이 = 보여 주는 칸(손 입력 아님 · 라벨 그대로 · 자동 계산 · 정수) · 유입 집수정 = 길이 · 기준측점 전/후 숨김 · 유출 「관길이 15m 좌우 자동 자리 …」 설명 뺌 · [흙막이 추가] 단추 없앰 → 유출 흙막이 옵션 「추가 기슭막이(단)」 값 N 만큼 「흙막이」 컨테이너가 늘 보임(이름 기슭막이 → 흙막이) · 도수로/돌붙임 그대로 · 끝 6f35889b4
|
||||
- 검증완료 — 시험 53 통과 · typecheck 깨끗 · ORCA 5180 sub5_검증 ui_checks/54-1_배관_좌측패널: 「선택」 글만 · 고르기 0 · 지난 정의 값 0 · 관 길이 입력칸 0 · 값 정수(B05 = B06 15) · 집수정 칸 structure · form · height(흙막이 + 길이 · 전 · 후) · [흙막이 추가] 0 · 유출 읽기 줄 0 · 배관 2(12+18) 단 수 0→1→2→1→0 에 흙막이 0→1→2→1→0(끝에서 빠짐 · 캐시 soil_add_2 지워짐) · 52-1 고친 시나리오(B05 = B06 · 되돌림 같음) · 52-13 예외 일곱 단계 errors 0 · 되돌림 같음 · 검증 대기
|
||||
- 관찰(안 고침): 횡단도에서 다단 벽을 고르면 옛 「추가 기슭막이 (n단)」 조정 상자가 따로 뜸 · 흙막이 n 컨테이너 값(형태 · 높이 · 길이 · 전 · 후)은 다단 벽 그리기와 아직 안 이어짐 · 저장된 단 수가 지형이 세운 수보다 크면 흙막이 수가 저장 수를 따름
|
||||
- [x] 54-2 ? 설명서(sub6) — 좌측 패널 왼쪽 아래 [초기화] 단추 묶음 맨 왼쪽 [?] · 누르면 모달 = 그 페이지 설명서 + 항목별 설명 · 글은 페이지별 · 항목별 따로 파일(사용자가 고칠 수 있게) · B02~B09 공통 · 패널 안 설명 글은 그 파일로 옮기고 패널에서 뺌 · 47장 카드 ? 모달 꼴 다시 씀
|
||||
- 글 = `resources/help/<B0N>/*.md`(설명서 = 00_설명서 뼈대 · 항목 = B03 안내 셋 · B05 구조물 13종 · B06 표준 횡단면) · B05·B06 은 한 차례로 · 지금 연 상자 · 고른 구조물 종류 항목 먼저 · B02 는 좌측 패널 없어 아래 단추 줄 · B08·B09 는 [?] 줄만 · 배관 유출 「관 길이 … 좌우 자동 자리」 는 54-1 몫(손 안 댐)
|
||||
- 검증완료 — ui_checks/54-2 · 8 화면 [?] 1 · 맨 왼쪽 8/8 · 모달 8/8 · 파일 고침 반영(글 A → 글 B) · 배관 고름 → 구조물 · 배관 · 연 상자 → 표준 횡단면 · 패널 안 옮긴 글 0 · 검증 대기
|
||||
- [x] 54-3 배관 횡단도 그림(sub7) — 집수정 높이 → 집수정 형상 바뀜(연결) · 흙막이 형태별 외곽 모양은 같고 안 무늬만 다름(돌쌓기(찰)만 모양 다른 흠)
|
||||
- 뿌리 ① 폼 「높이」(`inlet_basin_height_m`)가 관 제원에 안 실림 → `basin_height_m` 로 실어 집수정 벽 높이(I · L · ㄷ) · 비면 종전 자동 ② 벽 전면 기울기를 형태별 표(찰 · 메)로 읽음 → 배관 벽 · 다단은 기본 형태(돌쌓기(메)) 표준경사 하나(높이 · 성토/절토로만 갈림)
|
||||
- 남김: 다단 벽 지형 맞춤 키는 형태 높이 한계(메 2.0 · 찰 3.0 · 콘 5.0 — 교본)에서 멈춤 → 한계에 걸린 측점(258.12 · 804.18)만 키가 다름 · 독립 기슭막이(`_Cross_Revetment`)는 범위 밖
|
||||
- 검증완료 — 시험 55 통과 · ui_checks/54-3_배관_횡단그림.js: basin I · L · ㄷ h 1.0 → 2.0(비 2.0) · soil 유입 · 유출 여섯 형태 외곽 같음 · 무늬 6 가지 · extra 기울기 같음 · 같은 키면 외곽 같음 · 사진 tmp/54-3_basin.png
|
||||
- [x] 54-0 「공통 › 횡단도」 줄 내용 비어 있음 — 사용자에게 물음 · 사용자 10-6 「요청을 잊음 · 이슈 닫음」
|
||||
- [x] 54-4 종류 바꾸기(배관 → 박스암거 등 관 지점 시설끼리) 뒤 횡단도 그림이 안 바뀜 → 바로 다시 그림(sub4) — 패널 종류 바꿈 실시간 반영 · B06 관 고침이 종류를 받음 · 횡단 상세 읽기에 초안 종류 얹기(짝 산식) · 상세 조회가 측점 라벨을 지금 종류로 · 「검증완료」 ui_checks 54-4 12길 · 저장 뒤 · 다시 열기 fails 0 · 되돌림 같음 · pytest 20
|
||||
- [x] 54-5 B05 · B06 실시간 조작 속도 · 보안 재확인 — 조사 · 보고만(코드 안 고침) · 좌측 패널 통합 전후 수치 대조 · 5장 규칙(조작 중 네트워크 왕복 없음 · 최신 응답만 · 잠금 오버레이 · 서버 정본 재계산) 어긋남 · 원인 파일:줄 · 고칠 갈래(sub8) · 조사 끝 · 느린 곳 6 · 보안 흠 11(H1 치명) · 갈래 8 · docs/raw/조사/2026-10-06_54-5_속도_보안.md · 사용자 승인 대기
|
||||
- [x] 54-6 사면안정(C군) 종류 전부(옹벽 · 돌쌓기(찰) · 돌쌓기(메) · 흙막이 · 큰돌쌓기 · 소단 · 정의에 있는 C군 모두) = 기준 측점 밖 옵션을 컨테이너 하나(「상세 내용」)에 넣고 그 안에 구조물 조합 잇기 · 종류 단위 잇기 줄은 가림 · 저장 값 · 키 그대로(sub1) · 00dfd7f81(C군 6종 · 정의 판 13)
|
||||
- [x] 54-7 사토장 기준 측점 = 토취장과 같은 꼴(기준 측점 No + 거리 하나 · 구간 꼴(시작 · 기준 · 종료) 뺌) · B06 사토 배분은 기준 측점 한 점으로 이어 씀(옛 구간 값은 파일에 그대로 · 기준 없으면 옛 기준 · 시작 차례로 읽음)(sub7) — 정의 사토장 배치 구간 → 부지(토취장과 같은 길 · 정의 판 14) · 옛 구간 저장분 = 읽을 때 기준 측점(옛 기준 → 시작 · 다음 [저장]에 새 꼴로 적힘) · B06 사토 배분 = 기준 측점에 가장 가까운 측점 하나(가운데면 앞 측점) × 대표 길이(앞뒤 절반) · 검증 대기
|
||||
- 검증완료 — 시험 40 통과 · ui_checks/54-7_사토장_기준측점.js(sub7_검증): 위치 줄 칸 1(기준 측점 · 입력 2) 사토장 = 토취장 · 옛 사토장 18+10 · 부피 90 · 새 25+10 · 150 · 토취장 28+0 · 80 · 잇기 둘 · 저장 → 다시 열기 그대로 · B05 = B06 · 되돌림 같음(목록 17) · 사토 배분 전후(sub7_검증 횡단 66) — 담은 양 같음(150) · 쌓는 측점 구간 셋 → 기준 측점 하나 · 그 측점 폭 · 면적 커짐(0+0~2+0: 폭 0.51 → 4.52) · 사진 tmp/54-7_사토장_기준측점.png
|
||||
- [x] 54-8 B06 좌측 목록에서 고른 것을 풀면 횡단 카드도 풀림(53-2 남긴 관찰 · 관 폼 여는 길은 그대로)(데스크탑 서브) · 끝 cdca8a2c
|
||||
- [x] 54-9 종단 알약 글 — 기타 여럿이 「기타 1」 둘로 보임(53-2 관찰) → 알약끼리 구별(손 이름 앞 글자 등 · 툴팁은 손 이름 그대로)(데스크탑 메인)
|
||||
- 기타 알약 = 손 이름 앞 3글자(빈칸 뺌 · 다른 손 이름과 머리가 같으면 갈릴 때까지 늘림) + 목록과 같은 번호 · 빈 이름 = 「기타 N」 · 다른 종류 · 툴팁 · 목록 그대로 · 한 곳(`structurePillTexts`)이 B05 · B06 알약을 함께 그림
|
||||
- 검증완료 — pytest test_54_9_etc_pill 5 · typecheck · ORCA 초안에 기타 다섯(배수로정비 둘 · 울타리 · 빈 이름 둘) → B05 · B06 알약 「배수로 1 · 울타리 · 기타 1 · 배수로 2 · 기타 2」 5/5 서로 다름 · B05 = B06 · 툴팁 손 이름 · 다른 종류 17 알약 전과 같음 · 초안 비워 되돌림 · 검증 대기
|
||||
- [x] 54-10 다단 흙막이 ↔ 흙막이 컨테이너 잇기(54-1 관찰) — 횡단도에서 다단 벽을 누르면 옛 「추가 기슭막이(n단)」 조정 상자 대신 그 단의 흙막이 컨테이너로 · 컨테이너 값(형태 · 높이 · 길이 · 전 · 후) → 다단 벽 그림 · 저장 단 수 > 지형 단 수면 지형 따름(sub5) · 끝 bfe4eeb54
|
||||
- 검증완료 — 시험 test_54_10_soil_tiers 9 · 관련 31 통과 · typecheck 깨끗 · ORCA 5180 sub5_검증 ui_checks/54-10_다단_흙막이(배관 2 · 12+18): 벽 0 · 1 누름 → 켜진 상자 0 · 1(화면 안) · 옛 칸 0 · 형태 콘크리트 · 돌망태 · 돌쌓기(메) → 벽 형태 그대로 · 돌망태 높이 3.0 → 2.0(한도) 되돌림 · 돌쌓기(메) 벽 2.0(한도) · 길이 8 · 전 2 → 후 6 단별 구간 · 저장 단 수 6 → 지형 3 단 = 컨테이너 3 · 벽 3 · 넘친 4 번 값 남음 · 단 수 0 에서도 흙막이 값 1~4 초안 · 저장 파일에 남음 · 54-1 점검(0→1→2→1→0) · 52-1 다시 열기(B05 = B06 · 관 길이 15) · 검증 대기
|
||||
- 관찰(안 고침): 다단 높이 칸 = 요청 — 벽 키는 기존 지형 맞춤 규칙이 정함(콘크리트 요청 1.0 · 2.5 · 4.0 → 1.7 · 1.8 · 1.9) · 넘친 컨테이너 값도 파일에 남아 집계표(52-1b)가 그 건까지 셈 · 검증 중 52-1 edit 가 ORCA 끊김 재시도로 다섯 번 돌아 sub5_검증 관 지점을 초기값 옵션으로 되돌림
|
||||
- [x] 54-11 단 수를 줄여 숨은 흙막이 상자 값이 집계표에 한 건으로 남음(54-10 관찰) → 집계는 지금 단 수 안 상자만(값은 파일에 그대로)(sub5)
|
||||
- 검증완료 — 뿌리 = 집계표 컨테이너 줄(M02_Table_Fill_Spec) · 흙막이 = 서버가 [저장] 때 세운 유출 다단 수(design.extra_walls)까지만 · 목록 없는 옛 측점 = 저장된 것 전부 · 시험 test_52_1b_pipe_links 5 통과 · typecheck 깨끗 · ORCA 5180 sub5_검증 ui_checks/54-11_흙막이_집계(배관 2 · 12+18): 단 2 · 상자 2 잇기 → 집계 줄 2 · 단 1 → 상자 1 · 줄 1 · 파일 흙막이 1 · 2 그대로 · 다시 2 → 줄 2 · 상자 2 형태 돌망태 되살아남 · 잇기 없을 때 미지정 알림도 단 수만 · 54-1 look · basin 그대로 · 52-1 고친 시나리오 줄 0 → 2 · B05 = B06 · 관 길이 15 · 되돌림 같음 · 검증 대기
|
||||
- 관찰(안 고침): B06 단 수를 0 으로 내리고 [저장]하면 정본에 안 실림(세션 키를 지워 patch 에서 빠짐 · 옛 단 수 남음) · 검증 되돌림은 저장 API 로 0 을 직접 씀
|
||||
- [x] 54-12 필수 칸(뒷길이 · 기초 등)이 빈 옛 구조물 — 다른 칸 · 기준 측점을 고쳐도 반영 안 됨 · 포커스만 감(53-1 관찰 · 54-5 「B06 돌쌓기 높이 반영 0」 같은 뿌리 의심) → 다른 칸 바꿈은 바로 반영 · 빈 필수 칸은 표시 + 안내 한 줄(sub4)
|
||||
- 검증완료 — 뿌리 = 실시간 반영 commit(live)이 빈 필수 칸에서 통째로 멈추고 그 칸으로 포커스(B05_Profile_UI_Structures_Panel_Commit.ts:332 · B06 만 상세 칸을 그려 걸림 = 54-5 같은 뿌리) · 실시간은 안 막음 · [추가] · 서버 [저장] 막기 그대로 · 빈 필수 칸 = 붉은 테두리 + 그 칸 상자 안 「필수 칸 비어 있음 — [저장] 전 채움」 · 시험 test_54_12_live_required 3 · test_b05_structures_form_summary 통과(옛 「실시간 멈춤」 기대 한 줄 바꿈) · typecheck 깨끗 · ORCA 5179: B06 4+0 찰 높이 2.5→2.7 캐시 · 횡단 H=2.7 · 측점 4+0→4+5 캐시 85 · 목록 4+5~4+15 · 포커스 안 뺏김 · 표시 뒷길이 · 돌 종류 · 안내 「상세 내용」 안 1 · 7+0 메 높이 2→1.8 횡단 H=1.8 · 측점 7+5 · 기초 채우면 표시 0 · 비우면 1 · B05 찰 높이 2.8 · 측점 5+0 알약 742→824px · 메 1.6 · 전부 되돌림 · 53-1 check 132 중 흠 7 = 고치기 전 코드와 같음(배관 · 경계석 · 반사경 · BOX 몫) · 54-6 check B05 · B06 allOk · restore 같음 · 검증 대기
|
||||
- 관찰(안 고침): test_b06_detail_options 「기본값 없는 필수 항목은 빈 칸으로 연다」 실패 = 받은 코드부터(optionControl 셋째 인자 name 추가 · 시험 글 옛 꼴)
|
||||
- [x] 54-13 빈 · 자동 값 고르기 칸이 그림이 쓰는 값을 안 보여 줌(세월교 관경 · 박스 유출 구조 빈 칸인데 그림은 기본값 · 관 유입 폼 흙막이인데 그림 집수정) → 폼이 그림과 같은 값(기본 · 규칙 결과)을 보여 줌 · 저장 값은 사용자가 고를 때만(sub6) · 끝 8aea7b8cb
|
||||
- 빈 · 자동 칸 = 빈 보기 자리에 「값 (기본)」 · 「값 (자동)」(값 · 저장 그대로) · 배관 유입 · 집수정 모양 · 벽 형태 = 횡단 기하 결과(B06 세션 유입 형식 반영) · 관경 · 세월교 · BOX = 정의 기본값 · 옛 「자동(규칙)」 = 유입 구조를 고를 때까지 형식 안 굳음 · 정의 그룹 꼴 = 빈 칸에 정의 기본값
|
||||
- 검증완료 — typecheck 깨끗 · 시험 57 통과(옛 빨강 test_b06_detail_options 1) · ORCA 5181 sub6_검증 ui_checks/54-13_그림값_표시: B06 · B05 배관 9 · 세월교 2 폼 글 = 그림(집수정 (자동) · I형 (자동) = 집수정(I형) · 돌 쌓기(메) (기본) = 유출 벽 · 1000 (기본) = Ø1000 · 날개벽 (기본) = 설치) · B05 = B06 11/11 · 열기만 = 초안 0 · 옛 자동 관: 관경만 고름 = 형식 없음 그대로 · 흙막이 고름 = revet · 그림 벽 · 글 「흙막이」 · 집수정 높이 1.5 = 집수정 고름 · BOX 빈 칸 = 2.0 × 2.0 (기본) = BOX 2.0×2.0 · 날개벽 (기본) · 저장 칸 0 · 52-1 · 52-2(옛 BOX 잠시 저장) · 52-4 edit · verify · restore 기대값 · 되돌림 같음 · 관 지점 = 처음 사진 · 검증 대기
|
||||
- 관찰(안 고침): 정의 그룹 꼴 「성토/절토」 빈 칸 = 측점마다 갈리는 자동 판정이라 한 값 없음 — 「— 안 정함 —」 그대로
|
||||
- [x] 54-14 종단도 구조물 알약 정보 라벨 — 맨 위로(▲▼ 단추에 안 가림) · 단추를 가리지 않게 Y 로 조금 비킴 · 내용 = 종류 이름 · 기준 측점 · 컨테이너마다 첫 옵션 값(컨테이너 없으면 기준 측점만) · B05 = B06(데스크탑 메인)
|
||||
- 레인 쌓임 층(z 3) 풂 · 라벨 z 6(▲▼ 4 · 고정 Y축 · 테이블 · 유토곡선 5 위 · 우클릭 메뉴 7 아래) · ▼ 단추 높이만큼(21px) 위로 · 위가 잘리면 덜 잘리는 쪽(알약 아래) · 줄 = 한 곳(`_Structures_Balloon.balloonLines`) — 컨테이너 = 좌측 폼과 같은 상자(명세 컨테이너 · 선택 컨테이너는 인스턴스마다 · 배관 흙막이 수 = 폼과 같은 단 수 · 그 밖 종류 = 정의 옵션 그룹) · 첫 값 = 보이는 첫 입력 칸 · 빈 값 = 등록부 기본값 「(기본)」 · 값 auto = 「(자동)」 · 메모 · 그 밖 옵션 뺌
|
||||
- 검증완료 — 시험 test_54_14_balloon_lines 7 · test_54_9 5 통과 · typecheck 깨끗 · ORCA 5173 데스크탑_메인 ui_checks/54-14_알약_라벨(초안만 · 정본 안 씀): 배관 · 박스 · 맹암거 · 반사경 · 기타 — 라벨 위 15 점 맨 위 15/15 · ▲▼ 겹침 0 · ▼ 와 틈 4px · 줄 수 5 · 5 · 3 · 2 · 3 = 2 + 폼 상자 3 · 3 · 1 · 0 · 1 · 줄 머리 = 상자 제목 · B05 = B06 · 좁은 패널(위 21px 잘림 · 아래면 83px) = 위 유지 · 되돌림 같음 · 사진 tmp/54-14_알약_라벨.png · 검증 대기
|
||||
- 관찰(안 고침): 배관 유입 · 유출 구조 빈 칸 = 라벨 「흙막이 (기본)」(등록부 기본값) · 폼은 「안 정함」 · 그림이 쓰는 값(유입 자동 집수정 등 규칙 결과)과 맞추기는 54-13 몫 — 54-13 이 값 셈을 내면 라벨도 같은 값을 받음
|
||||
- [x] 54-15 구조물 목록 잇기 램프 — 줄마다 측점 글 왼쪽에 고정 폭 램프 칸(목록 전체 같은 폭 · 글 줄 맞춤 그대로) · 램프 = 잇기 자리 하나에 하나(컨테이너마다 · 컨테이너 없으면 종류 단위 하나 · 잇기 없는 종류는 빈 칸) · 3행 × 여러 열(위 → 아래 → 다음 열) · 색 = 이음 초록 · 필수 미지정 빨강 · 선택 미지정 노랑 · 줄 높이 안 바뀜 · 마우스 올리면 상자 이름 · 이은 항목(데스크탑 서브 아님 · sub4)
|
||||
- 검증완료 — 램프 자리 = 폼 잇기 줄 규칙 그대로(명세 컨테이너 · 선택은 인스턴스마다 · 배관 흙막이는 지형 단 수까지 · 정의 그룹 · 종류 단위 · B군 없음) · 단 수 바뀜 · 횡단 자료 도착 때 목록 다시 그림 · 테두리 3px → 안쪽 그림자(글 x 같게) · typecheck 깨끗 · 시험 관련 10 파일 68 통과(빨강 2 = 받은 코드부터: test_b06_detail_options · test_b06_draft_pipe_replay) · ORCA 5179 sub4_검증 ui_checks/54-15_잇기_램프: 44 줄 램프 = 폼 잇기 줄(수 · 색) 0 어긋남(B06 · B05) · 램프 62 · 줄 높이 33.7 램프 끈 때와 같음 · 글 x 하나(1 열 37.9 · 2 열 44.9) · 점 5px · 잇기 → 초록 → 해제 → 빨강(배관 · 옹벽 · 경계석 · 콘크리트 포장 · BOX) · 상자 추가 노랑 → 잇기 초록 → 빼기 원래 수 · 단 0→1→2→1→0 램프 3→4→5→4→3 · 저장 → 새로 열기 같음 · B05 = B06 44/44 · 다크 색 따로 · 되돌림(잇기 0) · 검증 대기
|
||||
- 관찰(안 고침): 단 수 + 뒤 - 하면 빈 흙막이 자리 키(soil_add_n_structure "")가 파일에 남음(54-10 설계 · 숨은 단 값 보존) — sub4_검증 배관 2 에 둘 남음
|
||||
- [x] 54-16 B05 ↔ B06 자료 한 곳 확인(조사 · 보고) — 한쪽에서 바꾸고 다른 보기로 가면 옛 자료 · 자료 종류마다(구조물 · 관 지점 · 컨테이너 값 · 잇기 · 종단 계획선 · 횡단 설계 · 사토) 쥔 곳(sessionStorage 키 · 가게 · 서버 다시 읽기)과 읽는 곳 · 쓰는 곳 · 재현 · 원인 파일:줄 · 한 곳으로 모을 갈래(sub8) · 조사 끝(두 벌 6 · 옛 값 재현 4 · [저장]이 새 값을 옛 값으로 덮는 것 2 · 갈래 8 · docs/raw/조사/2026-10-06_54-16_자료_한곳.md · 사용자 승인 대기)
|
||||
- [x] 54-17 구조물 조합 잇기 줄 = 다른 옵션 칸처럼 2행(위 제목 「구조물 조합」 · 아래 이은 항목 이름 + [선택] [해제]) · 글꼴 · 크기 · 색 = 옵션 칸 제목 · 입력과 같은 공용 스타일 · 명세 꼴 · 정의 그룹 꼴 · 종류 단위 줄 모두 · B05 = B06(sub1) · 끝 b2e5f5adf
|
||||
- [x] 54-18 B05 3D 위 단추 「원근으로 · 직교로」 → 글 「원근 · 직교」 · 처음 열 때 기본 = 직교(사용자가 바꾼 값 기억이 있으면 그 값)(sub7) — 검증완료(검증 대기)
|
||||
- [x] 54-19 B05 3D FRONT · SIDE 보기가 대각선 → FRONT = 남 → 북을 똑바로(카메라 남쪽 · 수평) · SIDE = 동 → 서를 똑바로(카메라 동쪽 · 수평) · TOP = 바로 위 · 원근 · 직교 모두 · 나침반과 맞음(sub7 · 54-18 과 함께) — 검증완료(검증 대기)
|
||||
- [x] 54-20 B02~B09 좌측 패널 아래 공통 단추 묶음([?] · [초기화] · [저장] · [확정] · [횡단 보기] 등) 크기 점검 — 높이 · 글 크기 · 안쪽 여백 · 간격이 45장 단추 양식(ui-btn-group)과 같게 · [?] 는 정사각 작은 단추로 한 줄 높이 같게 · 줄바꿈 · 넘침 없음(sub3) · 끝 e0953e333(높이 31.7 하나 · 글 14px)
|
||||
- [x] 54-21 B05 · B06 자료 일원화 제안서(조사 · 제안만 · 코드 안 고침) — 좌측 패널 한 벌이 종단 · 횡단 · 페이지를 함께 제어 · 어느 보기에서 고쳐도 같은 값 · 자료마다 가게 하나 · 세션 키 하나 · 알림 한 길 · 저장 한 줄기 · 불필요 자료 삭제 후보(특히 옛 B08 수량산출로 넘기던 칸 · 재정의 필요) · 옮김(옛 키 → 새 키) · 차례 · 54-16 갈래 1~8 흡수(sub8) · 제안 끝(가게 칸 10 · 삭제 후보 16 · 단계 0~7 · docs/raw/조사/2026-10-06_54-21_일원화_제안.md · 브레인 검토: A2~A4 는 사용자 표 칸이라 지우지 않음 · 사용자 결정 8 대기)
|
||||
- [x] 54-22 속도 · 보안 1단계 반영(사용자 「반영」) — H1 structure_id 경로 검사(FOLDER_PATTERN · 스키마 + sync 두 곳) · H2 filter_key · method 허용 목록 · S1 B06 ▲▼ 120ms 디바운스 되살림 · 종단도 두 번 그리기 뺌(sub7) · 끝 717c28a95
|
||||
- 검증완료 — 보안 시험 26 통과 · 실서버 악성 structure_id · 절대경로 · filter_key 422 · ORCA 5182 sub7_검증 540m ▲: B06 한 번 최장 577~585 → 58~81ms · 2.5초 길게 누적 1,468 → 236~282ms(바뀐 카드만 · 66 → 3장 더함) · B05 ▲ 멈춤 0 · 55~67ms 반영(실시간) · 값 되돌림 · 검증 대기
|
||||
- 54-10 다단 흙막이 높이 = 지금 규칙(땅에 맞춤) 유지(사용자 10-6)
|
||||
- [x] 54-23 잇기 램프 색 — 이음 초록 그대로 · 미지정은 회색(필수 = 회색 채움 · 선택 = 회색 테두리 속 빈 원) · 빨강 · 노랑 뺌 · 다크 모드 같은 토큰(sub4) · 끝 943f7dce9
|
||||
- [x] 54-24 좌측 패널 「경로 계산 설정」 상자 — 쓰는 곳 조사(화면 · 서버 · 시험 · 다른 페이지) · 안 쓰면 그 화면 코드를 B05_Profile/Old/ 로 옮김(빌드 · 타입 검사에서 뺌 · 나중에 한 번에 삭제) · 쓰는 곳이 있으면 목록만 보고(sub3) · 끝 fb5ab57c7(옮김 4 · 남김 7)
|
||||
- [x] 54-25 배관 관 보호공(유출) 「추가 기슭막이(단)」 칸 · 단 흙막이 컨테이너가 사라짐(사용자 10-6) — 어느 커밋에서 빠졌는지 찾아 되살림 · 54-1 · 54-10 · 54-11 점검 다시(sub5) · 상자 생성은 정상(원인 = 옛 백엔드) · 단 수 칸은 좌측에 없음 → 54-27
|
||||
- 검증완료 — 코드 흠 없음 · 원인 = 옛 백엔드 · 8007 새로 띄운 뒤 ORCA 5180 sub5_검증 배관 2(12+18): 유출 벽 누름 → 단 칸 0단 · + 두 번 → 흙막이 상자 1 · 2(B05 도 2) · 다단 벽 0 · 1 누름 → 켜진 상자 0 · 1 · - 두 번 → 0 되돌림 · 54-11 look 상자 0 · 줄 0 · 54-13 check bad 0 · 고친 코드 없음 · 검증 대기
|
||||
- [x] 54-26 사면안정 표 09 — 흙막이(컨테이너 흙막이 · 형태 6 · 길이 · 높이(손 + 횡단 조정 연동) · 전 · 후 맞물림 = 배관 흙막이 컨테이너 명세 다시 씀) · 옹벽(컨테이너 옹벽 · 형태 콘크리트 · 길이 · 높이 · 전 · 후) · 소단(컨테이너 상세 내용 · 소단 폭 · 소단 높이) · 표 밖 옛 칸 화면에서 뺌(값 보존) · 돌쌓기(찰) · (메) · 큰돌쌓기 종류는 54-6 그대로(사용자 물음)(sub1) · 4a0444261(중지 · 정의 판 15 · 화면 검증 대부분 통과)
|
||||
- [x] 54-27 배관 관 보호공(유출) 상자 안에 「추가 흙막이(단)」 수 칸(+ - · 구조 = 흙막이일 때) — B06 횡단 조정 단 수와 같은 값 · 서로 따라감 · N → 흙막이 상자 N 개 · 늘어난 흙막이 상자의 구조 = 「흙막이」(지금 「— 안 정함 —」)(브레인 화면 확인 · sub5) · cb8836c6a(중지 · 횡단 흙막이 옮김 → 관 길이 화면 확인 못 함)
|
||||
- [x] 54-28 배관 덧(54-27 과 함께 · sub5) — ① 자동 자리 설명 글(관 길이 · 좌우 바깥 · 상하(사면) 자동 자리) 어디서든 뺌 ② 추가 흙막이 상자 수 = 구조물 목록 램프 수(바로) ③ 횡단도 흙막이 자리 옮김 → 좌측 관 길이 칸 바로 새 값(정수) · cb8836c6a(중지 · 관 길이 반영 화면 확인 남음)
|
||||
- [x] 54-29 횡단도에서 구조물을 고를 때 · 목록에서 고를 때 좌측 패널 내용 같게(차이는 강조 · 스크롤만) · 옛 조정 상자 하나로 · 단 칸 · 관 길이 같은 길에서 확인(sub5) · 배관 칸 = 옵션(경사) · 유입 단 수(0단) · 이름표 꼬리 뺌 · 집수정 내공 줄만 남김 · 폼 다시 그림 뒤 강조 다시
|
||||
- 검증완료 — 12+18 단 1 유출 · 흙막이 1 · 유입 목록 대 횡단 글 · 칸 67 · 값 같음 · 강조 상자 하나만 · B05 넘김 같음 · 유출 5칸 → 관 길이 15 → 20 · 되돌림
|
||||
- [x] 54-30 배관 덧(54-29 와 함께 · sub5) — 추가 흙막이 강조 풀림 · 관 보호공 [연동] [경사] 반 폭 두 단추(자동 계산 가능할 때만 활성 · 사용자가 고름) · 상자 안 칸 고침 → 강조 연동 · 추가 흙막이 = 사면안정 흙막이 명세 한 벌(구조 칸 없음) · [연동] · [경사]는 따로 켜고 끔(옛 값 둘 · 경사 끄면 연동 잠김) · 연동 풀 때 높이 굳히기는 안 함
|
||||
- 검증완료 — 12+18 흙막이 1 강조 = 단 수 바꿈 · 넘김 · 저장 뒤 유지 · 흙막이 1 형태 고침 → 상자 · 횡단 벽 강조 · 경사 끔 → 13+0 벽 그림 바뀜 · 유입 · 유출 두 줄 함께 · 흙막이 칸 = 형태 · 길이 · 높이 · 전 · 후 · 되돌림(단 0 저장)
|
||||
- [x] 54-31 사면안정 종류 고르기 = 흙막이 · 옹벽 · 소단만(나머지 숨김 · 옛 값 · 도면 그대로)(sub1) · 끝 5ee63b505
|
||||
- [x] 54-32 고른 구조물에서 군 바꿈 = 새로 놓기(고름 풀림 · 빈 기본값) · 같은 군 종류 바꿈 = 새 종류 기본값 + 종류별 캐시(돌아오면 되살림) · [저장] · [확정] 뒤 캐시 비움 · B05 ↔ B06 유지(sub4) · 끝 65cf6e108
|
||||
- [x] 54-33 조사 둘(sub2 · Sonnet) — 횡단 카드 최소 · 최대 폭으로 1.5줄 보이게(축척 지킴) 방법 · 종단 하단 패널을 따로 브라우저 창으로 띄워 같이 움직이게 할 수 있는지 · 조사 끝(① 추천 B 열 수 자동 + 카드 최소 · 최대 폭 · 최소 폭 값 사용자 협의 ② 됨 · 추천 A 화면 조각만 팝업 · docs/raw/조사/2026-10-06_54-33_횡단카드_종단창.md · 사용자 결정 대기)
|
||||
- [x] 54-34 횡단 카드 폭 — 한 줄 카드 수 자동 · 1.5줄 보이게 · 최소 400 · 최대 800px(브레인 정함) · 축척 그대로(sub2 · Sonnet · 검증 사용자) · 끝 6912246fb(ORCA 낮은 칸 357px 에서 0.6줄 · 카드 높이 567 · 사용자 검증)
|
||||
- [x] 54-35 종단 하단 패널(표 · 유토곡선 · 배수유역도) [새 창] — 화면 조각만 팝업으로 · 닫으면 제자리 · 리스너 · 우클릭 메뉴 팝업에도(sub7 · 검증 사용자) · 끝 2a5430f9b(사용자 검증)
|
||||
- [x] 54-36 배관 기본값(사용자 표) — 구조 기본 집수정 · 집수정 L형 1.5 · 흙막이 돌 쌓기(찰) 10 · 1.5 · 5 · 5 · 단 0 · 연동 · 경사 켬(쓸 수 있을 때) · 추가 흙막이 같음 + [연동][경사] · 사면안정 흙막이 같음 · 기본값 한 곳(화면 · 서버) · 저장 값 안 덮음 · 두 단추 한 줄(sub5)
|
||||
- 검증완료 — 새 배관 칸 기본값 · 추가 흙막이 새 상자 기본값 + [연동][경사] 켬 · 사면안정 새 흙막이 기본값 · 두 단추 한 줄 31.7 · 시험 81 통과(검증 대기)
|
||||
- [x] 54-36b 정책 시험 3 — 새 기본값에 default_basis(사용자 확정) · 시험 기대값 새 값(sub5) · 끝 e32d1e378
|
||||
- [x] 54-37 횡단 카드 노폭 · 노견 확장 글 → X 축 라벨 바로 위(sub7) · 끝
|
||||
- [x] 54-38 군 바꿈 때 횡단도 강조(카드 · 벽 · 부재)가 안 풀림(54-32 흠) → 고름 풀 때 횡단 강조도 함께(sub4) · 끝
|
||||
- [x] 54-39 배관 · 흙막이 고르기 칸 「선택 안 함」 = 값 없음(기본값으로 바꾸지 않음 · 「(기본)」 표시 없음 · 그림 · 계산도 빈 값 그대로) · 기본값은 새로 놓을 때 실제 값으로 채워 넣음(sub5) · 덧(사용자): 기본값 = 칸에 실제로 채워 넣은 값(숫자 칸 포함 · 「(기본)」 · 자리표시 글 없음) · 사용자가 지우면 빈 칸
|
||||
- 검증완료 — 새 배관 = 관경 1000 · 집수정 L형 · 1.5 · 유출 흙막이 찰 10 · 1.5 · 5 · 5 실제 값 · 빈 보기 「선택 안 함」 · 「(기본)」 글 0 · 횡단 eval(440.24) 형태 빈 값 = 집수정 · 벽 0(고른 값 = L · 찰 벽 1) · 시험 115 통과 · 검증 대기
|
||||
- [x] 54-40 [연동] [경사] = 종단 방향 길이가 있는 것(흙막이)에만 — 유입 구조 집수정이면 숨김 · 집수정 「내공」 칸 숨김(값 보존)(sub5 · 54-39 와 함께)
|
||||
- 검증완료 — 유입 집수정 0 ↔ 흙막이 1 ↔ 집수정 0 · 구조 비움 0 · 내공 칸 보임 0 · 검증 대기
|
||||
- [x] 54-41 하위 컨테이너 안 단추 높이 = 숫자 칸 + - 단추 높이(공용 템플릿 한 벌 · [연동] [경사] · [선택] [해제] 등 상자 안 단추 모두) · [추가] [삭제] [리셋] 등 상자 밖 단추는 그대로(sub5 · 54-39 와 함께)
|
||||
- 검증완료 — 상자 안 [선택] [해제] [연동] [경사] 26 = + 묶음 26 · 상자 밖 [추가] [삭제] [리셋] 35.3 그대로 · 검증 대기
|
||||
- [x] 54-42 횡단 벽 형상 한 벌 — 관 보호공 흙막이 · 추가 흙막이 · 사면안정 흙막이 · 옹벽 같은 그리기 · 동작 · 관 보호공만 m 단위 자리 제약 · 형태 = 안 무늬만 · 형태별 침투 · 높이 한도 자동 자르기 삭제 · 노면 위로는 막음 · 서버 짝(sub7) · 끝 fb3b24f13
|
||||
- 54-39 남은 것(안 바꿈): 세월교 · BOX암거 · 독립 기슭막이 서버 계산은 빈 칸을 기본값으로 읽음 · 추가 흙막이 형태 비면 유출 벽 형태 따름 · 사면안정 흙막이 · 옹벽 「설치 측」 빈 칸 = 자동(성토 쪽)
|
||||
- [x] 54-43 빈 칸 = 그냥 빈 칸(「선택 안 함」 글 · 흐린 자리표시 · 안내 글 모두 없음) · 기본값 = 사용자가 넣은 것처럼 실제 값 · 필수 칸(관 보호공 구조 집수정/흙막이 · 필수 상자의 형태 · 관경 등)은 빈 선택지 자체 없음(sub5) · 끝
|
||||
- [x] 54-44 프로젝트 전역 초기화(사용자 지시) — 1단계 새 13개(검증_랩탑메인 · 검증_sub1~8 · 검증_데스크탑메인/서브 · 엄상준_검증(user 10) · 박동철_검증(user 9)) · 같은 입력(랩탑_보조 원본) · 새 로직 자동설계 / 2단계 옛 16개 삭제(작업 창 쉴 때) / 3단계 창마다 배정 · OWNERS.md(sub8) · 새 13(실패 0) · 옛 16 지움 · OWNERS.md 표 고침 · docs/raw/조사/2026-10-06_54-44_새프로젝트.md
|
||||
|
||||
## CODEX. 대시보드 원문 안내 챗봇 (사용자 지시 2026-10-06)
|
||||
|
||||
- [x] 대시보드 우측 하단 채팅창에서 질문·답변·근거를 확인한다.
|
||||
- [x] `resources/knowledge` 전체의 Markdown을 검색하되 `실무문서`·`STmate`·`다산소프트`·`technical_info` 폴더는 검색·외부 전송에서 제외한다.
|
||||
- [x] 서버 환경변수 `GEMINI_API_KEY`만 설정하면 Gemini 답변이 동작한다. 키는 브라우저·저장소에 노출하지 않는다.
|
||||
- [x] 관련 테스트와 형식 검사를 실행하고 결과·차이를 이 항목 하위에 기록한다.
|
||||
- 자체검증: `test_b01_knowledge_chat.py`에서 검색 범위와 네 제외 폴더의 Gemini 요청 차단 확인. pytest 1 통과, ruff 통과. 실제 문서 검사: 2,510파일, 네 제외 폴더 0파일. 앞선 관련 pytest 8과 TypeScript 검사도 통과. 실제 Gemini 호출은 서버 키 미설정 상태라 수행하지 않음.
|
||||
- 계획 대비 차이: 기본 모델은 사용자 후속 지시로 `gemini-3.8-flash`로 변경. Markdown만 검색하며 채팅 문맥 기억은 첫 버전에서 제외.
|
||||
- [x] 챗봇 화면을 대화형 말풍선·입력창으로 바꾸고 제목을 「챗봇」으로 수정한다. 우측 하단은 직접 만든 SVG 아이콘 버튼으로 표시한다.
|
||||
- 자체검증: 변경 파일 Prettier·TypeScript 검사 통과, 5175 서버에서 변경 모듈 제공 확인(6d3a1be4).
|
||||
- [x] 단독 인사("안녕" 등)는 원문 검색과 Gemini 호출 없이 인사 답변으로 처리한다.
|
||||
- 자체검증: API 키 없이 검색 함수가 호출되지 않는 시험과 기존 원문 범위 시험 2건 통과, ruff 통과. 법령·지침 질문 경로는 그대로 둠.
|
||||
- [x] 자연어 질문의 조사·상투어를 검색에 반영하고, AI 키 미설정을 원문 부재와 구분한다. 「일위대가가 뭐야」가 원문 근거를 찾아 Gemini 답변 경로로 간다.
|
||||
- 자체검증: 실제 허용 문서 4개 검색, 챗봇 시험 4개 통과, 변경 Python 파일 ruff format·check 통과. 일반 용어 설명은 Gemini 지식으로 허용하고 문서별 수치·조건은 발췌 근거를 요구한다. 실제 Gemini 응답은 API 호출 없이 미검증.
|
||||
- [x] Gemini 혼잡 응답(503)은 짧게 재시도하고, 키·한도·혼잡 오류를 구분해 채팅창에 표시한다.
|
||||
- 자체검증: 실제 Gemini 3.8 Flash 호출에서 503 UNAVAILABLE(모델 수요 급증) 확인. 503 재시도 시험 포함 챗봇 시험 5개 통과, ruff format·check 통과.
|
||||
- [x] Gemini 응답 시간 초과를 일반 연결 실패와 구분해 안내한다.
|
||||
- 자체검증: 실제 「일위대가가 뭐야」 호출에서 ReadTimeout 재현. 시간 초과 시험 포함 챗봇 시험 6개 통과, ruff format·check 통과. 3.8·3.7·3.6은 503, 2.5 Flash는 200 확인. 모델 대체 여부는 사용자 결정 대기.
|
||||
- [x] 54-44c 대시보드에 옛 프로젝트 목록 남음 → 남은 행 · 값 정리(sub8) · 끝 222a3cb1f(화면 설정 키 33 지움 · 감사 기록 28줄 보존)
|
||||
- [x] 54-45 원지반 제약 잠금이 아직 남음(사용자 신고 · 54-42 뒤) — 형상 만들기 · 끌기 · 높이 · 자리 조작에서 원지반 기준으로 막거나 자르는 곳 전부 찾아 풀기(노면 위 막기 · 관 보호공 m 단위만 남김) · 화면 · 서버 둘 다(sub7)
|
||||
- 검증완료 — 푼 곳 9(관 흙막이 매몰 되돌림 · 유입↔유출 가드 · 사면안정/옹벽 되돌림 · 추가 흙막이 되돌림 · 다단 끊기 셋 · 막힘 표시) · 깊게 d 8 · 멀리 x 9 · 다단 d 3 · 옹벽 d 6 그대로 · 노면 위 ▲ → 0 · ▼ 8번 캐시 d 10 · 서버 면적 = 화면 9건 · 제약표 tmp/54-45_제약표.md(제약 33 · 남김 22) · 검증 대기
|
||||
- [x] 54-46 종단 알약 정보 창 = 2행 — 1행 구조물 이름(+ 기준 측점) · 2행 옵션 값만 「 · 」 로 이음(옵션 제목 없음 · 컨테이너마다 첫 값)(sub4) · 끝
|
||||
- [x] 54-47 좌측 상자 안 칸을 고르기 · 바꾸기 · 상자 만들기(단 추가 등) 하면 횡단도가 그 측점 카드로 이동 · 그 부분 강조(횡단에서 누른 것과 같은 상태) · B05 보기면 종단 알약 · 측점선으로(sub5)
|
||||
- 검증완료 — 유출 형태 · 흙막이 2 길이 · 단 0→1→2 각각 12+18 카드 위 8px · 강조 outlet/extra0/extra1 · 같은 칸 거듭 고침 스크롤 1회 · B05 측점선 · 알약 다시 켬 · typecheck 0 · 검증 대기
|
||||
- [x] 54-48 배관 도수로/돌붙임 = 하나만(있으면 [추가] 숨김 · 표 01 「여러 개」 사용자 10-6 바꿈)(sub5 · 54-47 과 함께)
|
||||
- 검증완료 — 하나 넣으면 [추가] 0 · 빼면 1 · 시험 13 통과 · 검증 대기
|
||||
- [x] 54-49 종단 알약 이름 = 종류 고르기 이름(정의 이름 · 기타는 손 이름) · 우클릭 메뉴 → 군 → 하위 종류 목록이 안 뜨고 리셋됨(배관 고른 상태 · 54-32 군 바꿈 규칙과 겹침) 고침(sub4) · 끝 c75925ae7
|
||||
- [x ] 54-50 도수로/돌붙임 상자 제목 번호(1 · 2) 뺌(sub5 · 54-48 과 함께)
|
||||
- 검증완료 — 「도수로/돌붙임」 번호 없음 · 흙막이 1 · 2 그대로 · max 1 상자 공통 · 검증 대기
|
||||
- [x] 54-51 높이 제약 풀기 — 흙막이 · 집수정 · 옹벽 · 관 보호공 높이를 막거나 고치는 곳 · 토스트 메시지 모두 뺌(제약표 17 관경 + 1.0 · 22 최저 0.6 · 집수정 높이 · 내공 한도 등) · 남김 = 노면 위 금지 · 그릴 수 없는 0 이하만(sub7)
|
||||
- 검증완료 — 관 흙막이 0.8(Φ1.0 보다 낮음) · 0.3 · 집수정 0.5 · 추가 흙막이 0.3 · 옹벽 0.4 그대로 · 0 → 0.1 멈춤 · 높이 토스트 0 · 구조물 측점 19곳 서버 = 화면 · 시험 7 통과 · 검증 대기
|
||||
- 영역 배정(한시 · 사용자 10-6): M02 = sub3 · B05/B06 구조물 배치 패널 = sub5 · B06 횡단 형상 제어 = sub7 · B07 상세 설계 = sub6 · B08 수량산출 = sub8 · 예비 sub1 · sub2 · sub4 · 데스크탑
|
||||
Reference in New Issue
Block a user