emdash-emit 0.1.17 → 0.1.25

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.
Files changed (216) hide show
  1. package/CHANGELOG.md +152 -0
  2. package/README.md +22 -11
  3. package/dist/cli/commands/new.d.ts.map +1 -1
  4. package/dist/cli/commands/new.js +30 -0
  5. package/dist/cli/commands/new.js.map +1 -1
  6. package/dist/cli/commands/pull.d.ts +2 -10
  7. package/dist/cli/commands/pull.d.ts.map +1 -1
  8. package/dist/cli/commands/pull.js +12 -30
  9. package/dist/cli/commands/pull.js.map +1 -1
  10. package/dist/cli/commands/status.d.ts.map +1 -1
  11. package/dist/cli/commands/status.js +7 -2
  12. package/dist/cli/commands/status.js.map +1 -1
  13. package/dist/client/api.d.ts +20 -0
  14. package/dist/client/api.d.ts.map +1 -1
  15. package/dist/client/api.js +89 -0
  16. package/dist/client/api.js.map +1 -1
  17. package/dist/client/auth.d.ts.map +1 -1
  18. package/dist/client/auth.js +2 -1
  19. package/dist/client/auth.js.map +1 -1
  20. package/dist/client/endpoints.d.ts +19 -0
  21. package/dist/client/endpoints.d.ts.map +1 -0
  22. package/dist/client/endpoints.js +69 -0
  23. package/dist/client/endpoints.js.map +1 -0
  24. package/dist/client/http.d.ts +4 -2
  25. package/dist/client/http.d.ts.map +1 -1
  26. package/dist/client/http.js.map +1 -1
  27. package/dist/client/lock.d.ts.map +1 -1
  28. package/dist/client/lock.js +4 -3
  29. package/dist/client/lock.js.map +1 -1
  30. package/dist/client/mapper.d.ts.map +1 -1
  31. package/dist/client/mapper.js +5 -3
  32. package/dist/client/mapper.js.map +1 -1
  33. package/dist/client/media-id.d.ts +2 -0
  34. package/dist/client/media-id.d.ts.map +1 -0
  35. package/dist/client/media-id.js +23 -0
  36. package/dist/client/media-id.js.map +1 -0
  37. package/dist/client/media.d.ts +8 -7
  38. package/dist/client/media.d.ts.map +1 -1
  39. package/dist/client/media.js +58 -17
  40. package/dist/client/media.js.map +1 -1
  41. package/dist/db/baseline.d.ts +38 -0
  42. package/dist/db/baseline.d.ts.map +1 -0
  43. package/dist/db/baseline.js +74 -0
  44. package/dist/db/baseline.js.map +1 -0
  45. package/dist/db/cache.d.ts +8 -2
  46. package/dist/db/cache.d.ts.map +1 -1
  47. package/dist/db/cache.js +24 -2
  48. package/dist/db/cache.js.map +1 -1
  49. package/dist/index.d.ts +4 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +4 -0
  52. package/dist/index.js.map +1 -1
  53. package/dist/mcp/tools/sync-new.d.ts.map +1 -1
  54. package/dist/mcp/tools/sync-new.js +42 -1
  55. package/dist/mcp/tools/sync-new.js.map +1 -1
  56. package/dist/mcp/tools/sync-pull.d.ts.map +1 -1
  57. package/dist/mcp/tools/sync-pull.js +15 -2
  58. package/dist/mcp/tools/sync-pull.js.map +1 -1
  59. package/dist/mcp/tools/sync-status.d.ts.map +1 -1
  60. package/dist/mcp/tools/sync-status.js +1 -0
  61. package/dist/mcp/tools/sync-status.js.map +1 -1
  62. package/dist/presentation/article_report.d.ts +40 -0
  63. package/dist/presentation/article_report.d.ts.map +1 -0
  64. package/dist/presentation/article_report.js +80 -0
  65. package/dist/presentation/article_report.js.map +1 -0
  66. package/dist/sync/bylines.d.ts.map +1 -1
  67. package/dist/sync/bylines.js +2 -1
  68. package/dist/sync/bylines.js.map +1 -1
  69. package/dist/sync/conflicts.js +1 -1
  70. package/dist/sync/conflicts.js.map +1 -1
  71. package/dist/sync/delete.d.ts +0 -5
  72. package/dist/sync/delete.d.ts.map +1 -1
  73. package/dist/sync/delete.js +5 -11
  74. package/dist/sync/delete.js.map +1 -1
  75. package/dist/sync/diff.d.ts.map +1 -1
  76. package/dist/sync/diff.js +13 -9
  77. package/dist/sync/diff.js.map +1 -1
  78. package/dist/sync/doctor.d.ts.map +1 -1
  79. package/dist/sync/doctor.js +11 -14
  80. package/dist/sync/doctor.js.map +1 -1
  81. package/dist/sync/guards.d.ts +5 -0
  82. package/dist/sync/guards.d.ts.map +1 -1
  83. package/dist/sync/guards.js +62 -1
  84. package/dist/sync/guards.js.map +1 -1
  85. package/dist/sync/media/body_scan.d.ts.map +1 -1
  86. package/dist/sync/media/body_scan.js +9 -3
  87. package/dist/sync/media/body_scan.js.map +1 -1
  88. package/dist/sync/media/companions.d.ts +2 -9
  89. package/dist/sync/media/companions.d.ts.map +1 -1
  90. package/dist/sync/media/companions.js +5 -23
  91. package/dist/sync/media/companions.js.map +1 -1
  92. package/dist/sync/media/mirror_item.d.ts.map +1 -1
  93. package/dist/sync/media/mirror_item.js +33 -21
  94. package/dist/sync/media/mirror_item.js.map +1 -1
  95. package/dist/sync/media/pull_article.d.ts.map +1 -1
  96. package/dist/sync/media/pull_article.js +3 -2
  97. package/dist/sync/media/pull_article.js.map +1 -1
  98. package/dist/sync/media/pull_library.d.ts.map +1 -1
  99. package/dist/sync/media/pull_library.js +16 -11
  100. package/dist/sync/media/pull_library.js.map +1 -1
  101. package/dist/sync/media/remote_index.d.ts.map +1 -1
  102. package/dist/sync/media/remote_index.js +2 -1
  103. package/dist/sync/media/remote_index.js.map +1 -1
  104. package/dist/sync/media/types.d.ts +4 -3
  105. package/dist/sync/media/types.d.ts.map +1 -1
  106. package/dist/sync/media/types.js.map +1 -1
  107. package/dist/sync/merge.d.ts +1 -1
  108. package/dist/sync/merge.d.ts.map +1 -1
  109. package/dist/sync/merge.js +50 -17
  110. package/dist/sync/merge.js.map +1 -1
  111. package/dist/sync/new.d.ts +11 -0
  112. package/dist/sync/new.d.ts.map +1 -1
  113. package/dist/sync/new.js +81 -4
  114. package/dist/sync/new.js.map +1 -1
  115. package/dist/sync/preflight.d.ts +10 -2
  116. package/dist/sync/preflight.d.ts.map +1 -1
  117. package/dist/sync/preflight.js +119 -17
  118. package/dist/sync/preflight.js.map +1 -1
  119. package/dist/sync/pull.d.ts +6 -44
  120. package/dist/sync/pull.d.ts.map +1 -1
  121. package/dist/sync/pull.js +154 -207
  122. package/dist/sync/pull.js.map +1 -1
  123. package/dist/sync/push/commit.d.ts +61 -0
  124. package/dist/sync/push/commit.d.ts.map +1 -0
  125. package/dist/sync/push/commit.js +258 -0
  126. package/dist/sync/push/commit.js.map +1 -0
  127. package/dist/sync/push/guards.d.ts +33 -0
  128. package/dist/sync/push/guards.d.ts.map +1 -0
  129. package/dist/sync/push/guards.js +110 -0
  130. package/dist/sync/push/guards.js.map +1 -0
  131. package/dist/sync/push/index.d.ts +9 -0
  132. package/dist/sync/push/index.d.ts.map +1 -0
  133. package/dist/sync/push/index.js +372 -0
  134. package/dist/sync/push/index.js.map +1 -0
  135. package/dist/sync/push/media_stage.d.ts +56 -0
  136. package/dist/sync/push/media_stage.d.ts.map +1 -0
  137. package/dist/sync/push/media_stage.js +338 -0
  138. package/dist/sync/push/media_stage.js.map +1 -0
  139. package/dist/sync/push/merge_stage.d.ts +37 -0
  140. package/dist/sync/push/merge_stage.d.ts.map +1 -0
  141. package/dist/sync/push/merge_stage.js +257 -0
  142. package/dist/sync/push/merge_stage.js.map +1 -0
  143. package/dist/sync/push/preflight_stage.d.ts +6 -0
  144. package/dist/sync/push/preflight_stage.d.ts.map +1 -0
  145. package/dist/sync/push/preflight_stage.js +40 -0
  146. package/dist/sync/push/preflight_stage.js.map +1 -0
  147. package/dist/sync/push/tax_audit.d.ts +24 -0
  148. package/dist/sync/push/tax_audit.d.ts.map +1 -0
  149. package/dist/sync/push/tax_audit.js +70 -0
  150. package/dist/sync/push/tax_audit.js.map +1 -0
  151. package/dist/sync/push/taxonomy_plan.d.ts +36 -0
  152. package/dist/sync/push/taxonomy_plan.d.ts.map +1 -0
  153. package/dist/sync/push/taxonomy_plan.js +136 -0
  154. package/dist/sync/push/taxonomy_plan.js.map +1 -0
  155. package/dist/sync/push/transport.d.ts +14 -0
  156. package/dist/sync/push/transport.d.ts.map +1 -0
  157. package/dist/sync/push/transport.js +74 -0
  158. package/dist/sync/push/transport.js.map +1 -0
  159. package/dist/sync/push/types.d.ts +62 -0
  160. package/dist/sync/push/types.d.ts.map +1 -0
  161. package/dist/sync/push/types.js +23 -0
  162. package/dist/sync/push/types.js.map +1 -0
  163. package/dist/sync/push.d.ts +2 -57
  164. package/dist/sync/push.d.ts.map +1 -1
  165. package/dist/sync/push.js +2 -1184
  166. package/dist/sync/push.js.map +1 -1
  167. package/dist/sync/status.d.ts +3 -0
  168. package/dist/sync/status.d.ts.map +1 -1
  169. package/dist/sync/status.js +18 -8
  170. package/dist/sync/status.js.map +1 -1
  171. package/dist/sync/taxonomies.d.ts.map +1 -1
  172. package/dist/sync/taxonomies.js +21 -9
  173. package/dist/sync/taxonomies.js.map +1 -1
  174. package/dist/sync/terms.d.ts.map +1 -1
  175. package/dist/sync/terms.js +2 -1
  176. package/dist/sync/terms.js.map +1 -1
  177. package/dist/sync/workspace/commit.d.ts +46 -0
  178. package/dist/sync/workspace/commit.d.ts.map +1 -0
  179. package/dist/sync/workspace/commit.js +85 -0
  180. package/dist/sync/workspace/commit.js.map +1 -0
  181. package/dist/sync/workspace/index.d.ts +42 -0
  182. package/dist/sync/workspace/index.d.ts.map +1 -0
  183. package/dist/sync/workspace/index.js +125 -0
  184. package/dist/sync/workspace/index.js.map +1 -0
  185. package/dist/utils/disk-spelling.d.ts +26 -0
  186. package/dist/utils/disk-spelling.d.ts.map +1 -0
  187. package/dist/utils/disk-spelling.js +51 -0
  188. package/dist/utils/disk-spelling.js.map +1 -0
  189. package/dist/utils/draft-revision.d.ts +15 -0
  190. package/dist/utils/draft-revision.d.ts.map +1 -0
  191. package/dist/utils/draft-revision.js +36 -0
  192. package/dist/utils/draft-revision.js.map +1 -0
  193. package/dist/utils/frontmatter.d.ts +21 -2
  194. package/dist/utils/frontmatter.d.ts.map +1 -1
  195. package/dist/utils/frontmatter.js +71 -10
  196. package/dist/utils/frontmatter.js.map +1 -1
  197. package/dist/utils/media-body-refs.d.ts +24 -0
  198. package/dist/utils/media-body-refs.d.ts.map +1 -1
  199. package/dist/utils/media-body-refs.js +51 -0
  200. package/dist/utils/media-body-refs.js.map +1 -1
  201. package/dist/utils/media-companion.d.ts +13 -0
  202. package/dist/utils/media-companion.d.ts.map +1 -0
  203. package/dist/utils/media-companion.js +42 -0
  204. package/dist/utils/media-companion.js.map +1 -0
  205. package/dist/utils/media-id.d.ts +46 -0
  206. package/dist/utils/media-id.d.ts.map +1 -0
  207. package/dist/utils/media-id.js +84 -0
  208. package/dist/utils/media-id.js.map +1 -0
  209. package/dist/utils/naming.d.ts.map +1 -1
  210. package/dist/utils/naming.js +3 -2
  211. package/dist/utils/naming.js.map +1 -1
  212. package/dist/utils/ulid.d.ts +31 -0
  213. package/dist/utils/ulid.d.ts.map +1 -0
  214. package/dist/utils/ulid.js +65 -0
  215. package/dist/utils/ulid.js.map +1 -0
  216. package/package.json +1 -1
