maskweaver 0.7.21 → 0.7.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -88,18 +88,53 @@ AI가 자동으로 검증 루프를 돌리고, 완료되면 유저에게 전달
88
88
 
89
89
  ---
90
90
 
91
- ## Step 0: LOAD PLAN
92
-
93
- ```yaml
94
- # 1. state.yaml에서 활성 플랜 확인
95
- active_plan: "emotion-diary"
96
-
97
- # 2. plans/emotion-diary.yaml에서 Phase 정보 로드
98
- # 3. Phase 상태가 pending 또는 in_progress인지 확인
99
- # 4. completed인 Phase를 재실행하려면 유저에게 확인
100
- ```
101
-
102
- ---
91
+ ## Step 0: LOAD PLAN
92
+
93
+ ```yaml
94
+ # 1. state.yaml에서 활성 플랜 확인
95
+ active_plan: "emotion-diary"
96
+
97
+ # 2. plans/emotion-diary.yaml에서 Phase 정보 로드
98
+ # 3. Phase 상태가 pending 또는 in_progress인지 확인
99
+ # 4. completed인 Phase를 재실행하려면 유저에게 확인
100
+ ```
101
+
102
+ ### YAML 읽기 실패 시 자동 수복
103
+
104
+ 플랜 파일(`state.yaml` 또는 `plans/*.yaml`)을 읽었을 때 YAML 파싱 에러가 발생하면, 자동 수복을 시도합니다.
105
+
106
+ **일반적인 깨짐 패턴과 수복 방법**:
107
+
108
+ | 깨짐 패턴 | 증상 | 수복 방법 |
109
+ |-----------|------|----------|
110
+ | 들여쓰기 불일치 | `bad indentation` 에러 | 들여쓰기를 2-space 기준으로 정규화 |
111
+ | 탭 문자 혼입 | `tab character` 에러 | 탭 → 2 spaces 변환 |
112
+ | 따옴표 미닫힘 | `unexpected end of stream` | 열린 따옴표 찾아서 닫기 |
113
+ | 중복 키 | `duplicate key` 에러 | 나중에 나온 값 유지, 중복 제거 |
114
+ | 빈 값/null 깨짐 | `null` 대신 빈 문자열 | `null` 또는 적절한 기본값으로 복원 |
115
+ | 잘린 파일 | 파일이 중간에 끊김 | 마지막 완전한 블록까지 복원 후 유저 알림 |
116
+
117
+ ```
118
+ YAML 읽기 수복 절차:
119
+ 1. Read(yaml_path) → 파일 내용 로드
120
+ 2. YAML 파싱 시도
121
+ ├─ 성공 → 정상 진행
122
+ └─ 실패 → 수복 시작
123
+ 3. 수복 시도:
124
+ a. 파일 원본 내용을 보존 (백업용 변수에 저장)
125
+ b. 일반적인 깨짐 패턴 자동 교정 (위 표 참고)
126
+ c. 교정된 내용으로 다시 YAML 파싱 시도
127
+ ├─ 성공 → 교정된 내용으로 파일 덮어쓰기 + 유저에게 수복 사실 알림
128
+ └─ 실패 → 4단계로
129
+ 4. 수복 불가 시:
130
+ a. 유저에게 "YAML 파일이 심각하게 손상됨" 알림
131
+ b. 원본 내용을 그대로 출력하여 유저가 직접 수정할 수 있게 제공
132
+ c. `/weave-design`으로 플랜 재생성 제안
133
+ ```
134
+
135
+ > **주의**: 수복 시 원본 데이터를 최대한 보존합니다. 확실하지 않은 값은 추측하지 않고, 유저에게 확인을 요청합니다.
136
+
137
+ ---
103
138
 
104
139
  ## Expert Summoning Strategy for Execution (Core)
105
140
 
@@ -287,6 +322,36 @@ phases:
287
322
  5. 모두 정상이면 → 유저 핸드오프 진행
288
323
  6. 하나라도 실패하면 → 오류 보고 및 재시도
