91 Commits

Author SHA1 Message Date
Nubenetes Bot
00f1bc3826 feat: enable top navigation tabs alongside the left sidebar
Turn on navigation.tabs (+ .sticky) so the ~16 top-level sections render
as a pinned top tab bar in addition to the left sidebar, which stays and
scopes to the active tab. The earlier overflow concern is reduced by the
Topic Map grouping; Material falls back to horizontal scroll on narrow
viewports.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 19:34:18 +02:00
Nubenetes Bot
886f823c7f feat: group Topic Map nav + promote Videos + drop redundant video TOC
Navigation (v2_optimizer._sync_enterprise_navigation + v2-mkdocs.yml):
- "Topic Map" becomes a collapsible hub holding the three orientation
  pages — Topic Map (section index), Methodology, Technical Tags — since
  they are all about how the portal is structured.
- "Agentic Video Hub" is promoted above Intelligence Digest as a
  prominent top-level dropdown, keeping its category subpages.

Video subpages (v2_video_portal):
- Drop the in-page "## Table of Contents" block; it duplicated Material's
  native right-column "On this page" TOC (toc.follow), matching how the
  topic pages already omit it. The technology ordering list is retained
  internally to drive section render order.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 19:13:55 +02:00
Nubenetes Bot
eb9d58e13f feat: add Confluence-style label heatmap to Technical Tags page
Render a weighted "popular labels" cloud at the top of tags.md: every
label is listed alphabetically and sized/coloured by how many resources
carry it (log scale, 6 levels) so the most-used tags read biggest and
warmest. Each label anchors to its section below for jump-to-filter.

- v2_optimizer: emit .v2-tag-heatmap block in _generate_global_tag_index
- v2_elite.css: .v2-heat-1..6 size + warmth ramp (light + slate)
- bump CSS cache-buster to v2.9.39

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 19:07:12 +02:00
Nubenetes Bot
fa1a473b91 feat(v2/nav): OpenShift submenu (3/4/legacy) + group K8s distros; deterministic 2-col grid
Addresses the OpenShift 'lío' (ocp3 deprecated · openshift overview · ocp4
current 29-link page) and groups the Kubernetes distributions:

- OpenShift is now a nested submenu inside the Kubernetes menu (OpenShift ▸ →
  OpenShift 4 (current) · Overview · OpenShift 3 (legacy)), so the substantial
  ocp4 page is finally reachable. Reuses the AWS nested-submenu mechanism.
- Distros/platforms grouped at the end of the Kubernetes menu: Managed K8s ·
  OpenShift ▸ · Rancher · Distros & Alternatives (kubernetes-alternatives moved
  here and relabeled). Rancher was already present.
- Switched the 2-column Kubernetes menu from CSS multicol to a deterministic
  column-major grid (11 rows × 2 cols) with overflow:visible / max-height:none,
  eliminating the sub-pixel balancing remainder that left a faint scrollbar.

Verified in Chrome 148 (Playwright + screenshot): menu renders as a clean 2-col
card with NO scrollbar at viewport heights 768–1080; the OpenShift submenu opens
to the side, stays on-screen, and keeps the parent open. Cache-bust ?v=2.9.38.
V2-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 18:01:31 +02:00
Nubenetes Bot
d9860a77de fix(v2/nav): make tall Kubernetes menu reliable (2 columns, no scroll, no flip-block)
The Kubernetes dropdown was the only menu tall enough (22 items) to need a
scrollbar (overflow-y on an anchor-positioned popover), which made it open/behave
unreliably compared to the others. Two fixes:

- The Kubernetes menu now uses a 2-column layout (column-count:2), halving its
  height (~731px → ~353px) so it shows in full WITHOUT a scrollbar at any
  realistic viewport. Multicol is column-major, so reading order is preserved.
- Removed flip-block from the menu position-try fallbacks (kept flip-inline):
  the quick-nav is a sticky top bar, so a tall menu flipped above would shoot
  off the top of the screen. Menus now always open downward.

Verified in Chrome 148 (Playwright): Kubernetes menu opens with no scrollbar and
stays fully on-screen at viewport heights 700–1080; all 11 menus + the nested
AWS submenu still open correctly; bar stays one row to 1280px. Cache-bust
?v=2.9.37. V2-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 17:39:20 +02:00
Nubenetes Bot
408344495c feat(v2/nav): regroup quick-nav into 11 thematic menus + nested AWS submenu
Full category-driven reorganization of the quick-nav per the agreed taxonomy:
one direct pill (Topic Map) + 11 thematic dropdowns that group related topics
together so every destination has a sensible home.

  Digest · Kubernetes (Overview · Docker · Tools · Helm · kubectl · all
  kubernetes-* · Managed · OpenShift · Rancher) · Delivery (GitOps · CI/CD ·
  DevOps · Argo · Flux · Tekton · Jenkins · …) · IaC (Terraform · IaC · Ansible
  · Pulumi · Crossplane · Kustomize) · Cloud (AWS ▸ nested submenu · Azure · GCP
  · Serverless · FinOps · Edge · …) · Network · Security · Observability & SRE ·
  AI & Data · Dev & Platform · More

- Docker now lives inside Kubernetes; CI/CD + GitOps + DevOps share Delivery;
  Terraform + IaC share the IaC menu (as requested).
- AWS is a NESTED submenu inside Cloud (Cloud → AWS ▸ → 8 AWS pages), built with
  nested Popover API + explicit anchor() side-positioning (position-area's
  horizontal axis isn't honored when the anchor is inside another popover;
  left:anchor(right)/top:anchor(top) fixes it). Submenu keeps the parent open;
  flip-inline fallback near the right edge.
- Pages may appear in more than one menu where it aids discovery.
- Menus get max-height:82vh + overflow-y for the tall Kubernetes menu.

Verified in Chrome 148 (Playwright): all 11 menus open below + fit viewport; the
AWS submenu opens to the side with the parent kept open; bar stays one row to
1280px. Cache-bust ?v=2.9.36. V2-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 17:16:56 +02:00
Nubenetes Bot
79a13bd9ac feat(v2/nav): expand quick-nav menus with 13 high-value pages (38 total)
Data-driven expansion (ranked by per-page link count + relevance):
- New 📊 Digest menu: Tech & Cloud Digest + Industry & Geo Digest (was a single
  pill; now pairs both editions).
- New 🧰 K8s menu: Kubernetes Tools (144 links) · Helm · Managed K8s · OpenShift
  · Tutorials — the Kubernetes ecosystem, which the portal is centered on.
- ☁️ Cloud += Serverless · FinOps.
- 🌐 Network += Service Mesh (the category alongside Istio; Istio emoji → ).
- ⚙️ Ops += IaC · Developer Portals.
- ⋯ More += Technical Tags (1355 links) · Demos (102).

38 destinations total across 6 direct pills + 7 Popover menus. Added explicit
anchor pairs for the two new menus. Chip font trimmed to 0.62rem + tighter
gap/padding so all 13 bar chips still fit one row down to ~1280px. Verified in
Chrome 148 via Playwright: all 7 menus open below their button, stay on-screen
(right-edge flip), and close on Esc. Cache-bust ?v=2.9.33. V2-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:28:07 +02:00
Nubenetes Bot
c737d4b52f fix(v2/nav): quick-nav menus now open below their button + fit one row
Two fixes to the hybrid quick-nav shipped in v2.9.31:

1. Popover menus did not visibly open on click. Root cause: the menus used
   `position-area: bottom span-inline-end`, which mixes a physical keyword
   (bottom) with a logical one (span-inline-end) — invalid, so it computed to
   `none` and the menu fell back to its static position on top of the button.
   Additionally the popover's implicit anchor was not resolving. Fixed by using
   a valid all-physical `position-area: bottom span-right` and declaring explicit
   anchor-name / position-anchor pairs per button↔menu, so each menu reliably
   drops below its trigger and auto-flips (span-left) near the right edge.
   Verified in Chrome 148 via Playwright: all five menus open on real click,
   render below the button, stay within the viewport, and close on Escape.

2. The bar wrapped to a second row at common widths. Reduced the chip font
   ~1pt (0.7rem → 0.64rem) and trimmed the column-gap/padding so all 7 pills +
   5 menus fit a single row down to 1280px viewports.

Bumps v2_elite.css cache-bust to ?v=2.9.32. V2-only, template/CSS only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:13:13 +02:00
Nubenetes Bot
8b39d2ae8e feat(v2/nav): hybrid quick-nav — direct pills + Popover category menus
Collapses the 25-destination quick-nav from 3 wrapped rows to a single slim row
that stays one row regardless of how many destinations are added.

Structure:
- 7 direct one-click pills for the most-used flagships: Topic Map, Digest,
  Kubernetes, Docker, GitOps, Terraform, AI & MCP.
- 5 category menus for the long tail, built with the native HTML Popover API +
  CSS Anchor Positioning (Baseline 2026), zero JS:
    ☁️ Cloud (AWS · Azure · GCP) · 🌐 Network (Networking · Istio · K8s Net)
    · 🔐 Security (K8s Security · DevSecOps)
    · ⚙️ Ops (CI/CD · Observability · SRE · DevOps)
    · ⋯ More (Videos · Ansible · Messaging · MLOps · Methodology · V1 Archive)

Why this design: keeps the hot paths at one click (the project's whole value),
while the rarely-used clusters fold away — so the bar never grows past one row.
Popover API gives free Esc / click-outside dismissal and focus management and
works identically on touch and desktop; menus drop below their button via
position-area with flip fallbacks, animate in via @starting-style, and rotate
their caret using :has(). prefers-reduced-motion honored. All 25 destinations
preserved. Bumps v2_elite.css cache-bust to ?v=2.9.31. V2-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 15:55:25 +02:00
Nubenetes Bot
27716bbb4c feat(v2/nav): redesign quick-nav as centered category-grouped pill chips
Expands the quick-nav bar to 21 destinations and restyles it as a modern,
centered chip bar. Adds CI/CD, Terraform-adjacent Ansible, and the three
hyperscalers (AWS, Azure, GCP), and reorders every tab into related category
clusters with short labels (even where the page title is long):

  discovery (Topic Map · Digest · Videos) → platform (Kubernetes · Docker)
  → delivery (GitOps · CI/CD) → IaC (Terraform · Ansible)
  → cloud (AWS · Azure · GCP) → security → ops (Observability · SRE · DevOps)
  → data (Messaging) → AI/ML (AI & MCP · MLOps) → Methodology → V1 Archive (muted)

Visual upgrade (CSS, modern Chrome):
- Pill chips instead of plain text links — more scannable.
- Chip background/border/glow derived from the theme accent via color-mix()
  (in srgb), so the bar restyles automatically with the palette.
- Centered wrapping rows (justify-content: center) — balanced across 2-3 rows
  at 21 items vs a ragged last row when left-aligned; the repeated ☁️ visually
  groups the three cloud providers.
- Hover lift (translateY) + accent glow; :focus-visible outline for a11y;
  prefers-reduced-motion honored.
- Logical properties (margin-inline / padding-inline); mobile collapses to a
  single horizontal-scroll row with the scrollbar hidden.

Bumps v2_elite.css cache-bust to ?v=2.9.29. V2-only; no page regeneration.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 15:28:52 +02:00
Nubenetes Bot
85e47f12af feat(v2/nav): slim quick-nav bar with persistent key destinations
Adds a thin horizontal bar below the header (on every page) with 6 curated
one-click destinations: Topic Map, Intelligence Digest, Video Hub, AI & MCP,
Methodology, V1 Archive. Implemented by overriding Material's 
H        H        H        H        H        H        H        H        H        H       
 block
(empty since navigation.tabs is disabled) + .nb-quicknav CSS — so it gives the
persistent cross-page shortcuts that previously only existed as badge cards on
the home, WITHOUT the 18-tab overflow and WITHOUT collapsing the full left
navigation tree. Template/CSS only (no page regeneration); V2-only (V1 uses the
stock theme). Cache-bust v2_elite.css?v=2.9.27.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:47:12 +02:00
Nubenetes Bot
40275974c0 feat(v2): collapsible nested left nav + 3 home section headings
Two fixes following the tabs removal:

1) Nav was a FLAT list of 18 section labels with no expand/indent, because
   navigation.sections rendered them as non-collapsible group labels and
   navigation.prune stripped inactive children. Disabled both → the left
   sidebar is now a proper COLLAPSIBLE, nested, indented tree (14 toggles,
   chevrons, collapsed by default). No size penalty (88213 vs 88516 bytes).

