D144~D148 — GE5-2 에디션 · 위젯 · 개발모드 결정보드

2026-09-04 · 격리 서버(포트 48812, 워크트리 int31-dogfood 소스 서빙, GRIDOS_HOME_DIR로 완전 격리 — 라이브 4790·~/.gridos-internal 무접촉)를 직접 열어 지금 화면·코드를 확인한 뒤 그 위에 제안을 그렸습니다. A/B를 눌러 고르시고(안 누르면 권고안 그대로 채택), 코멘트를 남기실 수 있습니다. 맨 아래 상자를 눌러(전체선택) 복사해 대화창에 붙여 주세요 — 복사가 안 되면 드래그로 복사하시거나 말로 알려주셔도 같은 무게로 처리합니다.
실측 방법 — 격리 서버(포트 48812)를 직접 열어 대시보드·설정 › 화면 위젯 목록·상단 개발 모드 띠를 확인했고, 코드는 public/settings-internal.js·public/app.js·public/ge4-ui-state.js·public/internal-theme.css·server/index.js·editions/*.json을 grep으로 확인했습니다. 실측 결과 D145는 이미 최종형대로 구현이 끝나 있었습니다 — 아래 D145 카드에 그대로 밝힙니다(없는 결정을 만들어 다시 여쭙지 않습니다).

D144 대시보드 위젯 드래그 정렬

GE5-1에서 원우님이 "이 형태 좋긴 한데, 추후 단계에서 위젯을 드래그앤드롭으로 대시보드에서 옮길 수 있게 할 거라, 순서 조정은 필요 없지 않을까"라고 코멘트해 설정 › 화면의 순서 이동 버튼(▲▼)을 뺐습니다(D138-B 조건). 그 "추후"가 이번 차례입니다.

D144 위젯 순서를 대시보드에서 직접 끌어 바꿀 수 있게 할까요
A는 지금 그대로 — 위젯은 코드에 정해진 순서(인스턴트 노트 → 업무 보드 → AI 세션 → AI가 오늘 해둔 일)로만 나오고 바꿀 방법이 없습니다. B는 각 위젯 카드 헤더에 그립(≡) 핸들을 붙여 끌어서 순서를 바꾸고, 기기별로 저장합니다. 아래 카드를 실제로 끌어 보세요.

A · 지금 그대로(순서 고정) 현재

인스턴트 노트
업무 보드 (오늘 할 일)
AI 세션

카드 헤더에는 라벨과 접기 화살표(⌄)만 있습니다 — 순서를 바꿀 손잡이 자체가 없습니다. 위 순서가 항상 이 순서입니다.

실측 — 48812 대시보드 카드 헤더 구조 .d-title(app.js 2007·2037행 dash-collapse-btn만 있음, 순서 이동 로직 없음). D138 커밋 주석: "순서 이동(▲▼) 컨트롤은 만들지 않는다 — 추후 대시보드 자체의 드래그앤드롭으로 옮길 예정".

B · 그립 핸들 + 드래그 정렬 권고

인스턴트 노트
업무 보드 (오늘 할 일)
AI 세션
카드를 실제로 끌어 옮겨보세요(터치는 길게 눌러 이동) · 클릭하면 자동 시연 ▸

카드에 마우스를 올리면 왼쪽에 그립(⠿)이 나타납니다. 끌면 그 카드가 반투명해지고 놓을 자리에 선이 뜹니다. 놓으면 순서가 저장되고(이 컴퓨터만) "되돌리기" 토스트가 잠깐 뜹니다.

어설픔 방지 가드 — 그립은 기존 접기 화살표(.dash-collapse-btn)·향후 위젯별 설정 메뉴와 자리가 겹치면 안 됩니다 — 왼쪽 끝에 새로 추가하고 오른쪽 기존 요소는 손대지 않습니다. 저장은 /api/dashboard/widgets 계약을 확장(order 필드 추가)해 새 엔드포인트를 만들지 않습니다. 사용자 위젯(레지스트리 미승격 3종은 §C 표시 게이트라 순서 배열에 없음)도 같은 배열에 들어가야 회귀가 없습니다.
벤치마킹 근거 — Notion 사이드바 항목 재배열, Trello 카드/리스트 드래그, Grafana 대시보드 패널 재배치가 전부 "카드 어디를 잡아도 되는 게 아니라 헤더의 그립만" 문법입니다 — 우발적 드래그를 막습니다.
근거 — GE5-2 작업 지시, GE5-1 D138 확정 컨펌 원문("추후 단계에서... 드래그앤드롭"), app.js 2007~2041행 실측.

D145 설정 › 화면 위젯 목록 최종형

GE5-1에서 확정한 위젯 목록(§11-3 최종형)이 실제로 어떻게 구현됐는지 직접 화면을 열어 확인했습니다.

D145 위젯 목록 — 확인 결과 이미 구현 완료
작업 지시가 기대한 최종형(기본 ON 4개, 순서 컨트롤 없음, 사용자 위젯 섹션 분리)을 그대로 열어 봤더니 이미 정확히 이 형태로 구현돼 있었습니다. 새로 결정할 게 없어 A만 두고, 확인 문구로 대신합니다 — 이의 없으시면 그대로 둡니다.

A · 지금 화면이 이미 최종형입니다 확인만 하시면 됩니다

인스턴트 노트오늘 페이지 상단의 빠른 메모·태스크 입력창.
업무 보드 (오늘 할 일)칸반·캘린더·타임라인 — 정본 태스크 보드.
AI 세션지금 열려 있는 AI 대화·서브 워커 현황.
AI가 오늘 해둔 일오늘 실행된 자동화 로그.
사용자 위젯
private/…/widgets
사용자 위젯이 없습니다.

화살표(▲▼) 없음 · 포트폴리오·레이더 없음 · 4개 전부 기본 ON · 사용자 위젯은 아래 별도 섹션 — 작업 지시·GE5-1 D138-B 컨펌·§11-3 세 곳이 요구한 모양과 완전히 일치합니다.

실측 — 48812 설정 › 화면 › "대시보드 (위젯 구성)"을 열어 get_page_text로 원문 그대로 확인(위 텍스트는 화면 원문 그대로 옮긴 것). 코드: settings-internal.js 1408~1476행 CORE_WIDGET_DEFS 4개 배열 + 머리 주석 "D138(2026-09-04)... 최종 목록 = 인스턴트 노트·업무 보드·AI 세션·AI가 오늘 해둔 일, 전부 기본 ON... 순서 이동 컨트롤은 만들지 않는다". app.js 2205행 "D138... «포트폴리오»는 앱에서 없앤다"로 등록 자체 제거 확인.
근거 — GE5-1 D138-B 컨펌, §11-3, 48812 실측(코드+화면 텍스트 대조). 이 카드는 다른 카드와 달리 재결정이 아니라 구현 상태 보고입니다 — 컨펌 문자열에는 그대로 A로 실립니다.

D146 설정 › 개발 모드 (그리다 · 인터널 에디션)

§3 표에서 "그리다 에디션은 개발 모드에서 앱 본체까지 커스텀 가능, 기업 에디션은 이 자체가 없음(봉인)"으로 이미 결정했습니다. 그런데 지금 앱에는 이 결정을 실행할 화면(토글)이 아예 없습니다 — 코드 레벨의 플래그(devAccess)만 있고, config.json을 직접 편집해야만 켤 수 있습니다.

D146 개발 모드를 설정 화면에 어떻게 노출할까요
A는 지금 그대로 — 설정 어디에도 "개발 모드" 섹션이 없고, 켜려면 팀원이 config.json을 직접 고쳐야 합니다(비현실적). B는 설정에 "개발 모드" 섹션을 신설해 토글 하나로 켜고, 켜면 소스 경로·"소스 열기"·"변경 반영(재시작)"과 업데이트 충돌 감지 카드가 나옵니다. 기업 에디션에는 이 섹션 자체가 안 보입니다.

A · 지금 그대로(화면 없음) 현재

연결AI지침화면그리드정보
설정 탭 어디를 봐도 "개발 모드"라는 섹션이 없습니다

개발 모드로 진입하는 유일한 방법은 팀원이 직접 ~/.gridos-internal/config.json을 열어 "devAccess": true를 손으로 써넣는 것입니다 — 팀원(비개발자 포함)에게 요구할 수 있는 방식이 아닙니다.

실측 — 48812 설정 6개 탭(연결·AI·지침·화면·그리드·정보) 전부 열어 "개발 모드" 문자열 0건 확인. 코드: server/index.js 1791~1796행 isDevUser() { return readLocalConfig().devAccess === true; } — UI 토글이 아니라 config.json 직접 편집이 유일한 경로임을 주석이 명시("운영자가 config.json에 devAccess:true를 직접 켜야만 노출").

B · 설정에 개발 모드 섹션 신설 권고

개발 모드
앱 본체 소스를 열어 직접 고칠 수 있습니다. 기업 에디션에는 이 섹션이 없습니다.
개발 모드꺼져 있으면 앱은 봉인 빌드처럼 동작합니다
/Users/team-a/dev/gridos-grida/
업데이트 전 로컬 수정 감지 — 변경 파일 7건. 공식본과 충돌하는 부분이 있습니다.

토글 하나로 켜고 끕니다. 켜면 소스 경로가 보이고 "소스 열기"로 파인더에서 바로 코드를 고칠 수 있으며, "변경 반영"으로 재시작 없이 적용합니다. 업데이트 시점에 로컬 수정과 공식본이 충돌하면(§22) 병합 없이 "공식본 적용(백업)"과 "내 수정 유지" 중 하나만 고르면 됩니다 — 이번 단계는 안내까지만, 실제 병합은 2차 범위입니다.

어설픔 방지 가드 — 이 섹션 자체가 기업 에디션 매니페스트에서 완전히 빠져야 합니다. 지금 editions/grida.json·one.json에는 modules.board 스위치만 있고 개발 모드 스위치가 없습니다 — 신설 시 modules.devMode 같은 필드를 매니페스트에 먼저 추가하고, 그 값이 없는 에디션(향후 enterprise.json)에서는 섹션 렌더 자체를 건너뛰어야 "숨김"이 아니라 "봉인"이 됩니다(§3 "봉인 대상은 앱 본체뿐" 원칙과 일치).
벤치마킹 근거 — VS Code의 확장 개발 모드("Extension Development Host"), Notion 데스크톱의 숨은 개발자 모드가 같은 문법입니다 — 토글 + 소스 경로 노출 + 재시작 없는 반영.
근거 — §3 표(프로필 3종), §12-7, GE5-2 작업 지시, 48812·server/index.js·editions/*.json 실측.

D147 설정 › 커스텀 내역 공유 표시 (그리다 에디션)

§11-4·§12-7·§20에서 "팀원이 개발 모드로 만든 것은 끌 수 없이 관리자 화면에 공유된다"고 이미 확정했습니다. 그런데 지금 화면 어디에도 이 사실을 팀원에게 알리는 문구가 없습니다 — 토글도, 안내도, 마지막 보고 시각도 없습니다.

D147 "공유되고 있다"는 사실을 어떻게 보여줄까요
A는 지금 그대로 — 안내 자체가 없어 팀원은 자기가 만든 위젯·패치가 관리자 화면에 보고되고 있다는 걸 알 방법이 없습니다. B는 개발 모드 섹션 바로 아래에 끌 수 없는 안내 카드 + 마지막 보고 시각을 둡니다.

A · 지금 그대로(안내 없음) 현재

개발 모드
(D146-B 채택 시 화면)
개발 모드
이 아래에는 아무것도 없습니다 — "이게 어딘가로 보고되고 있다"는 문구가 화면 어디에도 없습니다.

공유는 이미 켜져 있는데(끌 수 없음, §12-7) 그 사실을 알려주는 화면이 없어 팀원 입장에서는 "몰래" 올라가는 것처럼 보일 수 있습니다.

실측settings-internal.js 전체에서 "커스텀 내역"·"팀 공유"·"마지막 보고"·"관리자 화면에 공유" 문자열 0건.

B · 개발 모드 바로 아래 안내 카드 권고

개발 모드
개발 모드
내 커스텀 내역이 관리자 화면에 공유됩니다
위젯·자동화·스킬 목록과 개발 모드로 고친 부분의 요약(파일·줄 수)이 대상입니다. 코드 전문이나 노트 내용은 포함되지 않고, 이 설정은 끌 수 없습니다.
마지막 보고 · 오늘 오후 3:12

개발 모드 토글 바로 아래에 붙어 있어 "이 기능을 켜면 이것도 같이 켜진다"는 인과가 한눈에 보입니다. 끌 수 있는 스위치가 아니라 그냥 사실을 알리는 카드입니다. 마지막 보고 시각이 있어 "보고가 멈췄다"도 팀원 스스로 확인할 수 있습니다(§11-4 강제 방식의 "보고가 끊기면 즉시 드러나게").

어설픔 방지 가드 — 이 카드는 토글이 아니라 사실 고지입니다 — 끄는 버튼을 만들면 §12-7("팀원이 막을 수 없다") 위반입니다. 위치는 "개발 모드 섹션 바로 아래"로 고정합니다(대안으로 계정/정보 섹션도 검토했으나, 개발 모드를 켠 사람에게만 뜻이 있는 문구라 그 토글과 한 세트로 두는 게 인과가 분명합니다 — 계정 섹션에 두면 개발 모드를 안 켠 사람에게도 보여 오히려 헷갈립니다).
벤치마킹 근거 — macOS "분석 데이터를 Apple과 공유" 안내, Chrome "확장 프로그램이 사용자 데이터를 읽습니다" 배지가 같은 원칙입니다 — 끌 수 없는 공유는 최소한 "지금 공유되고 있다"를 숨기지 않습니다.
근거 — §11-4, §12-7, §20(공유 대상 구체화 표), GE5-2 작업 지시, settings-internal.js grep 실측.

D148 상태바 개발 모드 표시 vs 에디션 표기

GE5-1에서 이미 "개발 모드는 진짜 서버 장애 유예 띠와 다른 무채색 배지로 바꾸자"(D141-B)고 확정했습니다. 실측해 보니 문구는 이미 고쳐져 있었지만("개발 모드 — 라이선스 검사 생략"), 자리와 색은 아직 그대로였습니다 — 진짜 장애 유예와 똑같은 경고색 전폭 띠 안에 그 문구가 들어가 있습니다.

D148 남은 시각적 격차를 어떻게 마무리할까요
A는 지금 그대로 — 문구만 "개발 모드"로 바뀌었을 뿐, 색(경고색 앰버)과 자리(타이틀바 아래 전폭 띠)는 진짜 장애 상태와 똑같습니다. B는 무채색 소형 배지로 바꿔 타이틀바 안, 버전 표기(#app-ver) 옆으로 옮기고, 진짜 서버 장애 유예는 지금 그대로 경고색 전폭 띠를 유지해 둘을 시각적으로 분리합니다.

A · 지금 그대로(문구만 수정, 색·자리는 그대로) 현재

개발 모드 — 라이선스 검사 생략다시 확인
GRID.OSINTERNAL 3.0

문구는 D141에서 이미 정직해졌지만, 실제 장애(예: 서버가 며칠째 응답 없음)와 시각적으로 구분되지 않습니다 — 색을 못 보고 문구만 훑으면 여전히 "뭔가 잘못됐다"로 읽힙니다.

실측 — 48812 상단 실제 캡처: "개발 모드 — 라이선스 검사 생략 · 다시 확인" 문구가 .gos-grace-strip 안에 그대로 렌더링(경고색 앰버, 전폭, 타이틀바 바로 아래 별도 줄). 코드: ge4-ui-state.js 109~117행 문구 로직은 이미 dev 분기(D141)로 갈라져 있으나, internal-theme.css 4436~4446행 .gos-grace-strip CSS는 --warn 색 고정 하나뿐 — dev 여부에 따른 클래스 분리가 없습니다(ge4-ui.js 51행 el.className = 'gos-grace-strip' 무조건 동일).

B · 무채 배지로 타이틀바 이동 권고

GRID.OSINTERNAL 3.0개발 모드 — 라이선스 검사 생략
(비교) 진짜 서버 장애 유예는 계속 이 스타일 그대로 — 지금 화면과 똑같이 남습니다
지금은 서버를 확인할 수 없어 저장된 인증으로 계속합니다 · 유예 6일 남음다시 확인

전폭 경고색 띠를 없애고, 버전 배지(INTERNAL 3.0) 옆에 작은 무채 배지 하나만 남습니다. 진짜 장애 유예는 그대로 경고색 전폭 띠를 유지해서, 두 상태가 색만 봐도 완전히 다르게 보입니다.

어설픔 방지 가드 — 이 배지는 dev bypass 플래그가 켜진 빌드에서만 나와야 합니다(GE5-1 D141 가드 재확인). 구현은 ge4-ui.js renderGraceStrip()에서 info.dev일 때 별도 배지 렌더 경로로 분기하고, .gos-grace-strip 자체는 건드리지 않아 진짜 유예 스타일에 회귀가 없게 합니다.
벤치마킹 근거 — Stripe·Vercel의 "테스트 모드" 상시 배지(경고색이 아닌 무채/보라 소형 배지), macOS 메뉴바의 "베타" 뱃지가 같은 자리(항상 보이는 상단 바)·같은 무채 톤 원칙입니다.
근거 — GE5-1 D141-B 확정, 48812 실측 스크린샷·get_page_text, internal-theme.css·ge4-ui.js·ge4-ui-state.js 실측.

컨펌

카드마다 A/B를 눌러 고르신 뒤(선택 안 하면 권고안 자동 채택, D145는 확인만) 아래 박스를 눌러(전체 선택) 복사해 채팅에 붙여넣어 주세요. 복사가 안 되면 박스를 눌러 드래그 복사하시거나, 말로 "D144는 A, 나머지는 권고안대로" 하셔도 같은 무게로 처리합니다.