package/dist/sync/pull.js CHANGED
@@ -21,36 +21,20 @@
21
21
  */
22
22
  import fs from 'node:fs';
23
23
  import path from 'node:path';
24
- import crypto from 'node:crypto';
25
24
  import { apiResponseToLocal } from '../client/mapper.js';
26
25
  import { ApiError } from '../client/error.js';
27
26
  import { createAuthedFetch } from '../client/http.js';
28
- import { unwrapEnvelope, extractRev, normalizeRev } from '../client/api.js';
29
- import { computeArticleRelativePath, extractDatePrefixFromPath, parseMarkdown, serializeMarkdown, lenientRepairMarkdownFrontmatter, } from '../utils/frontmatter.js';
30
- import { extractUlidFromFilename } from '../utils/naming.js';
31
- import { isLocalMediaRef, localizeArticleMediaRefs } from '../utils/media-body-refs.js';
27
+ import { unwrapEnvelope, unwrapItem, extractRev, extractComparisonRev, isSameRev, } from '../client/api.js';
28
+ import { articleContentEndpoint, openApiEndpoint } from '../client/endpoints.js';
29
+ import { carriesPercentEncodedTaxonomy, extractDatePrefixFromPath, parseMarkdown, serializeMarkdown, lenientRepairMarkdownFrontmatter, } from '../utils/frontmatter.js';
30
+ import { hasUncommittedDraftRevision } from '../utils/draft-revision.js';
31
+ import { localizeArticleMediaRefs, carriesDepthFreeMediaRef, shouldPreferLegacyRef, } from '../utils/media-body-refs.js';
32
+ import { CONFLICTS_SUBDIR, calculateHash, commitArticleSnapshot, findLocalFilesByUlid, isQuarantinedRelativePath, quarantineLocalCopy, resolveCanonicalArticlePath, } from './workspace/index.js';
33
+ export { CONFLICTS_SUBDIR, calculateHash, findLocalFilesByUlid, isQuarantinedRelativePath, quarantineLocalCopy, resolveCanonicalArticlePath, carriesDepthFreeMediaRef, shouldPreferLegacyRef, };
32
34
  import { loadLocalTaxonomyCandidates } from './taxonomies.js';
