Commit Graph
4800 Commits
Author SHA1 Message Date
eomsangdonandClaude Opus 5.5 79a0994ffb chore(M02): 구조물 양식 파일 8자리 번호 · 산출근거 → 면적산출 옮김 · 재료산출 47벌 새로
- structure 47 도번 SD+8자리 · basis 47 → area(면적번 SA) · material 47 빈 시트(재료번 SM)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EUypcnp5d1gU2aeKh9F2H7
2026-09-28 12:08:57 +09:00
eomsangdonandClaude Opus 5.5 0e5a19eab8 feat(M02): 좌측 구조물 도면 · 면적산출 · 재료산출 줄 · Api_Fetch 새 이름
- copyArea · copyMaterial · fetchStructureNumbers → {도번, 면적번, 재료번} · Kind area · material
- 옛 이름 copyBasis · 표번 · Kind basis 는 sub2 가 옮길 때까지 별칭(@deprecated)
- 좌측 목록 셋 · 줄 글 = 번호 맨 앞 + 이름 + 변수값

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EUypcnp5d1gU2aeKh9F2H7
2026-09-28 12:08:56 +09:00
eomsangdonandClaude Opus 5.5 89fc686962 feat(M02): 구조물 번호 8자리(분류3) · 면적산출 SA · 재료산출 SM 서버
- 번호 [종류][분류1][분류2][분류3] · 없는 층 00 · 12장 6자리는 끝에 00 을 붙여 읽음
- 양식 종류 basis → area(면적산출) · material(재료산출) 새로 · 집계표 저장 때 세 파일 자동 만들기/지우기
- 복사 길 POST /structures · /area · /material/{받는 열}/copy?from= · 알약 연결은 문서와 같이 복사
- 번호 목록 {열 id: {도번, 면적번, 재료번}} · 저장 때 번호 칸은 서버 것 그대로
- renumber: basis/ → area/ 옮김(표번 → 면적번 · 시트 이름 면적산출) · 빠진 재료산출 만듦

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EUypcnp5d1gU2aeKh9F2H7
2026-09-28 12:08:56 +09:00
eomsangdon e010f72505 Merge remote-tracking branch 'origin/sub_laptop_2' into main_laptop_1 2026-09-28 10:56:08 +09:00
eomsangdonandClaude Opus 5.5 dbda85e8ee Merge origin/main_laptop_1 — 구조물집계표 열 c1 살림 · 새 번호 SD010102 · SC010102
제목행은 종류 · 분류1 · 분류2 그대로 · 사용자가 더한 열 c1(돌기슭막이 · (형태마다) · 새 열)을 rv 뒤에 둠 · c1 구조물 도면 · 산출근거 번호를 새 체계로(옛 구-50 · 표-50 없앰) · 빈 산출근거는 빈 시트

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019Kyw9qnkJ94pC1A4PfpDtA
2026-09-28 10:55:32 +09:00
eomsangdon a0845bb978 Merge remote-tracking branch 'origin/sub_laptop_8' into main_laptop_1 2026-09-28 10:51:57 +09:00
eomsangdon b9820cff1a Merge remote-tracking branch 'origin/sub_laptop_7' into main_laptop_1 2026-09-28 10:51:57 +09:00
eomsangdon 25f1276d7b Merge remote-tracking branch 'origin/sub_laptop_5' into main_laptop_1 2026-09-28 10:51:55 +09:00
eomsangdon 403e3acfda Merge remote-tracking branch 'origin/sub_laptop_4' into main_laptop_1 2026-09-28 10:51:54 +09:00
eomsangdon 59b83efe0c Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-28 10:51:52 +09:00
eomsangdon 24b63ca1ea auto: 2026-09-28 10:51 (ESD_LAPTOP) 2026-09-28 10:51:27 +09:00
eomsangdon cb5858bb64 Merge remote-tracking branch 'origin/sub_laptop_1' into sub_laptop_2
# Conflicts:
#	M02_MasterTemplete/M02_MasterTemplete_UI_Main.ts
2026-09-28 10:05:10 +09:00
eomsangdonandClaude Sonnet 5 22835ca9e2 fix(M02): 집계표 열 고른 뒤 CAD 불러오기 죽는 자리 고침
M02_MasterTemplete_UI_Main.ts 의 표 onSelect 가 `sheet?.getDoc().열 ?? []` 로
짜여 있었음 — 옵셔널 체이닝이 `sheet?.getDoc()` 까지만 걸리고 그 뒤 `.열` 은
그대로라, [다시 열기](재열기)가 drop() 으로 sheet 를 null 로 되돌린 그 짧은 사이에
옛 표 부품에 남은 클릭 이벤트가 이 줄을 부르면 `undefined.열` 을 읽어 죽음
(사용자 보고: 여러 열 · 빠르게 바꿔 고르기 · 새로 고친 직후에 CAD 불러오기 오류).
`.열` 앞에도 `?.` 를 이어 붙여 sheet 가 없으면 조용히 빈 배열로 감 — 그 뒤
StructurePanel.show() 는 이미 빈 배열 · 없는 colId 를 안전하게 처리함.

