feat(lib): SQLite DB normalization (FW-L3) & stop semantics simplification (FW-L2)

This commit is contained in:
2026-06-21 09:05:15 +00:00
parent 478be56679
commit 8097df0cbe
11 changed files with 324 additions and 200 deletions
+2 -15
View File
@@ -8,21 +8,8 @@
## 1. 장기 과제 (근본적 구조 변경)
### FW-L3. SQLite 테이블 정규화 (FW-L1 후속)
- **상태**: 대기
- **제안**: 현재 `.db`에는 전체 JSON 상태를 하나의 `data TEXT` 컬럼에 덤프하고 있음. 이를 `CREATE TABLE sessions (name TEXT PRIMARY KEY, status TEXT, pane_cwd TEXT, data JSON)` 형태로 정규화하면 O(1) 수준의 상태 조회가 가능해짐.
- **주의**: 현재 상태 조회 스크립트(`status.sh`, `reconcile.sh`) 역시 `SELECT data` 후 Python 단에서 전체 JSON을 파싱하는 구조이므로, O(1) 이점을 누리기 위해서는 이 조회 스크립트들도 per-column 쿼리(예: `SELECT status FROM sessions WHERE name=?`)로 함께 변경해야 함.
### FW-L2. stop 옵션 시맨틱 Step 2 (FW-03/FW-13 후속)
- **상태**: Step 1(디렉터리/식별자 rename) + frontmatter/산문 재작성 완료. Step 2 미진행.
- **남은 작업**:
- `--purge-conversation`(진짜 삭제)와 `--mode soft|hard`의 시맨틱 재정의 또는 폐기 검토
- 하위 호환 코드 제거
- `--mode soft|hard` 폐기 후 `stop` = 기본 동작, `--purge-conversation` = 파괴적 옵션으로 명확화
- **작업량**: 중 (Medium)
- **우선순위**: 보통 — 현재 동작에 문제 없으나 API 직관성 향상
---
## 2. 신규 발견 항목 (최종 검증에서 식별)
@@ -76,5 +63,5 @@
| 날짜 | 변경 |
|---|---|
| 2026-06-21 | 초기 작성 — 3개 에이전트 분석 결과 (FW-01~FW-16) |
| 2026-06-21 | FW-01~FW-16 전부 완료 -> DONE.md로 이동. 본 파일은 신규 발견 항목(FW-N1~N4) + 장기 과제(FW-L1~L2)만 남김. |
| 2026-06-21 | FW-L1 구현 완료 (사용자 피드백 재수용: 런타임은 SQLite DB, 종료 시에만 YAML 스냅샷 덤프). 항목 DONE.md로 이동. |
| 2026-06-21 | FW-01~FW-16 전부 완료 -> DONE.md로 이동. 본 파일은 신규 발견 항목(FW-N1~N4) + 장기 과제(FW-L2~L3)만 남김. |
| 2026-06-21 | FW-L1(SQLite WAL 도입) 구현 및 검증 완료. 항목 DONE.md로 이동. |