33
35
  import { syncRemoteBylines } from './bylines.js';
34
36
  import { updateConfigSyncedVersion } from '../utils/config.js';
35
37
  import { fetchAssignedTerms as fetchAssignedTermsShared, computeTaxonomyHash } from './terms.js';
36
- /** Subdirectory (under a collection) reserved for preserved divergent local copies. */
37
- export const CONFLICTS_SUBDIR = 'conflicts';
38
- /**
39
- * Detects a workspace-relative rescue-copy path (`<collection>/conflicts/<file>.md`).
40
- *
41
- * Canonical articles always live at `<collection>/draft|published/<file>.md`, so matching the
42
- * second path segment is sufficient and avoids false positives from a slug that merely contains
43
- * the word "conflicts". Used by the push guard (QUARANTINED_COPY_NOT_PUSHABLE) so a rescue copy
44
- * can never silently overwrite the canonical article it was preserved from.
45
- */
46
- export function isQuarantinedRelativePath(relPath) {
47
- const segments = relPath
48
- .split(path.sep)
49
- .join('/')
50
- .split('/')
51
- .filter((seg) => seg.length > 0);
52
- return segments.length >= 3 && segments[1] === CONFLICTS_SUBDIR;
53
- }
54
38
  /**
55
39
  * Human/agent readable notice describing preserved local copies.
56
40
  * Returns an empty string when nothing was preserved.
@@ -66,73 +50,6 @@ export function formatQuarantineNotice(quarantined) {
66
50
  ];
67
51
  return lines.join('\n');
68
52
  }
69
- /**
70
- * Calculates SHA-256 hash of a string.
71
- */
72
- export function calculateHash(content) {
73
- return crypto.createHash('sha256').update(content, 'utf8').digest('hex');
74
- }
75
- /**
76
- * Finds all existing Markdown files in `<collection>/{draft,published}/` whose filename
77
- * contains the given 26-character ULID. Used to preserve date prefixes and clean up
78
- * stale duplicate files when pulling an uncached article.
79
- */
80
- export function findLocalFilesByUlid(workspaceRoot, collection, id) {
81
- const matches = [];
82
- for (const sub of ['draft', 'published']) {
83
- const subDir = path.join(workspaceRoot, collection, sub);
84
- if (!fs.existsSync(subDir))
85
- continue;
86
- try {
87
- for (const file of fs.readdirSync(subDir)) {
88
- if (!file.endsWith('.md'))
89
- continue;
90
- if (extractUlidFromFilename(file) === id) {
91
- matches.push(path.join(collection, sub, file));
92
- }
93
- }
94
- }
95
- catch {
96
- // Ignore directory read errors
97
- }
98
- }
99
- return matches;
100
- }
101
- /**
102
- * Reports whether a Markdown document spells its mirrored images with the depth-free `media/<storageKey>` form.
103
- * That spelling is what a workspace built before article-relative refs carried on disk, and `sync_state.local_hash`
104
- * records exactly those bytes — re-spelling an untouched file would report a media rewrite nobody made. Once a
105
- * document carries the article-relative form (or no local ref at all), the article-relative spelling takes over.
106
- */
107
- export function carriesDepthFreeMediaRef(content) {
108
- for (const rawLine of content.split('\n')) {
109
- const match = rawLine.trim().match(/^!\[([^\]]*)\]\(([^)]+)\)$/);
110
- if (!match)
111
- continue;
112
- const ref = match[2].trim();
113
- // A depth-free `media/...` reference is the legacy spelling; anything carrying `../` already migrated.
114
- if (isLocalMediaRef(ref) && ref.startsWith('media/'))
115
- return true;
116
- }
117
- return false;
118
- }
119
- /**
120
- * Reports whether any local copy of an article still carries the depth-free spelling, deciding which form a
121
- * re-pull must reproduce. A genuinely new article has no local copy, so it gets the article-relative form.
122
- */
123
- export function shouldPreferLegacyRef(workspaceRoot, existingRelPaths) {
124
- for (const relPath of existingRelPaths) {
125
- try {
126
- if (carriesDepthFreeMediaRef(fs.readFileSync(path.join(workspaceRoot, relPath), 'utf8'))) {
127
- return true;
128
- }
129
- }
130
- catch {
131
- // Ignore unreadable files
132
- }
133
- }
134
- return false;
135
- }
136
53
  /**
137
54
  * Preserves a local Markdown copy verbatim under `<collection>/conflicts/` before Emit
138
55
  * overwrites or removes the original path. Used to guarantee that no divergent local
@@ -141,45 +58,19 @@ export function shouldPreferLegacyRef(workspaceRoot, existingRelPaths) {
141
58
  * Returns the relative path of the preserved copy, or null when preservation failed.
142
59
  */
