feat(topics): tag-tree topics — CAP-served index + detail, concept enrichment, search fix - #2099
Merged
Conversation
Rebuild /topics/ to concept-parity: tag-hierarchy tree nav, KG-concept enrichment, dynamic-slug CAP serve path, search-box fix. Draft for review.
…iched, fail-open)
…itlePath import; annotate isNew hardcode
…l topic canonical/breadcrumb
…ncept-detail-render parity
…ent/topics-index, /content/topics/:slug
…— preserve query, cache-control, slug validation
…filter-input coverage
…land + page-topics; topic-detail CSS
Fix 1 (IMPORTANT): Add loadTopicCorpus() to topics-query.js and make buildTopicDetailPayload accept an optional corpus arg. In publish-topics.js, call loadTopicCorpus once before the loop and pass corpus to each call — eliminates O(topics × full-corpus) redundant DB reads at publish time. Single-slug serve path (srv/server.js) is unchanged (2-arg call, corpus absent).
Fix 2 (MINOR): Remove orphaned topics-map Vue island. Hugo topics layouts were deleted in Task 11; no live mount points remain. Delete src/topics-map/{main.ts,App.vue,ClusterMap.vue,App.test.ts} and vite.config.ts registration/budget plugin; remove island_manifest.json entry (gitignored, regenerates on build); update smoke test marker for /topics/ from id="topics-map" to id="topics-tree-root".
Fix 3 (MINOR): Drop page-topics from IN_SCOPE_PAGES — /topics/ is now served by CAP dynamic topic-index route, not a static page blob. Update page-key-map unit test to assert null for /topics/.
Fix 4 (MINOR): Add CSS for topic-* structural classes emitted by srv/lib/topic-detail-render.js (topic-detail, topic-breadcrumb, topic-detail__header/title/facet, topic-tutorials/concepts/related sections and their items/links) to hugo/assets/css/topics.css. The existing topics-detail/* cluster-detail CSS used topics-* (plural) but the renderer emits topic-* (singular) — genuine styling gap.
jung-thomas
marked this pull request as ready for review
September 1, 2026 22:02
jung-thomas
added a commit
that referenced
this pull request
Sep 2, 2026
fix(topics): URL-safe topic slugs so /topics/<slug> serves (#2099 follow-up)
This was referenced Sep 2, 2026
Merged
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.
Implements
docs/superpowers/specs/2026-09-01-tag-tree-topics-design.md. Rebuilds/topics/to concept-parity: stable SAP-tag slugs, CAP tree index + per-slug HANA-blob detail, deterministic concept enrichment via TutorialConceptLinks,/search/→ navigator redirect. Legacy topics_gallery section retired (homepage band untouched).Deploy: full MTA (approuter route
^/topics/(.*)$+ srv/lib changes). Topic blobs publish viagh workflow run rebuild-content.ymlpost-deploy.Built via subagent-driven-development (14 tasks + fix wave). Final whole-branch review: APPROVE-WITH-FINDINGS (0 Critical); the 1 Important (publish-loop corpus hoist) + 3 actionable Minors fixed and re-reviewed ALL-ADDRESSED. Unit gate: 9216 product tests pass (5 srv-qa suites fail only on a missing gitignored build bundle — pre-existing/environmental, branch touches neither srv-qa/ nor scripts/parsers/). Hybrid/e2e/smoke self-skip without a deployed target.