ORCA 로 정상 경로(열 고르면 도면 정보 패널이 오류 없이 뜸)는 확인함 — 이
브라우저 환경이 오늘 자주 끊겨(Tab was closed while command was running,
crashpad 등록 실패가 매 명령마다 뜸) 경합(레이스) 그 자체의 재현까지는
못 잡음. 원인은 코드를 끝까지 읽어 확인함(정황 증거 아님).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K7JS47SacjPxZ718QsZKyr
2026-09-28 10:02:41 +09:00
eomsangdonandClaude Opus 5.5 c25db2636e fix(M02): 일위대가 고르기 목록 — 이름에 붙은 단위를 겹쳐 쓰지 않음
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019Kyw9qnkJ94pC1A4PfpDtA
2026-09-28 10:01:10 +09:00
eomsangdonandClaude Opus 5.5 9b9787f60a fix(sheet): 글 열(꼴=글)의 일위대가 · 도면 · 산출근거 칸은 빈칸 · 잠김
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019Kyw9qnkJ94pC1A4PfpDtA
2026-09-28 10:01:09 +09:00
eomsangdonandClaude Opus 5.5 86ae6db5a0 feat(M02): 산출근거 카드 · 전체 편집 — 시트 탭 없이(tabs: false)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L6KXAabDTenEU7hrDQmCKY
2026-09-28 09:59:09 +09:00
eomsangdonandClaude Opus 5.5 b79793ea31 feat(spreadsheet): D 시트 탭 없앰 선택 — createSpreadsheet({tabs: false})
- 탭 줄을 안 그림 · Ctrl+PageDown/PageUp · Shift+F11 을 받지 않음(브라우저 몫) · [데이터 ▾] 의 시트 숨기기 · 탭 색 빠짐
- 산출근거(시트 하나)용 · 크기 화면 28,199 B(예산 28,672)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L6KXAabDTenEU7hrDQmCKY
2026-09-28 09:59:08 +09:00
eomsangdon 31bcad6454 Merge remote-tracking branch 'origin/sub_laptop_4' into sub_laptop_2
# Conflicts:
#	M02_MasterTemplete/M02_MasterTemplete_Structure.ts
2026-09-28 09:58:38 +09:00
eomsangdon 4b6602484d Merge remote-tracking branch 'origin/sub_laptop_6' into sub_laptop_2 2026-09-28 09:57:46 +09:00
eomsangdon 3990ca1c28 Merge remote-tracking branch 'origin/sub_laptop_5' into sub_laptop_2 2026-09-28 09:57:46 +09:00
eomsangdon ba47d33877 Merge remote-tracking branch 'origin/dev' into sub_laptop_2 2026-09-28 09:57:36 +09:00
eomsangdonandClaude Opus 5.5 04f2476741 feat(M02): 집계표 조회 후 선택 — 일위대가 목록 · 다른 열 도면 · 산출근거 복사해 가져오기 · 산출근거 줄 표번
- 일위대가 칸 = M01 일위대가 목록(fetchCombos)에서 찾아 고름 · 「비움」
- 도면 · 산출근거 칸 = 다른 열(번호 + 이름) 골라 덮어쓰기 확인 뒤 copyStructure · copyBasis(sub4) — 번호 · 열은 그대로
- 집계표 산출근거 줄 칸 글 = 표번

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019Kyw9qnkJ94pC1A4PfpDtA
2026-09-28 09:57:34 +09:00
eomsangdonandClaude Opus 5.5 2623633b86 feat(m02): 옛 구조물 도면 · 산출근거 46 벌 새 번호로 옮김 · 빈 산출근거 머리 줄 지움
- renumber() 한 번 — 구-NN · 표-NN 버리고 SD · SC 6자리(돌기슭막이 SD010101 … 폐기물처리 SD360000) · 내용 그대로
- 산출근거 46 개 1 행 기본 머리(공종 · 규격 · 산출 내역 · 단위 · 수량(m당)) 지워 진짜 빈 시트
- 글 열 no · sta · memo 의 구조물 도면 · 산출근거 여섯 파일 지움
- 두 번째 renumber() 바뀜 0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EUypcnp5d1gU2aeKh9F2H7
2026-09-28 09:55:53 +09:00
eomsangdonandClaude Opus 5.5 fc249c00f6 feat(m02): 좌측 · 카드 · 편집 머리 번호 맨 앞 「SD010101 돌기슭막이 …」 · copyStructure · copyBasis
- Api_Fetch — copyStructure(열, from) · copyBasis(열, from): Promise<void> · fetchStructureNumbers(): Record<열 id, {도번, 표번}>(브레인 확정 이름 · 모양) · fetchBasisNumbers 뺌
- 좌측 구조물 도면 · 산출근거 줄 = 번호 + 구조물 이름 + 변수값(제목행) · 구조물 열(꼴=수)만
- 설계 컨테이너 카드 머리 = 번호 · 이름 차례 · 글 열 고르면 컨테이너 닫음
- 편집 화면 머리 = 「SD010101 …」 · 「SC010101 …」
- 시험: test_m02_structure_panel(이름 · 모양 · 줄 글)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EUypcnp5d1gU2aeKh9F2H7
2026-09-28 09:55:44 +09:00
eomsangdonandClaude Opus 5.5 3a4b306636 feat(m02): 구조물 번호 SD·SC 6자리 · 집계표 저장 때 파일 만들기/지우기 · 복사 가져오기 길
- 도번 SD · 표번 SC + [종류][분류1][분류2] — 제목행(열 머리 세 층) 차례 · 없는 층 00 · 한 열 두 번호 같은 6자리 · 준 번호 유지(새 열 = 그 무리 다음 번호 · 지운 번호 비움)
- 구조물 = 꼴=수 열만(NO · 측점 · 비고 빠짐 · 브레인 판정)
- 집계표 [저장] — 새 열 두 파일 만들고 지운 열 두 파일 지움
- 새 산출근거 = 진짜 빈 시트(머리 줄 없음) · renumber() = 옛 번호 한 번 옮김 + 옛 기본 머리 줄 지움
- POST /structures/{열}/copy?from= · /basis/{열}/copy?from= — 내용만 · 번호 · 열은 받는 쪽
- GET /structures/numbers = {열 id: {도번, 표번}} · /basis/numbers 뺌
- 시험: test_m02_structure · test_spreadsheet_store 고쳐 씀

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EUypcnp5d1gU2aeKh9F2H7
2026-09-28 09:55:35 +09:00
eomsangdonandClaude Sonnet 5 ee64781a7c fix(spreadsheet): D · sub4 대신 색 줄만 — 두 css 도 테마 토큰으로
브레인 승인(sub7 · sub4 는 같은 파일의 다른 부분 작업 중이라 색 줄만 최소로 고침 · 주인은
그대로 D(spreadsheet.css) · sub_laptop_4(spreadsheet_stage3.css)).

