Skip to content

feat(topics): tag-tree topics — CAP-served index + detail, concept enrichment, search fix - #2099

Merged
jung-thomas merged 20 commits into
DEVfrom
worktree-tag-tree-topics
Sep 1, 2026
Merged

feat(topics): tag-tree topics — CAP-served index + detail, concept enrichment, search fix#2099
jung-thomas merged 20 commits into
DEVfrom
worktree-tag-tree-topics

Conversation

@jung-thomas

Copy link
Copy Markdown
Contributor

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 via gh workflow run rebuild-content.yml post-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.

Rebuild /topics/ to concept-parity: tag-hierarchy tree nav, KG-concept
enrichment, dynamic-slug CAP serve path, search-box fix. Draft for review.
…— preserve query, cache-control, slug validation
…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
jung-thomas marked this pull request as ready for review September 1, 2026 22:02
@jung-thomas
jung-thomas merged commit 5cddea6 into DEV Sep 1, 2026
6 of 7 checks passed
@jung-thomas
jung-thomas deleted the worktree-tag-tree-topics branch 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)
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