2) Home had a single H2, so its right-hand 'On this page' TOC was empty. Added
   '## Explore the Ecosystem' (badge cards) and '## Trending Now' (digest) to
   join the existing '## The Cloud Native Universe We Track' — the home's right
   TOC now lists three real sections.

Net effect: both side columns are now useful on every page, incl. the home —
left = full collapsible directory, right = per-page section map.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:33:27 +02:00
Nubenetes Bot
98041bb7b4 feat(v2/nav): disable navigation.tabs — full section list in the left sidebar
18 top-level sections overflowed the horizontal tab bar on a laptop (~3300px of
labels vs ~1400px viewport), forcing horizontal scroll to reach the right-side
dimensions, and left the sidebar nearly empty on top-level pages like the home.

Disabling navigation.tabs (+ .sticky) moves the sections into the standard
vertical left sidebar: it handles 18 collapsed sections via normal vertical
scroll, stays populated on every page (incl. the home), and nothing clips.
Verified: the home nav goes from 23 rendered links (mostly the tab bar) to the
full 178-link tree, with 0 tab elements. Theme-only change (the optimizer's nav
sync only rewrites the nav: block, so this is preserved).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:20:26 +02:00
Nubenetes Bot
c377b4e4d9 feat(v2/seo): richer per-page descriptions from top resources + creation dates
- Enrich each page's meta description with its top-ranked resource names
  (long-tail keywords) instead of a pure template — e.g. 'Top Kubernetes
  resources for 2026, AI-ranked: Helm, kube-prometheus and more — curated Cloud
  Native tools, guides and references.' URL/path-like and emoji-laden titles are
  filtered out; pages whose top links are all URL-like fall back to the clean
  template. Capped at ~160 chars on a word boundary.
- Enable git-revision creation dates (enable_creation_date: true) so every page
  footer shows both 'Created' and 'Last update' — an age/freshness signal.

Verified locally: descriptions are clean, tool-named, 126-151 chars; the footer
renders both dates. Pages pick up the new front-matter on the next Publisher run.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:39:44 +02:00
Nubenetes Bot
fcf47473da fix(v2): don't inject the resource/tag filter on Topic Map & Methodology
The in-page filter widget (v2_filter.js) auto-injects wherever the page has
<ul><li> items. Topic Map lists category links (with counts) and Methodology
lists legend rows — neither carries .md-tag maturity tags, so the tag pills
filtered to zero and the 'X of Y resources' counter mis-counted categories as
resources. Added both pages to the widget's h1-based skip-list. Bumped
v2_filter.js?v=2.9.19.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:39:02 +02:00
Nubenetes Bot
266499ac2f feat(v2/seo): per-page last-updated dates + JSON-LD structured data
C — git-revision-date-localized plugin: adds a 'Last update' date to every V2
page (freshness signal for SEO and reader trust). Added the dependency to
requirements.txt, enabled it in v2-mkdocs.yml (type: date,
fallback_to_build_date so the build never fails), and set fetch-depth: 0 on the
06 deploy checkout so the plugin sees full git history (otherwise every page
would show the build date).

D — JSON-LD schema.org structured data: WebSite (with a sitelinks SearchAction)
+ publishing Organization, injected via an extrahead block in docs/overrides/
main.html (shared V1/V2). Enables richer search results / knowledge-panel
eligibility. Validated: build exits 0, JSON-LD parses, 'Last update' renders.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:23:49 +02:00
Nubenetes Bot
ae0af172dc fix(v2): Topic Map dimensions must be h2 not h3 (MD001 lint failure)
The Topic Map page H1 is 'Topic Map', so dimension headings jumped h1->h3
and tripped markdownlint MD001/heading-increment, failing 07.2 Markdown
Linter on develop and master after v2.9.16. Emit dimensions as h2 in the
generator, the committed page, and update the CSS selector
(.topic-map-dim h2). Verified 0 errors with the CI markdownlint config.
Bumped v2_elite.css?v=2.9.17.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 12:03:02 +02:00
Nubenetes Bot
c41028e023 feat(v2): restructure home — Topic Map + Methodology pages, mosaic & a11y polish
Declutter the V2 landing page into a curated entry point and move the
full category directory and reference legends to dedicated pages.

Home (index):
- Move "Trending Now / Digest" above the signature YouTube mosaic (fix
  inverted altitude: fresh, dynamic content first).
- Replace the ~130-link "Strategic Dimensions" dump with a "Topic Map"
  badge card + a slim reference footer (Topic Map · Methodology · Videos).
- Frame the mosaic with a "The Cloud Native Universe We Track" heading.

New generated pages:
- topic-map.md — full category directory by dimension in a responsive
  multi-column CSS grid, with per-category resource counts.
- methodology.md — Maturity Taxonomy + Technical Impact legend tables
  (moved out of the home).

Mosaic (kept as brand signature, reinforced):
- Surface the per-group category labels that were hidden in title=.
- loading="lazy" on the ~150 channel logos (LCP/perf win).

about.md videos:
- youtube-nocookie.com + loading="lazy" + responsive aspect-ratio wrapper.

Config & cleanup:
- Disable navigation.expand (169-entry nav stayed fully open); the Topic
  Map page now serves as the full directory.
- Branded 404 page with clear ways back (Home / Topic Map / V1 Archive).
- Hoist repeated inline styles (hero badge row) into CSS classes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 11:52:21 +02:00
Nubenetes Bot
19b7b44e20 feat(v2): restore in-page search/tag filter & drop redundant Markdown TOC
Fix: the per-page resource search box with maturity tag-pills stopped
appearing after navigation.instant was enabled (DOMContentLoaded fires only
on first SPA load). Reworked v2_filter.js to init via Material's document$
observable with a DOMContentLoaded fallback, guard double-injection, bind the
clickable-tag delegation once, and add a no-results state. Cache-bust ?v=2.9.12.

Change: removed the duplicated Markdown "## Table of Contents" from all 156 V2
content pages and from v2_optimizer.py — it forced hundreds of links of scroll
on large pages. Replaced by Material's native sticky "On this page" TOC
(removed toc.integrate, added toc.follow). tags.md keeps its TOC (it is an index).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 18:49:15 +02:00
Nubenetes Bot
891f4b8dbd fix: align Intelligence Digest hero card height with the other 4
The four logo hero cards use a 100px <img>; the Intelligence Digest card
uses an emoji <div class=hero-badge-icon> that was only ~32px tall, so it
rendered shorter. Give .hero-badge-icon a 100px flex-centered box (and
matching 12px bottom margin) so all five cards are the same height.

Cache-bust bumped to ?v=2.9.7.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:41:32 +02:00
Nubenetes Bot
99c9e2f8f0 fix: remove content-visibility from dense indexes (v2.9.2)
Removed `content-visibility: auto` on broad <ul>/<ol> selectors and
.v2-tag-section. On the slate (dark) theme it produced black flashes
while scrolling and made link lists below the index mosaic appear
collapsed/broken due to intrinsic-size mismatch causing scrollbar jumps.
The tags page already uses collapsed <details> (native render skipping),
so the optimization was redundant and harmful.

Bumped CSS cache-bust to ?v=2.9.2.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 14:32:32 +02:00
Nubenetes Bot
e773676a70 feat: incremental digest engine — reuse Gemini results when inventory unchanged
Each (category × period) cell in news_digest.json now carries a hash of its
entry pool (sorted URLs). Before calling Gemini, the engine checks:
  1. Hash matches stored hash (same inventory entries)
  2. Last analyzed within MAX_STALENESS_DAYS=30

Both conditions true → reuse existing ranked list, 0 Gemini API calls.
Only cells where the inventory actually changed (new/removed entries) trigger
a fresh Gemini ranking.

Expected savings: re-runs with code-only changes → 0 API calls (down from 66).
New ingestion batch → only affected categories call Gemini (5-10 of 26 typical).
Stale refresh (>30d) → full refresh at most once per month.

Also:
- Remove day-level GitHub Actions cache for digest (redundant: news_digest.json
  is committed to the repo and is the persistent store for _meta)
- Always run news_digest.py in both 04.1 and 09 workflows (it's cheap when 0
  Gemini calls are needed)
- Trending badge now reads _meta.last_updated (actual analysis date) instead of
  file mtime (which changes on every render/commit)