143
60
  /**
144
- * Resolves canonical relative path for an article symmetrically between
145
- * batch fast-path and full pull (EMIT-005 / R7).
61
+ * Resolves the canonical article title from remote data symmetrically across
62
+ * fast-path and full-pull (EMIT-005 / v0.1.14 backlog §1).
146
63
  */
147
- export function resolveCanonicalArticlePath(collection, status, id, title, dates, existingPrefix) {
148
- const dateInput = dates.publishedAt || existingPrefix || dates.createdAt || dates.updatedAt || null;
149
- return computeArticleRelativePath(collection, status, id, title, dateInput);
150
- }
151
- export function quarantineLocalCopy(workspaceRoot, collection, sourceRelPath, content, options) {
152
- const conflictsDir = path.join(workspaceRoot, collection, CONFLICTS_SUBDIR);
153
- const baseName = path.basename(sourceRelPath).replace(/\.md$/i, '');
154
- const suffixExt = options?.isForce ? '.local-dropped.md' : '.conflict.md';
155
- let quarantineRel = path.join(collection, CONFLICTS_SUBDIR, `${baseName}${suffixExt}`);
156
- const quarantineFull = path.join(workspaceRoot, quarantineRel);
157
- try {
158
- fs.mkdirSync(conflictsDir, { recursive: true });
159
- // Deduplication check: if canonical conflict file exists and is unedited, overwrite without incrementing
160
- if (!options?.isForce && fs.existsSync(quarantineFull)) {
161
- const existingDiskHash = calculateHash(fs.readFileSync(quarantineFull, 'utf8'));
162
- if ((options?.existingCopyHash && existingDiskHash === options.existingCopyHash) ||
163
- existingDiskHash === calculateHash(content)) {
164
- fs.writeFileSync(quarantineFull, content, 'utf8');
165
- return quarantineRel;
166
- }
167
- }
168
- let suffix = 2;
169
- while (fs.existsSync(path.join(workspaceRoot, quarantineRel))) {
170
- quarantineRel = path.join(collection, CONFLICTS_SUBDIR, options?.isForce
171
- ? `${baseName}.local-dropped-${suffix}.md`
172
- : `${baseName}.conflict-${suffix}.md`);
173
- suffix += 1;
174
- if (suffix > 100)
175
- return null;
176
- }
177
- fs.writeFileSync(path.join(workspaceRoot, quarantineRel), content, 'utf8');
178
- return quarantineRel;
179
- }
180
- catch {
181
- return null;
182
- }
64
+ export function extractCanonicalRemoteTitle(rawObj, fallbackSlug) {
65
+ const item = unwrapItem(rawObj);
66
+ const data = (item.data || {}) || {};
67
+ const rawTitle = String(data.title || item.title || '').trim();
68
+ if (rawTitle)
69
+ return rawTitle;
70
+ const rawSlug = String(item.slug || fallbackSlug || '').trim();
71
+ if (rawSlug)
72
+ return rawSlug;
73
+ return 'Untitled';
183
74
  }
184
75
  /**
185
76
  * Discovers local files for this article that are about to be overwritten or unlinked, and
@@ -226,7 +117,7 @@ function quarantineDivergentLocalCopies(options, collection, localRelPaths, base
226
117
  export async function getRemoteMaxBatchLimit(options) {
227
118
  const fetchFn = options.fetchFn || fetch;
228
119
  try {
229
- const url = new URL('/_emdash/api/openapi.json', options.origin).toString();
120
+ const url = openApiEndpoint(options.origin);
230
121
  const headers = { Accept: 'application/json' };
231
122
  if (options.token) {
232
123
  headers.Authorization = `Bearer ${options.token}`;
@@ -263,7 +154,7 @@ async function fetchStatusArticles(collection, status, options, serverMaxLimit)
263
154
  while (items.length < targetTotal) {
264
155
  const remaining = targetTotal - items.length;
265
156
  const currentBatch = Math.min(remaining, batchLimit);
266
- const url = new URL(`/_emdash/api/content/${collection}`, options.origin);
157
+ const url = new URL(articleContentEndpoint(options.origin, collection));
267
158
  url.searchParams.set('status', status);
268
159
  url.searchParams.set('limit', String(currentBatch));
269
160
  if (cursor) {
@@ -433,9 +324,8 @@ export async function pullArticle(collection, id, options) {
433
324
  const rawObj = (item.rawItem || item);
434
325
  const rawRevCandidate = String(item._rev || item.rev || item.version || rawObj._rev || '');
435
326
  const remoteRev = extractRev(rawObj, rawRevCandidate);
436
- if (!existingSync ||
437
- !remoteRev ||
438
- normalizeRev(existingSync.remoteRev) !== normalizeRev(remoteRev)) {
327
+ const remoteComparisonRev = extractComparisonRev(rawObj, remoteRev);
328
+ if (!existingSync || !remoteRev || !isSameRev(existingSync.remoteRev, remoteComparisonRev)) {
439
329
  return null;
440
330
  }
441
331
  const fullExistingPath = path.join(options.workspaceRoot, existingSync.localFilePath);
@@ -451,8 +341,8 @@ export async function pullArticle(collection, id, options) {
451
341
  const currentDiskHash = calculateHash(currentDiskContent);
452
342
  // Check if file path matches current naming standard
453
343
  const existingPrefix = extractDatePrefixFromPath(existingSync.localFilePath);
454
- const rawData = (rawObj.data || rawObj.item || {}) || {};
455
- const rawTitle = String(rawData.title || rawObj.title || item.title || rawObj.slug || item.slug || '');
344
+ const fallbackSlug = String(item.slug || existingSync.slug || '');
345
+ const rawTitle = extractCanonicalRemoteTitle(rawObj, fallbackSlug);
456
346
  const targetStatus = String(rawObj.status || item.status || 'draft');
457
347
  const expectedRelPath = resolveCanonicalArticlePath(collection, targetStatus, id, rawTitle, {
458
348
  publishedAt: rawObj.publishedAt || item.publishedAt || null,
@@ -500,7 +390,44 @@ export async function pullArticle(collection, id, options) {
500
390
  }
501
391
  if (currentDiskHash === existingSync.localHash) {
502
392
  try {
503
- parseMarkdown(currentDiskContent);
393
+ const parsedCurrent = parseMarkdown(currentDiskContent);
394
+ // Branch 1: Valid YAML on hash-matched untouched file, but carries percent-encoded taxonomy terms or out-of-sync draft revision annotation -> heal in-place
395
+ const hasDraft = hasUncommittedDraftRevision(existingSync);
396
+ const carriesDraftComment = /^\s*status:\s*published\s+#\s*draft revision\s*$/m.test(currentDiskContent);
397
+ const needsDraftRevisionHeal = parsedCurrent.frontmatter.status === 'published' && hasDraft !== carriesDraftComment;
398
+ if (carriesPercentEncodedTaxonomy(currentDiskContent) || needsDraftRevisionHeal) {
399
+ const respelledCanon = serializeMarkdown(parsedCurrent.frontmatter, parsedCurrent.body, getTaxonomyCandidates(), { hasDraftRevision: hasDraft });
400
+ const respelled = localizeDiskMarkdown(respelledCanon, existingSync.localFilePath);
401
+ if (respelled !== currentDiskContent) {
402
+ try {
403
+ parseMarkdown(respelled);
404
+ commitArticleSnapshot(options.cache, options.workspaceRoot, {
405
+ id,
406
+ relPath: existingSync.localFilePath,
407
+ diskContent: respelled,
408
+ canonicalContent: respelledCanon,
409
+ frontmatter: parsedCurrent.frontmatter,
410
+ bodyMarkdown: parsedCurrent.body,
411
+ revForTransport: existingSync.remoteRev,
412
+ revForComparison: existingSync.remoteRev,
413
+ bumpBaselineHashOnly: true,
414
+ });
415
+ return {
416
+ id,
417
+ slug: existingSync.slug,
418
+ status: existingSync.status,
419
+ filePath: existingSync.localFilePath,
420
+ updated: true,
421
+ healed: true,
422
+ meaningChanged: false,
423
+ title: rawTitle,
424
+ };
425
+ }
426
+ catch {
427
+ // Re-spelling broke the parse (should not happen): fall through to skip
428
+ }
429
+ }
430
+ }
504
431
  return {
505
432
  id,
506
433
  slug: existingSync.slug,
@@ -512,27 +439,26 @@ export async function pullArticle(collection, id, options) {
512
439
  };
513
440
  }
514
441
  catch {
515
- // Disk content is byte-identical to the cached baseline but its frontmatter no longer parses.
516
- // Legacy serialization left unquoted %-prefixed (percent-encoded) taxonomy slugs, which js-yaml
517
- // rejects as a directive indicator: such files stay hash-matched forever and would be skipped by
518
- // every pull, so status reports them invalid while pull does nothing. Heal them in place with the
519
- // syntax-only lenient repair instead of falling through to a full remote re-pull.
442
+ // Branch 2: Broken YAML on hash-matched untouched file.
443
+ // Heal syntax via lenient repair, then serialize cleanly to decoded representation with zero network fetches.
520
444
  const repaired = lenientRepairMarkdownFrontmatter(currentDiskContent);
521
445
  if (repaired !== null) {
522
- fs.writeFileSync(fullExistingPath, repaired, 'utf8');
523
446
  const parsedRepaired = parseMarkdown(repaired);
524
- const repairedHash = calculateHash(repaired);
525
- // Re-track the repaired file against its own repaired hash so it reads as synced. The
526
- // remote baseline stays untouched: healing only re-quotes frontmatter syntax, never values.
527
- const healedAt = Math.floor(Date.now() / 1000);
528
- options.cache.saveSyncState({
529
- ...existingSync,
530
- localFilePath: existingSync.localFilePath,
531
- localHash: repairedHash,
532
- remoteRev,
447
+ const hasDraft = hasUncommittedDraftRevision({
533
448
  status: parsedRepaired.frontmatter.status,
534
- slug: parsedRepaired.frontmatter.slug,
535
- lastSyncedAt: healedAt,
449
+ remoteRev: remoteComparisonRev,
450
+ });
451
+ const decodedCanon = serializeMarkdown(parsedRepaired.frontmatter, parsedRepaired.body, getTaxonomyCandidates(), { hasDraftRevision: hasDraft });
452
+ const decodedDisk = localizeDiskMarkdown(decodedCanon, existingSync.localFilePath);
453
+ commitArticleSnapshot(options.cache, options.workspaceRoot, {
454
+ id,
455
+ relPath: existingSync.localFilePath,
456
+ diskContent: decodedDisk,
457
+ frontmatter: parsedRepaired.frontmatter,
458
+ bodyMarkdown: parsedRepaired.body,
459
+ revForTransport: remoteRev,
460
+ revForComparison: remoteComparisonRev,
461
+ bumpBaselineHashOnly: true,
536
462
  });
537
463
  return {
538
464
  id,
@@ -590,38 +516,39 @@ export async function pullArticle(collection, id, options) {
590
516
  remoteLocal.frontmatter.taxonomies.tags = tagsTerms;
591
517
  }
592
518
  }
593
- const remoteCanonMarkdown = serializeMarkdown(remoteLocal.frontmatter, remoteLocal.body, getTaxonomyCandidates());
519
+ const hasDraft = hasUncommittedDraftRevision({
520
+ status: remoteLocal.frontmatter.status,
521
+ remoteRev: remoteComparisonRev,
522
+ });
523
+ const remoteCanonMarkdown = serializeMarkdown(remoteLocal.frontmatter, remoteLocal.body, getTaxonomyCandidates(), { hasDraftRevision: hasDraft });
594
524
  const remoteCanonHash = calculateHash(remoteCanonMarkdown);
595
525
  // The repaired file on disk carries the workspace's local-media-ref spelling, so the tracked hash
596
526
  // must be the hash of that spelling. The baseline keeps the canonical form untouched.
597
527
  const remoteDiskHash = calculateHash(localizeDiskMarkdown(remoteCanonMarkdown, existingSync.localFilePath, true));
598
528
  const existingBase = options.cache.getBaseSnapshot(id);
599
- if (!(categoriesTerms === null && tagsTerms === null && existingBase)) {
600
- options.cache.saveBaseSnapshot({
601
- id,
602
- rev: remoteRev,
603
- bodyMarkdown: remoteLocal.body,
604
- frontmatterYaml: JSON.stringify(remoteLocal.frontmatter),
605
- hash: remoteCanonHash,
606
- savedAt: Math.floor(Date.now() / 1000),
607
- });
608
- }
609
- options.cache.saveSyncState({
529
+ const bumpBaselineHashOnly = Boolean(categoriesTerms === null && tagsTerms === null && existingBase);
530
+ commitArticleSnapshot(options.cache, options.workspaceRoot, {
610
531
  id,
611
- localFilePath: existingSync.localFilePath,
532
+ relPath: existingSync.localFilePath,
533
+ diskContent: repaired,
612
534
  localHash: remoteDiskHash,
613
- remoteRev,
614
- status: parsedRepaired.frontmatter.status,
615
- slug: parsedRepaired.frontmatter.slug,
616
- lastSyncedAt: Math.floor(Date.now() / 1000),
617
- remoteTaxonomyHash: computeTaxonomyHash(remoteLocal.frontmatter.taxonomies?.categories, remoteLocal.frontmatter.taxonomies?.tags),
618
- taxonomyApplyPending: 0,
619
- conflictPending: existingSync.conflictPending,
620
- bodyConflictPending: existingSync.bodyConflictPending,
621
- taxonomyConflictPending: existingSync.taxonomyConflictPending,
622
- conflictCopyPath: existingSync.conflictCopyPath,
623
- conflictCopyHash: existingSync.conflictCopyHash,
624
- conflictAt: existingSync.conflictAt,
535
+ canonicalContent: remoteCanonMarkdown,
536
+ frontmatter: remoteLocal.frontmatter,
537
+ bodyMarkdown: remoteLocal.body,
538
+ revForTransport: remoteRev,
539
+ revForComparison: remoteComparisonRev,
540
+ bumpBaselineHashOnly,
541
+ skipDiskWrite: true,
542
+ flags: {
543
+ remoteTaxonomyHash: computeTaxonomyHash(remoteLocal.frontmatter.taxonomies?.categories, remoteLocal.frontmatter.taxonomies?.tags),
544
+ taxonomyApplyPending: 0,
545
+ conflictPending: existingSync.conflictPending,
546
+ bodyConflictPending: existingSync.bodyConflictPending,
547
+ taxonomyConflictPending: existingSync.taxonomyConflictPending,
548
+ conflictCopyPath: existingSync.conflictCopyPath,
549
+ conflictCopyHash: existingSync.conflictCopyHash,
550
+ conflictAt: existingSync.conflictAt,
551
+ },
625
552
  });
626
553
  return {
627
554
  id,
@@ -647,10 +574,28 @@ export async function pullArticle(collection, id, options) {
647
574
  const fastResult = await tryFastPathOrHeal(rawItem);
648
575
  if (fastResult)
649
576
  return fastResult;
577
+ // Fast-path missed: remote content changed or local repair required.
578
+ // EmDash list API returns stale creation-time posts.data for drafts, and liveData for published articles.
579
+ // When a published article has unpublished draft changes (draftRevisionId exists), list API does NOT expand
580
+ // the draft body (it returns only liveData).
581
+ // Therefore, if this is an existing tracked article whose remote draft revision has advanced, we must discard
582
+ // the stale list rawItem so Step 2 fetches the full canonical item via single GET!
583
+ const rawObj = rawItem;
584
+ const hasDraftRevision = Boolean(rawObj.draftRevisionId);
585
+ const isDraft = String(rawObj.status || 'draft') !== 'published';
586
+ const needsFullDraftFetch = isDraft || hasDraftRevision;
587
+ const existingSync = options.cache.getSyncState(id);
588
+ const rawRevCandidate = String(rawItem._rev || rawItem.rev || rawItem.version || rawObj._rev || '');
589
+ const remoteRev = extractRev(rawObj, rawRevCandidate);
590
+ const remoteComparisonRev = extractComparisonRev(rawObj, remoteRev);
591
+ const remoteChanged = !existingSync || !isSameRev(existingSync.remoteRev, remoteComparisonRev);
592
+ if (needsFullDraftFetch && existingSync && remoteChanged) {
593
+ rawItem = undefined;
594
+ }
650
595
  }
651
- // 2. Fetch raw item if not passed in options
596
+ // 2. Fetch raw item if not passed in options (or discarded above for draft updates)
652
597
  if (!rawItem) {
653
- const url = new URL(`/_emdash/api/content/${collection}/${id}`, options.origin).toString();
598
+ const url = articleContentEndpoint(options.origin, collection, id);
654
599
  const res = await fetchFn(url, {
655
600
  method: 'GET',
656
601
  headers: {
@@ -769,7 +714,14 @@ export async function pullArticle(collection, id, options) {
769
714
  // base snapshot records; `markdownContent` is what lands on disk, which may spell mirrored images as local
770
715
  // references when `localMediaRefs` is enabled. Keeping the two apart is what lets an editor preview render a
771
716
  // mirror while the baseline stays byte-identical to a remote pull.
772
- const canonicalMarkdown = serializeMarkdown(frontmatter, body, getTaxonomyCandidates());
717
+ const comparisonRev = extractComparisonRev(rawItem, rev);
718
+ const hasDraft = hasUncommittedDraftRevision({
719
+ status: frontmatter.status,
720
+ remoteRev: comparisonRev,
721
+ });
722
+ const canonicalMarkdown = serializeMarkdown(frontmatter, body, getTaxonomyCandidates(), {
723
+ hasDraftRevision: hasDraft,
724
+ });
773
725
  const contentHash = calculateHash(canonicalMarkdown);
774
726
  // Determine standard relative file path: <collection>/<status>/<yyyyMMdd>_<ulid>-<title>.md
775
727
  const existingSync = options.cache.getSyncState(frontmatter.id);
@@ -780,10 +732,13 @@ export async function pullArticle(collection, id, options) {
780
732
  : preferredDiskMatch
781
733
  ? extractDatePrefixFromPath(preferredDiskMatch)
782
734
  : null;
783
- const relPath = resolveCanonicalArticlePath(frontmatter.collection, frontmatter.status, frontmatter.id, frontmatter.title || frontmatter.slug, {
784
- publishedAt: frontmatter.publishedAt || rawItem.publishedAt || null,
785
- createdAt: rawItem.createdAt || null,
786
- updatedAt: rawItem.updatedAt || null,
735
+ const canonicalTitle = rawItem
736
+ ? extractCanonicalRemoteTitle(rawItem, frontmatter.slug)
737
+ : frontmatter.title || frontmatter.slug;
738
+ const relPath = resolveCanonicalArticlePath(frontmatter.collection, frontmatter.status, frontmatter.id, canonicalTitle, {
739
+ publishedAt: frontmatter.publishedAt || rawItem?.publishedAt || null,
740
+ createdAt: rawItem?.createdAt || null,
741
+ updatedAt: rawItem?.updatedAt || null,
787
742
  }, existingPrefix);
788
743
  // Localizing needs the depth of the path the article is about to occupy, so it runs after `relPath` is
789
744
  // resolved. A file that already sits on disk in the depth-free legacy spelling keeps that spelling; a fresh
@@ -813,18 +768,6 @@ export async function pullArticle(collection, id, options) {
813
768
  }
814
769
  }
815
770
  }
816
- // Ensure parent directory exists and write file
817
- fs.mkdirSync(path.dirname(fullFilePath), { recursive: true });
818
- fs.writeFileSync(fullFilePath, markdownContent, 'utf8');
819
- // Update Base snapshot in cache
820
- options.cache.saveBaseSnapshot({
821
- id: frontmatter.id,
822
- rev,
823
- bodyMarkdown: body,
824
- frontmatterYaml: JSON.stringify(frontmatter),
825
- hash: contentHash,
826
- savedAt: Math.floor(Date.now() / 1000),
827
- });
828
771
  // Update sync state with explicit conflict pending preservation
829
772
  let conflictInfo = {};
830
773
  // Take the most recently quarantined divergent copy: `quarantineDivergentLocalCopies` walks
@@ -898,17 +841,21 @@ export async function pullArticle(collection, id, options) {
898
841
  conflictAt: null,
899
842
  };
900
843
  }
901
- options.cache.saveSyncState({
844
+ // Commit canonical Markdown and sync state via commitArticleSnapshot
845
+ commitArticleSnapshot(options.cache, options.workspaceRoot, {
902
846
  id: frontmatter.id,
903
- localFilePath: relPath,
904
- localHash: calculateHash(markdownContent),
905
- remoteRev: rev,
906
- status: frontmatter.status,
907
- slug: frontmatter.slug,
908
- lastSyncedAt: Math.floor(Date.now() / 1000),
909
- remoteTaxonomyHash: computeTaxonomyHash(frontmatter.taxonomies?.categories, frontmatter.taxonomies?.tags),
910
- taxonomyApplyPending: 0,
911
- ...conflictInfo,
847
+ relPath,
848
+ diskContent: markdownContent,
849
+ canonicalContent: canonicalMarkdown,
850
+ frontmatter,
851
+ bodyMarkdown: body,
852
+ revForTransport: rev,
853
+ revForComparison: comparisonRev,
854
+ flags: {
855
+ remoteTaxonomyHash: computeTaxonomyHash(frontmatter.taxonomies?.categories, frontmatter.taxonomies?.tags),
856
+ taxonomyApplyPending: 0,
857
+ ...conflictInfo,
858
+ },
912
859
  });
913
860
  // Update entries cache
914
861
  options.cache.saveEntry({
@@ -1 +1 @@
1
- {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/sync/pull.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/sync/pull.ts"],"names":[],"mappings":"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"}