3 Commits (d2d7c17ad364ddf8d16a8219d572d2ad9d4425f5)

Author SHA1 Message Date
Claude d2d7c17ad3 Phase 3: 작업(Tasks) 페이지
- 폴더 트리 사이드바(업무/개인/즐겨찾기) + 무한중첩 프로젝트 + 인라인 새 프로젝트
- 칸반(5컬럼)/리스트 2뷰 + 작업 카드(태그·담당·마감임박·우선순위·진행률·위임칩)
- 상세 드로어(DetailPanel): 리치노트·댓글·하위작업 드릴다운·메타 편집·삭제
  + Auto-Scaffolding(미리보기→적용) + 위임 추천(suggestCollaborator)
- 리스크 레이더(업무 스코프, **굵게→<b> 파서, CTA로 드로어 열기)
- SWR 서버 연동(tree/tasks/risks), 낙관적 mutate, UI상태 ari.tasks.* localStorage 영속
- tasks.css 픽셀 이식, lib/cx.ts, lib/tasks/{api,store,tree}, lib/types 확장
- 백엔드: PATCH 작업 순환참조(self/후손 parent) 400 가드 추가

검증: 백엔드 pytest 46, 프론트 vitest 32, playwright e2e 19(shell+tasks+a11y),
tsc/eslint clean, build OK. axe: color-contrast(레퍼런스 액센트 팔레트)만 제외, 나머지 0.
라이브 시각 확인: 사이드바/칸반/리스크레이더/드로어/scaffold/위임 충실 재현.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2 months ago
Claude 1cd1d10243 Phase 2: 백엔드 데이터모델·시드·REST API·Ollama 추상화
- models.py: 11개 SQLModel 테이블(person/folder/project/task/task_comment/
  inbox_item/inbox_classification/event/approval/goal/briefing), FK·enum·무한중첩 자기참조
- schemas.py: 전 I/O 스키마(types.ts 1:1, snake_case, 재귀 ProjectNode/TaskNode)
- seed.py: 지우의 한 주(REF 4파일 그대로) — 5인/2폴더/14프로젝트/45작업/4인박스/대시보드
- Alembic: init schema 마이그레이션(+sqlmodel import), base↔head 왕복 검증
- 라우터 6종: people/tree(폴더·프로젝트 CRUD·pin)/tasks(CRUD·댓글·scaffold·risks)/
  inbox(capture·reclassify·confirm 연합·dismiss)/dashboard(집계)/llm
- services: risk.py(지연/쏠림/의존, TODAY=8), scaffold.py(정규식 4템플릿), classification.py
- LLM 추상화: provider/ollama(format=json, think=false→수초 응답, 모델 비종속)/heuristic 폴백/prompts
- inbox confirm = federation(task 실체화 + materialized_task_id)

검증: pytest 38 passed, ruff clean, 마이그레이션 왕복 OK,
시드 카운트 일치, 골든 분류 4케이스 통과(heuristic),
라이브: Ollama 분류 동작(model:ollama:qwen3.6, 13s) + 폴백 동작, 전 엔드포인트 정상

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2 months ago
Claude 9075b7d1ba Phase 0: 모노레포 스캐폴딩 & 개발환경
- frontend/ (Next.js 16 App Router + TS): layout/폰트, / → /dashboard 리다이렉트,
  styles/tokens.css·globals.css, lib/api.ts·types.ts, vitest 스모크, /api rewrites
- backend/ (FastAPI + SQLite + Ollama): config/db, /api/health, /api/llm/health
  (Ollama on/off 양쪽 200), CORS, alembic init, pytest 2건
- 루트 Makefile/.gitignore/README

검증: pytest 2 passed, vitest 1 passed, ruff/eslint clean, next build OK,
/ → /dashboard 리다이렉트(Playwright), health 200, Ollama reachable, CORS 200

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2 months ago