Adopt Ghost content projection in post webhooks
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 22
- Forks
- 19
- Avg merge
- 18h 31m
- Merged PRs (30d)
- 50
Description
Parent
- PRD #213 — Deliver the maintained HTML-to-Algolia extraction pipeline
- User stories covered: 17–29, 38, 40, 48–52
What to build
Activate the same released Ghost content projection and deterministic record policy in the existing post webhooks. Validate the environment contract before mutation, preflight and fully replace post records without touching settings, preserve public handler compatibility, and publish the release that delivers the field/excerpt source requests.
Acceptance criteria
- Canonical post handlers parse the approved
ALGOLIA_CONTENT_PROJECTIONJSON and reject invalid policy before any Algolia request. - Omitted and explicit projection behavior exactly matches the CLI and deep fragmenter contract.
- The current post webhook resource is transformed and fully preflighted without a Content API re-fetch.
- Publish/update replaces every previous record for the legacy slug before saving the complete new set, so shrinking content cannot leave stale continuations.
- Deterministic validation errors produce no Algolia request; external delete/save failures are surfaced without promising rollback atomicity.
- No webhook path reads or writes settings, and the existing public post basenames, envelopes, activation, authentication, and valid responses remain compatible.
- Native request/response acceptance exercises projection, fallback content, size boundaries, replacement ordering, malformed configuration/content, external errors, and the absence of settings requests.
- A scoped Netlify minor release is published and verified with the configuration shape, fragmenter/CLI compatibility floor, failure semantics, replace-before-save behavior, and rollback in its notes.
- Issues #43 and #148 are closed only after the fragmenter, CLI, and Netlify registry artifacts are verified; closure records exact versions and explains that
excerptis display text whose UI and Algolia settings remain consumer-owned.
Blocked by
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing blocked issue #221 and the existing canonical post webhook handlers, then compare their projection and fragmenter contracts with the CLI. Use the native request/response acceptance coverage described here to verify projection, replacement ordering, malformed inputs, external errors, and the absence of settings requests; completion also requires publishing and verifying the scoped Netlify minor release and recording the specified artifact versions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, backend, release
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100