Commit Graph
424 Commits
Author SHA1 Message Date
eomsangdon 7243da042f Merge remote-tracking branch 'origin/sub_laptop_6' into main_laptop_1 2026-10-05 20:02:23 +09:00
eomsangdonandClaude Opus 5.5 ae04b403d6 fix(ui): 51-8 오른쪽 패널 높이 — 칸 크기가 바뀌면 다시 잼(M01 로직 상세 240 고정 해소)
- 원인: 패널 높이를 붙은 직후 한 번만 잼 · M01 은 내용이 늦게 차 그때 칸이 짧아 최소 240 · 스크롤·창 크기 바뀜 전까지 그대로
- 고침: 패널 · 부모 칸 크기 지켜봄(ResizeObserver) — 다시 붙음 · 내용 늦게 참에도 다시 잼
- 51-1 확인: 스크롤 알림 없는 「그대로」 줄 추가(알림이 흠을 가림)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK
2026-10-05 20:01:14 +09:00
eomsangdonandClaude Opus 5.5 2a914e11eb feat(ui): 공용 찾기 목록 양식 · 로직 고르기 창 적용 — 구분 · 상세구분 2열 · 이름 왼쪽 맞춤 (51-9)
- ui_template_find_list(.ts · .css) 새로 둠 — 거름 칸 2열 격자 · 찾기 칸 · 알림 줄 · 한 줄 결과 목록(꼬리표 · 이름 · 흐린 보조 글 · 단위) · 고름 하이라이트 · ↑ ↓ Enter
- M02 로직 고르기 창(Labor_Pick)이 이 양식을 씀 — 구분 칸 · 층 단추 · data-pick 표지 그대로
- 확인 시나리오 resources/tester/ui_checks/51-9_고르기_찾기양식.js

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W4uKaV4ZBhsJN4GHG7yRj4
2026-10-05 19:59:05 +09:00
eomsangdonandClaude Sonnet 5.5 a82275b38e feat(ui): 51-1 오른쪽 패널 높이 = 보이는 창 − 머리띠 · 스크롤 때 화면 안에 붙음
- 여백 8px 제거 · 칸 바닥 넘지 않음 · 칸 위가 화면 아래면 칸 위부터
- 시험: ui_checks/51-1_오른쪽패널_높이.js

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK
2026-10-05 19:30:10 +09:00
eomsangdonandClaude Sonnet 5.5 72881c20e7 feat(M02): 49-8 구조물 조합 찾기 칸 없앰 — 분류 표 · 카드가 위로 붙음
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MgChuAcyBqUkhHMTXomQC7
2026-10-05 16:38:40 +09:00
eomsangdonandClaude Opus 5.5 712d3f19d5 fix(ui): 49 오른쪽 접는 패널 = 좌측 패널 손잡이 양식 · 패널 몸만 따로 스크롤 · 원문 보기 한 벌
- 49-1 공용 ui_template_side_panels — 세로 글 띠 · 접기 ▸ 걷어내고 공용 createWorkflowPanelHandle(side · right · 이름표) 손잡이를 패널 왼쪽 가장자리에 붙임 · 패널마다 손잡이 하나 · 하나만 열림 · 폭 공유 · 모두 접힘(폭 0 · 손잡이만 남음) — M01 로직 상세 · M02 일위대가 상세 · 면적산출 상세 모두 따라감
- 49-3 패널 묶음을 보이는 칸 안에 붙임(followView · 위 칸 overflow 가 CSS sticky 를 막아 JS) — 높이 = 보이는 칸 · 머리띠 아래 멈춤 · 몸만 스크롤
- 49-2 원문 md 읽기 — 빈 줄 · 주석이 붙은 표 둘을 가름(한 표로 합쳐지던 깨짐) · 칸 안 <br> = 줄바꿈
- 49-4 원문 칸 80vh 제한 걷어냄 — 표 높이 = 내용 · 가로 넓은 표만 가로 스크롤
- 49-5 원문 꼴 한 벌 — M01 둘레 글자 크기(14) 안 따르고 본문 크기(M02 와 같음)
- 확인 시나리오 ui_checks/49_오른쪽패널_양식.js · 시험 test_m01_logic_source 표 가름 한 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK
2026-10-05 16:16:59 +09:00
eomsangdon 5f5da8119b Merge remote-tracking branch 'origin/sub_laptop_6' into sub_laptop_2 2026-10-05 13:42:17 +09:00
eomsangdonandClaude Opus 5.5 da510d3cbc fix(M01): 47-3 로직 상세 오른쪽 = 공용 접는 패널 둘(흐름도 · 원문) — 위아래 접기 카드 걷어냄
- 흐름도 · 원문 = 따로 패널 · 접힌 패널 = 세로 글 띠 · 하나만 열림 · 모두 접힘 됨 · 폭 공유(경계 끌기 · 화살표 키)
- 열린 패널 · 폭 = 취향 키 m01-logic-side · 흐름도 패널 자체 접기 단추 · 끌기 경계는 숨김
- 옛 두 칸 비율 막대(buildSplit) 제거 · 부품 칸 숨김([hidden]) 규칙 덧붙임
- 화면 시나리오 ui_checks/47-3_로직상세_오른쪽패널.js

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK
2026-10-05 13:41:48 +09:00
eomsangdonandClaude Opus 5.5 cd1ef69d2b feat(M02): 47-5 일위대가 줄 누름 = 고름 하이라이트 · [옵션] 단추로 넣을 값 모달 · 줄 단추 공용 묶음
- 단가산출 로직 표 줄 누름 = 고른 줄 하이라이트(로직 키 · 다시 그려도 유지) · 넣을 값 모달은 새 [옵션] 단추
- 줄 단추 이름 위로 · 아래로 · 옵션 · 삭제(빨강) · 카드 갈래 = 옵션 · 삭제
- 공용 단추 묶음 `ui-btn-group` · 간격 토큰 `--btn-group-gap`(4px) — 이 표에만 적용
- 시험: test_m02_card_shell 낡은 글 맞춤 + 47-5 확인 · 화면 시나리오 ui_checks/47-5_일위대가_줄_고름.js

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MgChuAcyBqUkhHMTXomQC7
2026-10-05 13:41:13 +09:00
eomsangdonandClaude Opus 5.5 cbe0c17505 feat(ui): 47-3 공용 오른쪽 접는 패널 부품 — 패널 여럿 나란히 · 하나만 열림 · 폭 공유
- createSidePanels({ prefKey, panels: [{ id, title, body }] }) · 본문과 함께 .ui-side-panels-row 칸에 [본문, root]
- 접힌 패널 = 제목 세로 글 띠(누르면 폄) · 편 패널 = 머리(제목 · 접기 ▸) + 몸 · 모두 접힘 됨
- 왼쪽 경계 끌기 · 화살표 키로 폭 · 열린 패널 · 폭은 취향 키 aislo:pref:{prefKey}
- 폭 자르기 시험(test_ui_side_panels)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK
2026-10-05 13:36:25 +09:00
eomsangdon 3f5c38c90d Merge remote-tracking branch 'origin/dev' into sub_laptop_1 2026-10-05 12:34:56 +09:00
eomsangdonandClaude Opus 5.5 f5a972d0e7 fix(M02): 단추를 공용 기본 단추로 · 알약 꼴은 진짜 알약에만
- 공용 작은 단추(ui-btn--sm) 모서리 8px → 4px — 낮은 키에 8px 이면 알약 꼴
- 층 단추 · 고르기 창 출처 단추 · 나무 「+」 = createButton(켜짐 filled · 나머지 ghost) · 전용 단추 꼴 CSS 지움
- 데이터 흐름 입력 패널 갈래 · 방식 단추 pill → ghost
- 연결 알약 · 다이어그램 알약 · 칩 · 이름표는 그대로
- 시험: 층 단추 글 찾기 들여쓰기 맞춤 · 화면 시나리오 45-1 추가

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016PSXsvyDxjNmufteN5bqmt
2026-10-05 12:34:10 +09:00
eomsangdon cce4e0721c Merge remote-tracking branch 'origin/dev' into sub_laptop_5 2026-10-05 12:33:29 +09:00
eomsangdonandClaude Opus 5.5 407481dc8d feat(M02): 좌측 구조물 조합 안 하위 컨테이너 셋 · 「전체 항목」 길 없앰(45-2)
- 좌측 구조물 조합 = 층 단추 · 나무만 · 구조물 도면 · 일위대가 · 면적산출 하위와 수평선 지움
- 「전체 항목」 목록 화면 길(onAll · buildAllItems) 지움 · 상세는 카드 [수정]으로
- 쓰는 곳 없는 structureLabel · 로케일 키 다섯 · 하위 CSS 지움
- 낡은 글 찾기 시험을 지금 코드에 맞춤 · 화면 시나리오 ui_checks/45-2

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BVPp2o6Mh2FZJr72yW3ofZ
2026-10-05 12:32:50 +09:00
eomsangdonandClaude Opus 5.5 966669bb34 feat(M02): 45-3 구조물 조합 분류 표 일위대가 · 도면 · 면적산출 키 줄 숨김
- 표 부품 combo 일 때 마스터 번호 줄 안 그림(보기만 · 장부 · 저장 문서 그대로)
- 번호 글 폭 맞춤(fitMeta) · 전용 CSS 없앰 · 방향키는 머리 줄만
- 시험 test_m02_combo_table 지금 코드에 맞춤 · 시나리오 ui_checks/45-3_분류표_키줄.js

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYJJRCfHfdCGNhmXTjQKV7
2026-10-05 12:28:04 +09:00
eomsangdon 3fba3857cf Merge remote-tracking branch 'origin/dev' into sub_laptop_5 2026-10-05 11:27:57 +09:00
eomsangdonandClaude Opus 5.5 543d7bb8a5 fix(B05·B06): 좌측 패널 아래 단추 묶음 바닥 고정 복구(PLAN 44-3)
- 까닭 = 473d959d6 이 좌측 자리를 빈 채 틀에 넘겨 공용 쪼개기 건너뜀 · 보기 전환이 패널 클래스를 통째 덮어 ui-sidebar-fill 지움
- 공용 쪼개기 내보냄 · 두 번 불러도 한 번만 · 패널을 붙인 뒤 다시 부름
- 늦게 서는 칸은 스크롤 칸 안으로 · 보기 클래스는 toggle
- 시험 test_design_panel_dock_fixed · 화면 시나리오 ui_checks/44-3

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BVPp2o6Mh2FZJr72yW3ofZ
2026-10-05 11:27:09 +09:00
eomsangdonandClaude Opus 5.5 a22f03426f feat(m02,b01): 일위대가 상세 단위 드롭다운 · 대시보드 일위대가 카드 없앰(44-7)
- 일위대가 상세 머리 「단위」 = 표준 단위 고르기(UnitPick) · 지금 값이 목록에 없어도 선택지 · 저장은 상세 [저장]
- 대시보드 시스템 설정의 「일위대가」 카드 · 진입 해시 open=일위대가 길 · 안 쓰는 글 키 없앰
- 시험 고침 · ui_checks/44-7 화면 판정 스크립트

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016PSXsvyDxjNmufteN5bqmt
2026-10-05 11:23:22 +09:00
eomsangdon ecc4ed372d Merge remote-tracking branches 'origin/sub_laptop_2', 'origin/sub_laptop_3', 'origin/sub_laptop_7' and 'origin/sub_laptop_8' into sub_laptop_5 2026-10-04 22:45:48 +09:00
eomsangdonandClaude Opus 5.5 0bc5606638 feat(M02): CAD 표 놓기 · 칸 갈기 호스트 함수 — cad_host placeTable · updateTable · 도면 손잡이 (41-2)
- cad_host: placeTable(entity, link) · updateTable(link, cells) → 바꾼 표 수 · 도면이 열리기 전이면 열린 뒤 보냄(싣기가 덮지 않게) · 5 초 넘으면 실패
- M02_MasterTemplete_Drawing: DrawingTemplateHandle 에 같은 함수 둘

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UoSr2sqvYtBf1dtQdus88s
2026-10-04 22:44:36 +09:00
eomsangdonandClaude Opus 5.5 c7a8ed7cf9 fix(M02): 이름 맞춤 — 한 줄 표 머리 「항목 · 수량산출 · 단위 · …」(사용자 글) · 남은 화면 글 「담은 로직」 → 「단가산출 로직」(40-1 끝)
- 한 줄 표(compact) 머리만 · 상세 표 머리는 그대로
- 글 줄만: 넣을 값 빈 글 · 전체 항목 · 복사 생성 「단가산출 로직 수」 · 면적산출 알약 없음 · 실무문서 locale · B05 고르기 모달 일위대가 카드 · 면적 알약 없음 · 일위대가 문서 검사 글(「단가산출 로직 n째」)
- 시험 기대값: test_m02_item_list 머리 글

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MgChuAcyBqUkhHMTXomQC7
2026-10-04 22:44:14 +09:00
eomsangdonandClaude Opus 5.5 6541b65834 fix(M02): 구조물 조합 표 「일위대가」 줄 = 그 열 일위대가번(SU) — 옛 조합 키(UA) 칸 안 읽음 · 번호 글 줄(도면 · 면적산출과 같음)
- 표 부품: 일위대가 줄도 번호 글 줄(손으로 못 침 · laborLabel) · 조회 후 선택이 열 칸을 안 고침
- 누르면 다른 줄과 같은 길(일위대가 복사해 가져오기) · 열의 옛 「일위대가」 값은 파일에 그대로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK
2026-10-04 22:08:06 +09:00
eomsangdonandClaude Opus 5.5 524dc8febc fix(M02): 마스터 층 읽기도 층 길 한 벌 — 회사 관리자 · 일반 「시스템 관리자 권한」 막힘 풂 (39-8)
- Api_Fetch: 시스템 층도 /layers/system/… (양식 목록 · 읽기 · 저장 · 지우기 · 번호 · 장부 · 새 도면 · 복사) — 옛 /api/m02/templates/* 부름 0
- 서버: GET /layers/system/structure-options(읽기 로그인 누구나 · 고쳐 씀은 옛 길 그대로) · 층 양식 목록에 쓰는곳(지우기 확인 전 막음)
- 「〇〇로 복사…」 폴더 창 칸 글 「복사할 폴더」

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYJJRCfHfdCGNhmXTjQKV7
2026-10-04 21:37:24 +09:00
eomsangdonandClaude Opus 5.5 8087c73060 refactor(M02): 새 항목 일위대가 고르기 없앰 — 항목 추가 창 줄 · pickCombo · 서버가 받는 일위대가 키 · 열 칸 새로 쓰기 · /combos/all · fetchUsableCombos 지움 · 새 구조물 일위대가 = 빈 labor 문서(39-1d)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013rJwJMVL4EE31y77TB11AP
2026-10-04 21:04:48 +09:00
eomsangdonandClaude Opus 5.5 c704f18982 refactor(M02): 선택 입력 지움(39-7b G3) — 카드 · 자리 고르기 · inputs/ 연결 · 입력 목록 · 연결 · 알약 길 · 프로젝트 복사본 「입력연결」 · 시스템 층 inputs · 시험
- 넣을 값 카드(M02_Labor_Values)는 담은 로직 입력 전부를 보임(자리 「선택」 감싸기 없앰) · 이름 「넣을 값」
- 고르기 모달 면적산출 알약 = 복사본 일위대가 알약(가져온 때 그대로)
- 입력값.json · 고른자재.json · /calc 는 그대로 · storage 층 inputs/ 파일은 안 건드림(읽기만 끊음)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK
2026-10-04 19:36:46 +09:00
eomsangdonandClaude Opus 5.5 79e4bba1bb merge(M02): origin/dev(39 통합) 받음 — G1 · G2 지움과 부딪힌 곳 풂
- 남의 새 줄(labor · 일위대가번 SU · 실무문서 · 「전체 항목」 · 수평선 · 알약 켬끔 · 복사해 가져오기)은 살리고 material · 자재조합 · 재료번 · matset 줄만 뺌
- dev 쪽 새 시험(test_m02_item_labor · test_m02_card_sheet_edit)의 재료산출 · 자재조합 자리 맞춤

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK
2026-10-04 19:22:22 +09:00
eomsangdonandClaude Opus 5.5 a97ad41c47 fix(M02): 39 통합 뒤 엇갈림 — 일위대가 합 칸 없을 수 있음(picker) · 새 열 = 빈 일위대가 · Structure.ts readTemplate 뺌 시험 맞춤
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BVPp2o6Mh2FZJr72yW3ofZ
2026-10-04 18:40:55 +09:00
eomsangdonandClaude Opus 5.5 1baf761c4d feat(B05): 항목 고르기 모달 일위대가 카드 · 넣을 값 = 담은 로직 입력 전부 (39-1c)
- 카드 차례 도면 · 일위대가 · 면적산출 — 새 ui_template_item_picker_labor.ts(담은 로직 수 · 자재 수 · 기준 합 · 반영 합 · 빠진 입력 · 멈춘 로직)
- 자료 laborOf: 복사본이면 복사본 일위대가 + calc · 아니면 원본 층 labor calc(저장 안 함) · 일위대가 없으면 「일위대가 없음」
- 넣을 값 카드 · 편집 = M02_Labor_Values 바로 · 목록 = 담은 로직 입력 전부(logic-lib/inputs) · 값은 복사본 입력값
- ProjectCalc 에 기준합 · 반영합 계 · 시험 test_item_picker_detail 손봄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UoSr2sqvYtBf1dtQdus88s
2026-10-04 18:01:32 +09:00
eomsangdonandClaude Opus 5.5 61d2ed5997 refactor(M02): 재료산출 시트 지움 — 종류 material · 재료번 SM · 좌측 줄 · 집계표 「재료산출」 줄 · 카드 · 전체 편집 · 복사 길 · 프로젝트 복사본 「재료」 · 고르기 모달 · 시스템 층 · fixture · 시험
- 새 프로젝트 씨앗(KINDS)에서도 빠짐 · 새 열은 구조물 도면 · 면적산출만 만듦
- storage 층(회사 · 개인 · 프로젝트) material/ 파일은 지우지 않음(읽기만 끊음)
- 장부 재료번 칸은 다음 집계표 [저장] 때 빠짐

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK
2026-10-04 17:56:49 +09:00
eomsangdon 91bb01c3f3 Merge remote-tracking branch 'origin/sub_laptop_4' into sub_laptop_1 2026-10-04 17:41:29 +09:00
eomsangdonandClaude Opus 5.5 a2d1471931 feat(M02): 화면 권한 맡은 회사 — accessFor 짝 · 개인 단추 = 회사 사람 나무(나 맨 위 · 비어 있음) · 「〇〇로 복사…」 볼 회사까지 · 대상 폴더 고르기 창(39-6 E5~E8)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013rJwJMVL4EE31y77TB11AP
2026-10-04 17:39:38 +09:00
eomsangdonandClaude Opus 5.5 54ce67ceb8 refactor(M02): 자재 조합(UM) 지움 — 좌측 컨테이너 · 재료산출 옆 판 · 길(material-combos · 갈라 내기 · 키 적기 자재조합) · 저장소 · 틀 검사 · 복사 길의 UM 줄 · 시스템 층 표 · fixture · 시험
- 자재 고르기 창은 M02_Material_Pick.ts 로 옮겨 남김
- storage 층(회사 · 개인 · 프로젝트) 자재조합.json 은 지우지 않음(읽기만 끊음)
- check_master 틀 검사 · _틀.md 11장 · _화면_계약.md 자재 조합 절 정리

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK
2026-10-04 17:39:16 +09:00
eomsangdon 789c78db2d Merge remote-tracking branch 'origin/sub_laptop_5' into sub_laptop_1 2026-10-04 17:38:06 +09:00
eomsangdonandClaude Opus 5.5 0e28b5be4a feat(M02): 좌측 「실무문서」 — 옛 마스터 일위대가 조합 목록 · 상세 읽기만 · 통째 지우기(39-2)
- 새 M02_MasterTemplete_Practice.ts — 구조물 조합 밖 · 도면 양식 아래 · 마스터 층 · 시스템 관리자만
- [통째 지우기] = 물음 두 번 → DELETE /api/m02/practice(시스템 관리자 문 is_system_admin · 판 · 쓰는 곳 0 확인 · 줄을 비움)
- Combo_Store.drop_practice · 시험 test_m02_practice.py(임시 사본)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BVPp2o6Mh2FZJr72yW3ofZ
2026-10-04 17:36:51 +09:00
eomsangdon 4ff4855767 Merge remote-tracking branches 'origin/sub_laptop_2' and 'origin/sub_laptop_5' into sub_laptop_1 2026-10-04 17:31:41 +09:00
eomsangdonandClaude Opus 5.5 80a635d3b9 feat(M02): 좌측 구조물 조합 수평선 · 하위 「일위대가」 · 「전체 항목」 줄 · onAll 손잡이(39-2)
- 층 단추 · 나무 → 수평선 → 구조물 도면 → 일위대가 → 면적산출(재료산출 · 자재 조합은 sub6 몫으로 그대로)
- 하위마다 맨 위 「전체 항목」 — 누르면 SideOptions.onAll(kind)(화면은 39-5) · 양식 · 다른 보기가 열리면 고름 지움
- 이름 「일위대가」(하위 제목 · 대시보드 카드 글) · 해시 open=일위대가 = 일위대가 하위 펼침 + 전체 항목
- 일위대가 열 줄은 SU 번호(39-1a) 뒤

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BVPp2o6Mh2FZJr72yW3ofZ
2026-10-04 17:30:41 +09:00
eomsangdonandClaude Opus 5.5 eee8f9a459 feat(M02): 가져올 곳 탭 readableSources · 회사 맡음 manages — 복사 생성 · 복사해 가져오기 탭 목록(39-6 E5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013rJwJMVL4EE31y77TB11AP
2026-10-04 17:21:17 +09:00
eomsangdonandClaude Opus 5.5 277311955b feat(common): 오른쪽 클릭 메뉴 공통 양식 — 공용 CSS 한 벌 · 「한 번에 하나」 장부 합침 · 조건 만들기 공용 메뉴로
- 새 ui_template_context_menu.css(.ui-ctx-menu) — 지도 · 표 메뉴와 나무 메뉴가 같은 클래스 · 자리 · z 는 :where 로 페이지가 덮어씀
- 페이지 CSS 4 벌(스프레드시트 · B04 지도 · B05 배수 · 종단)과 나무 메뉴 CSS 의 모양 줄 지움 — 자리 · z 만 남김
- 상태줄 통계 메뉴 흠(CSS 없음) — 공용 클래스 + .ss-statusbar 기준 자리
- 나무 메뉴가 지도 · 표 메뉴 장부에 등록(enterMenu · leaveMenu)
- 조건 만들기 — 가로채기 지움 · 칸 메뉴가 있으면 그 끝 한 줄(ctx.cellMenuExtra) · 없으면(미리보기 편집기) 같은 공용 메뉴에 이 줄만 (PLAN 39-9b)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UoSr2sqvYtBf1dtQdus88s
2026-10-04 17:17:01 +09:00
eomsangdonandClaude Opus 5.5 0f8efaa424 feat(common): B · M 페이지 브라우저 기본 오른쪽 클릭 메뉴 막기 — 공용 진입 창 캡처 한 곳 · CAD iframe 도 · 글 입력 칸은 살림
- 새 ui_template_native_menu.ts — 주소 /^[bm]\d/ · 글 입력 칸(input · textarea · contenteditable · 읽기 전용 포함) 제외 · preventDefault 만(우리 메뉴 그대로)
- main.ts 공용 진입 한 줄 · cad_host.ts iframe load 때 같은 함수
- 「브라우저 메뉴 그대로 둔다」 주석 셋 바로잡음(B04 지도 · B05 배수 · 3D)
- 시험 test_common_native_menu.py (PLAN 39-9a)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UoSr2sqvYtBf1dtQdus88s
2026-10-04 17:12:28 +09:00
eomsangdonandClaude Opus 5.5 2f25468019 fix(M01): 「고친 것 버리기」 → 「캐시 삭제」 — 단가산출 로직 · 마스터 요소 화면 단추 · 묻는 글
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YAxqrz1iadqdygC6bE3pic
2026-10-02 10:14:25 +09:00
eomsangdonandClaude Opus 5.5 bcb1c725c4 refactor(M02): 항목 카드 넷 공용 틀 CardShell (PLAN 31-7)
- 공용 틀 — 제목 줄(제목 · 저장 안 한 점 ● · 오른쪽 단추 자리) + 한 줄 부제(번호 · 이름 · 말줄임) · 상태(불러오는 중 · 실패 + 다시 불러오기 · 비었음) · [저장](늘 보임 · 고쳐야 켜짐 · 카드 안 Ctrl+S · 알림 글 한 벌) · ?(단축키 상자)
- 도면 정보 · 면적산출 · 재료산출(ItemCards) · 선택 입력(관리 화면 · 고르기 모달 값 카드)이 틀에 내용만 넣음
- 「〇〇 수정」 빈 단추 한 모양 · 엑셀 카드에도 ? · 불러오는 중 네 카드 · 실패는 카드 안 글(토스트 안 씀) · 물음 한 번(어느 카드든)
- 저장 길(saveTemplate · 도면 write · sheetEdit.save · 위 [저장] saveInputs) · 단축키는 그대로 · 고르기 모달은 보기만
- 시험 test_m02_card_shell 새로 · 옛 모양 시험 맞춤

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 21:24:49 +09:00
eomsangdon 7147ca1a40 Merge remote-tracking branch 'origin/sub_laptop_7' into main_laptop_1 2026-09-30 20:28:11 +09:00
eomsangdonandClaude Opus 5.5 b981911755 feat(M02): 항목 추가 창 = 종류 + 이름 + 일위대가 · 카드 넷 2×2 · 표 접기 (PLAN 31-2)
- 항목 추가(나무 「항목 추가」 · 「새 항목」) — 구조물 종류(있는 것 고름 · 새 이름 · 폴더를 골라 두었으면 그 안) + 이름 + 일위대가(세 층 조합 고르기 창 · 찾기 AND · 비워도 됨) · 단위 칸 없앰 · 빈 칸 안내 · 서버 add-item 이 일위대가 받음
- 일위대가 고르기 창을 pickCombo 로 내보내 표 칸 고르기와 같이 씀
- 카드 넷(도면 정보 · 면적산출 · 재료산출 · 선택 입력) 2행 2열 · 높이 360px · 넘치면 카드 안 스크롤 · 상세 칸 전체 스크롤(좁으면 1열)
- 「구조물 조합」 제목을 누르면 표 접힘 · 펴짐
- 시험 — 항목 추가 서버 · 창 · 격자 · 접기 · 옛 단위 필수 시험을 31 정함으로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 20:19:11 +09:00
eomsangdonandClaude Opus 5.5 f7c91f2f12 feat(M02): 구조물 조합 표 — 머리 이름 고침 = 나무 이름 바꾸기 · 단위 줄 숨김 · 열 폭 자동 · 마지막 분류 칸 강조 · 안내글 없앰 (PLAN 31-1)
- 표 부품 combo 선택(구조물 조합 표만): 단위 줄 · 옛 안내글 없음 · 열 폭 = 머리 이름 · 일위대가 키 · 도번 등 번호가 한 줄에 들게(저장 폭 안 씀 · 번호 줄 줄바꿈 없음) · 고른 열의 가장 깊은 이름 칸 강조(나무에서 고를 때도) · 방향키가 숨은 단위 줄을 안 밟음
- 머리 이름 칸 두 번 누르기 · F2 · Enter → headRenameEdit(가장 깊은 칸 = 항목 · 위 칸 = 폴더) → 나무 editFromTable(메뉴 이름 바꾸기와 같은 길 — 저장 물음 · 같은 이름 막음 안내 · 다시 그림) · 쓸 수 있는 층만
- 시험 test_m02_combo_table 3 · test_m02_combo_screen 머리 잠금 기대값

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KmELpdXFDRZHhfbGuRhSmL
2026-09-30 20:13:18 +09:00
eomsangdonandClaude Opus 5.5 25cf716a0d feat(M02): 컨테이너 안 「불러오는 중」 — 0.3초 넘을 때만 · 실패 = 까닭 + 다시 불러오기 (PLAN 30-6)
- 공용 부품 ui_template_loading(showLoading · loadingError · delayedShow) — 칸 안 작은 회전 표시 + 「불러오는 중...」 · 화면 전체 잠금 아님 · 다른 페이지도 씀
- 붙인 자리 — 좌측 나무(구조물 · 일위대가 · 사람 나무) · 상세 칸(구조물 표 · 도면 · 면적 · 재료) · 조합 목록 · 조합 상세 · 항목 카드
- 공용 글 Common_Load_Failed · Common_Reload
- 시험 test_ui_loading(0.3초 규칙 가짜 시계 · 실패 글 · 붙은 자리)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 20:02:36 +09:00
eomsangdonandClaude Opus 5.5 dc725012ed feat(M02): 「구조물 조합」 제목 줄 오른쪽 끝 「새 항목」 (PLAN 30-5 구조물 쪽)
- 쓸 수 있는 층만 · 구조물 조합일 때만 보임 · 나무 「항목 추가」와 같은 창 · 고른 폴더 안(없으면 맨 위)
- 공용 모양 newItemButton · m02-main__new(일위대가 「새 조합」이 같은 자리 · 모양을 씀)
- 시험 한 건 · 머리 줄 시험 맞춤

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 19:23:39 +09:00
eomsangdon 62073aac1b Merge remote-tracking branch 'origin/sub_laptop_7' into main_laptop_1 2026-09-30 19:13:35 +09:00
eomsangdonandClaude Opus 5.5 d1675e6218 feat(M02): 「〇〇로 복사」 · 끌어다 옮기기 · 켜진 층 단추 = 목록으로 (PLAN 30-2 더함 · 30-4)
- 오른쪽 클릭 「마스터 · 회사 · 개인으로 복사」 — 쓸 수 있는 자기 층(지금 층 뺌) 맨 위에 바로 · 새 키 · 같은 이름 「(2)」
- 끌어다 옮기기 — 같은 층 · 폴더 줄 위 = 그 안 · 빈 자리 = 맨 위 · 고른 것 전부 · 제 안으로 막음 · 읽기 층은 끌기 없음
- 켜진 층 단추를 다시 누르면 그 층 목록(구조물 = 집계표 · 일위대가 = 조합 목록 · 저장 안 한 고침은 물음)
- 시험 맞춤 · 30-4 시험 한 건

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 19:12:25 +09:00
eomsangdonandClaude Opus 5.5 0f510eb53b feat(M02): 공용 나무 여러 개 고르기 · 복사 · 붙여넣기 · 여러 개 옮기기 · 지우기 + 층 사이 붙여넣기 서버 · 「+」 오른쪽 맞춤 (PLAN 30-2)
- 나무 부품 — Ctrl · Shift 클릭 고름(TreePanel_Pick) · 고른 줄 배경 · 층 단추 줄 「N개 고름」 · 오른쪽 클릭 메뉴가 고른 것 전부(복사 · 옮기기 · 지우기) · Ctrl+C · Ctrl+V · Delete · 복사는 읽기 층에서도 · 붙여넣기는 쓸 수 있는 층만 · 콜백 api.many · api.paste · clipKind(일위대가 쪽이 붙일 자리)
- 서버 — POST /layers/{층}/items/paste(여러 항목 · 폴더 · 새 SC/SP 키 · 본뜬 = 원본 · 같은 이름 「(2)」 · 세 파일 · 입력 연결 · 자재 조합 · 빈 폴더까지 · M02_Layer_Access 쓰기 층만) · 나무 고침 대상 여러 개(옮기기 · 지우기 한 번 저장 · 막히면 안 씀)
- 층 단추 줄 「N개 고름」 · 「+」 오른쪽 끝
- 시험 test_m02_tree_paste 새로 · 고르기 규칙 Node 시험

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 19:05:01 +09:00
eomsangdonandClaude Opus 5.5 0541830750 fix(공용): 모달 위 고정 · 보이는 글 「더하기」 → 「추가」(30-1)
- 공용 .ui-modal: 세로 가운데 대신 최대 높이 기준 가운데 자리에 윗변 고정 · 아래로만 늘고 줆(찾기 칸이 안 움직임) · 큰 창은 --modal-max(고르기 모달 94vh · 노선 추천 92vh · M01 복사 시트 90vh) · M02 단추 아래 작은 창은 margin-top 0
- 따로 둔 모달도 같게: B01 대시보드 모달 · M01 로직 고르기(m01-logic) · M01 조달 찾기
- 가운데 그대로: 불러오는 중 가림 · 공용 확인 창 · B03 확인 창 · B05 노선 편집(고정 높이) · 스프레드시트 메모 편집
- 「더하기」 → 「추가」 25곳(스프레드시트 · M01 · M02 · 공용 표 · locale) · 안쪽 명령 이름 시트더하기 · 주석은 그대로
- 시험 test_modal_top_and_add_word 새로

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ly2oHAaTDYRjcniAmHR81z
2026-09-30 18:56:43 +09:00