spreadsheet.css — 부품 틀 · 주소 상자 · 수식 입력줄 · 칸 편집기 · 채우기 미리보기 · 알림 ·
찾기 패널 · 메모 · 골라 붙여넣기 · 자동완성 · 데이터 메뉴의 하드코딩 색(#fff · #1f2328 ·
#d0d7de · #217346 · #6e7781 · #57606a · #24292f · #dafbe1 · #bf8700 · #fff8c5 · #ddf4ff ·
#8c959f · #f6f8fa · 그림자 rgb(0 0 0/15%))을 전역 토큰(--color-surface-raised · -text-body ·
-border · -focus-ring · -text-muted · -text-secondary · -primary/-primary-text · -warning ·
-accent · -surface · --shadow-lg/-sm)으로 바꿈. 메모(주석) 배경 · 자동완성 강조 · 서식 붓
켜짐 배경은 이름 없는 톤(포스트잇 옅은 노랑 등)이라 color-mix 로 기존 토큰에서 옅게 섞어냄
(새 토큰 안 만듦).
spreadsheet_stage3.css — 조건부 서식 · 유효성 드롭다운 그림자 한 줄(rgba(0,0,0,0.12))만
남아 있던 것을 --shadow-sm 으로.

ORCA 수치(C 시험 틀에 두 css 임시로 얹어 밝은 · 어두운 전환) — 밝은: .ss 배경
rgb(255,255,255)·글 rgb(51,51,51) · 알림(toast) 배경 rgb(38,17,74)·글 흰색 · 메모 테두리
rgb(184,134,11). 어두운: .ss 배경 rgb(37,31,56)·글 rgb(228,224,240) · 알림 배경
rgb(185,154,255)·글 rgb(22,18,31)(반전) · 메모 테두리 rgb(224,182,74) — 대화상자 · 찾기 ·
자동완성 · 조건부 서식 패널 · 상태 표시줄까지 모두 두 테마에서 배경 · 글 대비 확인.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VVM3xZ1aUPcUTuW2WZSnwg
2026-09-28 09:53:53 +09:00
eomsangdonandClaude Sonnet 5 4bbef4ac54 fix(spreadsheet): 엑셀 칸 형식 이름(Fixed·Standard·Currency 등) 오독 고침
엑셀이 클립보드로 칸 형식을 코드 대신 이름으로 넘길 때(mso-number-format:Fixed
등) numfmt 가 그 이름을 코드로 잘못 읽어 `d·m·y` 낱자를 날짜 자리표시로 잡아
글자가 깨지던 것(Fixed→Fixe11 등, 2026-09-27 날짜 형식 추가의 부작용)을 고침.
엑셀 이름표(General·General Number·Fixed·Standard·Currency·Percent·
Scientific·Short Date·Long Date)를 실제 형식 코드로 바꿔치기하고, 모르는
이름은 일반으로 떨어뜨리되 aaa·yyyy 같은 진짜 날짜 자리표시는 그대로 살림
(날짜 자리표시 탐지도 앞뒤가 딴 낱말 글자가 아닐 때만 인정하게 다듬음).
지수(과학) 형식(0.00E+00)도 새로 구현. Currency 는 사용자 실제 화면 확인대로
통화 기호 없이 렌더 — ₩ 가 붙는 자리는 이 여섯 이름으로는 재현 안 됨(실제
붙여넣기 원문이 다시 나타나면 추가 확인 필요). 사용자 표 견본(43.91·14,182·
0.48·21.07·1.93·15,166·23.20)으로 시험 191건 전부 통과.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RrQ65VtGZbae2VKgYVMhmc
2026-09-28 09:53:16 +09:00
eomsangdon db899349a4 Merge remote-tracking branches 'origin/sub_laptop_2' and 'origin/sub_laptop_8' into sub_laptop_6 2026-09-28 09:49:23 +09:00
eomsangdonandClaude Sonnet 5 4f7470bbbd feat(spreadsheet): C 격자 — 앱 밝은 · 어두운 테마 따라가게
.aislo-grid 안 색 변수(--aislo-grid-bg · -fg · -line · -head-bg · -head-fg ·
-head-border · -selected) 를 전부 앱 전역 토큰(ui_template_theme.css 의
--color-surface-raised · -text-body · -border · -surface · -text-secondary ·
-accent)에 연결 — 새 값 안 적음, 앱이 data-theme 를 바꾸면 그대로 따라감(다른
스프레드시트 파일(spreadsheet_toolbar.css)과 같은 방식). 칸 · 머리 배경 · 눈금선 ·
선택 테두리 · 채우기 손잡이 테두리의 하드코딩 흰색 · 회색 · 파랑을 이 변수로 바꿈.
테두리 기본 색(사용자가 색 안 지정)은 #000000 대신 currentColor 로 — 칸 글자색과
같이 테마를 따라감. 사용자가 지정한 채움색 · 글자색(조건부 서식 포함)은 그대로 둠
(엑셀과 같음 — 이미 빈 문자열 인라인 스타일로 CSS 기본값에 떨어지는 구조라 따로 안 고침).
시험 틀(html)에 ui_template_theme.css 를 넣어 data-theme 전환을 실제로 시험.