- Remove invalid extra_head key from v2-mkdocs.yml (left over from rollback)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 14:09:11 +02:00
Nubenetes Bot
119bd4158f revert: restore v2.8.4 state — publisher deletions broke V2 portal
The publisher deleted ~30 v2-docs pages still referenced in v2-mkdocs.yml nav,
producing a broken MkDocs build. Rolling back to last known good state (v2.8.4).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 13:19:40 +02:00
Nubenetes Bot
23256352a7 fix: remove invalid extra_head key and fix broken redirect target
- Remove extra_head (not a valid MkDocs config key, was breaking V2 build)
- Fix digital-money.md redirect: finops.md was deleted by publisher,
  redirect now points to kubernetes.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 13:06:30 +02:00
Nubenetes Bot
1b56b77cbf feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 10:51:23 +00:00
Nubenetes Bot
88f891fd4e feat: 5 improvements — geo inference, last-updated badge, search boost, RSS feed, weekly cron
1. geo_region inference: _infer_geo_from_url() infers Americas/Europe/España/Asia-Pacific
   from URL TLD (.es .de .fr .uk .jp .cn etc.) as fallback when geo_region field is empty.
   Industry digest now shows real content instead of empty categories.

2. Last-updated badge: trending section header now shows "Updated Jun 19, 2026" pill
   derived from news_digest.json mtime — gives readers confidence in freshness.

3. Search boost: tech-digest and industry-digest pages now have search.boost: 2
   frontmatter so they rank higher in MkDocs Material site search.

4. RSS feed (src/rss_generator.py): generates v2-docs/feed.xml with top-20 curated
   picks from 3-month digest. Runs after news_digest in publisher. Autodiscovery
   <link rel="alternate"> added to v2-mkdocs.yml extra_head.

5. Weekly cron (09.weekly_digest.yml): runs every Monday 06:00 UTC, generates digest
   with Gemini, renders digest pages, commits, then triggers publisher.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 11:11:02 +02:00
Nubenetes Bot
13d51e8fa9 fix: remove offline plugin (.html suffix), add digest placeholder pages, enforce clean URL mandate
- Remove offline plugin from v2-mkdocs.yml — it forces .html suffixes
  on all URLs, breaking SEO and existing deep-links
- Add placeholder tech-digest.md and industry-digest.md pages to prevent
  404 errors before first Gemini digest generation run
- Add clean URL mandate to CLAUDE.md and GEMINI.md: offline plugin is
  permanently forbidden, use_directory_urls must always be true
- Update README with V2 URL Policy section

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 09:28:50 +02:00
Nubenetes Bot
3dc52af391 feat: add CNCF landscape integration, GitHub activity enrichment, license change detection, dedup engine, PWA support, and expanded video hub
- Add src/enrichment.py (395 lines): CNCF landscape API integration for
  project graduation status, GitHub issue/PR velocity tracking with
  community health scoring, and license change detection with history
- Add src/dedup.py (194 lines): URL normalization dedup, content-hash
  dedup, title-similarity dedup (85% threshold via SequenceMatcher),
  and resolution strategy keeping highest-quality entry
- Enable PWA/offline plugin in v2-mkdocs.yml for cached offline reading
- Expand video hub categorization with MLOps, security, IaC, GitOps,
  observability, FinOps, cloud providers, and language-specific routing
- Add dedup scan and enrichment pipeline steps to CI publish workflow

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 09:00:53 +02:00
Nubenetes Bot
1149a9c8f7 feat: add announcement bar, tags/RSS/minify plugins, markdown extensions, and fix comparison table threshold
- Add announcement bar with digest promo via template override
- Enable tags plugin (native clickable tag navigation)
- Add RSS plugin for digest feed subscription
- Enable minify plugin for production HTML optimization
- Add markdown extensions: highlight, inlinehilite, smartsymbols, caret, tilde, tables, footnotes, abbr, def_list
- Add mkdocs-rss-plugin to requirements.txt
- Fix comparison table threshold mismatch (config: 8, code: 5 → aligned to 8)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 00:42:17 +02:00
Nubenetes Bot
4e87c248fd feat: implement AI-powered news digest engine, MkDocs UX overhaul, pipeline hardening, and stub page merges
- Add 26-category news digest engine (src/news_digest.py) with Gemini AI ranking
  for 3/6/12 month temporal panels across tech, cloud, and geo categories
