Commit Graph

77 Commits

Author SHA1 Message Date
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
Nubenetes Bot
76318ccb83 fix: implement SEO mitigation via redirects and smart 404 and bump to 2.2.2 2026-05-26 00:32:08 +02:00
Nubenetes Bot
0d9eb6334e feat: promote V2 Elite Portal to root and move V1 to /v1/ [skip ci] 2026-05-26 00:06:02 +02:00
Nubenetes Bot
08d5a631be style: restore index branding and integrate ultra-visible favicon, bump to 2.1.7 2026-05-25 23:36:07 +02:00
inafev
5d5191cc1b feat: sync V2 elite curated edition and README metrics [skip ci] 2026-05-25 12:59:16 +00:00
inafev
ba19d07a58 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-05-25 12:33:54 +00:00
Nubenetes Bot
5ff9dd7dca style: standardize modern favicon as favicon-car-modern.png and configure social cards, bump to 2.0.6 2026-05-25 14:27:46 +02:00
Nubenetes Bot
795eb7d60c style: modernize visual identity with new Gemini car favicon and bump to 2.0.5 2026-05-25 14:20:49 +02:00
Nubenetes Bot
0378bf4285 docs: simplify AI navigation and bump version to 2.0.3 2026-05-25 13:45:36 +02:00
inafev
0e068883de feat: sync V2 elite curated edition and README metrics [skip ci] 2026-05-24 15:30:35 +00:00
inafev
7e3d5a082f feat: sync V2 elite curated edition and README metrics [skip ci] 2026-05-24 15:40:08 +02:00
Nubenetes Bot
085808a857 chore: anonymize site author metadata in V1 and V2 2026-05-24 11:13:40 +02:00
Nubenetes Bot
1ef758d4bc chore: refine V2 branding (site name with AI subtitle and original content header) 2026-05-24 11:08:42 +02:00
inafev
5048b86b80 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-05-22 16:47:44 +00:00
Nubenetes Bot
000c551203 fix: restore persistent V2 video hub links, correct metadata, and cleanup temporary files 2026-05-22 18:00:10 +02:00