ORCA 수치(시험 틀 · data-theme 전환) — 밝은: 격자 배경 rgb(255,255,255) · 글자
rgb(51,51,51) · 선택 #3e0079 · 눈금선 #e6e2e3. 어두운: 격자 배경 rgb(37,31,56) ·
글자 rgb(228,224,240) · 선택 #b99aff · 눈금선 #322a45 — 모두 전환됨. 사용자 지정
채움(A3 #F2F2F2)·조건부 서식 글자색(H4 #c00000)은 두 테마에서 값 그대로(안 바뀜)
확인. A3 무색 테두리는 currentColor 로 밝은 rgb(51,51,51)/어두운 rgb(228,224,240)
로 글자색과 같이 바뀜 확인.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VVM3xZ1aUPcUTuW2WZSnwg
2026-09-28 09:48:20 +09:00
eomsangdonandClaude Opus 5.5 dde6f0c2f8 feat(M02): 구조물집계표 제목행 층 이름 — 종류 · 분류1 · 분류2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019Kyw9qnkJ94pC1A4PfpDtA
2026-09-28 09:48:05 +09:00
eomsangdonandClaude Opus 5.5 119a390bd7 feat(sheet): 산출근거 줄 · 조회 후 선택(onPick) · 둘째 층 묶음 더하기 · 층 이름 고치기
- 마스터 첫 쪽 도면 줄 아래 산출근거 줄 s:basis — 칸 글 basisLabel(colId) · 없으면 「없음」 · 손으로 못 침
- onPick 을 주면 일위대가 · 도면 · 산출근거 칸은 두 번 누르기 · Enter · F2 로 조회 후 선택(글을 돌려주면 일위대가 칸에 넣음)
- 「<둘째 층 이름> 더하기」 단추 — 같은 종류 묶음 끝에 [종류, 새 분류, 새 열] 열(층 셋 이상일 때)
- 머리 층 줄 머리 칸 두 번 누르기 = 층 이름 고치기(master)
- 시험 test_sheet_group_layer.py · 줄 차례 시험에 산출근거 줄

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019Kyw9qnkJ94pC1A4PfpDtA
2026-09-28 09:47:58 +09:00
eomsangdonandClaude Sonnet 5 b2e2fcff91 fix(spreadsheet): 엑셀 붙여넣기 서식 — 묶음 선택자 클래스 · 선 굵기별 종류
- <style> 안 클래스 규칙 읽기가 「.xl65, .xl70 {...}」 같은 묶음 선택자에서 앞쪽 클래스를
  놓치던 것 고침(전체 선택자를 쉼표로 나눠 각 클래스에 선언 병합)
- 테두리 pt 굵기 → 우리 선 종류 매핑 추가(.5pt 이하 hair · ~1.25pt thin · ~2pt medium · 그 위
  thick, dashed·dotted·double 은 굵기와 상관없이 그 모양) — 「합계 줄 위 굵은 선」처럼 같은
  칸 안 굵기가 다른 테두리를 구별해 살림
- 실제 엑셀 내보내기 짜임(머리 채움 · 가는 테두리 · 합계 줄 위 굵은 테두리 · #,##0 숫자 형식)을
  재현한 새 견본 resources/tester/spreadsheet/fixture_excel_style_paste.html 로 시험
- ORCA 실 엔진 확인 — 머리 칸 굵게·채움 #d9d9d9·가운데 정렬·사방 hair, 숫자 칸 오른쪽 정렬·
  형식 #,##0·사방 hair, 합계 줄 굵게·위 테두리만 medium(나머지 hair)까지 전부 반영 확인

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AeeQRLknEpP4SFjVkjDWDs
2026-09-28 09:45:50 +09:00
eomsangdonandClaude Opus 5.5 e4eef2a47b fix(M02): 산출근거 전체 편집 격자 높이 0 — 메인 칸을 화면 높이로 채움
- .ss 는 height:100% 로 부모 높이를 받는데 host 에 정해진 높이가 없어 격자 0
- 도면 편집과 같은 규칙(.m02-main:has(> .m02-main__host > .ss) · host flex) 으로 메인 칸을 채움

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019Kyw9qnkJ94pC1A4PfpDtA
2026-09-28 00:51:20 +09:00
eomsangdonandClaude Opus 5.5 87417b3a31 perf(spreadsheet): D 크기 줄임 — sub2 · sub8 병합 뒤 화면 예산 넘침 해소
- 함수 자동 완성 · 인자 도움말, 이름 상자 · 이름 관리, 서식 붓, 메모 편집(새 spreadsheet_memo.ts), 열 너비 맞춤을 처음 쓸 때 불러옴
- 화면 30,126 B → 28,102 B(예산 28,672) · 합 62.6 KB

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L6KXAabDTenEU7hrDQmCKY
2026-09-28 00:46:08 +09:00
eomsangdon 0f7617f99d Merge remote-tracking branches 'origin/sub_laptop_2' and 'origin/sub_laptop_8' into sub_laptop_7 2026-09-28 00:33:31 +09:00
eomsangdonandClaude Sonnet 5 69f9c64c98 feat(M02): 산출근거 전체 편집 화면 — 집계표 카드는 보기 + [산출근거 수정]
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0168FQuoV7vDh5nhnSowW5cp
2026-09-28 00:30:48 +09:00
eomsangdonandClaude Sonnet 5 e31e1b0016 feat(M02): 산출근거 표번 — 도번과 같은 규칙 자동 채번 · 좌측 「산출근거」 목록
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0168FQuoV7vDh5nhnSowW5cp
2026-09-28 00:30:32 +09:00
eomsangdonandClaude Sonnet 5 7a8d37d544 fix(M02): 상세 산출근거 카드 — 칸 높이 없어 빈 격자가 안 보이던 것 고침(약 30행 · 스크롤)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0168FQuoV7vDh5nhnSowW5cp
2026-09-28 00:14:07 +09:00
eomsangdonandClaude Sonnet 5 444aed129f fix(M02): 도면 정보 카드 미리보기가 cad-host 최소 높이 탓에 카드 밖으로 넘침
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0168FQuoV7vDh5nhnSowW5cp
2026-09-28 00:13:55 +09:00
eomsangdonandClaude Sonnet 5 66812026c1 chore(M02): 임시 시험 단추 호출부 · inspect 옵션 · 시험 정리(이어서)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0168FQuoV7vDh5nhnSowW5cp
2026-09-28 00:13:19 +09:00
eomsangdonandClaude Sonnet 5 860e251425 chore(M02): 임시 스프레드시트 시험 단추 · 서버 tmp 견본 길 · inspect 통로 지움
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0168FQuoV7vDh5nhnSowW5cp
2026-09-28 00:13:06 +09:00
eomsangdonandClaude Sonnet 5 cd7a81a4af fix(spreadsheet): 도구 모음 글꼴·크기 빈칸 — 기본값 흐리게 표시
- 칸·행·열·시트 기본 어디에도 글꼴·크기가 없으면 통합문서 기본 → 앱 기본(굴림·10, 격자
  fontCss 와 같은 값)을 value 대신 placeholder 로 보여 흐리게(기본값임을 표시)
- 직접 지정하면 다시 실값으로
- ORCA 실 엔진 확인 — 굵게만 있는 칸·아무 서식 없는 칸 모두 글꼴 placeholder "굴림"·크기
  placeholder "10" 표시, 글꼴 Arial·크기 14 로 지정하면 value 로 바뀌고 placeholder 비워짐

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AeeQRLknEpP4SFjVkjDWDs
2026-09-27 23:56:40 +09:00
eomsangdonandClaude Sonnet 5 ede12fbc0e feat(spreadsheet): 상태 표시줄 확대 비율 — sub6 zoom() 이음
sub6 격자 확대 커밋(origin/sub_laptop_6 7b294adc) 받아 GridHandle.zoom() 으로 처음 값 · 격자 root 「aislo-grid-zoom」 사건으로 바뀔 때마다 「확대 N%」 다시 씀.
가짜 SpreadsheetContext(test_stage2_helpers.ts) 격자에 zoom() 스텁 더함(0 계약 필수 자리라 안 채우면 모양 안 맞음).
ORCA(포트 5179) — 실제 createSpreadsheet 를 띄워 Ctrl+휠(WheelEvent ctrlKey) 로 확인: 「확대 100%」→「확대 332%」로 실시간 바뀜.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EUypcnp5d1gU2aeKh9F2H7
2026-09-27 23:12:57 +09:00
eomsangdonandClaude Sonnet 5 7b294adca2 feat(spreadsheet): C 격자 — 확대 이음(zoom() · aislo-grid-zoom 이벤트)
계약 더함 — GridHandle.zoom(): number(1 = 100%). 확대가 바뀔 때마다 격자 root 에서
CustomEvent("aislo-grid-zoom", { detail: { zoom }, bubbles: true }) 를 쏨(sub4 상태줄이 들음).
ORCA 시험 — WheelEvent(ctrlKey · deltaY -300) 로 확대 흉내 → zoom() 1→1.568 · 이벤트
detail.zoom 도 같은 값으로 확인.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VVM3xZ1aUPcUTuW2WZSnwg
2026-09-27 22:35:54 +09:00
eomsangdon 5bea31ee5c Merge remote-tracking branches 'origin/sub_laptop_4', 'origin/sub_laptop_7' and 'origin/sub_laptop_8' into sub_laptop_6 2026-09-27 22:33:04 +09:00
eomsangdon a9a9b73961 Merge remote-tracking branch 'origin/dev' into sub_laptop_6 2026-09-27 22:33:02 +09:00
eomsangdonandClaude Sonnet 5 35d0ce3853 fix(spreadsheet): 엑셀 붙여넣기 서식 · 병합 부분 덮어쓰기 막기 · 도구 모음 기본 서식
- parseHtmlTable 이 td 인라인 style · <style> 클래스(mso-number-format 이스케이프 포함) 를 읽어
  굵게 · 기울임 · 글자색 · 채움 · 가로 정렬 · 숫자 형식 · 테두리를 칸 서식으로 살림
- 붙일 자리가 기존 병합을 일부만 걸치면 막고 알림(엑셀처럼) · 통째로 덮으면 먼저 풀고 칸마다 값
- 도구 모음 · 클립보드 styleAt 이 Sheet.기본.서식(시트 기본)까지 물려받게 고쳐 글꼴 · 크기 칸이 빔 방지
- ORCA 실 엔진 확인 — 엑셀 견본(xl65/xl66 클래스) 붙여넣기로 굵게 · 가운데 정렬 · 0.00 형식 반영,
  병합 부분 덮기 막음 · 알림 · 값 안 바뀜, 병합 통째 덮기는 자동 풀림 + 칸마다 값, 시트 전체 서식
  지정 뒤 새 칸에서 도구 모음 글꼴 · 크기 표시 확인

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AeeQRLknEpP4SFjVkjDWDs
2026-09-27 22:32:20 +09:00
eomsangdonandClaude Sonnet 5 b59de25664 fix(spreadsheet): 상태 표시줄 어두운 화면 글자 안 보임
spreadsheet_stage3.css .ss-statusbar·.ss-statusbar__zoom 에 테마 글자색 토큰(--color-text-body·--color-text-muted) 지정 — 전엔 색을 안 지정해 어두운 바탕에 기본 검정 글자가 겹침.
ORCA(포트 5179)에서 라이트·다크 둘 다 계산된 색으로 확인: 다크 글자 rgb(228,224,240)/바탕 rgb(30,25,48), 라이트 글자 rgb(51,51,51)/바탕 rgb(246,247,250) — 둘 다 읽힘.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EUypcnp5d1gU2aeKh9F2H7
2026-09-27 22:25:22 +09:00
eomsangdonandClaude Opus 5.5 76f917813b fix(spreadsheet): D 편집기 — 틀린 식(인자 수 등)은 Enter 로 확정하지 않음
- 확정 때 = 로 시작하면 parseFormula(sub3 a3434e3c) — 실패면 편집 유지 · 오류 알림 · 커서를 오류 자리로(엑셀처럼)
- M02 [스프레드시트 시험] ORCA: =SUM() Enter 막힘 · 「SUM 인수가 너무 적음(1 개부터)」 알림 · =SUM(1,2) → 3
- 크기 시험 통과(화면 28,613 B) · D 규칙 시험 9 통과

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L6KXAabDTenEU7hrDQmCKY
2026-09-27 22:24:30 +09:00
eomsangdonandClaude Sonnet 5 7c1e95482d fix(spreadsheet): C 격자 — 브레인 최종 검증 흠 네 가지 고침
① 스크롤 영역이 빈 시트 기본 200행에서 안 늘어나 이름 상자 · Ctrl+방향키로 먼 칸 가도
   화면이 안 따라가던 것 — reveal() 이 그 칸 밖이면 스페이서를 늘림(ensureExtent) · 스크롤
   끝 가까이 닿아도 미리 늘림(growOnScrollEdge, 엑셀처럼).
② 열 폭 자동 맞춤 상한 없어 아주 긴 글로 약 4만 px 까지 늘던 것 — colCharsToPx 에 엑셀
   상한(255 자) 캡을 걸어 렌더 쪽에서 막음.
③ 칸 폭보다 긴 수는 줄임표 대신 `#####`(엑셀과 같음) — 캔버스로 재 폭 넘으면 바꿔치기 ·
   글은 그대로 줄임표.
④ 틀 고정을 풀어도 왼위 · 위 · 왼 판에 칸이 하나 남던 것(A1 이 DOM 에 네 벌) —
   `Math.max(0, frozenCols-1)` 이 0 일 때도 0 을 줘 범위가 안 비던 계산 버그 고침.

ORCA 수치 — ① 스크롤 영역 201,901px→1,001,901px 로 늘고 scrollTop 목표 자리로 이동 확인 ·
② 5,702 자 요청에도 1,790px(255 자) 로 막힘 확인 · ③ 「123456789012345」→「#######」 확인 ·
④ 해제 뒤 A1 DOM 칸 수 1 로 확인.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VVM3xZ1aUPcUTuW2WZSnwg
2026-09-27 22:24:11 +09:00