6208 Commits

Author SHA1 Message Date
Nubenetes Bot
bd5499a9c6 release: v2.9.15 — category-first Intelligence Digest with navigable TOC v2.9.15 2026-06-19 19:50:52 +02:00
Inaki
bfe743a6cd Merge pull request #397 from nubenetes/feat/digest-toc-sections
feat(v2): category-first digest layout for a navigable right-hand TOC
2026-06-19 19:50:48 +02:00
Nubenetes Bot
2e281e98ea feat(v2): category-first digest layout for a navigable right-hand TOC
The Tech & Cloud and Industry & Geo digest pages rendered period-first (three
time-window tabs, each nesting every category as bold text), so they had zero
real headings and an empty "On this page" TOC. Inverted _generate_digest_pages()
to category-first: each category is a real ## heading with the 3 time-windows as
content tabs inside it. The right TOC now lists all 22 tech categories / 4 geo
regions once each, headings sit at column 0 (no MD023 workaround), tabs preserved.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 19:50:23 +02:00
Inaki
32a2f5925a Merge pull request #396 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-19 19:41:19 +02:00
Nubenetes Bot
49b3405097 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 17:39:56 +00:00
Nubenetes Bot
d90763f8bd docs: automated README metric synchronization [skip ci] 2026-06-19 17:33:16 +00:00
Nubenetes Bot
17f438553b merge: back-merge v2.9.14 into develop 2026-06-19 19:33:07 +02:00
Nubenetes Bot
8f6fc3caad release: v2.9.14 — deterministic V2 Publisher push v2.9.14 2026-06-19 19:32:58 +02:00
Inaki
851efb3050 Merge pull request #395 from nubenetes/feat/publisher-deterministic-push
ci: make V2 Publisher push deterministic (04.1)
2026-06-19 19:32:54 +02:00
Nubenetes Bot
a5ff06cafb ci: make V2 Publisher push deterministic (04.1)
Replace the fragile rebase + checkout --ours/--theirs README.md self-healing
(which could hang on a non-README conflict and discard the bot's README
metrics) with the deterministic model already used by 05.1: the render is
authoritative for its generated surface, so each attempt hard-resets to the
freshest origin/develop tip, overlays the generated outputs verbatim
(docs/, v2-docs/, inventory.yaml/.sql, news_digest.json — source configs left
untouched), regenerates README on top, then commits and pushes with a 5x retry.
Never hangs on a conflict, never loses data. Pin PYTHONPATH on the step.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 19:32:25 +02:00
Nubenetes Bot
e1df3938d5 docs: automated README metric synchronization [skip ci] 2026-06-19 17:07:08 +00:00
Nubenetes Bot
f91afaa6d2 merge: back-merge v2.9.13 into develop 2026-06-19 19:07:02 +02:00
Nubenetes Bot
dc8cdac96d release: v2.9.13 — CI race-condition hardening & advisory PR Guardian v2.9.13 2026-06-19 19:06:46 +02:00
Inaki
44b4b81317 Merge pull request #394 from nubenetes/feat/ci-race-hardening
ci: harden develop write-path against races & make PR Guardian advisory
2026-06-19 19:06:42 +02:00
Nubenetes Bot
b52f793ea5 ci: harden develop write-path against races & make PR Guardian advisory
Root cause of the recurring README-sync failure: 05.1 modified README.md in
earlier steps then ran `git pull`, which aborts on a dirty tree whenever a
concurrent bot commit advanced develop first. Rewrote its commit step as a
fetch → reset --hard → regenerate → commit → push retry loop (README is a pure
function of inventory, so a hard reset never loses data and eliminates the
merge-conflict / --ours/--theirs class entirely).

Also:
- 03.1/03.2/03.3: wrap the single-shot pull --rebase && push in a 5x retry loop.
- 07.1 PR Guardian: continue-on-error (advisory; keeps the comment, drops the
  blocking red  on AI false positives) + PR-scoped concurrency.
- 07.2 Markdown Linter: PR/branch-scoped concurrency with cancel-in-progress.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 19:06:10 +02:00
Nubenetes Bot
f60d071e40 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 16:55:52 +00:00
Nubenetes Bot
57ebe6cec3 merge: back-merge v2.9.12 into develop 2026-06-19 18:50:04 +02:00
Nubenetes Bot
60abdc60d5 release: v2.9.12 — restore V2 search/tag filter + drop redundant Markdown TOC v2.9.12 2026-06-19 18:49:51 +02:00
Inaki
1834227e72 Merge pull request #392 from nubenetes/feat/restore-v2-search-drop-toc
feat(v2): restore in-page search/tag filter & drop redundant Markdown TOC
2026-06-19 18:49:40 +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
Inaki
4cd9c4bbf0 Merge pull request #391 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-19 16:39:09 +02:00
Nubenetes Bot
600dceff4e feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 14:38:39 +00:00
Nubenetes Bot
2b7f55ad9d docs: automated README metric synchronization [skip ci] 2026-06-19 14:27:16 +00:00
Inaki
c76ad03539 Merge pull request #390 from nubenetes/feat/fix-geo-digest-display
fix: populate Industry & Geo Intelligence Digest + España→Spain
2026-06-19 16:26:52 +02:00
nubenetes-bot
ad62e46f9e style(cleaner): auto-correcting formatting & URL normalization 2026-06-19 14:25:24 +00:00
Nubenetes Bot
48e8f71b6d fix: populate Industry & Geo Intelligence Digest (España→Spain rename)
_get_entry_geo() called entry.get("url","") before the url key was
injected into the dict, so TLD inference always received an empty
string and all 304 geo-eligible entries were silently dropped.

Fix: add url= parameter to _get_entry_geo and pass the dict key from
generate_digest. Also renames España→Spain in DIGEST_CATEGORIES,
GEO_CATEGORIES, TLD map, and v2_optimizer geo_cats list.

news_digest.json now includes Americas/Europe/Spain/Asia-Pacific data
(star-based fallback; Gemini will re-rank on next Monday CI run).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 16:24:18 +02:00
Nubenetes Bot
d1d986bf78 merge: back-merge v2.9.10 into develop 2026-06-19 16:06:43 +02:00
Nubenetes Bot
81a73acc65 docs: automated README metric synchronization [skip ci] 2026-06-19 14:06:37 +00:00
Nubenetes Bot
c095672810 release: v2.9.10 — readme-sync push loop fix + digest pipe-in-title fix v2.9.10 v2.9.11 2026-06-19 16:06:27 +02:00
Nubenetes Bot
2c9b460462 Merge branch 'develop' of github.com:nubenetes/awesome-kubernetes into develop 2026-06-19 16:06:07 +02:00
Nubenetes Bot
ebba2c81f6 docs: CHANGELOG entry for v2.9.10
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 16:05:59 +02:00
Nubenetes Bot
92dab5e0ee docs: automated README metric synchronization [skip ci] 2026-06-19 14:05:36 +00:00
Inaki
da96dbc08a Merge pull request #389 from nubenetes/feat/fix-readme-sync-push-loop
fix: readme-sync push loop — rebase → merge-based retry
2026-06-19 16:05:12 +02:00
nubenetes-bot
5eec0880f7 style(cleaner): auto-correcting formatting & URL normalization 2026-06-19 14:04:54 +00:00
Nubenetes Bot
b470c4acdb fix: escape pipe chars in digest table link titles
Titles containing ' | ' (e.g. "Neo, Now in the Terminal | Pulumi Blog")
broke the Markdown table renderer because the unescaped pipe was parsed
as a column separator.

Root cause: v2_optimizer.py escaped pipes in the 'why' column but not
in the link title — one-line fix adds `.replace("|", r"\|")` to `t`.

Also corrects the 4 already-rendered broken entries in tech-digest.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 16:04:21 +02:00
Nubenetes Bot
c70aef8b78 fix: readme-sync push loop — switch from rebase to merge-based retry
The rebase loop never attempted a push after self-healing; it looped
back to `git pull --rebase` and hit a fresh conflict every iteration
(5x), then the final bare push failed non-fast-forward.

Root cause: in a rebase `--ours` = remote side (not our bot commit),
so the README was discarded and rebuilt each round while the remote
kept advancing.

Fix:
- Pull latest *before* committing (shrinks conflict window)
- Retry loop now tries push first, then merge-pulls on rejection
- Uses `-X ours` merge (correct semantics: keep bot's README)
- Re-runs updater after each merge so metrics stay consistent

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 16:02:13 +02:00
Inaki
3ff5a4e29a Merge pull request #388 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-19 15:57:21 +02:00
Nubenetes Bot
94ac0b73a2 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 13:56:44 +00:00
Nubenetes Bot
3669753fb1 merge: back-merge v2.9.9 into develop 2026-06-19 15:56:14 +02:00
Nubenetes Bot
00cf39f19b release: v2.9.9 — backfill CHANGELOG 2.6.0-2.9.1 (now complete) v2.9.9 2026-06-19 15:56:09 +02:00
Inaki
8eea34b1d1 Merge pull request #387 from nubenetes/docs/changelog-backfill-2.6-2.9.1
docs: backfill CHANGELOG entries for 2.6.0-2.9.1
2026-06-19 15:55:54 +02:00
Nubenetes Bot
8ad8230014 docs: backfill CHANGELOG entries for 2.6.0-2.9.1
Reconstructed the missing 2.6.0-2.9.1 entries from GitHub Release notes,
closing the gap where CHANGELOG.md had stalled at 2.5.8 while releases
reached 2.9.x. Changelog is now complete and continuous through 2.9.9.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:55:47 +02:00
Nubenetes Bot
ebc7e7a26f merge: back-merge v2.9.8 into develop 2026-06-19 15:52:32 +02:00
Nubenetes Bot
6a1b944e45 release: v2.9.8 — gh_pushed data cleanup + CHANGELOG backfill (2.9.2-2.9.8) v2.9.8 2026-06-19 15:52:27 +02:00
Inaki
a05d33381a Merge pull request #386 from nubenetes/docs/changelog-2.9.8
docs: document releases 2.9.2-2.9.8 in CHANGELOG.md
2026-06-19 15:52:12 +02:00
Nubenetes Bot
2b5bb54d94 docs: document releases 2.9.2-2.9.8 in CHANGELOG.md
The in-repo CHANGELOG had drifted (last entry 2.5.8) while GitHub Releases
went to 2.9.7. Backfill the 2.9.2-2.9.8 entries I have full detail on and
flag the 2.6.0-2.9.1 gap. 2.9.8 also covers the existing gh_pushed
'N/A'->null data cleanup (PR #385).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:52:06 +02:00
Nubenetes Bot
803870adc5 docs: automated README metric synchronization [skip ci] 2026-06-19 13:49:37 +00:00
Inaki
eeef76614d Merge pull request #385 from nubenetes/chore/normalize-gh-pushed-data
chore: normalize existing gh_pushed 'N/A' -> null (281 rows)
2026-06-19 15:49:14 +02:00
Nubenetes Bot
cc9e7ae220 chore: normalize existing gh_pushed 'N/A' -> null in inventory (281 rows)
Completes the v2.9.4 source fix by cleaning the existing data. last_checked
is already INTEGER (applied by a pipeline run after v2.9.6), so this diff is
limited to the 281 gh_pushed values. Deterministic / CI-reproducible.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:48:56 +02:00
Nubenetes Bot
47aec8ed87 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 13:48:06 +00:00