Skip to content

Release dormant Ghost content identity primitives #224

Description

@aileen

Parent

What to build

Add and release the library primitives required for pages without activating any CLI or webhook behavior. The fragmenter produces explicit type-tagged Ghost content identity through its deep API, and the indexer can browse, replace, delete, and reconcile package-managed records by that identity while old slug APIs and defaults remain available.

Acceptance criteria

  • The deep fragmenter API accepts explicit Ghost content type and stable Ghost content ID from a trusted adapter and repeats protected contentId and contentType in every derived record.
  • Ghost content type is exactly post or page; it is never inferred from an incomplete reduced object.
  • Physical fragment object IDs remain deterministic Algolia upsert identities while content ID becomes the logical grouping/replacement/deletion identity.
  • The indexer exposes public content-identity browse, replace, delete, and reconciliation operations that preserve unrelated index records.
  • Existing slug operations, posts-only defaults, and current adapter behavior remain usable and unchanged.
  • Public tests cover same-slug/different-type records, multi-fragment identity, replacement after shrink, deletion, pagination/classification inputs, escaping, error mapping, and unrelated-record preservation.
  • The new identity fields remain subject to the complete 9,999-byte record ceiling.
  • Fragmenter and indexer minors are selected together in a scoped dry run; dependent application patches are documented as dependency-only.
  • Published artifacts are clean-install verified and release notes clearly state that the APIs are dormant: installing them does not enable pages or change source selection.

Blocked by

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, ready for an AFK agent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions