D102~D105 — GRID.OS 인터널 3.1 보강 «대시보드 표시 내용»

2026-08-31 · 대시보드 「오늘 큐」·「AI가 오늘 해둔 일」·「최근 활동」·캘린더 4개 위젯이 실제로 무엇을 보여줄지 확정합니다. 「현재」는 코드·실그리드 실측(원인까지 확인)이고, 아래 A/B 중 하나(또는 코멘트로 조건부)를 고르면 그대로 구현에 들어갑니다.
공통 가드 — ① 화면 계약만 정하며 데이터 소스 구현은 이 결정을 따라 별도 진행 ② raw id·내부 경로 노출 금지, 사람이 읽는 이름만 ③ 실데이터 예시는 전부 그리드 안 실제 노트에서 가져왔고(추측 아님) 클라이언트명·태스크명은 그대로 노출.

D102 「오늘 큐」 데이터 소스·내용

위젯이 조회하는 파일명이 영문(progress.md)으로 코드에 박혀 있는데, 실제 그리드의 클라이언트 진행 파일명은 전부 한글(진행중.md)입니다 — 그래서 이 위젯은 켜진 뒤로 단 한 번도 항목을 찾은 적이 없습니다.

현재 — 파일명 불일치로 항상 빈 화면
오늘 큐
표시할 항목이 없습니다

화면은 정상처럼 보이지만 사실은 찾는 파일이 그리드에 없어서 비어 있는 것입니다 — 데이터가 없는 게 아니라 못 찾는 것입니다.

D102 무엇을 큐로 보여줄까요
파일명만 고치면 클라이언트 진행중.md가 다시 보이긴 하지만, 그게 지금 원우님이 «오늘 확인할 것»의 정본은 아닙니다 — 업무 정본은 8/29부터 02. 노트/일정.md 하나로 일원화됐습니다.

A · 업무 정본(일정.md) 기반 권고

오늘 큐 AI담당 미완료 3
자몽마켓 메인 배너 전 슬롯 데모 상태 해소 — 8개 슬롯 전부 플레이스홀더 라이브 노출 중
25일 지연AI 담당협업
그리드뷰 허브 감응도 재조정 — 현재 허브 49%(시안 31%)
AI 담당AI 사업
대행사 7.6 보강 내용 기록 — 수시 수집함
AI 담당AI 사업

일정.md는 루트 지침이 정한 «업무의 정본»이라 여기 큐가 곧 실제 «오늘 확인할 것»이 됩니다. 계약 종료된 클라이언트의 낡은 미완료 항목이 섞여 나올 일도 없습니다 — 일정.md는 살아있는 업무만 관리합니다.

B · 현행 설계 유지 + 파일명 결함만 수리

오늘 큐 클라이언트 미완료 4
광장그룹 아임웹 사이트 구축 HTML 인보이스 발송
광장 · 2026-07-30 계약종료
담당자명, 사업자 정보, 희망 오픈 일정 확인
광장 · 2026-07-30 계약종료
+2건 더 — 전부 광장 진행중.md

코드 수정 범위는 파일명 한 줄이라 가장 작지만, 클라이언트 진행중.md는 계약이 끝나도 이력 보존 목적으로 체크박스를 남겨두는 관행이라 지금처럼 이미 끝난 계약의 낡은 할 일 4건이 «오늘 큐»에 그대로 뜹니다(광장은 2026-07-30 계약종료). 원우님이 매번 «이거 아직 살아있는 업무야?»를 판단해야 합니다.

실측 — U3.1-13 조사(2026-08-31): `server/index.js:2806-2808`이 progress.md·history.md·schedule.md(영문)를 하드코딩해 찾고, 실그리드는 진행중.md(7개 클라이언트)·히스토리.md(19개)만 있어 매칭 0건 — 광장 진행중.md 미완료 4건 실존을 라이브 API가 빈 배열로 응답하는 것까지 실증. D104·D105와 원인 공유.

D103 「AI가 오늘 해둔 일」 표시 정책

AI가 결과 요약을 따로 남기지 않으면, 화면은 원우님이 AI에게 보낸 발화 원문을 그대로 띄웁니다 — "오늘 해둔 일"이 아니라 "오늘 보낸 말"이 보이는 셈입니다.

현재 — 요약 없으면 사용자 발화 원문 노출
AI가 오늘 해둔 일
11:52C
위타민 미팅을 다녀와서 회의록에 녹음을...

실제로는 회의록 복구·작성이 끝난 작업인데, 화면은 원우님이 처음 보낸 요청 문장을 그대로 잘라 보여줍니다 — «완료됐다»는 정보 자체가 안 보입니다.

D103 결과 요약이 없는 항목을 어떻게 다룰까요
두 안 모두 요약이 있는 항목의 표시(시간·AI 이름·요약 한 줄)는 동일합니다 — 요약이 비어 있을 때만 다릅니다.

A · 요약 없으면 목록에서 제외 권고

AI가 오늘 해둔 일 2건
15:04C
회의록 전사 실패 원인 규명·수동 복구, 3.1 접수대장 U3.1-16 등재
16:41X
GRID.OS 윈도우 프로토타입 에디션 신설 — 저장 결함 4건 수리, 설치 파일 산출

위타민 미팅 요청처럼 요약이 아직 안 채워진 작업은 «해둔 일»이라 부를 수 없으니 목록에서 빠집니다 — 남는 항목은 전부 실제 완료 요약입니다. 사용자 발화 원문이 화면에 노출되는 일 자체가 없어집니다.

B · 요약 없는 항목은 «요청: …» 라벨로 회색 처리

AI가 오늘 해둔 일 3건
15:04C
회의록 전사 실패 원인 규명·수동 복구, 3.1 접수대장 U3.1-16 등재
11:52C
위타민 미팅을 다녀와서 회의록에 녹음을...
요약 대기중
16:41X
GRID.OS 윈도우 프로토타입 에디션 신설 — 저장 결함 4건 수리, 설치 파일 산출

작업이 «있었다»는 사실 자체는 안 사라지지만, «요청: » 라벨을 붙여도 결국 원문 문장이 화면에 그대로 남아 지금 문제(발화가 완료처럼 읽힘)가 옅어질 뿐 완전히 없어지지는 않습니다.

실측 — U3.1-12 조사(2026-08-31): `dashboard-ailog.js:71-72`가 resultSummary 없으면 requestText(사용자 발화 원문)로 폴백하는데, 결과를 마감하는 markTerminal 호출 4곳 전부 resultSummary를 빈 값으로 남겨 라이브 8건 중 4건이 실제로 원문 노출로 확인됐습니다.

D104 「최근 활동」 구성

D102와 원인이 같습니다 — 위젯이 찾는 파일명이 영문이라 실그리드에서는 늘 빈 화면입니다. 파일명을 고친 뒤 무엇을 섞어 보여줄지가 이번 결정입니다.

현재 — 파일명 불일치로 항상 빈 화면 (D102와 동일 원인)
최근 활동
표시할 항목이 없습니다
D104 무엇을 최근 활동으로 섞어 보여줄까요
오늘(8/31) 실제로 그리드에서 일어난 일 기준 예시입니다 — 위타민 히스토리.md에 남은 미팅 기록과, 그날 만들어지거나 고쳐진 다른 노트들이 따로 있습니다.

A · 히스토리.md 최신 항목 + 오늘 변경된 그리드 노트 병합 권고

최근 활동
16:41
노트GRID.OS 윈도우 프로토타입 에디션 빌드 — 태스크 노트 갱신
15:04
노트그리도스 음성 전사 타임아웃·슬립 유실 — 태스크 노트 갱신
11:00
히스토리위타민 — GRID.OS 도입 킥오프 미팅 완료, 회의록 작성

클라이언트 히스토리 기록은 원래도 뜸이 잦지 않은 파일이라, 그날 실제로 만들어지고 고쳐진 다른 노트(태스크·기획·시안)까지 같이 시간순으로 섞어야 «오늘 그리드에서 무슨 일이 있었는지»가 온전히 보입니다.

B · 히스토리.md 항목만

최근 활동
11:00
히스토리위타민 — GRID.OS 도입 킥오프 미팅 완료, 회의록 작성

구현이 더 간단하지만, 오늘 실제로는 태스크 노트 2건이 더 갱신됐는데도 화면엔 위타민 한 줄만 남아 «오늘 얼마나 일했는지»가 실제보다 훨씬 적어 보입니다.

실측 — U3.1-13과 원인 공유(`server/index.js:2806-2808`). 실데이터 출처 — `02. 마케팅 대행/01_클라이언트/위타민/히스토리.md`(2026-08-31 항목), `04. 일간노트/2026-08/2026-08-31.md`의 «오늘 완료한 일»에 연결된 두 태스크 노트.

D105 캘린더 이벤트 소스(schedule.md) 처리

대시보드 캘린더가 예정 일정을 채우려고 각 폴더의 schedule.md라는 파일을 찾는데, 이 그리드 전체에 그 이름의 파일이 단 하나도 없습니다 — 애초에 아무도 만든 적이 없는 죽은 경로입니다. 이 카드는 목업 없이 배경 설명과 선택만 진행합니다.

지금 코드가 하는 일 — 클라이언트·프로젝트 폴더마다 schedule.md를 열어 "- YYYY-MM-DD [HH:MM] 내용" 줄을 캘린더 이벤트로 파싱합니다. 그런데 이 그리드는 예정 일정을 처음부터 업무 정본인 일정.md(§0-8 업무 정본 일원화)로 관리해왔기 때문에, schedule.md는 한 번도 쓰인 적이 없습니다.
클라이언트/*/schedule.md그리드 전체 0건
02. 노트/일정.md(정본)D102 큐와 같은 소스 — 조회 가능
D105 죽은 필드를 어떻게 처리할까요

A · schedule.md 경로 제거, 일정.md 데이터로 대체 권고

캘린더가 실제로 쓰는 유일한 예정 일정 소스(일정.md)를 그대로 연결합니다. 프로젝트 시작일·마감일 프론트매터와 태스크 마감 표기가 이미 존재하므로 새 파일 규칙을 만들 필요가 없고, D102에서 정본으로 확정한 소스와도 일치합니다.

B · 필드만 유지, 이번엔 무변경

지금 당장 코드를 건드리지 않는 안전한 선택이지만, 캘린더의 «예정 일정» 칸은 계속 비어 있는 채로 남습니다 — schedule.md를 쓰는 습관이 앞으로 생길 계획도 없어 사실상 영구 공백입니다.

참고(스펙 밖 — 결정 대상 아님) — D102·D105가 같은 방향(일정.md 정본화)을 가리키므로, A로 확정되면 두 위젯 모두 같은 조회 함수를 공유하게 만드는 편이 구현 중복을 줄입니다. 이번 보드는 화면 계약만 정하며 그 구현 방식은 범위 밖입니다.

컨펌

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