@applica-software-guru/sdd-core 1.7.0 → 1.8.0

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.
@@ -1,5 +1,5 @@
1
1
  import type { SDDConfig } from '../types.js';
2
- import type { RemoteDocResponse, RemoteDocBulkResponse, RemoteCRResponse, RemoteCRBulkResponse, RemoteBugResponse, RemoteBugBulkResponse, RemoteResetResult } from './types.js';
2
+ import type { RemoteDocResponse, RemoteDocBulkResponse, RemoteCRResponse, RemoteCRBulkResponse, RemoteBugResponse, RemoteBugBulkResponse, RemoteDeleteResponse, RemoteResetResult } from './types.js';
3
3
  /** Default timeout for remote operations (seconds) */
4
4
  export declare const DEFAULT_REMOTE_TIMEOUT = 300;
5
5
  export interface ApiClientConfig {
@@ -48,6 +48,12 @@ export declare function pushBugs(config: ApiClientConfig, bugs: Array<{
48
48
  severity?: string;
49
49
  id?: string;
50
50
  }>): Promise<RemoteBugBulkResponse>;
51
+ /** POST /cli/delete-docs */
52
+ export declare function deleteDocs(config: ApiClientConfig, paths: string[]): Promise<RemoteDeleteResponse>;
53
+ /** POST /cli/delete-crs */
54
+ export declare function deleteCRs(config: ApiClientConfig, paths: string[]): Promise<RemoteDeleteResponse>;
55
+ /** POST /cli/delete-bugs */
56
+ export declare function deleteBugs(config: ApiClientConfig, paths: string[]): Promise<RemoteDeleteResponse>;
51
57
  /** POST /cli/crs/:crId/applied */
52
58
  export declare function markCRAppliedRemote(config: ApiClientConfig, crId: string): Promise<RemoteCRResponse>;
53
59
  /** POST /cli/bugs/:bugId/resolved */
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/remote/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/remote/api-client.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@ exports.fetchPendingCRs = fetchPendingCRs;
9
9
  exports.pushCRs = pushCRs;
10
10
  exports.fetchOpenBugs = fetchOpenBugs;
11
11
  exports.pushBugs = pushBugs;
12
+ exports.deleteDocs = deleteDocs;
13
+ exports.deleteCRs = deleteCRs;
14
+ exports.deleteBugs = deleteBugs;
12
15
  exports.markCRAppliedRemote = markCRAppliedRemote;
13
16
  exports.markBugResolvedRemote = markBugResolvedRemote;
14
17
  exports.markDocEnriched = markDocEnriched;
@@ -166,6 +169,18 @@ async function fetchOpenBugs(config) {
166
169
  async function pushBugs(config, bugs) {
167
170
  return request(config, 'POST', '/cli/push-bugs', { bugs });
168
171
  }
172
+ /** POST /cli/delete-docs */
173
+ async function deleteDocs(config, paths) {
174
+ return request(config, 'POST', '/cli/delete-docs', { paths });
175
+ }
176
+ /** POST /cli/delete-crs */
177
+ async function deleteCRs(config, paths) {
178
+ return request(config, 'POST', '/cli/delete-crs', { paths });
179
+ }
180
+ /** POST /cli/delete-bugs */
181
+ async function deleteBugs(config, paths) {
182
+ return request(config, 'POST', '/cli/delete-bugs', { paths });
183
+ }
169
184
  /** POST /cli/crs/:crId/applied */
170
185
  async function markCRAppliedRemote(config, crId) {
171
186
  return request(config, 'POST', `/cli/crs/${crId}/applied`);
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/remote/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/remote/api-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../../src/remote/sync-engine.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EAEV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAElB,MAAM,YAAY,CAAC;AA4EpB,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAqJ3F;AAID,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAiExF;AAkBD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsEnG;AAID,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsEpG;AAID,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAUxH;AAID,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6BjG"}
1
+ {"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../../src/remote/sync-engine.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EAEV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAElB,MAAM,YAAY,CAAC;AA4EpB,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAaD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA4M3F;AAID,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA2FxF;AAkBD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsFnG;AAID,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsFpG;AAID,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAexH;AAID,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoCjG"}
@@ -88,6 +88,9 @@ function extractBody(rawMarkdown) {
88
88
  const parsed = (0, gray_matter_1.default)(rawMarkdown);
89
89
  return parsed.content.trim();
90
90
  }
91
+ function isReseedPush(state, options) {
92
+ return state.needsReseed === true && !(options?.paths && options.paths.length > 0);
93
+ }
91
94
  async function pushToRemote(root, options) {
92
95
  const config = await (0, config_manager_js_1.readConfig)(root);
93
96
  const api = (0, api_client_js_1.buildApiConfig)(config, options?.timeout);
@@ -96,6 +99,7 @@ async function pushToRemote(root, options) {
96
99
  state.changeRequests = {};
97
100
  if (!state.bugs)
98
101
  state.bugs = {};
102
+ const reseedPush = isReseedPush(state, options);
99
103
  let totalCreated = 0;
100
104
  let totalUpdated = 0;
101
105
  const allPushed = [];
@@ -104,9 +108,14 @@ async function pushToRemote(root, options) {
104
108
  const toPush = files.filter((f) => {
105
109
  if (options?.paths && options.paths.length > 0)
106
110
  return options.paths.includes(f.relativePath);
111
+ if (reseedPush)
112
+ return true;
107
113
  if (options?.all)
108
114
  return true;
109
- return f.frontmatter.status !== 'synced';
115
+ const tracked = state.documents[normalizePath(f.relativePath)];
116
+ if (!tracked)
117
+ return true;
118
+ return tracked.localHash !== f.hash;
110
119
  });
111
120
  if (toPush.length > 0) {
112
121
  const documents = toPush.map((f) => ({
@@ -116,7 +125,7 @@ async function pushToRemote(root, options) {
116
125
  }));
117
126
  const result = await (0, api_client_js_1.pushDocs)(api, documents);
118
127
  for (const doc of result.documents) {
119
- const localPath = doc.path;
128
+ const localPath = normalizePath(doc.path);
120
129
  const absPath = (0, node_path_1.resolve)(root, localPath);
121
130
  const rawContent = (0, node_fs_1.existsSync)(absPath) ? await (0, promises_1.readFile)(absPath, 'utf-8') : '';
122
131
  state.documents[localPath] = {
@@ -126,29 +135,31 @@ async function pushToRemote(root, options) {
126
135
  lastSynced: new Date().toISOString(),
127
136
  };
128
137
  }
129
- // Mark local files as synced (drafts are excluded — they need AI enrichment first)
130
- for (const f of toPush) {
131
- if (f.frontmatter.status === 'draft')
132
- continue;
133
- const absPath = (0, node_path_1.resolve)(root, f.relativePath);
134
- const content = await (0, promises_1.readFile)(absPath, 'utf-8');
135
- const updated = content.replace(/^status:\s*(new|changed)/m, 'status: synced');
136
- if (updated !== content) {
137
- await (0, promises_1.writeFile)(absPath, updated, 'utf-8');
138
- }
139
- }
140
138
  totalCreated += result.created;
141
139
  totalUpdated += result.updated;
142
140
  allPushed.push(...toPush.map((f) => f.relativePath));
143
141
  }
144
142
  // ── Change Requests ────────────────────────────────────────────────────
145
143
  const crFiles = await (0, cr_parser_js_1.parseAllCRFiles)(root);
144
+ const crHashes = new Map();
145
+ for (const cr of crFiles) {
146
+ const absPath = (0, node_path_1.resolve)(root, cr.relativePath);
147
+ const raw = (0, node_fs_1.existsSync)(absPath) ? await (0, promises_1.readFile)(absPath, 'utf-8') : '';
148
+ crHashes.set(normalizePath(cr.relativePath), sha256(raw));
149
+ }
146
150
  const crsToPush = crFiles.filter((cr) => {
147
151
  if (options?.paths && options.paths.length > 0)
148
152
  return options.paths.includes(cr.relativePath);
153
+ if (reseedPush)
154
+ return true;
149
155
  if (options?.all)
150
156
  return true;
151
- return cr.frontmatter.status !== 'applied';
157
+ const key = normalizePath(cr.relativePath);
158
+ const tracked = state.changeRequests[key];
159
+ const localHash = crHashes.get(key);
160
+ if (!tracked || !localHash)
161
+ return true;
162
+ return tracked.localHash !== localHash;
152
163
  });
153
164
  if (crsToPush.length > 0) {
154
165
  const crPayload = crsToPush.map((cr) => {
@@ -180,12 +191,25 @@ async function pushToRemote(root, options) {
180
191
  }
181
192
  // ── Bugs ───────────────────────────────────────────────────────────────
182
193
  const bugFiles = await (0, bug_parser_js_1.parseAllBugFiles)(root);
194
+ const bugHashes = new Map();
195
+ for (const bug of bugFiles) {
196
+ const absPath = (0, node_path_1.resolve)(root, bug.relativePath);
197
+ const raw = (0, node_fs_1.existsSync)(absPath) ? await (0, promises_1.readFile)(absPath, 'utf-8') : '';
198
+ bugHashes.set(normalizePath(bug.relativePath), sha256(raw));
199
+ }
183
200
  const bugsToPush = bugFiles.filter((bug) => {
184
201
  if (options?.paths && options.paths.length > 0)
185
202
  return options.paths.includes(bug.relativePath);
203
+ if (reseedPush)
204
+ return true;
186
205
  if (options?.all)
187
206
  return true;
188
- return bug.frontmatter.status !== 'resolved';
207
+ const key = normalizePath(bug.relativePath);
208
+ const tracked = state.bugs[key];
209
+ const localHash = bugHashes.get(key);
210
+ if (!tracked || !localHash)
211
+ return true;
212
+ return tracked.localHash !== localHash;
189
213
  });
190
214
  if (bugsToPush.length > 0) {
191
215
  const bugPayload = bugsToPush.map((bug) => {
@@ -215,13 +239,43 @@ async function pushToRemote(root, options) {
215
239
  totalUpdated += bugResult.updated;
216
240
  allPushed.push(...bugsToPush.map((bug) => bug.relativePath));
217
241
  }
242
+ // ── Detect local deletions (tracked in state but missing from disk) ──
243
+ const allDeleted = [];
244
+ const deletedDocPaths = Object.keys(state.documents).filter((p) => !(0, node_fs_1.existsSync)((0, node_path_1.resolve)(root, p)));
245
+ if (deletedDocPaths.length > 0) {
246
+ await (0, api_client_js_1.deleteDocs)(api, deletedDocPaths);
247
+ for (const p of deletedDocPaths) {
248
+ delete state.documents[p];
249
+ }
250
+ allDeleted.push(...deletedDocPaths);
251
+ }
252
+ const deletedCRPaths = Object.keys(state.changeRequests).filter((p) => !(0, node_fs_1.existsSync)((0, node_path_1.resolve)(root, p)));
253
+ if (deletedCRPaths.length > 0) {
254
+ await (0, api_client_js_1.deleteCRs)(api, deletedCRPaths);
255
+ for (const p of deletedCRPaths) {
256
+ delete state.changeRequests[p];
257
+ }
258
+ allDeleted.push(...deletedCRPaths);
259
+ }
260
+ const deletedBugPaths = Object.keys(state.bugs).filter((p) => !(0, node_fs_1.existsSync)((0, node_path_1.resolve)(root, p)));
261
+ if (deletedBugPaths.length > 0) {
262
+ await (0, api_client_js_1.deleteBugs)(api, deletedBugPaths);
263
+ for (const p of deletedBugPaths) {
264
+ delete state.bugs[p];
265
+ }
266
+ allDeleted.push(...deletedBugPaths);
267
+ }
218
268
  // ── Finalize ───────────────────────────────────────────────────────────
219
269
  state.lastPush = new Date().toISOString();
270
+ if (reseedPush) {
271
+ state.needsReseed = false;
272
+ }
220
273
  await (0, state_js_1.writeRemoteState)(root, state);
221
274
  return {
222
275
  created: totalCreated,
223
276
  updated: totalUpdated,
224
277
  pushed: allPushed,
278
+ deleted: allDeleted,
225
279
  };
226
280
  }
227
281
  // ─── Pull Documents ──────────────────────────────────────────────────────
@@ -232,7 +286,35 @@ async function pullFromRemote(root, timeout) {
232
286
  const state = await (0, state_js_1.readRemoteState)(root);
233
287
  const created = [];
234
288
  const updated = [];
289
+ const deleted = [];
235
290
  const conflicts = [];
291
+ // Detect remote deletions: tracked locally but not in remote response
292
+ const remotePathSet = new Set(remoteDocs.map((d) => d.path));
293
+ for (const [localPath, tracked] of Object.entries(state.documents)) {
294
+ if (!remotePathSet.has(localPath)) {
295
+ // File was deleted on remote — check if locally modified
296
+ const absPath = (0, node_path_1.resolve)(root, localPath);
297
+ if ((0, node_fs_1.existsSync)(absPath)) {
298
+ const localRaw = await (0, promises_1.readFile)(absPath, 'utf-8');
299
+ const localHash = sha256(localRaw);
300
+ if (localHash !== tracked.localHash) {
301
+ // Locally modified but deleted on remote → conflict
302
+ conflicts.push({
303
+ path: localPath,
304
+ localVersion: tracked.remoteVersion.toString(),
305
+ remoteVersion: 0,
306
+ reason: 'File modified locally but deleted on remote',
307
+ });
308
+ }
309
+ else {
310
+ // Not modified locally → safe to delete
311
+ await (0, promises_1.unlink)(absPath);
312
+ deleted.push(localPath);
313
+ }
314
+ }
315
+ delete state.documents[localPath];
316
+ }
317
+ }
236
318
  for (const doc of remoteDocs) {
237
319
  const localPath = doc.path;
238
320
  const absPath = (0, node_path_1.resolve)(root, localPath);
@@ -272,9 +354,7 @@ async function pullFromRemote(root, timeout) {
272
354
  }
273
355
  else {
274
356
  // Only remote body changed — surgically replace body, preserve frontmatter
275
- const newStatus = doc.status === 'draft' ? 'draft' : 'synced';
276
- let updatedContent = replaceBody(localRaw, doc.content);
277
- updatedContent = updatedContent.replace(/^status:\s*.+/m, `status: ${newStatus}`);
357
+ const updatedContent = replaceBody(localRaw, doc.content);
278
358
  await (0, promises_1.writeFile)(absPath, updatedContent, 'utf-8');
279
359
  updated.push(localPath);
280
360
  updateDocState(state, doc, localPath, updatedContent);
@@ -283,7 +363,7 @@ async function pullFromRemote(root, timeout) {
283
363
  }
284
364
  state.lastPull = new Date().toISOString();
285
365
  await (0, state_js_1.writeRemoteState)(root, state);
286
- return { created, updated, conflicts };
366
+ return { created, updated, deleted, conflicts };
287
367
  }
288
368
  function updateDocState(state, doc, localPath, markdownContent) {
289
369
  state.documents[localPath] = {
@@ -308,6 +388,23 @@ async function pullCRsFromRemote(root, timeout) {
308
388
  }
309
389
  let created = 0;
310
390
  let updated = 0;
391
+ let deletedCount = 0;
392
+ // Detect remote deletions: tracked locally but not in remote response
393
+ const remoteCRIdSet = new Set(remoteCRs.map((cr) => cr.id));
394
+ for (const [localPath, tracked] of Object.entries(state.changeRequests)) {
395
+ if (!remoteCRIdSet.has(tracked.remoteId)) {
396
+ const absPath = (0, node_path_1.resolve)(root, localPath);
397
+ if ((0, node_fs_1.existsSync)(absPath)) {
398
+ const localRaw = await (0, promises_1.readFile)(absPath, 'utf-8');
399
+ const localHash = sha256(localRaw);
400
+ if (localHash === tracked.localHash) {
401
+ await (0, promises_1.unlink)(absPath);
402
+ deletedCount++;
403
+ }
404
+ }
405
+ delete state.changeRequests[localPath];
406
+ }
407
+ }
311
408
  for (const cr of remoteCRs) {
312
409
  const localPath = cr.path ?? idToPath.get(cr.id) ?? `change-requests/CR-${cr.id.substring(0, 8)}.md`;
313
410
  const absPath = (0, node_path_1.resolve)(root, localPath);
@@ -330,9 +427,7 @@ async function pullCRsFromRemote(root, timeout) {
330
427
  continue;
331
428
  }
332
429
  // Body changed — update body, preserve frontmatter
333
- const newStatus = cr.status === 'draft' ? 'draft' : 'pending';
334
- let updatedContent = replaceBody(localRaw, cr.body);
335
- updatedContent = updatedContent.replace(/^status:\s*.+/m, `status: ${newStatus}`);
430
+ const updatedContent = replaceBody(localRaw, cr.body);
336
431
  await (0, promises_1.writeFile)(absPath, updatedContent, 'utf-8');
337
432
  updated++;
338
433
  state.changeRequests[normalizePath(localPath)] = {
@@ -355,7 +450,7 @@ async function pullCRsFromRemote(root, timeout) {
355
450
  }
356
451
  }
357
452
  await (0, state_js_1.writeRemoteState)(root, state);
358
- return { created, updated };
453
+ return { created, updated, deleted: deletedCount };
359
454
  }
360
455
  // ─── Pull Bugs ───────────────────────────────────────────────────────────
361
456
  async function pullBugsFromRemote(root, timeout) {
@@ -372,6 +467,23 @@ async function pullBugsFromRemote(root, timeout) {
372
467
  }
373
468
  let created = 0;
374
469
  let updated = 0;
470
+ let deletedCount = 0;
471
+ // Detect remote deletions: tracked locally but not in remote response
472
+ const remoteBugIdSet = new Set(remoteBugs.map((b) => b.id));
473
+ for (const [localPath, tracked] of Object.entries(state.bugs)) {
474
+ if (!remoteBugIdSet.has(tracked.remoteId)) {
475
+ const absPath = (0, node_path_1.resolve)(root, localPath);
476
+ if ((0, node_fs_1.existsSync)(absPath)) {
477
+ const localRaw = await (0, promises_1.readFile)(absPath, 'utf-8');
478
+ const localHash = sha256(localRaw);
479
+ if (localHash === tracked.localHash) {
480
+ await (0, promises_1.unlink)(absPath);
481
+ deletedCount++;
482
+ }
483
+ }
484
+ delete state.bugs[localPath];
485
+ }
486
+ }
375
487
  for (const bug of remoteBugs) {
376
488
  const localPath = bug.path ?? idToPath.get(bug.id) ?? `bugs/BUG-${bug.id.substring(0, 8)}.md`;
377
489
  const absPath = (0, node_path_1.resolve)(root, localPath);
@@ -394,9 +506,7 @@ async function pullBugsFromRemote(root, timeout) {
394
506
  continue;
395
507
  }
396
508
  // Body changed — update body, preserve frontmatter
397
- const newStatus = bug.status === 'draft' ? 'draft' : 'open';
398
- let updatedContent = replaceBody(localRaw, bug.body);
399
- updatedContent = updatedContent.replace(/^status:\s*.+/m, `status: ${newStatus}`);
509
+ const updatedContent = replaceBody(localRaw, bug.body);
400
510
  await (0, promises_1.writeFile)(absPath, updatedContent, 'utf-8');
401
511
  updated++;
402
512
  state.bugs[normalizePath(localPath)] = {
@@ -419,15 +529,20 @@ async function pullBugsFromRemote(root, timeout) {
419
529
  }
420
530
  }
421
531
  await (0, state_js_1.writeRemoteState)(root, state);
422
- return { created, updated };
532
+ return { created, updated, deleted: deletedCount };
423
533
  }
424
534
  // ─── Reset Remote ────────────────────────────────────────────────────────
425
535
  async function resetRemoteProject(root, confirmSlug, timeout) {
426
536
  const config = await (0, config_manager_js_1.readConfig)(root);
427
537
  const api = (0, api_client_js_1.buildApiConfig)(config, timeout);
428
538
  const result = await (0, api_client_js_1.resetProject)(api, confirmSlug);
429
- // Clear local remote state so stale mappings don't linger
430
- await (0, state_js_1.writeRemoteState)(root, { documents: {} });
539
+ // Clear local remote state and mark the project for a full reseed on the next push.
540
+ await (0, state_js_1.writeRemoteState)(root, {
541
+ needsReseed: true,
542
+ documents: {},
543
+ changeRequests: {},
544
+ bugs: {},
545
+ });
431
546
  return result;
432
547
  }
433
548
  // ─── Remote Status ───────────────────────────────────────────────────────
@@ -437,7 +552,15 @@ async function getRemoteStatus(root, timeout) {
437
552
  return { configured: false, url: null, connected: false, localPending: 0, remoteDocs: 0 };
438
553
  }
439
554
  const files = await (0, story_parser_js_1.parseAllStoryFiles)(root);
440
- const localPending = files.filter((f) => f.frontmatter.status !== 'synced').length;
555
+ const state = await (0, state_js_1.readRemoteState)(root);
556
+ const localPending = state.needsReseed
557
+ ? files.length
558
+ : files.filter((f) => {
559
+ const tracked = state.documents[normalizePath(f.relativePath)];
560
+ if (!tracked)
561
+ return true;
562
+ return tracked.localHash !== f.hash;
563
+ }).length;
441
564
  try {
442
565
  const api = (0, api_client_js_1.buildApiConfig)(config, timeout);
443
566
  const docs = await (0, api_client_js_1.pullDocs)(api);
@@ -1 +1 @@
1
- {"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../../src/remote/sync-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../../src/remote/sync-engine.ts"],"names":[],"mappings":"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"}
@@ -76,15 +76,22 @@ export interface RemoteEntityState {
76
76
  export interface RemoteState {
77
77
  lastPull?: string;
78
78
  lastPush?: string;
79
+ needsReseed?: boolean;
79
80
  documents: Record<string, RemoteDocState>;
80
81
  changeRequests?: Record<string, RemoteEntityState>;
81
82
  bugs?: Record<string, RemoteEntityState>;
82
83
  }
84
+ /** Response from delete endpoints */
85
+ export interface RemoteDeleteResponse {
86
+ deleted: number;
87
+ paths: string[];
88
+ }
83
89
  /** Result of a push operation */
84
90
  export interface PushResult {
85
91
  created: number;
86
92
  updated: number;
87
93
  pushed: string[];
94
+ deleted: string[];
88
95
  }
89
96
  /** A conflict detected during pull */
90
97
  export interface PullConflict {
@@ -97,12 +104,14 @@ export interface PullConflict {
97
104
  export interface PullResult {
98
105
  created: string[];
99
106
  updated: string[];
107
+ deleted: string[];
100
108
  conflicts: PullConflict[];
101
109
  }
102
110
  /** Result of a pull CRs/Bugs operation */
103
111
  export interface PullEntitiesResult {
104
112
  created: number;
105
113
  updated: number;
114
+ deleted: number;
106
115
  }
107
116
  /** Result of remote status check */
108
117
  export interface RemoteStatusResult {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/remote/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/remote/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applica-software-guru/sdd-core",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "Core library for Story Driven Development",
5
5
  "author": "Bruno Fortunato <bruno.fortunato@applica.guru>",
6
6
  "main": "dist/index.js",
@@ -7,6 +7,7 @@ import type {
7
7
  RemoteCRBulkResponse,
8
8
  RemoteBugResponse,
9
9
  RemoteBugBulkResponse,
10
+ RemoteDeleteResponse,
10
11
  RemoteResetResult,
11
12
  } from './types.js';
12
13
 
@@ -204,6 +205,30 @@ export async function pushBugs(
204
205
  return request<RemoteBugBulkResponse>(config, 'POST', '/cli/push-bugs', { bugs });
205
206
  }
206
207
 
208
+ /** POST /cli/delete-docs */
209
+ export async function deleteDocs(
210
+ config: ApiClientConfig,
211
+ paths: string[],
212
+ ): Promise<RemoteDeleteResponse> {
213
+ return request<RemoteDeleteResponse>(config, 'POST', '/cli/delete-docs', { paths });
214
+ }
215
+
216
+ /** POST /cli/delete-crs */
217
+ export async function deleteCRs(
218
+ config: ApiClientConfig,
219
+ paths: string[],
220
+ ): Promise<RemoteDeleteResponse> {
221
+ return request<RemoteDeleteResponse>(config, 'POST', '/cli/delete-crs', { paths });
222
+ }
223
+
224
+ /** POST /cli/delete-bugs */
225
+ export async function deleteBugs(
226
+ config: ApiClientConfig,
227
+ paths: string[],
228
+ ): Promise<RemoteDeleteResponse> {
229
+ return request<RemoteDeleteResponse>(config, 'POST', '/cli/delete-bugs', { paths });
230
+ }
231
+
207
232
  /** POST /cli/crs/:crId/applied */
208
233
  export async function markCRAppliedRemote(
209
234
  config: ApiClientConfig,
@@ -1,4 +1,4 @@
1
- import { readFile, writeFile, mkdir } from 'node:fs/promises';
1
+ import { readFile, writeFile, mkdir, unlink } from 'node:fs/promises';
2
2
  import { existsSync } from 'node:fs';
3
3
  import { resolve, dirname, posix } from 'node:path';
4
4
  import { createHash } from 'node:crypto';
@@ -8,7 +8,7 @@ import { readConfig } from '../config/config-manager.js';
8
8
  import { parseAllStoryFiles } from '../parser/story-parser.js';
9
9
  import { parseAllCRFiles } from '../parser/cr-parser.js';
10
10
  import { parseAllBugFiles } from '../parser/bug-parser.js';
11
- import { buildApiConfig, pullDocs, pushDocs, pushCRs, pushBugs, fetchPendingCRs, fetchOpenBugs, resetProject } from './api-client.js';
11
+ import { buildApiConfig, pullDocs, pushDocs, pushCRs, pushBugs, deleteDocs, deleteCRs, deleteBugs, fetchPendingCRs, fetchOpenBugs, resetProject } from './api-client.js';
12
12
  import { readRemoteState, writeRemoteState } from './state.js';
13
13
  import type {
14
14
  PushResult,
@@ -100,12 +100,24 @@ export interface PushOptions {
100
100
  timeout?: number;
101
101
  }
102
102
 
103
+ function isReseedPush(state: RemoteStatusTrackingState, options?: PushOptions): boolean {
104
+ return state.needsReseed === true && !(options?.paths && options.paths.length > 0);
105
+ }
106
+
107
+ type RemoteStatusTrackingState = {
108
+ needsReseed?: boolean;
109
+ documents: Record<string, { remoteId: string; remoteVersion: number; localHash: string; lastSynced: string }>;
110
+ changeRequests?: Record<string, { remoteId: string; localHash: string; lastSynced: string }>;
111
+ bugs?: Record<string, { remoteId: string; localHash: string; lastSynced: string }>;
112
+ };
113
+
103
114
  export async function pushToRemote(root: string, options?: PushOptions): Promise<PushResult> {
104
115
  const config = await readConfig(root);
105
116
  const api = buildApiConfig(config, options?.timeout);
106
117
  const state = await readRemoteState(root);
107
118
  if (!state.changeRequests) state.changeRequests = {};
108
119
  if (!state.bugs) state.bugs = {};
120
+ const reseedPush = isReseedPush(state, options);
109
121
 
110
122
  let totalCreated = 0;
111
123
  let totalUpdated = 0;
@@ -115,8 +127,11 @@ export async function pushToRemote(root: string, options?: PushOptions): Promise
115
127
  const files = await parseAllStoryFiles(root);
116
128
  const toPush = files.filter((f) => {
117
129
  if (options?.paths && options.paths.length > 0) return options.paths.includes(f.relativePath);
130
+ if (reseedPush) return true;
118
131
  if (options?.all) return true;
119
- return f.frontmatter.status !== 'synced';
132
+ const tracked = state.documents[normalizePath(f.relativePath)];
133
+ if (!tracked) return true;
134
+ return tracked.localHash !== f.hash;
120
135
  });
121
136
 
122
137
  if (toPush.length > 0) {
@@ -129,7 +144,7 @@ export async function pushToRemote(root: string, options?: PushOptions): Promise
129
144
  const result = await pushDocs(api, documents);
130
145
 
131
146
  for (const doc of result.documents) {
132
- const localPath = doc.path;
147
+ const localPath = normalizePath(doc.path);
133
148
  const absPath = resolve(root, localPath);
134
149
  const rawContent = existsSync(absPath) ? await readFile(absPath, 'utf-8') : '';
135
150
  state.documents[localPath] = {
@@ -140,17 +155,6 @@ export async function pushToRemote(root: string, options?: PushOptions): Promise
140
155
  };
141
156
  }
142
157
 
143
- // Mark local files as synced (drafts are excluded — they need AI enrichment first)
144
- for (const f of toPush) {
145
- if (f.frontmatter.status === 'draft') continue;
146
- const absPath = resolve(root, f.relativePath);
147
- const content = await readFile(absPath, 'utf-8');
148
- const updated = content.replace(/^status:\s*(new|changed)/m, 'status: synced');
149
- if (updated !== content) {
150
- await writeFile(absPath, updated, 'utf-8');
151
- }
152
- }
153
-
154
158
  totalCreated += result.created;
155
159
  totalUpdated += result.updated;
156
160
  allPushed.push(...toPush.map((f) => f.relativePath));
@@ -158,10 +162,21 @@ export async function pushToRemote(root: string, options?: PushOptions): Promise
158
162
 
159
163
  // ── Change Requests ────────────────────────────────────────────────────
160
164
  const crFiles = await parseAllCRFiles(root);
165
+ const crHashes = new Map<string, string>();
166
+ for (const cr of crFiles) {
167
+ const absPath = resolve(root, cr.relativePath);
168
+ const raw = existsSync(absPath) ? await readFile(absPath, 'utf-8') : '';
169
+ crHashes.set(normalizePath(cr.relativePath), sha256(raw));
170
+ }
161
171
  const crsToPush = crFiles.filter((cr) => {
162
172
  if (options?.paths && options.paths.length > 0) return options.paths.includes(cr.relativePath);
173
+ if (reseedPush) return true;
163
174
  if (options?.all) return true;
164
- return cr.frontmatter.status !== 'applied';
175
+ const key = normalizePath(cr.relativePath);
176
+ const tracked = state.changeRequests![key];
177
+ const localHash = crHashes.get(key);
178
+ if (!tracked || !localHash) return true;
179
+ return tracked.localHash !== localHash;
165
180
  });
166
181
 
167
182
  if (crsToPush.length > 0) {
@@ -200,10 +215,21 @@ export async function pushToRemote(root: string, options?: PushOptions): Promise
200
215
 
201
216
  // ── Bugs ───────────────────────────────────────────────────────────────
202
217
  const bugFiles = await parseAllBugFiles(root);
218
+ const bugHashes = new Map<string, string>();
219
+ for (const bug of bugFiles) {
220
+ const absPath = resolve(root, bug.relativePath);
221
+ const raw = existsSync(absPath) ? await readFile(absPath, 'utf-8') : '';
222
+ bugHashes.set(normalizePath(bug.relativePath), sha256(raw));
223
+ }
203
224
  const bugsToPush = bugFiles.filter((bug) => {
204
225
  if (options?.paths && options.paths.length > 0) return options.paths.includes(bug.relativePath);
226
+ if (reseedPush) return true;
205
227
  if (options?.all) return true;
206
- return bug.frontmatter.status !== 'resolved';
228
+ const key = normalizePath(bug.relativePath);
229
+ const tracked = state.bugs![key];
230
+ const localHash = bugHashes.get(key);
231
+ if (!tracked || !localHash) return true;
232
+ return tracked.localHash !== localHash;
207
233
  });
208
234
 
209
235
  if (bugsToPush.length > 0) {
@@ -240,14 +266,54 @@ export async function pushToRemote(root: string, options?: PushOptions): Promise
240
266
  allPushed.push(...bugsToPush.map((bug) => bug.relativePath));
241
267
  }
242
268
 
269
+ // ── Detect local deletions (tracked in state but missing from disk) ──
270
+ const allDeleted: string[] = [];
271
+
272
+ const deletedDocPaths = Object.keys(state.documents).filter(
273
+ (p) => !existsSync(resolve(root, p)),
274
+ );
275
+ if (deletedDocPaths.length > 0) {
276
+ await deleteDocs(api, deletedDocPaths);
277
+ for (const p of deletedDocPaths) {
278
+ delete state.documents[p];
279
+ }
280
+ allDeleted.push(...deletedDocPaths);
281
+ }
282
+
283
+ const deletedCRPaths = Object.keys(state.changeRequests!).filter(
284
+ (p) => !existsSync(resolve(root, p)),
285
+ );
286
+ if (deletedCRPaths.length > 0) {
287
+ await deleteCRs(api, deletedCRPaths);
288
+ for (const p of deletedCRPaths) {
289
+ delete state.changeRequests![p];
290
+ }
291
+ allDeleted.push(...deletedCRPaths);
292
+ }
293
+
294
+ const deletedBugPaths = Object.keys(state.bugs!).filter(
295
+ (p) => !existsSync(resolve(root, p)),
296
+ );
297
+ if (deletedBugPaths.length > 0) {
298
+ await deleteBugs(api, deletedBugPaths);
299
+ for (const p of deletedBugPaths) {
300
+ delete state.bugs![p];
301
+ }
302
+ allDeleted.push(...deletedBugPaths);
303
+ }
304
+
243
305
  // ── Finalize ───────────────────────────────────────────────────────────
244
306
  state.lastPush = new Date().toISOString();
307
+ if (reseedPush) {
308
+ state.needsReseed = false;
309
+ }
245
310
  await writeRemoteState(root, state);
246
311
 
247
312
  return {
248
313
  created: totalCreated,
249
314
  updated: totalUpdated,
250
315
  pushed: allPushed,
316
+ deleted: allDeleted,
251
317
  };
252
318
  }
253
319
 
@@ -262,8 +328,36 @@ export async function pullFromRemote(root: string, timeout?: number): Promise<Pu
262
328
 
263
329
  const created: string[] = [];
264
330
  const updated: string[] = [];
331
+ const deleted: string[] = [];
265
332
  const conflicts: PullConflict[] = [];
266
333
 
334
+ // Detect remote deletions: tracked locally but not in remote response
335
+ const remotePathSet = new Set(remoteDocs.map((d) => d.path));
336
+ for (const [localPath, tracked] of Object.entries(state.documents)) {
337
+ if (!remotePathSet.has(localPath)) {
338
+ // File was deleted on remote — check if locally modified
339
+ const absPath = resolve(root, localPath);
340
+ if (existsSync(absPath)) {
341
+ const localRaw = await readFile(absPath, 'utf-8');
342
+ const localHash = sha256(localRaw);
343
+ if (localHash !== tracked.localHash) {
344
+ // Locally modified but deleted on remote → conflict
345
+ conflicts.push({
346
+ path: localPath,
347
+ localVersion: tracked.remoteVersion.toString(),
348
+ remoteVersion: 0,
349
+ reason: 'File modified locally but deleted on remote',
350
+ });
351
+ } else {
352
+ // Not modified locally → safe to delete
353
+ await unlink(absPath);
354
+ deleted.push(localPath);
355
+ }
356
+ }
357
+ delete state.documents[localPath];
358
+ }
359
+ }
360
+
267
361
  for (const doc of remoteDocs) {
268
362
  const localPath = doc.path;
269
363
  const absPath = resolve(root, localPath);
@@ -304,9 +398,7 @@ export async function pullFromRemote(root: string, timeout?: number): Promise<Pu
304
398
  });
305
399
  } else {
306
400
  // Only remote body changed — surgically replace body, preserve frontmatter
307
- const newStatus = doc.status === 'draft' ? 'draft' : 'synced';
308
- let updatedContent = replaceBody(localRaw, doc.content);
309
- updatedContent = updatedContent.replace(/^status:\s*.+/m, `status: ${newStatus}`);
401
+ const updatedContent = replaceBody(localRaw, doc.content);
310
402
  await writeFile(absPath, updatedContent, 'utf-8');
311
403
  updated.push(localPath);
312
404
  updateDocState(state, doc, localPath, updatedContent);
@@ -317,7 +409,7 @@ export async function pullFromRemote(root: string, timeout?: number): Promise<Pu
317
409
  state.lastPull = new Date().toISOString();
318
410
  await writeRemoteState(root, state);
319
411
 
320
- return { created, updated, conflicts };
412
+ return { created, updated, deleted, conflicts };
321
413
  }
322
414
 
323
415
  function updateDocState(
@@ -352,6 +444,24 @@ export async function pullCRsFromRemote(root: string, timeout?: number): Promise
352
444
 
353
445
  let created = 0;
354
446
  let updated = 0;
447
+ let deletedCount = 0;
448
+
449
+ // Detect remote deletions: tracked locally but not in remote response
450
+ const remoteCRIdSet = new Set(remoteCRs.map((cr) => cr.id));
451
+ for (const [localPath, tracked] of Object.entries(state.changeRequests!)) {
452
+ if (!remoteCRIdSet.has(tracked.remoteId)) {
453
+ const absPath = resolve(root, localPath);
454
+ if (existsSync(absPath)) {
455
+ const localRaw = await readFile(absPath, 'utf-8');
456
+ const localHash = sha256(localRaw);
457
+ if (localHash === tracked.localHash) {
458
+ await unlink(absPath);
459
+ deletedCount++;
460
+ }
461
+ }
462
+ delete state.changeRequests![localPath];
463
+ }
464
+ }
355
465
 
356
466
  for (const cr of remoteCRs) {
357
467
  const localPath = cr.path ?? idToPath.get(cr.id) ?? `change-requests/CR-${cr.id.substring(0, 8)}.md`;
@@ -378,9 +488,7 @@ export async function pullCRsFromRemote(root: string, timeout?: number): Promise
378
488
  }
379
489
 
380
490
  // Body changed — update body, preserve frontmatter
381
- const newStatus = cr.status === 'draft' ? 'draft' : 'pending';
382
- let updatedContent = replaceBody(localRaw, cr.body);
383
- updatedContent = updatedContent.replace(/^status:\s*.+/m, `status: ${newStatus}`);
491
+ const updatedContent = replaceBody(localRaw, cr.body);
384
492
  await writeFile(absPath, updatedContent, 'utf-8');
385
493
  updated++;
386
494
 
@@ -405,7 +513,7 @@ export async function pullCRsFromRemote(root: string, timeout?: number): Promise
405
513
  }
406
514
 
407
515
  await writeRemoteState(root, state);
408
- return { created, updated };
516
+ return { created, updated, deleted: deletedCount };
409
517
  }
410
518
 
411
519
  // ─── Pull Bugs ───────────────────────────────────────────────────────────
@@ -426,6 +534,24 @@ export async function pullBugsFromRemote(root: string, timeout?: number): Promis
426
534
 
427
535
  let created = 0;
428
536
  let updated = 0;
537
+ let deletedCount = 0;
538
+
539
+ // Detect remote deletions: tracked locally but not in remote response
540
+ const remoteBugIdSet = new Set(remoteBugs.map((b) => b.id));
541
+ for (const [localPath, tracked] of Object.entries(state.bugs!)) {
542
+ if (!remoteBugIdSet.has(tracked.remoteId)) {
543
+ const absPath = resolve(root, localPath);
544
+ if (existsSync(absPath)) {
545
+ const localRaw = await readFile(absPath, 'utf-8');
546
+ const localHash = sha256(localRaw);
547
+ if (localHash === tracked.localHash) {
548
+ await unlink(absPath);
549
+ deletedCount++;
550
+ }
551
+ }
552
+ delete state.bugs![localPath];
553
+ }
554
+ }
429
555
 
430
556
  for (const bug of remoteBugs) {
431
557
  const localPath = bug.path ?? idToPath.get(bug.id) ?? `bugs/BUG-${bug.id.substring(0, 8)}.md`;
@@ -452,9 +578,7 @@ export async function pullBugsFromRemote(root: string, timeout?: number): Promis
452
578
  }
453
579
 
454
580
  // Body changed — update body, preserve frontmatter
455
- const newStatus = bug.status === 'draft' ? 'draft' : 'open';
456
- let updatedContent = replaceBody(localRaw, bug.body);
457
- updatedContent = updatedContent.replace(/^status:\s*.+/m, `status: ${newStatus}`);
581
+ const updatedContent = replaceBody(localRaw, bug.body);
458
582
  await writeFile(absPath, updatedContent, 'utf-8');
459
583
  updated++;
460
584
 
@@ -479,7 +603,7 @@ export async function pullBugsFromRemote(root: string, timeout?: number): Promis
479
603
  }
480
604
 
481
605
  await writeRemoteState(root, state);
482
- return { created, updated };
606
+ return { created, updated, deleted: deletedCount };
483
607
  }
484
608
 
485
609
  // ─── Reset Remote ────────────────────────────────────────────────────────
@@ -490,8 +614,13 @@ export async function resetRemoteProject(root: string, confirmSlug: string, time
490
614
 
491
615
  const result = await resetProject(api, confirmSlug);
492
616
 
493
- // Clear local remote state so stale mappings don't linger
494
- await writeRemoteState(root, { documents: {} });
617
+ // Clear local remote state and mark the project for a full reseed on the next push.
618
+ await writeRemoteState(root, {
619
+ needsReseed: true,
620
+ documents: {},
621
+ changeRequests: {},
622
+ bugs: {},
623
+ });
495
624
 
496
625
  return result;
497
626
  }
@@ -506,7 +635,14 @@ export async function getRemoteStatus(root: string, timeout?: number): Promise<R
506
635
  }
507
636
 
508
637
  const files = await parseAllStoryFiles(root);
509
- const localPending = files.filter((f) => f.frontmatter.status !== 'synced').length;
638
+ const state = await readRemoteState(root);
639
+ const localPending = state.needsReseed
640
+ ? files.length
641
+ : files.filter((f) => {
642
+ const tracked = state.documents[normalizePath(f.relativePath)];
643
+ if (!tracked) return true;
644
+ return tracked.localHash !== f.hash;
645
+ }).length;
510
646
 
511
647
  try {
512
648
  const api = buildApiConfig(config, timeout);
@@ -84,16 +84,24 @@ export interface RemoteEntityState {
84
84
  export interface RemoteState {
85
85
  lastPull?: string;
86
86
  lastPush?: string;
87
+ needsReseed?: boolean;
87
88
  documents: Record<string, RemoteDocState>;
88
89
  changeRequests?: Record<string, RemoteEntityState>;
89
90
  bugs?: Record<string, RemoteEntityState>;
90
91
  }
91
92
 
93
+ /** Response from delete endpoints */
94
+ export interface RemoteDeleteResponse {
95
+ deleted: number;
96
+ paths: string[];
97
+ }
98
+
92
99
  /** Result of a push operation */
93
100
  export interface PushResult {
94
101
  created: number;
95
102
  updated: number;
96
103
  pushed: string[];
104
+ deleted: string[];
97
105
  }
98
106
 
99
107
  /** A conflict detected during pull */
@@ -108,6 +116,7 @@ export interface PullConflict {
108
116
  export interface PullResult {
109
117
  created: string[];
110
118
  updated: string[];
119
+ deleted: string[];
111
120
  conflicts: PullConflict[];
112
121
  }
113
122
 
@@ -115,6 +124,7 @@ export interface PullResult {
115
124
  export interface PullEntitiesResult {
116
125
  created: number;
117
126
  updated: number;
127
+ deleted: number;
118
128
  }
119
129
 
120
130
  /** Result of remote status check */
@@ -4,6 +4,7 @@ import { existsSync } from 'node:fs';
4
4
  import { tmpdir } from 'node:os';
5
5
  import { join } from 'node:path';
6
6
  import { execSync } from 'node:child_process';
7
+ import { createHash } from 'node:crypto';
7
8
  import { SDD } from '../src/sdd.js';
8
9
  import { readRemoteState } from '../src/remote/state.js';
9
10
  import type { RemoteDocResponse, RemoteDocBulkResponse, RemoteCRResponse, RemoteBugResponse } from '../src/remote/types.js';
@@ -12,6 +13,10 @@ function git(cmd: string, cwd: string): string {
12
13
  return execSync(`git ${cmd}`, { cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
13
14
  }
14
15
 
16
+ function sha256(content: string): string {
17
+ return createHash('sha256').update(content, 'utf-8').digest('hex');
18
+ }
19
+
15
20
  const VISION_MD = `---
16
21
  title: "Product Vision"
17
22
  status: new
@@ -43,6 +48,67 @@ function makeDocResponse(overrides: Partial<RemoteDocResponse> = {}): RemoteDocR
43
48
  };
44
49
  }
45
50
 
51
+ function makeCRResponse(overrides: Partial<RemoteCRResponse> = {}): RemoteCRResponse {
52
+ return {
53
+ id: 'cr-001',
54
+ project_id: 'proj-001',
55
+ path: 'change-requests/CR-001.md',
56
+ title: 'Add auth flow',
57
+ body: '## Description\n\nAdd JWT authentication.\n',
58
+ status: 'pending',
59
+ author_id: 'user-1',
60
+ assignee_id: null,
61
+ target_files: null,
62
+ closed_at: null,
63
+ created_at: '2026-01-01T00:00:00.000Z',
64
+ updated_at: '2026-01-01T00:00:00.000Z',
65
+ ...overrides,
66
+ };
67
+ }
68
+
69
+ function makeBugResponse(overrides: Partial<RemoteBugResponse> = {}): RemoteBugResponse {
70
+ return {
71
+ id: 'bug-001',
72
+ project_id: 'proj-001',
73
+ path: 'bugs/BUG-001.md',
74
+ title: 'Search returns stale results',
75
+ body: '## Steps\n\n1. Search for a term\n2. Results are outdated\n',
76
+ status: 'open',
77
+ severity: 'major',
78
+ author_id: 'user-1',
79
+ assignee_id: null,
80
+ closed_at: null,
81
+ created_at: '2026-02-01T00:00:00.000Z',
82
+ updated_at: '2026-02-01T00:00:00.000Z',
83
+ ...overrides,
84
+ };
85
+ }
86
+
87
+ const APPLIED_CR = `---
88
+ title: "Add auth flow"
89
+ status: applied
90
+ author: "user"
91
+ created-at: "2026-01-01T00:00:00.000Z"
92
+ ---
93
+
94
+ ## Description
95
+
96
+ Add JWT authentication.
97
+ `;
98
+
99
+ const RESOLVED_BUG = `---
100
+ title: "Search returns stale results"
101
+ status: resolved
102
+ author: "user"
103
+ created-at: "2026-02-01T00:00:00.000Z"
104
+ ---
105
+
106
+ ## Steps
107
+
108
+ 1. Search for a term
109
+ 2. Results are outdated
110
+ `;
111
+
46
112
  describe('Sync engine - push', () => {
47
113
  let tempDir: string;
48
114
  let sdd: SDD;
@@ -67,7 +133,7 @@ describe('Sync engine - push', () => {
67
133
  await rm(tempDir, { recursive: true });
68
134
  });
69
135
 
70
- it('pushes pending files and marks them synced', async () => {
136
+ it('pushes pending files and preserves local frontmatter status', async () => {
71
137
  await writeFile(join(tempDir, 'product/vision.md'), VISION_MD, 'utf-8');
72
138
 
73
139
  const pushResponse: RemoteDocBulkResponse = {
@@ -87,9 +153,9 @@ describe('Sync engine - push', () => {
87
153
  expect(result.updated).toBe(0);
88
154
  expect(result.pushed).toContain('product/vision.md');
89
155
 
90
- // Local file should now be synced
156
+ // Push should not mutate markdown frontmatter status
91
157
  const content = await readFile(join(tempDir, 'product/vision.md'), 'utf-8');
92
- expect(content).toContain('status: synced');
158
+ expect(content).toContain('status: new');
93
159
 
94
160
  // Remote state should be updated
95
161
  const state = await readRemoteState(tempDir);
@@ -101,6 +167,20 @@ describe('Sync engine - push', () => {
101
167
  it('skips synced files when no paths specified', async () => {
102
168
  await writeFile(join(tempDir, 'product/vision.md'), VISION_SYNCED, 'utf-8');
103
169
 
170
+ const { writeRemoteState } = await import('../src/remote/state.js');
171
+ await writeRemoteState(tempDir, {
172
+ documents: {
173
+ 'product/vision.md': {
174
+ remoteId: 'doc-001',
175
+ remoteVersion: 1,
176
+ localHash: sha256(VISION_SYNCED),
177
+ lastSynced: '2026-01-01T00:00:00.000Z',
178
+ },
179
+ },
180
+ changeRequests: {},
181
+ bugs: {},
182
+ });
183
+
104
184
  const result = await sdd.push();
105
185
  expect(result.pushed).toHaveLength(0);
106
186
  });
@@ -123,6 +203,77 @@ describe('Sync engine - push', () => {
123
203
  expect(result.pushed).toContain('product/vision.md');
124
204
  expect(result.updated).toBe(1);
125
205
  });
206
+
207
+ it('repopulates remote from local files after a remote reset', async () => {
208
+ await writeFile(join(tempDir, 'product/vision.md'), VISION_SYNCED, 'utf-8');
209
+ await mkdir(join(tempDir, 'change-requests'), { recursive: true });
210
+ await writeFile(join(tempDir, 'change-requests/CR-001.md'), APPLIED_CR, 'utf-8');
211
+ await mkdir(join(tempDir, 'bugs'), { recursive: true });
212
+ await writeFile(join(tempDir, 'bugs/BUG-001.md'), RESOLVED_BUG, 'utf-8');
213
+
214
+ globalThis.fetch = vi.fn()
215
+ .mockResolvedValueOnce({
216
+ ok: true,
217
+ status: 200,
218
+ json: async () => ({
219
+ message: 'Remote project reset.',
220
+ deleted_documents: 4,
221
+ deleted_change_requests: 2,
222
+ deleted_bugs: 1,
223
+ deleted_comments: 0,
224
+ deleted_notifications: 0,
225
+ }),
226
+ })
227
+ .mockResolvedValueOnce({
228
+ ok: true,
229
+ status: 200,
230
+ json: async () => ({
231
+ created: 1,
232
+ updated: 0,
233
+ documents: [makeDocResponse()],
234
+ }),
235
+ })
236
+ .mockResolvedValueOnce({
237
+ ok: true,
238
+ status: 200,
239
+ json: async () => ({
240
+ created: 1,
241
+ updated: 0,
242
+ change_requests: [makeCRResponse()],
243
+ }),
244
+ })
245
+ .mockResolvedValueOnce({
246
+ ok: true,
247
+ status: 200,
248
+ json: async () => ({
249
+ created: 1,
250
+ updated: 0,
251
+ bugs: [makeBugResponse()],
252
+ }),
253
+ });
254
+
255
+ await sdd.remoteReset('test-project');
256
+
257
+ const resetState = await readRemoteState(tempDir);
258
+ expect(resetState.needsReseed).toBe(true);
259
+ expect(resetState.documents).toEqual({});
260
+ expect(resetState.changeRequests).toEqual({});
261
+ expect(resetState.bugs).toEqual({});
262
+
263
+ const result = await sdd.push();
264
+
265
+ expect(result.created).toBe(3);
266
+ expect(result.updated).toBe(0);
267
+ expect(result.pushed).toContain('product/vision.md');
268
+ expect(result.pushed).toContain('change-requests/CR-001.md');
269
+ expect(result.pushed).toContain('bugs/BUG-001.md');
270
+
271
+ const state = await readRemoteState(tempDir);
272
+ expect(state.needsReseed).toBe(false);
273
+ expect(state.documents['product/vision.md']?.remoteId).toBe('doc-001');
274
+ expect(state.changeRequests?.['change-requests/CR-001.md']?.remoteId).toBe('cr-001');
275
+ expect(state.bugs?.['bugs/BUG-001.md']?.remoteId).toBe('bug-001');
276
+ });
126
277
  });
127
278
 
128
279
  describe('Sync engine - pull', () => {
@@ -505,9 +656,9 @@ Easypick is a marketplace for on-demand services.
505
656
  });
506
657
  await sdd.push();
507
658
 
508
- // Read file after push (status changed to synced)
659
+ // Read file after push (status is preserved)
509
660
  const afterPush = await readFile(join(tempDir, 'product/vision.md'), 'utf-8');
510
- expect(afterPush).toContain('status: synced');
661
+ expect(afterPush).toContain('status: new');
511
662
 
512
663
  // Pull — server returns same content, higher version
513
664
  globalThis.fetch = vi.fn().mockResolvedValue({