289
324
  ```
325
+
326
+ ### YAML 쓰기 시 자동 수복
327
+
328
+ 플랜 파일을 업데이트한 후 다시 읽어 검증할 때 YAML 파싱 에러가 발생하면, 업데이트 과정에서 YAML이 깨진 것입니다. 이 경우 자동 수복을 수행합니다.
329
+
330
+ ```
331
+ YAML 쓰기 수복 절차:
332
+ 1. 플랜 파일 업데이트 (Write)
333
+ 2. 업데이트된 파일 다시 읽기 (Read)
334
+ 3. YAML 파싱 시도
335
+ ├─ 성공 → 정상 진행 (검증 계속)
336
+ └─ 실패 → 쓰기 수복 시작
337
+ 4. 쓰기 수복:
338
+ a. 업데이트 전 원본 플랜 내용을 기반으로 재구성
339
+ b. 변경해야 할 Phase 필드만 정확히 반영하여 YAML을 처음부터 다시 생성
340
+ c. 재생성된 YAML로 파일 덮어쓰기
341
+ d. 다시 읽어서 파싱 검증
342
+ ├─ 성공 → 유저에게 "YAML 수복 후 정상 저장됨" 알림
343
+ └─ 실패 → 5단계로
344
+ 5. 재수복 실패 시:
345
+ a. 유저에게 "플랜 파일 업데이트 중 YAML 손상 발생" 알림
346
+ b. 정상적인 원본 내용 + 이번 Phase 변경사항을 텍스트로 출력
347
+ c. 유저가 직접 확인 후 수동 저장하도록 안내
348
+ ```
349
+
350
+ **쓰기 수복 시 핵심 규칙**:
351
+ - 업데이트 전 원본 파일 내용을 항상 메모리에 보관해 둡니다 (롤백 대비).
352
+ - YAML을 부분 편집(텍스트 치환)하지 않고, 전체 구조를 파악한 뒤 완전한 YAML로 재생성합니다.
353
+ - 특수문자가 포함된 문자열 값은 반드시 따옴표로 감쌉니다.
354
+ - 재생성 시 원본의 Phase 순서와 필드 순서를 유지합니다.
290
355
 
291
356
  ---
292
357
 
@@ -121,19 +121,24 @@ async function handleDesign(args, basePath) {
121
121
  }
122
122
  async function handleCraft(args, basePath) {
123
123
  const { phaseId, projectType } = args;
124
+ const manager = getPhaseManager(basePath);
124
125
  if (!phaseId) {
125
126
  // Get next phase
126
- const manager = getPhaseManager(basePath);
127
127
  await manager.loadPlan();
128
+ const recoveryMessages = manager.getRecoveryMessages();
128
129
  const nextPhase = manager.getNextPhase();
130
+ // Prepend recovery warnings if any
131
+ const prefix = recoveryMessages.length > 0
132
+ ? `### ⚠️ YAML 자동 복구\n${recoveryMessages.map(m => `- ${m}`).join('\n')}\n\n`
133
+ : '';
129
134
  if (!nextPhase) {
130
135
  const stats = manager.getStats();
131
136
  if (stats.progress === 100) {
132
- return '🎉 모든 Phase가 완료되었습니다!';
137
+ return prefix + '🎉 모든 Phase가 완료되었습니다!';
133
138
  }
134
- return 'Error: 실행할 Phase가 없습니다. 먼저 /weave design으로 계획을 세워주세요.';
139
+ return prefix + 'Error: 실행할 Phase가 없습니다. 먼저 /weave design으로 계획을 세워주세요.';
135
140
  }
136
- return `다음 Phase: ${nextPhase.id} - ${nextPhase.name}\n\n실행하려면: weave craft ${nextPhase.id}`;
141
+ return prefix + `다음 Phase: ${nextPhase.id} - ${nextPhase.name}\n\n실행하려면: weave craft ${nextPhase.id}`;
137
142
  }
138
143
  // Execute the phase
139
144
  const orchestrator = getOrchestrator();
@@ -151,12 +156,25 @@ async function handleCraft(args, basePath) {
151
156
  return handoffResult.message;
152
157
  }
153
158
  async function handleStatus(basePath) {
159
+ const manager = getPhaseManager(basePath);
160
+ // Pre-load plan to capture recovery messages
161
+ await manager.loadPlan();
162
+ const recoveryMessages = manager.getRecoveryMessages();
154
163
  const report = await generateStatusReport(basePath);
155
164
  // Add global knowledge stats
156
165
  const knowledge = new GlobalKnowledge();
157
166
  await knowledge.init();
158
167
  const stats = await knowledge.getStats();
159
- const lines = [report, ''];
168
+ const lines = [];
169
+ // Show recovery warnings at the top
170
+ if (recoveryMessages.length > 0) {
171
+ lines.push('### ⚠️ YAML 자동 복구');
172
+ for (const msg of recoveryMessages) {
173
+ lines.push(`- ${msg}`);
174
+ }
175
+ lines.push('');
176
+ }
177
+ lines.push(report, '');
160
178
  lines.push('### 🧠 글로벌 지식베이스');
161
179
  lines.push(`- 총 트러블슈팅 기록: ${stats.totalEntries}개`);
162
180
  if (stats.topProjectTypes.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"weave.js","sourceRoot":"","sources":["../../../src/plugin/tools/weave.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"weave.js","sourceRoot":"","sources":["../../../src/plugin/tools/weave.ts"],"names":[],"mappings":"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"}
@@ -8,14 +8,22 @@ import type { WeavePhase, WeavePlan, PhaseStatus } from './types.js';
8
8
  export declare class PhaseManager {
9
9
  private basePath;
10
10
  private plan;
11
+ /** Recovery messages from the last loadPlan() call. */
12
+ private _lastRecoveryMessages;
11
13
  constructor(basePath?: string);
14
+ /**
15
+ * Get recovery messages from the last loadPlan() call.
16
+ * Returns empty array if no recovery was needed.
17
+ */
18
+ getRecoveryMessages(): string[];
12
19
  /**
13
20
  * Load existing plan or return null.
14
21
  * Supports multi-plan architecture (state.yaml → plans/) with legacy PLAN.yaml fallback.
22
+ * Auto-recovers from .bak backup when YAML is corrupted.
15
23
  */
16
24
  loadPlan(): Promise<WeavePlan | null>;
17
25
  /**
18
- * Save plan to disk.
26
+ * Save plan to disk with atomic writes and automatic backup.
19
27
  * If state.yaml exists (new mode): save to plans/{planName}.yaml and update state.yaml.
20
28
  * Otherwise (legacy mode): save to PLAN.yaml.
21
29
  */
@@ -65,16 +73,19 @@ export declare class PhaseManager {
65
73
  /**
66
74
  * Load all plans from the plans/ directory.
67
75
  * Returns empty array in legacy mode or if no plans exist.
76
+ * Auto-recovers corrupted plan files from backups.
68
77
  */
69
78
  loadAllPlans(): Promise<WeavePlan[]>;
70
79
  /**
71
80
  * Get the active plan name from state.yaml.
72
81
  * Returns null in legacy mode or if state.yaml doesn't exist.
82
+ * Auto-recovers from backup if corrupted.
73
83
  */
74
84
  getActivePlanName(): Promise<string | null>;
75
85
  /**
76
86
  * Load and return state.yaml content.
77
87
  * Returns null if state.yaml doesn't exist (legacy mode).
88
+ * Auto-recovers from backup if corrupted.
78
89
  */
79
90
  loadState(): Promise<{
80
91
  active_plan?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"phase-manager.d.ts","sourceRoot":"","sources":["../../src/weave/phase-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAqIrE,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,IAAI,CAA0B;gBAE1B,QAAQ,GAAE,MAAsB;IAI5C;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IA2C3C;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B9C;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;QACxC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;KACvC,GAAG,OAAO,CAAC,SAAS,CAAC;IAmBtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAK5C;;OAEG;IACG,iBAAiB,CACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,EACnB,cAAc,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GACrC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAqC7B;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB9G;;OAEG;IACG,gBAAgB,CAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,QAAQ,GAAG,QAAQ,EACvD,cAAc,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GACjD,OAAO,CAAC,IAAI,CAAC;IA+BhB;;OAEG;IACH,YAAY,IAAI,UAAU,GAAG,IAAI;IAsBjC;;OAEG;IACH,QAAQ,IAAI;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;KACpB;IAiBD;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IA6B1C;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiBjD;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAgB3D,OAAO,CAAC,SAAS;CAiCpB;AAQD,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,CAK/D;AAED,wBAAsB,WAAW,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,CAAC,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,UAAU,CAAC,CAWrB;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAI1E;AAED,wBAAsB,iBAAiB,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAG5B;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAIxD"}
1
+ {"version":3,"file":"phase-manager.d.ts","sourceRoot":"","sources":["../../src/weave/phase-manager.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,172 @@ function ensurePlansDir(basePath = process.cwd()) {
38
38
  }
39
39
  }
40
40
  // ============================================================================
41
+ // Safe File I/O with Backup & Recovery
42
+ // ============================================================================
43
+ /**
44
+ * Atomically write a file with backup.
45
+ * 1. If target exists, copy it to target.bak
46
+ * 2. Write content to target.tmp
47
+ * 3. Rename target.tmp → target (atomic on most OS)
48
+ * Falls back to direct write if rename fails (e.g., cross-device on Windows).
49
+ */
50
+ function safeWriteFile(filePath, content) {
51
+ const dir = path.dirname(filePath);
52
+ if (!fs.existsSync(dir)) {
53
+ fs.mkdirSync(dir, { recursive: true });
54
+ }
55
+ // Step 1: Backup existing file
56
+ if (fs.existsSync(filePath)) {
57
+ try {
58
+ fs.copyFileSync(filePath, filePath + '.bak');
59
+ }
60
+ catch (e) {
61
+ console.error(`[PhaseManager] Warning: Failed to create backup for ${path.basename(filePath)}:`, e);
62
+ }
63
+ }
64
+ // Step 2-3: Write to .tmp then rename (atomic)
65
+ const tmpPath = filePath + '.tmp';
66
+ try {
67
+ fs.writeFileSync(tmpPath, content, 'utf-8');
68
+ fs.renameSync(tmpPath, filePath);
69
+ }
70
+ catch (e) {
71
+ // Fallback: direct write (rename can fail on some Windows configs)
72
+ try {
73
+ fs.unlinkSync(tmpPath);
74
+ }
75
+ catch { /* ignore */ }
76
+ fs.writeFileSync(filePath, content, 'utf-8');
77
+ }
78
+ }
79
+ /**
80
+ * Safely read and parse a YAML file with auto-recovery.
81
+ *
82
+ * Recovery chain:
83
+ * 1. Try reading the file normally
84
+ * 2. If parse fails, try the .bak backup file
85
+ * 3. If .bak succeeds, auto-restore the file from backup
86
+ * 4. Returns { data, recovered, error } indicating what happened
87
+ */
88
+ async function safeReadYaml(filePath) {
89
+ const { parse } = await import('yaml');
90
+ const fileName = path.basename(filePath);
91
+ // File doesn't exist at all
92
+ if (!fs.existsSync(filePath)) {
93
+ return { data: null, recovered: false };
94
+ }
95
+ // Try reading the main file
96
+ try {
97
+ const content = fs.readFileSync(filePath, 'utf-8');
98
+ if (!content.trim()) {
99
+ throw new Error('File is empty');
100
+ }
101
+ const data = parse(content);
102
+ return { data, recovered: false };
103
+ }
104
+ catch (primaryError) {
105
+ const errMsg = primaryError instanceof Error ? primaryError.message : String(primaryError);
106
+ console.error(`[PhaseManager] YAML parse failed for ${fileName}: ${errMsg}`);
107
+ // Try .bak backup
108
+ const bakPath = filePath + '.bak';
109
+ if (fs.existsSync(bakPath)) {
110
+ try {
111
+ const bakContent = fs.readFileSync(bakPath, 'utf-8');
112
+ if (!bakContent.trim()) {
113
+ throw new Error('Backup file is empty');
114
+ }
115
+ const data = parse(bakContent);
116
+ // Auto-restore from backup
117
+ console.error(`[PhaseManager] Auto-recovered ${fileName} from backup`);
118
+ try {
119
+ // Save corrupted file for debugging
120
+ const corruptedPath = filePath + '.corrupted';
121
+ fs.copyFileSync(filePath, corruptedPath);
122
+ // Restore from backup
123
+ fs.copyFileSync(bakPath, filePath);
124
+ }
125
+ catch (restoreErr) {
126
+ console.error(`[PhaseManager] Warning: Could not auto-restore file:`, restoreErr);
127
+ }
128
+ return {
129
+ data,
130
+ recovered: true,
131
+ error: `${fileName} was corrupted and auto-recovered from backup. Corrupted file saved as ${fileName}.corrupted`,
132
+ };
133
+ }
134
+ catch (bakError) {
135
+ const bakErrMsg = bakError instanceof Error ? bakError.message : String(bakError);
136
+ console.error(`[PhaseManager] Backup ${fileName}.bak also failed: ${bakErrMsg}`);
137
+ return {
138
+ data: null,
139
+ recovered: false,
140
+ error: `${fileName} is corrupted and backup is also invalid. Manual recovery needed. Error: ${errMsg}`,
141
+ };
142
+ }
143
+ }
144
+ // No backup available
145
+ return {
146
+ data: null,
147
+ recovered: false,
148
+ error: `${fileName} is corrupted (no backup available). Error: ${errMsg}`,
149
+ };
150
+ }
151
+ }
152
+ /**
153
+ * Validate that raw parsed YAML has the expected plan structure.
154
+ * Returns a sanitized object or null if unrecoverable.
155
+ */
156
+ function validatePlanStructure(raw) {
157
+ if (!raw || typeof raw !== 'object') {
158
+ return null;
159
+ }
160
+ // Ensure phases is an array
161
+ if (raw.phases && !Array.isArray(raw.phases)) {
162
+ console.error('[PhaseManager] Invalid phases field (not an array), resetting to empty');
163
+ raw.phases = [];
164
+ }
165
+ // Ensure each phase has required fields
166
+ if (Array.isArray(raw.phases)) {
167
+ raw.phases = raw.phases.filter((p) => {
168
+ if (!p || typeof p !== 'object')
169
+ return false;
170
+ if (!p.id || !p.name) {
171
+ console.error(`[PhaseManager] Skipping invalid phase entry (missing id/name)`);
172
+ return false;
173
+ }
174
+ // Ensure tasks is an array
175
+ if (p.tasks && !Array.isArray(p.tasks)) {
176
+ p.tasks = [];
177
+ }
178
+ // Ensure checklist is an array
179
+ if (p.checklist && !Array.isArray(p.checklist)) {
180
+ p.checklist = [];
181
+ }
182
+ return true;
183
+ });
184
+ }
185
+ return raw;
186
+ }
187
+ /**
188
+ * Escape a string value for safe YAML serialization.
189
+ * Uses double-quoted YAML string escaping.
190
+ */
191
+ function yamlEscapeString(value) {
192
+ if (!value)
193
+ return '""';
194
+ // If value contains characters that could break YAML, use double-quoted escaping
195
+ if (/[\n\r\t"\\:#{}\[\],&*?|>!%@`]/.test(value) || value.trim() !== value) {
196
+ return '"' + value
197
+ .replace(/\\/g, '\\\\')
198
+ .replace(/"/g, '\\"')
199
+ .replace(/\n/g, '\\n')
200
+ .replace(/\r/g, '\\r')
201
+ .replace(/\t/g, '\\t')
202
+ + '"';
203
+ }
204
+ return `"${value}"`;
205
+ }
206
+ // ============================================================================
41
207
  // YAML Serialization (Simple)
42
208
  // ============================================================================
43
209
  function serializePlan(plan) {
@@ -45,35 +211,35 @@ function serializePlan(plan) {
45
211
  lines.push(`# Weave Plan - ${plan.projectName}`);
46
212
  lines.push(`# Generated by Maskweaver Weave`);
47
213
  lines.push('');
48
- lines.push(`project_name: "${plan.projectName}"`);
214
+ lines.push(`project_name: ${yamlEscapeString(plan.projectName)}`);
49
215
  lines.push(`created_at: "${plan.createdAt}"`);
50
216
  lines.push(`updated_at: "${plan.updatedAt}"`);
51
217
  lines.push('');
52
218
  lines.push('vision: |');
53
- for (const line of plan.vision.split('\n')) {
219
+ for (const line of (plan.vision || '').split('\n')) {
54
220
  lines.push(` ${line}`);
55
221
  }
56
222
  lines.push('');
57
223
  lines.push('architecture:');
58
- if (plan.architecture.frontend)
59
- lines.push(` frontend: "${plan.architecture.frontend}"`);
60
- if (plan.architecture.backend)
61
- lines.push(` backend: "${plan.architecture.backend}"`);
62
- if (plan.architecture.database)
63
- lines.push(` database: "${plan.architecture.database}"`);
64
- if (plan.architecture.notes)
65
- lines.push(` notes: "${plan.architecture.notes}"`);
224
+ if (plan.architecture?.frontend)
225
+ lines.push(` frontend: ${yamlEscapeString(plan.architecture.frontend)}`);
226
+ if (plan.architecture?.backend)
227
+ lines.push(` backend: ${yamlEscapeString(plan.architecture.backend)}`);
228
+ if (plan.architecture?.database)
229
+ lines.push(` database: ${yamlEscapeString(plan.architecture.database)}`);
230
+ if (plan.architecture?.notes)
231
+ lines.push(` notes: ${yamlEscapeString(plan.architecture.notes)}`);
66
232
  lines.push('');
67
233
  if (plan.currentPhase) {
68
234
  lines.push(`current_phase: "${plan.currentPhase}"`);
69
235
  lines.push('');
70
236
  }
71
237
  lines.push('phases:');
72
- for (const phase of plan.phases) {
238
+ for (const phase of (plan.phases || [])) {
73
239
  lines.push(` - id: "${phase.id}"`);
74
- lines.push(` name: "${phase.name}"`);
240
+ lines.push(` name: ${yamlEscapeString(phase.name)}`);
75
241
  lines.push(` status: "${phase.status}"`);
76
- lines.push(` done_when: "${phase.doneWhen}"`);
242
+ lines.push(` done_when: ${yamlEscapeString(phase.doneWhen)}`);
77
243
  if (phase.estimatedHours) {
78
244
  lines.push(` estimated_hours: ${phase.estimatedHours}`);
79
245
  }
@@ -87,31 +253,31 @@ function serializePlan(plan) {
87
253
  lines.push(` completed_at: "${phase.completedAt}"`);
88
254
  }
89
255
  lines.push(' checklist:');
90
- for (const item of phase.checklist) {
91
- lines.push(` - "${item}"`);
256
+ for (const item of (phase.checklist || [])) {
257
+ lines.push(` - ${yamlEscapeString(item)}`);
92
258
  }
93
259
  lines.push(' tasks:');
94
- for (const task of phase.tasks) {
260
+ for (const task of (phase.tasks || [])) {
95
261
  lines.push(` - id: "${task.id}"`);
96
- lines.push(` name: "${task.name}"`);
262
+ lines.push(` name: ${yamlEscapeString(task.name)}`);
97
263
  lines.push(` status: "${task.status}"`);
98
- lines.push(` retry_count: ${task.retryCount}`);
99
- lines.push(` max_retries: ${task.maxRetries}`);
264
+ lines.push(` retry_count: ${task.retryCount ?? 0}`);
265
+ lines.push(` max_retries: ${task.maxRetries ?? 5}`);
100
266
  if (task.testCase) {
101
- lines.push(` test_case: "${task.testCase}"`);
267
+ lines.push(` test_case: ${yamlEscapeString(task.testCase)}`);
102
268
  }
103
269
  if (task.maskUsed) {
104
- lines.push(` mask_used: "${task.maskUsed}"`);
270
+ lines.push(` mask_used: ${yamlEscapeString(task.maskUsed)}`);
105
271
  }
106
272
  if (task.lastError) {
107
- lines.push(` last_error: "${task.lastError.replace(/"/g, '\\"')}"`);
273
+ lines.push(` last_error: ${yamlEscapeString(task.lastError)}`);
108
274
  }
109
275
  }
110
276
  if (phase.dependsOn && phase.dependsOn.length > 0) {
111
277
  lines.push(` depends_on: [${phase.dependsOn.map(d => `"${d}"`).join(', ')}]`);
112
278
  }
113
279
  if (phase.masksUsed && phase.masksUsed.length > 0) {
114
- lines.push(` masks_used: [${phase.masksUsed.map(m => `"${m}"`).join(', ')}]`);
280
+ lines.push(` masks_used: [${phase.masksUsed.map(m => yamlEscapeString(m)).join(', ')}]`);
115
281
  }
116
282
  lines.push('');
117
283
  }
@@ -123,54 +289,80 @@ function serializePlan(plan) {
123
289
  export class PhaseManager {
124
290
  basePath;
125
291
  plan = null;
292
+ /** Recovery messages from the last loadPlan() call. */
293
+ _lastRecoveryMessages = [];
126
294
  constructor(basePath = process.cwd()) {
127
295
  this.basePath = basePath;
128
296
  }
297
+ /**
298
+ * Get recovery messages from the last loadPlan() call.
299
+ * Returns empty array if no recovery was needed.
300
+ */
301
+ getRecoveryMessages() {
302
+ return this._lastRecoveryMessages;
303
+ }
129
304
  /**
130
305
  * Load existing plan or return null.
131
306
  * Supports multi-plan architecture (state.yaml → plans/) with legacy PLAN.yaml fallback.
307
+ * Auto-recovers from .bak backup when YAML is corrupted.
132
308
  */
133
309
  async loadPlan() {
134
- const { parse } = await import('yaml');
310
+ // Track recovery messages for user-facing reporting
311
+ const recoveryMessages = [];
135
312
  // 1. Try new multi-plan architecture: state.yaml → plans/{active_plan}.yaml
136
313
  const statePath = getStatePath(this.basePath);
137
314
  if (fs.existsSync(statePath)) {
138
- try {
139
- const stateContent = fs.readFileSync(statePath, 'utf-8');
140
- const state = parse(stateContent);
141
- const activePlan = state?.active_plan;
142
- if (activePlan) {
143
- const planFilePath = path.join(getPlansDir(this.basePath), `${activePlan}.yaml`);
144
- if (fs.existsSync(planFilePath)) {
145
- const content = fs.readFileSync(planFilePath, 'utf-8');
146
- const raw = parse(content);
147
- this.plan = this.rawToPlan(raw);
315
+ const stateResult = await safeReadYaml(statePath);
316
+ if (stateResult.recovered && stateResult.error) {
317
+ recoveryMessages.push(stateResult.error);
318
+ }
319
+ const activePlan = stateResult.data?.active_plan;
320
+ if (activePlan) {
321
+ const planFilePath = path.join(getPlansDir(this.basePath), `${activePlan}.yaml`);
322
+ const planResult = await safeReadYaml(planFilePath);
323
+ if (planResult.recovered && planResult.error) {
324
+ recoveryMessages.push(planResult.error);
325
+ }
326
+ if (planResult.data) {
327
+ const validated = validatePlanStructure(planResult.data);
328
+ if (validated) {
329
+ this.plan = this.rawToPlan(validated);
330
+ this._lastRecoveryMessages = recoveryMessages;
148
331
  return this.plan;
149
332
  }
150
333
  }
151
334
  }
152
- catch (e) {
153
- console.error('[PhaseManager] Failed to load from state.yaml:', e);
335
+ // If state.yaml existed but we couldn't load a plan, report the error
336
+ if (stateResult.error && !stateResult.recovered) {
337
+ recoveryMessages.push(stateResult.error);
154
338
  }
155
339
  }
156
340
  // 2. Legacy fallback: PLAN.yaml
157
341
  const planPath = getPlanPath(this.basePath);
158
342
  if (!fs.existsSync(planPath)) {
343
+ this._lastRecoveryMessages = recoveryMessages;
159
344
  return null;
160
345
  }
161
- try {
162
- const content = fs.readFileSync(planPath, 'utf-8');
163
- const raw = parse(content);
164
- this.plan = this.rawToPlan(raw);
165
- return this.plan;
346
+ const planResult = await safeReadYaml(planPath);
347
+ if (planResult.recovered && planResult.error) {
348
+ recoveryMessages.push(planResult.error);
166
349
  }
167
- catch (e) {
168
- console.error('[PhaseManager] Failed to load plan:', e);
169
- return null;
350
+ if (planResult.data) {
351
+ const validated = validatePlanStructure(planResult.data);
352
+ if (validated) {
353
+ this.plan = this.rawToPlan(validated);
354
+ this._lastRecoveryMessages = recoveryMessages;
355
+ return this.plan;
356
+ }
357
+ }
358
+ if (planResult.error) {
359
+ recoveryMessages.push(planResult.error);
170
360
  }
361
+ this._lastRecoveryMessages = recoveryMessages;
362
+ return null;
171
363
  }
172
364
  /**
173
- * Save plan to disk.
365
+ * Save plan to disk with atomic writes and automatic backup.
174
366
  * If state.yaml exists (new mode): save to plans/{planName}.yaml and update state.yaml.
175
367
  * Otherwise (legacy mode): save to PLAN.yaml.
176
368
  */
@@ -185,14 +377,14 @@ export class PhaseManager {
185
377
  ensurePlansDir(this.basePath);
186
378
  const planName = this.toPlanFileName(plan.projectName);
187
379
  const planFilePath = path.join(getPlansDir(this.basePath), `${planName}.yaml`);
188
- fs.writeFileSync(planFilePath, content, 'utf-8');
380
+ safeWriteFile(planFilePath, content);
189
381
  // Update state.yaml with active_plan
190
382
  const stateContent = stringify({ active_plan: planName });
191
- fs.writeFileSync(statePath, stateContent, 'utf-8');
383
+ safeWriteFile(statePath, stateContent);
192
384
  }
193
385
  else {
194
386
  // Legacy mode: save to PLAN.yaml
195
- fs.writeFileSync(getPlanPath(this.basePath), content, 'utf-8');
387
+ safeWriteFile(getPlanPath(this.basePath), content);
196
388
  }
197
389
  this.plan = plan;
198
390
  }
@@ -354,6 +546,7 @@ export class PhaseManager {
354
546
  /**
355
547
  * Load all plans from the plans/ directory.
356
548
  * Returns empty array in legacy mode or if no plans exist.
549
+ * Auto-recovers corrupted plan files from backups.
357
550
  */
358
551
  async loadAllPlans() {
359
552
  const plansDir = getPlansDir(this.basePath);
@@ -362,18 +555,23 @@ export class PhaseManager {
362
555
  const legacyPlan = await this.loadPlan();
363
556
  return legacyPlan ? [legacyPlan] : [];
364
557
  }
365
- const { parse } = await import('yaml');
366
558
  const plans = [];
367
559
  try {
368
- const files = fs.readdirSync(plansDir).filter(f => f.endsWith('.yaml'));
560
+ const files = fs.readdirSync(plansDir).filter(f => f.endsWith('.yaml') && !f.endsWith('.bak') && !f.endsWith('.tmp') && !f.endsWith('.corrupted'));
369
561
  for (const file of files) {
370
- try {
371
- const content = fs.readFileSync(path.join(plansDir, file), 'utf-8');
372
- const raw = parse(content);
373
- plans.push(this.rawToPlan(raw));
562
+ const filePath = path.join(plansDir, file);
563
+ const result = await safeReadYaml(filePath);
564
+ if (result.recovered) {
565
+ console.error(`[PhaseManager] Auto-recovered plan ${file} from backup`);
566
+ }
567
+ if (result.data) {
568
+ const validated = validatePlanStructure(result.data);
569
+ if (validated) {
570
+ plans.push(this.rawToPlan(validated));
571
+ }
374
572
  }
375
- catch (e) {
376
- console.error(`[PhaseManager] Failed to load plan ${file}:`, e);
573
+ else if (result.error) {
574
+ console.error(`[PhaseManager] Skipping unrecoverable plan ${file}: ${result.error}`);
377
575
  }
378
576
  }
379
577
  }
@@ -385,41 +583,34 @@ export class PhaseManager {
385
583
  /**
386
584
  * Get the active plan name from state.yaml.
387
585
  * Returns null in legacy mode or if state.yaml doesn't exist.
586
+ * Auto-recovers from backup if corrupted.
388
587
  */
389
588
  async getActivePlanName() {
390
589
  const statePath = getStatePath(this.basePath);
391
590
  if (!fs.existsSync(statePath)) {
392
591
  return null;
393
592
  }
394
- try {
395
- const { parse } = await import('yaml');
396
- const content = fs.readFileSync(statePath, 'utf-8');
397
- const state = parse(content);
398
- return state?.active_plan || null;
399
- }
400
- catch (e) {
401
- console.error('[PhaseManager] Failed to read state.yaml:', e);
402
- return null;
593
+ const result = await safeReadYaml(statePath);
594
+ if (result.recovered) {
595
+ console.error(`[PhaseManager] Auto-recovered state.yaml from backup`);
403
596
  }
597
+ return result.data?.active_plan || null;
404
598
  }
405
599
  /**
406
600
  * Load and return state.yaml content.
407
601
  * Returns null if state.yaml doesn't exist (legacy mode).
602
+ * Auto-recovers from backup if corrupted.
408
603
  */
409
604
  async loadState() {
410
605
  const statePath = getStatePath(this.basePath);
411
606
  if (!fs.existsSync(statePath)) {
412
607
  return null;
413
608
  }
414
- try {
415
- const { parse } = await import('yaml');
416
- const content = fs.readFileSync(statePath, 'utf-8');
417
- return parse(content) || null;
418
- }
419
- catch (e) {
420
- console.error('[PhaseManager] Failed to load state.yaml:', e);
421
- return null;
609
+ const result = await safeReadYaml(statePath);
610
+ if (result.recovered) {
611
+ console.error(`[PhaseManager] Auto-recovered state.yaml from backup`);
422
612
  }
613
+ return result.data || null;
423
614
  }
424
615
  rawToPlan(raw) {
425
616
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"phase-manager.js","sourceRoot":"","sources":["../../src/weave/phase-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phase-manager.js","sourceRoot":"","sources":["../../src/weave/phase-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maskweaver",
3
- "version": "0.7.21",
3
+ "version": "0.7.23",
4
4
  "description": "AI Expert Persona System - Give your AI coding assistant expert personalities (가면술사)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",