- Add discovered_at, company, geo_region fields to inventory schema with backfill
  script populating 18K+ existing entries
- Fix critical v2-mkdocs.yml bug: plugins were nested under theme (silently disabled)
- Add MkDocs Material features: instant nav, breadcrumbs, footer, announce bar
- Add trending cards CSS grid and replace Agentic Pulse with dynamic Trending Now
- Generate tech-digest.md and industry-digest.md with tabbed 3/6/12 month views
- Merge 12 stub pages (<40 lines each) into parent categories with redirects
- Replace 50 bare except:pass patterns with contextual logging across all pipeline files
- Expand autonomous discovery from 6 to 14 GitHub search queries
- Add stale health re-check for online entries older than 30 days
- Track addition_method by source type (rss, twitter, github_trending)
- Add digest generation step to CI publish workflow

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 00:38:56 +02:00
Nubenetes Bot
ab72d9c411 feat: configure V2 to serve at root and V1 at /v1/ 2026-06-18 11:26:10 +02:00
Nubenetes Bot
8926f5c64a feat: enforce use_directory_urls: true for V2 clean URLs and update mandates 2026-06-18 10:27:52 +02:00
Nubenetes Bot
512b7d67b0 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-18 08:17:29 +00:00
Nubenetes Bot
44e607a83a feat: implement offline mock debate simulator and clickable tag filters sync 2026-06-18 03:17:22 +02:00
Nubenetes Bot
235d9d721b feat: implement Phase 3 tagging system, clickable tag filtering, custom color badges, and tags.md index generation 2026-06-18 02:36:51 +02:00
Nubenetes Bot
ae683c6d1a feat(v2): implement client-side interactive search/filter widget & upgrade Video Hub layout to glassmorphic cards grid 2026-06-18 01:16:59 +02:00
Nubenetes Bot
9184b4cc5c feat(v2): set dark mode as default theme and update changelog to v2.4.1 2026-06-15 13:01:05 +02:00
Nubenetes Bot
8212f0d9a6 feat(v2): set dark mode as default and improve About page hierarchy 2026-06-14 13:13:06 +02:00
Nubenetes Bot
d29de67f71 chore: revert to clean directory URLs for SEO (use_directory_urls: true) 2026-06-12 20:44:40 +02:00
Nubenetes Bot
bbb52d5482 chore(release): bump version to 2.3.44 and document changes 2026-06-10 11:12:25 +02:00
Nubenetes Bot
4ab138942e fix(v2): resolve mobile navigation drawer contrast issues in dark mode and bump version to 2.3.42 2026-06-03 15:12:55 +02:00
Nubenetes Bot
de196fee27 chore: add cache buster to v2_elite.css [skip ci] 2026-05-27 23:49:36 +02:00
Nubenetes Bot
3066e24a16 feat: enable navigation.indexes for clickable Agentic Video Hub tab [skip ci] 2026-05-27 23:45:56 +02:00
Nubenetes Bot
f84ecce6d0 feat: design interactive conformance image effects and fix navigation path compilation [skip ci] 2026-05-27 23:42:37 +02:00
Nubenetes Bot
8bd68603b1 feat: persist 4 hero cards in v2 optimizer and update v2 docs [skip ci] 2026-05-27 23:31:38 +02:00
Nubenetes Bot
1a69f53a16 docs: modularize Video Hub, fix anchors/links, and automate cron schedule [skip ci] 2026-05-27 23:26:43 +02:00
Nubenetes Bot
4a5e8f0aad fix: resolve navigation loop for V1 access and bump to 2.3.3 [skip ci] 2026-05-26 01:35:28 +02:00
Nubenetes Bot
9e93630751 feat: finalize hybrid architecture synchronization and bump to 2.3.2 [skip ci] 2026-05-26 01:31:28 +02:00
Nubenetes Bot
515fa782cc feat: revert to Hybrid SEO-First architecture (V1 at Root, V2 at /v2/) [skip ci] 2026-05-26 01:22:34 +02:00
Nubenetes Bot
470059e59f fix: resolve redirect collision and restore access to V2 pages, bump to 2.2.3 2026-05-26 00:35:02 +02:00