Skip to content

feat(channels): P2 — clustering & editorial collections - #2151

Merged
jung-thomas merged 8 commits into
DEVfrom
channels-p2-collections
Sep 4, 2026
Merged

feat(channels): P2 — clustering & editorial collections#2151
jung-thomas merged 8 commits into
DEVfrom
channels-p2-collections

Conversation

@jung-thomas

Copy link
Copy Markdown
Contributor

P2 — Clustering & Editorial Collections (external SAP channels integration)

Implements Phase 2 of the external channels integration spec (docs/superpowers/specs/2026-09-04-external-channels-integration-design.md), adding curator-reviewed editorial collections that group published channels and lead the /channels directory landing.

What's included (7 tasks, spec §5.2/§8/§10/§13/§15)

  1. ModelChannelCollections + ChannelCollectionItems entities (reuse existing AuthoringStatus enum), @cds.persistence.journal, regenerated csn + migration tables.
  2. Public feedGET /build/channel-collections, hard-gated on isPublished && authoringStatus === 'REVIEWED', broken-link item filtering (P1 parity).
  3. Admin serviceChannelCollections (draft-enabled) + ChannelCollectionItems projections on AdminService.
  4. Admin FE appapp/admin/channel-collections/ Fiori Elements app + shell registration (nav, prefix, manifest regenerated).
  5. LLM seed passsrv/lib/channels/seed-collections.js + npm run seed-collections; idempotent, preserves REVIEWED, writes drafts as AI_SEEDED; AI SDK lazily imported (off srv-qa boot path).
  6. Landing — collections lead the /channels directory; baked hugo/data/channel_collections.json + island section, degrades cleanly when empty.
  7. e2e nudge — tolerant /channels collections spec (self-skips without SMOKE_BASE_URL).

Scope boundary

P3 (ChannelTopicMap) and P4 (ChannelSubmissions) are explicitly out of this PR.

Testing

  • 20 P2 unit specs pass (model, feed, admin service, admin app, seed, island).
  • check-cds-build-staging and check-srv-qa-cp-list gates exit 0.
  • Un-reviewed drafts never render publicly (feed REVIEWED-gate verified end-to-end).

Review notes

Built via subagent-driven development (fresh implementer + spec/quality gate per task, broad final review). Final review caught + fixed a Hugo data-key mismatch (hyphen vs underscore filename) that would have silently hidden all collections — now channel_collections.json matches .Site.Data.channel_collections.

Not deployed — deploy is a separate explicit step.

@jung-thomas
jung-thomas merged commit 0d94f19 into DEV Sep 4, 2026
8 of 9 checks passed
@jung-thomas
jung-thomas deleted the channels-p2-collections branch September 4, 2026 19:37
jung-thomas added a commit that referenced this pull request Sep 4, 2026
…ollections

fix(channels): unbreak unit-tests slug-lookup guard after PR #2151
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant