@growth-labs/cms 0.8.30 → 0.8.33

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 (45) hide show
  1. package/README.md +20 -0
  2. package/dist/engine/content-metadata.d.ts +2 -0
  3. package/dist/engine/content-metadata.d.ts.map +1 -1
  4. package/dist/engine/content-metadata.js +15 -0
  5. package/dist/engine/content-metadata.js.map +1 -1
  6. package/dist/engine/publication-current-guard.d.ts +3 -0
  7. package/dist/engine/publication-current-guard.d.ts.map +1 -1
  8. package/dist/engine/publication-current-guard.js +19 -4
  9. package/dist/engine/publication-current-guard.js.map +1 -1
  10. package/dist/engine/publication.d.ts +3 -1
  11. package/dist/engine/publication.d.ts.map +1 -1
  12. package/dist/engine/publication.js +34 -5
  13. package/dist/engine/publication.js.map +1 -1
  14. package/dist/engine/publisher.d.ts +8 -8
  15. package/dist/engine/publisher.d.ts.map +1 -1
  16. package/dist/engine/publisher.js +27 -1
  17. package/dist/engine/publisher.js.map +1 -1
  18. package/dist/foundry-emit.d.ts +5 -0
  19. package/dist/foundry-emit.d.ts.map +1 -1
  20. package/dist/foundry-emit.js +3 -0
  21. package/dist/foundry-emit.js.map +1 -1
  22. package/dist/integration/options.d.ts +14 -14
  23. package/dist/routes/content.d.ts.map +1 -1
  24. package/dist/routes/content.js +1 -15
  25. package/dist/routes/content.js.map +1 -1
  26. package/dist/routes/foundry-publish.d.ts.map +1 -1
  27. package/dist/routes/foundry-publish.js +47 -20
  28. package/dist/routes/foundry-publish.js.map +1 -1
  29. package/dist/ui/api/content/insights-ingest.d.ts.map +1 -1
  30. package/dist/ui/api/content/insights-ingest.js +12 -3
  31. package/dist/ui/api/content/insights-ingest.js.map +1 -1
  32. package/dist/ui/api/content/insights-inputs.d.ts.map +1 -1
  33. package/dist/ui/api/content/insights-inputs.js +3 -2
  34. package/dist/ui/api/content/insights-inputs.js.map +1 -1
  35. package/docs/foundry-publish.md +6 -0
  36. package/package.json +1 -1
  37. package/src/engine/content-metadata.ts +17 -0
  38. package/src/engine/publication-current-guard.ts +28 -4
  39. package/src/engine/publication.ts +43 -6
  40. package/src/engine/publisher.ts +46 -1
  41. package/src/foundry-emit.ts +3 -0
  42. package/src/routes/content.ts +1 -20
  43. package/src/routes/foundry-publish.ts +49 -26
  44. package/src/ui/api/content/insights-ingest.ts +10 -3
  45. package/src/ui/api/content/insights-inputs.ts +3 -2
package/README.md CHANGED
@@ -850,3 +850,23 @@ a page size is never a total. Each page carries `observed_at`. Corrupt revisions
850
850
  return a named error, not an empty successful inventory. The read returns no
851
851
  article bodies, unpublished edits or internal machine trigger tokens. Omitting
852
852
  `published` preserves the existing lexical-coverage input.
853
+
854
+
855
+ ### Pinned Foundry article publication
856
+
857
+ From 0.8.33, `POST /api/cms/foundry/articles/:external_id/publish` can include
858
+ `{"expected_request_sha256":"<64 lowercase hex characters>"}`. The hash names the
859
+ exact bytes of the preceding v2 PUT. Sign this body through the existing Foundry
860
+ HMAC contract; it is part of the signed request. A stale pin returns
861
+ `409 article_revision_changed` before publishing the replacement.
862
+
863
+ The publication still requires its existing `foundryPublish.autoPublish` opt-in,
864
+ native editorial checks and configured live surfaces. The recorded PUT's immutable
865
+ History snapshot supplies the existing publication guard and pointer CAS. An editor
866
+ change during publication prevents the public pointer from advancing and aborts
867
+ prepared surfaces. The published revision retains `publication_receipt_identity`
868
+ for the pinned request. Pinning a revision grants no publication authority.
869
+
870
+ Existing no-body publication remains supported. An automatic strategy executor
871
+ must send its pinned request hash and must not retry without the pin when a site
872
+ runs an older package or refuses the request.
@@ -1,3 +1,4 @@
1
+ import { z } from 'zod';
1
2
  export type ContentMetadataPrimitive = string | number | boolean | null;
