fix(lifecycle): NoteStatus 의 archived 제거 — MoveStatusModal/classifyStatus/store 정리

- NoteStatus 에서 'archived' 제거 (active | completed | trashed 3분기)
- MoveStatusModal ALL_STATUSES 에서 'archived' 제거 + statusLabel switch 정리
- classifyStatus VALID/FALLBACK/PROMPT 에서 archived 제거 → completed fallback
- inboxApi IPC set-status VALID 배열에서 archived 제거, classify-status fallback → completed
- store InboxView 에서 'archived' 제거, InboxCounts.archived 제거, archived: 0 spread 제거
- ImportService.applySyncFromDir — 기존 파일의 status=archived 를 completed 로 coerce
- 영향 받는 tests 13개 파일 모두 update (archived → completed, 없어진 UI 옵션 제거)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
th-kim0823
2026-05-15 11:03:09 +09:00
parent 96174f84c9
commit 274c171ee8
13 changed files with 78 additions and 94 deletions

View File

@@ -77,7 +77,7 @@ describe('ImportService.applySyncFromDir', () => {
expect(note?.rawText).toBe('new body');
});
it('preserves status field from frontmatter', async () => {
it('preserves status field from frontmatter (archived coerced to completed — v0.4 Task 16)', async () => {
const notesDir = join(workDir, 'notes');
await mkdir(notesDir, { recursive: true });
await writeFile(
@@ -86,7 +86,8 @@ describe('ImportService.applySyncFromDir', () => {
);
await svc.applySyncFromDir(workDir);
const note = repo.findById('00000000-0000-0000-0000-000000000002');
expect(note?.status).toBe('archived');
// archived → completed coerce (m008 와 동일 정책, NoteStatus 에서 archived 삭제됨).
expect(note?.status).toBe('completed');
expect(note?.statusChangedAt).toBe('2026-05-08T00:00:00Z');
expect(note?.moveReason).toBe('done');
});