External channels P1 follow-ups: facets, owner badges, feed hardening - #2147
Merged
Conversation
Directory (spec 8.3/10 Tier-1 facets): - add focusArea + status facets to filter.ts + ChannelsDirectory.vue (was category/platform/owner/search only) - ownerBadge() derives SAP / SAP Advocate / Community / User Group / Third-party from ChannelOwnerType (was a single Community flag); render relatedUrls on the card Feed: - /build/channels now projects an explicit public whitelist instead of spreading the full row (drops managed audit + internal curation cols: sourceId, notes, aliases, contentHash, ingestBatch, lastChecked, isFeatured, linkStatusOverride, createdBy/modifiedBy) Shelf promotion: - FOCUS_TO_VERB now reaches CONNECT (community/network/events/connect) - CATEGORY_TO_SHELF lookup is case-insensitive Tests: filter facets + ownerBadge mapping; feed whitelist assertions; CONNECT + case-insensitive category promotion.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
External Channels — P1 follow-ups
Closes the three non-blocking follow-ups flagged in P1 (PR #2142). No new phase — refinements to what shipped. All against the existing spec
docs/superpowers/specs/2026-09-04-external-channels-integration-design.md.1. Directory facets (spec §8.3 / §10 Tier-1)
The Tier-1 deterministic facet set is category / focus area / SAP-vs-community / platform / status. P1 shipped only category / platform / owner / search. Added:
focusAreasarray)ChannelStatus)2. Owner badges + related links (spec §8.4 / §10 labeling)
ownerBadge()derives the five spec labels fromChannelOwnerType: SAP (Official/Executive), SAP Advocate, Community (Member/Organization), User Group, Third-party (Training/Media/Platform). Falls back to the coarse SAP/Community split whenownerTypeis absent. P1 rendered only a single "Community" flag.relatedUrls.3. Feed hardening
/build/channelsnow projects an explicit public whitelist instead of spreading the full row (...r). Drops managed audit + internal curation columns from the anon feed:sourceId,notes,aliases,contentHash,ingestBatch,lastChecked,isFeatured,linkStatusOverride,createdBy/modifiedBy. Consumers (fetch-channels.tspass-through, Hugo layout, island) only use whitelisted fields — verified.4. Shelf-promotion minors (deferred Task-6 items)
FOCUS_TO_VERBnow reaches CONNECT (community/network/networking/events/connect) — previously unreachable.CATEGORY_TO_SHELFlookup is case-insensitive — ingest case variance no longer silently defaults to REFERENCE.m?.shelfoptional-chain in the test (mapChannelToShelfnever returns null).Verification
filter.test.ts(facets + ownerBadge),build-channels-feed.test.js(whitelist assertions),channels-promote.test.js(CONNECT + case-insensitive) — 16 tests.srv-qabuild output +app/explore's uninstalledgraphologydep) — none channels-related.Deploy note
Frontend + backend change; no admin-shell bundle change. Deploy later per Tom.