2
3
  export type ContentMetadataValue = ContentMetadataPrimitive | ContentMetadataValue[] | {
3
4
  [key: string]: ContentMetadataValue;
@@ -10,4 +11,5 @@ export declare class ContentMetadataError extends Error {
10
11
  }
11
12
  export declare function serializeContentMetadata(value: ContentMetadata | undefined): string;
12
13
  export declare function parseContentMetadata(raw: unknown): ContentMetadata;
14
+ export declare const ContentMetadataSchema: z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>, ContentMetadata, Record<string, unknown>>;
13
15
  //# sourceMappingURL=content-metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-metadata.d.ts","sourceRoot":"","sources":["../../src/engine/content-metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AACvE,MAAM,MAAM,oBAAoB,GAC7B,wBAAwB,GACxB,oBAAoB,EAAE,GACtB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAAA;CAAE,CAAA;AAC1C,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;AAElE,eAAO,MAAM,0BAA0B,QAAY,CAAA;AAKnD,qBAAa,oBAAqB,SAAQ,KAAK;IAE7C,QAAQ,CAAC,IAAI,EAAE,0BAA0B,GAAG,iCAAiC;gBAApE,IAAI,EAAE,0BAA0B,GAAG,iCAAiC,EAC7E,OAAO,EAAE,MAAM;CAKhB;AA0DD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,CAiBnF;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAwBlE"}
1
+ {"version":3,"file":"content-metadata.d.ts","sourceRoot":"","sources":["../../src/engine/content-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AACvE,MAAM,MAAM,oBAAoB,GAC7B,wBAAwB,GACxB,oBAAoB,EAAE,GACtB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAAA;CAAE,CAAA;AAC1C,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;AAElE,eAAO,MAAM,0BAA0B,QAAY,CAAA;AAKnD,qBAAa,oBAAqB,SAAQ,KAAK;IAE7C,QAAQ,CAAC,IAAI,EAAE,0BAA0B,GAAG,iCAAiC;gBAApE,IAAI,EAAE,0BAA0B,GAAG,iCAAiC,EAC7E,OAAO,EAAE,MAAM;CAKhB;AA0DD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,CAiBnF;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAwBlE;AAED,eAAO,MAAM,qBAAqB,gKAaoB,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { z } from 'zod';
1
2
  export const MAX_CONTENT_METADATA_BYTES = 32 * 1024;
2
3
  const MAX_CONTENT_METADATA_DEPTH = 8;
3
4
  const MAX_CONTENT_METADATA_NODES = 1_024;
@@ -77,4 +78,18 @@ export function parseContentMetadata(raw) {
77
78
  serializeContentMetadata(parsed);
78
79
  return parsed;
79
80
  }
81
+ export const ContentMetadataSchema = z
82
+ .record(z.string(), z.unknown())
83
+ .superRefine((metadata, ctx) => {
84
+ try {
85
+ serializeContentMetadata(metadata);
86
+ }
87
+ catch (error) {
88
+ ctx.addIssue({
89
+ code: 'custom',
90
+ message: error instanceof ContentMetadataError ? error.message : 'content metadata is invalid',
91
+ });
92
+ }
93
+ })
94
+ .transform((metadata) => metadata);
80
95
  //# sourceMappingURL=content-metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-metadata.js","sourceRoot":"","sources":["../../src/engine/content-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-metadata.js","sourceRoot":"","sources":["../../src/engine/content-metadata.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /** A guard lives with its revision, so retries retain the same editorial proof. */
2
2
  export declare const CURRENT_PUBLICATION_GUARD = "cms.scheduled-publication-current.v1";
3
+ export declare const CURRENT_FOUNDRY_ARTICLE_GUARD = "cms.foundry-article-current.v1";
3
4
  export declare const CURRENT_MEDIA_PUBLICATION_GUARD = "cms.published-media-current.v1";
4
5
  export declare const MEDIA_PUBLICATION_ITEM_FIELDS: readonly ["id", "type", "slug", "status", "deleted_at", "canonical_version", "visibility", "published_revision_id", "published_at", "publish_at", "publish_tz", "fronts_publish_status", "fronts_publish_trigger_token"];
5
6
  /** Bound to the capture CAS, separately from the reusable media generation. */
@@ -12,6 +13,8 @@ export declare const PUBLISHED_VIDEO_MEDIA_FIELDS: readonly ["video_id", "durati
12
13
  export declare const PUBLISHED_PODCAST_MEDIA_FIELDS: readonly ["audio_r2_key", "transcript", "duration_seconds", "processing_source_url", "processing_source_kind", "processing_trigger_token"];
13
14
  export declare function assertCurrentMediaPublicationSnapshot(current: Record<string, unknown>, expected: Record<string, unknown>): void;
14
15
  export declare function assertCurrentPublicationSnapshot(current: Record<string, unknown>, expected: Record<string, unknown>): void;
16
+ /** Native article publication pins an existing Foundry History snapshot. */
17
+ export declare function assertCurrentFoundryArticleSnapshot(current: Record<string, unknown>, expected: Record<string, unknown>): void;
15
18
  /** Uses the immutable revision in the existing pointer CAS; no second write. */
16
19
  export declare function currentPublicationSqlGuard(revisionAlias: string): string;
17
20
  //# sourceMappingURL=publication-current-guard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"publication-current-guard.d.ts","sourceRoot":"","sources":["../../src/engine/publication-current-guard.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,eAAO,MAAM,yBAAyB,yCAAyC,CAAA;AAC/E,eAAO,MAAM,+BAA+B,mCAAmC,CAAA;AAE/E,eAAO,MAAM,6BAA6B,0NAchC,CAAA;AAEV,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,gBAAgB,EAAE,MAAM,GACtB,MAAM,GAAG,IAAI,CAUf;AAED,qBAAa,+BAAgC,SAAQ,KAAK;;CAKzD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAItE;AAiCD,eAAO,MAAM,4BAA4B,0XAQ/B,CAAA;AACV,eAAO,MAAM,8BAA8B,4IAAiB,CAAA;AAK5D,wBAAgB,qCAAqC,CACpD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAiBN;AAED,wBAAgB,gCAAgC,CAC/C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAgBN;AAED,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAkCxE"}
1
+ {"version":3,"file":"publication-current-guard.d.ts","sourceRoot":"","sources":["../../src/engine/publication-current-guard.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,eAAO,MAAM,yBAAyB,yCAAyC,CAAA;AAC/E,eAAO,MAAM,6BAA6B,mCAAmC,CAAA;AAC7E,eAAO,MAAM,+BAA+B,mCAAmC,CAAA;AAE/E,eAAO,MAAM,6BAA6B,0NAchC,CAAA;AAEV,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,gBAAgB,EAAE,MAAM,GACtB,MAAM,GAAG,IAAI,CAUf;AAED,qBAAa,+BAAgC,SAAQ,KAAK;;CAKzD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAItE;AAiCD,eAAO,MAAM,4BAA4B,0XAQ/B,CAAA;AACV,eAAO,MAAM,8BAA8B,4IAAiB,CAAA;AAK5D,wBAAgB,qCAAqC,CACpD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAiBN;AAyBD,wBAAgB,gCAAgC,CAC/C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAEN;AAED,4EAA4E;AAC5E,wBAAgB,mCAAmC,CAClD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAKN;AAED,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAqCxE"}
@@ -1,5 +1,6 @@
1
1
  /** A guard lives with its revision, so retries retain the same editorial proof. */
2
2
  export const CURRENT_PUBLICATION_GUARD = 'cms.scheduled-publication-current.v1';
3
+ export const CURRENT_FOUNDRY_ARTICLE_GUARD = 'cms.foundry-article-current.v1';
3
4
  export const CURRENT_MEDIA_PUBLICATION_GUARD = 'cms.published-media-current.v1';
4
5
  export const MEDIA_PUBLICATION_ITEM_FIELDS = [
5
6
  'id',
@@ -94,10 +95,11 @@ export function assertCurrentMediaPublicationSnapshot(current, expected) {
94
95
  throw new PublicationCurrentSnapshotError();
95
96
  }
96
97
  }
97
- export function assertCurrentPublicationSnapshot(current, expected) {
98
+ function assertCurrentSnapshot(current, expected, expectedStatus) {
98
99
  const item = snapshotRecord(current.item);
99
100
  const expectedItem = snapshotRecord(expected.item);
100
- if (item.status !== 'scheduled' ||
101
+ if (item.status !== expectedStatus ||
102
+ expectedItem.status !== expectedStatus ||
101
103
  item.deleted_at != null ||
102
104
  ITEM_FIELDS.some((field) => item[field] !== expectedItem[field])) {
103
105
  throw new PublicationCurrentSnapshotError();
@@ -108,6 +110,16 @@ export function assertCurrentPublicationSnapshot(current, expected) {
108
110
  if (fields.some((field) => content[field] !== expectedContent[field]))
109
111
  throw new PublicationCurrentSnapshotError();
110
112
  }
113
+ export function assertCurrentPublicationSnapshot(current, expected) {
114
+ assertCurrentSnapshot(current, expected, 'scheduled');
115
+ }
116
+ /** Native article publication pins an existing Foundry History snapshot. */
117
+ export function assertCurrentFoundryArticleSnapshot(current, expected) {
118
+ const item = snapshotRecord(expected.item);
119
+ if (item.type !== 'article' || !['draft', 'published'].includes(String(item.status)))
120
+ throw new PublicationCurrentSnapshotError();
121
+ assertCurrentSnapshot(current, expected, item.status);
122
+ }
111
123
  /** Uses the immutable revision in the existing pointer CAS; no second write. */
112
124
  export function currentPublicationSqlGuard(revisionAlias) {
113
125
  const item = (field) => `json_extract(${revisionAlias}.payload_json, '$.item.${field}')`;
@@ -124,8 +136,11 @@ export function currentPublicationSqlGuard(revisionAlias) {
124
136
  .join(' AND ')}
125
137
  )`;
126
138
  return `(json_extract(${revisionAlias}.payload_json, '$.publication_guard') IS NULL OR (
127
- json_extract(${revisionAlias}.payload_json, '$.publication_guard') = '${CURRENT_PUBLICATION_GUARD}'
128
- AND content_items.status = 'scheduled' AND content_items.deleted_at IS NULL
139
+ ((json_extract(${revisionAlias}.payload_json, '$.publication_guard') = '${CURRENT_PUBLICATION_GUARD}' AND content_items.status = 'scheduled')
140
+ OR (json_extract(${revisionAlias}.payload_json, '$.publication_guard') = '${CURRENT_FOUNDRY_ARTICLE_GUARD}'
141
+ AND content_items.type = 'article' AND content_items.status IN ('draft','published')
142
+ AND content_items.status IS ${item('status')}))
143
+ AND content_items.deleted_at IS NULL
129
144
  AND ${ITEM_FIELDS.filter((field) => field !== 'deleted_at')
130
145
  .map((field) => `content_items.${field} IS ${item(field)}`)
131
146
  .join(' AND ')}
@@ -1 +1 @@
1
- {"version":3,"file":"publication-current-guard.js","sourceRoot":"","sources":["../../src/engine/publication-current-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publication-current-guard.js","sourceRoot":"","sources":["../../src/engine/publication-current-guard.ts"],"names":[],"mappings":"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"}
@@ -54,7 +54,9 @@ export interface PublishOneInput {
54
54
  requiredSurfaceNames?: string[];
55
55
  packageVersion?: string | null;
56
56
  surfaceHookTimeoutMs?: number;
57
- /** Machine publication must still describe this scheduled editorial/media snapshot. */
57
+ /** Foundry publication must still describe its exact recorded article PUT. */
58
+ expectedFoundryArticleSnapshot?: Record<string, unknown>;
59
+ /** Scheduled publication retains its existing editorial/media guard. */
58
60
  expectedCurrentSnapshot?: Record<string, unknown>;
59
61
  /** Digest of the external receipt bound to a guarded machine publication. */
60
62
  expectedReceiptIdentity?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"publication.d.ts","sourceRoot":"","sources":["../../src/engine/publication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publication.d.ts","sourceRoot":"","sources":["../../src/engine/publication.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { ContentMetadataError, MAX_CONTENT_METADATA_BYTES, serializeContentMetadata, } from './content-metadata.js';
2
2
  import { frontsPodcastSourceGeneration, podcastPublishBlocker } from './podcast-source.js';
3
- import { assertCurrentMediaPublicationSnapshot, assertCurrentPublicationSnapshot, CURRENT_MEDIA_PUBLICATION_GUARD, CURRENT_PUBLICATION_GUARD, currentPublicationSqlGuard, MEDIA_PUBLICATION_ITEM_FIELDS, PUBLISHED_PODCAST_MEDIA_FIELDS, PUBLISHED_VIDEO_MEDIA_FIELDS, PublicationCurrentSnapshotError, snapshotRecord, } from './publication-current-guard.js';
3
+ import { assertCurrentFoundryArticleSnapshot, assertCurrentMediaPublicationSnapshot, assertCurrentPublicationSnapshot, CURRENT_FOUNDRY_ARTICLE_GUARD, CURRENT_MEDIA_PUBLICATION_GUARD, CURRENT_PUBLICATION_GUARD, currentPublicationSqlGuard, MEDIA_PUBLICATION_ITEM_FIELDS, PUBLISHED_PODCAST_MEDIA_FIELDS, PUBLISHED_VIDEO_MEDIA_FIELDS, PublicationCurrentSnapshotError, snapshotRecord, } from './publication-current-guard.js';
4
4
  import { evaluateArticleBody } from './publish-guard.js';
5
- import { createContent, ensureUniqueSlug, getContentItem, getContentSnapshot, PUBLISH_METADATA_STAMP_SQL, PublishContentValidationError, publishMetadataStampBinds, } from './publisher.js';
5
+ import { createContent, ensureUniqueSlug, getContentItem, getContentSnapshot, PUBLISH_METADATA_STAMP_SQL, PublishContentValidationError, publicationMetadataForSnapshot, publishMetadataStampBinds, } from './publisher.js';
6
6
  import { getRevision } from './revisions.js';
7
7
  import { slugify } from './slug.js';
8
8
  import { TagInputError, validateDeclaredTagList } from './taxonomy.js';
@@ -379,11 +379,19 @@ async function createRevisionAndPublicationAttempt(db, input) {
379
379
  if (!current)
380
380
  throw new PublicationNotFoundError(`content not found: ${input.contentId}`);
381
381
  const snapshot = input.mediaReplacement?.payload ?? current;
382
- if (input.expectedCurrentSnapshot) {
382
+ if (input.expectedCurrentSnapshot || input.expectedFoundryArticleSnapshot) {
383
+ if (input.expectedCurrentSnapshot && input.expectedFoundryArticleSnapshot)
384
+ throw new Error('Conflicting publication snapshot guards');
385
+ if (input.expectedFoundryArticleSnapshot && input.mediaReplacement)
386
+ throw new Error('Foundry article snapshot cannot guard a media replacement');
383
387
  if (input.mediaReplacement) {
384
388
  assertCurrentMediaPublicationSnapshot(current, input.expectedCurrentSnapshot);
385
389
  snapshot.publication_guard = CURRENT_MEDIA_PUBLICATION_GUARD;
386
390
  }
391
+ else if (input.expectedFoundryArticleSnapshot) {
392
+ assertCurrentFoundryArticleSnapshot(snapshot, input.expectedFoundryArticleSnapshot);
393
+ snapshot.publication_guard = CURRENT_FOUNDRY_ARTICLE_GUARD;
394
+ }
387
395
  else {
388
396
  assertCurrentPublicationSnapshot(snapshot, input.expectedCurrentSnapshot);
389
397
  snapshot.publication_guard = CURRENT_PUBLICATION_GUARD;
@@ -395,6 +403,18 @@ async function createRevisionAndPublicationAttempt(db, input) {
395
403
  }
396
404
  }
397
405
  assertPublicationSnapshotBodyValid(snapshot, input.contentId);
406
+ if (!input.mediaReplacement) {
407
+ const item = snapshotRecord(snapshot.item);
408
+ // The native route binds/adopts article source_id under this namespace.
409
+ // Preserve generic and archive-import snapshot metadata verbatim; their
410
+ // historical published_at remains the read model's publication date.
411
+ if (item.type === 'article' &&
412
+ typeof item.source_id === 'string' &&
413
+ item.source_id.startsWith('foundry:')) {
414
+ item.metadata_json = await publicationMetadataForSnapshot(db, item, input.now);
415
+ snapshot.publication_metadata_stamp = 'native-article-v1';
416
+ }
417
+ }
398
418
  const revisionId = input.mediaReplacement
399
419
  ? `media:${input.mediaReplacement.identity}`
400
420
  : crypto.randomUUID();
@@ -1104,6 +1124,14 @@ async function claimPrecanonicalAttemptForCleanup(db, attempt, now) {
1104
1124
  }
1105
1125
  async function movePointerAndBeginCommit(db, attempt, now) {
1106
1126
  const targetRevision = await getRevision(db, attempt.contentId, attempt.revisionId);
1127
+ const targetSnapshot = snapshotRecord(targetRevision?.payload);
1128
+ const stampedMetadata = snapshotRecord(targetSnapshot.item).metadata_json;
1129
+ const copyStampedMetadata = targetSnapshot.publication_metadata_stamp === 'native-article-v1' &&
1130
+ typeof stampedMetadata === 'string';
1131
+ const metadataStampSql = copyStampedMetadata ? 'metadata_json = ?' : PUBLISH_METADATA_STAMP_SQL;
1132
+ const metadataStampBinds = copyStampedMetadata
1133
+ ? [stampedMetadata]
1134
+ : publishMetadataStampBinds(now);
1107
1135
  const mediaReplacement = snapshotRecord(targetRevision?.payload).publication_guard === CURRENT_MEDIA_PUBLICATION_GUARD;
1108
1136
  if (attempt.operation === 'publish' &&
1109
1137
  (!Number.isSafeInteger(attempt.targetPublishedAt) || attempt.targetPublishedAt < 0)) {
@@ -1143,7 +1171,7 @@ async function movePointerAndBeginCommit(db, attempt, now) {
1143
1171
  .prepare(`UPDATE content_items
1144
1172
  SET status = 'published', published_at = ?, publish_at = NULL,
1145
1173
  published_revision_id = ?, updated_at = unixepoch(),
1146
- ${PUBLISH_METADATA_STAMP_SQL}
1174
+ ${metadataStampSql}
1147
1175
  WHERE id = ?
1148
1176
  AND COALESCE(published_revision_id, '') = ?
1149
1177
  AND EXISTS (
@@ -1154,7 +1182,7 @@ async function movePointerAndBeginCommit(db, attempt, now) {
1154
1182
  .bind(attempt.targetPublishedAt, attempt.revisionId,
1155
1183
  // Wall clock, NOT targetPublishedAt — the latter is routinely backdated
1156
1184
  // to the source video's date on the channel sites.
1157
- ...publishMetadataStampBinds(now), attempt.contentId, attempt.previousRevisionId ?? '', attempt.id, attempt.revisionId, attempt.contentId, attempt.revisionId, attempt.contentId, attempt.contentId)
1185
+ ...metadataStampBinds, attempt.contentId, attempt.previousRevisionId ?? '', attempt.id, attempt.revisionId, attempt.contentId, attempt.revisionId, attempt.contentId, attempt.contentId)
1158
1186
  : db
1159
1187
  .prepare(`UPDATE content_items
1160
1188
  SET status = 'published', publish_at = NULL,
@@ -1461,6 +1489,7 @@ export async function publishOne(db, input) {
1461
1489
  packageVersion: input.packageVersion ?? null,
1462
1490
  now,
1463
1491
  createdBy: input.createdBy,
1492
+ expectedFoundryArticleSnapshot: input.expectedFoundryArticleSnapshot,
1464
1493
  expectedCurrentSnapshot: input.expectedCurrentSnapshot,
1465
1494
  expectedReceiptIdentity: input.expectedReceiptIdentity,
1466
1495
  });