settings-internal.js·app.js의 registerSection() 호출부(패키지 앱 app.asar 기준)입니다.
| 항목 | 현재 탭 | 적절? | 제안 탭 | 근거 |
|---|---|---|---|---|
| 연동 (Notion·Slack·Figma·Google·Cloudflare 등 외부 서비스) | 연결 | 적절 | — | 탭 이름과 정확히 일치하는 핵심 기능. settings-internal.js:767 |
| 회사 폴더 (NAS 등 공유 저장소 연결) | 연결 | 적절 | — | "폴더 연결" 액션이라 탭 이름에 부합. app.js:9674 |
| 팀 배포 상태 (필수구성·코어규칙블록·AI상태훅·스냅샷안전망·업무보드데이터) | 연결 | 재고 | 그리드 | 내용 전부가 "이 그리드 자체의 구조 상태" 점검입니다. 그리드 탭에 이미 스냅샷·휴지통·그리드경로가 있어 흩어짐 → SET10 |
| AI 연결 (Claude·Codex·Gemini 카드, CLI 자동 업데이트, 권한 모드) | AI | 적절 | — | AI 도구 자체의 연결·동작 설정. app.js:9672 |
| 새 대화 기본값 (모델·추론강도) | AI | 적절 | — | 새 대화가 시작될 때 쓰는 AI 설정. |
| 뇌 (대화에서 관찰한 것 기억하기) | AI | 적절 | — | AI의 기억 기능. |
| 컴퓨터 사용 (화면 캡처·조작 브릿지, 시스템 권한) | AI | 적절 | — | AI 터미널이 쓰는 기능. |
| AI 상태 훅 (Claude 훅 등록 상태) | AI | 중복 | AI (유지) | 탭 자체는 맞지만, 같은 라벨·같은 상태값이 연결 탭 "팀 배포 상태" 안에도 그대로 한 줄 더 있습니다 → SET11 |
| 진행 중 대화 개입 (수동/자동) | AI | 적절 | — | 대화 스트리밍 동작 설정. |
| 클로드 Remote Control | AI | 적절 | — | 클로드 터미널 세션 시작 방식. |
| 화면 (테마·색스킨·레이아웃·AI사용량표시·시스템폴더보기) | 화면 | 적절 | — | 탭 이름과 정확히 일치. |
| 대시보드 위젯 구성 | 화면 | 적절 | — | 화면에 무엇을 보여줄지 설정. |
| 터미널 (글자크기·자동복사·동시상한) | 화면 | 경계 | —(유지) | 글자크기·자동복사는 화면 맞음. "동시 상한"(PTY 리소스 사용량)만 성격이 다르지만, 5탭 체계에 대안 위치가 없어 이동 보류. |
| 알림 · 성능 HUD | 화면 | 경계 | —(유지) | "완료 알림"은 엄밀히 알림 기능이지 화면 기능이 아니지만, 성능 HUD와 묶여 있고 대안 탭이 없어 이동 보류. |
| 그리드 (현재 경로, 그리드 폴더 변경) | 그리드 | 적절 | — | 탭 이름과 정확히 일치. |
| 스냅샷 자동 백업 (보호 토글·주기·백업현황) | 그리드 | 명칭 혼동 | 그리드 (유지) | 탭은 맞지만 "팀 배포 상태"의 "스냅샷 안전망"과 이름이 비슷해 같은 기능으로 오인하기 쉬움 → SET12 |
| 업무 시작·종료 루틴 | 그리드 | 적절 | — | 2026-08-16에 이미 "화면→그리드"로 옮긴 이력 — 현재 위치가 맞습니다. 단 "자동" 옵션 노출 자체는 별도 문제 → SET13 |
| 휴지통 | 그리드 | 적절 | — | 그리드 데이터 보호 기능. |
| 내 정보 (이름·이메일) | 정보 | 적절 | — | 사용자 신원 정보. |
| 계정 · 업데이트 | 정보 | 적절 | — | 라이선스·버전 정보. |
| 피드백 | 정보 | 적절 | — | 제품 문의 채널. |
| 정보 · 도움 (가이드·커뮤니티·문의) | 정보 | 적절 | — | 탭 이름과 정확히 일치. |
.set-row의 DOM 좌표를 getBoundingClientRect()로 실측했습니다(뷰포트 1440×900, 패널 폭 651px, 좌측 라벨 시작 x=475·우측 끝 x=1126 기준).
원인은 전부 같습니다 — 기본 CSS .set-row{justify-content:space-between}는 자식이 2개(라벨+컨트롤)일 때만 "라벨 왼쪽/값 오른쪽"으로 예쁘게 갈라집니다.
자식이 3개(라벨+컨트롤+값, 또는 라벨+값+버튼)가 되는 순간 가운데 항목이 행 중앙으로 떠 버립니다.
거기에 더해 일반 버튼 스타일 .set-btn{margin-top:12px}가 .set-btn-sm에도 그대로 상속돼, 행 안에 놓인 버튼만 다른 형제보다 12px 아래로 처져 "따로 줄 차지"한 것처럼 보입니다.
| 탭 | 행 | 이탈 내용 (실측) | 제안 |
|---|---|---|---|
| 그리드 | 스냅샷 보호 | 자식 3개(라벨+스위치+값). 라벨 x475, 스위치 x787(행 폭 651의 약 48% 지점 — 사실상 정중앙), 값 "보호 켜짐" x1080(우측 끝). 이것이 원우님이 지적하신 "토글이 가운데에 떠 있는" 현상의 정확한 원인입니다. | 스위치+값을 한 그룹(.set-row-tail)으로 묶어 우측 정렬 → D-1 |
| 그리드 | 백업 현황 | 자식 3개(라벨+값+버튼). 값 "4307개 보관…" x724(행 중앙부), 버튼 "패널 열기" x1067(우측 끝)이지만 y좌표가 라벨보다 12px 낮음(버튼 상속 margin-top:12px) — 그래서 "그 아래 어중간한 위치"로 보입니다. | 값+버튼 그룹화 + 버튼 margin-top 제거 → D-2 |
| 그리드 | 보관 현황 (휴지통) | 백업 현황과 동일 구조·동일 증상. 값 x712(중앙부), 버튼 "휴지통 열기" x1058(우측 끝, y +12px). | 동일 그룹화 적용 |
| 연결 | 필수 구성(온보딩) "팀 배포 상태" 섹션 |
동일 구조. 값 "해당 없음(기존 그리드)" x732(중앙부, 행 우측 끝과 278px 떨어짐), 버튼 "구조 이식 다시 열기" x1025(y +12px). SET10 채택 시 그리드 탭으로 함께 이동. | 동일 그룹화 적용 |
| AI | 새 대화 기본값 — 저장 | 자식 3개(빈 라벨+버튼+상태 span). 라벨이 비어 있는데도 3분할 규칙이 그대로 적용돼 "저장" 버튼이 x771(행 중앙 근처)에 뜸 — 왼쪽도 오른쪽도 아닌 애매한 위치. | 빈 라벨 span 제거, "내 정보" 저장행과 같은 2분할 패턴 재사용 → D-3 |
| 정보 | 계정·업데이트 — 업데이트 (신규 버전 있을 때만 3번째 자식 등장) |
코드상 위와 동일한 라벨+값+버튼 구조 확인(app.js:9630). 현재 "최신 상태"라 버튼이 없어 실측 재현은 못 했음 — 코드 근거로만 표기. |
동일 그룹화를 사전 적용해 대비 |
.set-row .set-btn-sm{margin-top:0} 추가로 1·2·3·4·6의 "버튼만 12px 아래로 처지는" 현상을 한 번에 해결style.css:2052 (.set-btn margin-top:12px 상속 문제)registerSection({tab:'connect'})/api/agent-hooks/status, /api/doctor)도 서로 다른 API라 이론상 값이 어긋날 수도 있습니다..set-row·.set-switch·.set-btn-sm)를 그대로 가져와 재현했습니다. 아래 상자들은 라이브 데이터가 아니라 정적 재현이지만, 클래스·값·비율은 실측과 동일합니다..set-row-tail로 묶어 우측 정렬