Commit Graph

6194 Commits

Author SHA1 Message Date
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
Nubenetes Bot
d31cf94c8d merge: back-merge v2.9.7 into develop 2026-06-19 15:42:02 +02:00
Nubenetes Bot
9f70c32ff5 release: v2.9.7 — align Intelligence Digest hero card height v2.9.7 2026-06-19 15:41:49 +02:00
Inaki
7425a6a4cb Merge pull request #383 from nubenetes/fix/hero-digest-card-size
fix: align Intelligence Digest hero card height with the other 4
2026-06-19 15:41:44 +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
7c467ea752 Merge remote-tracking branch 'origin/develop' into develop 2026-06-19 15:38:53 +02:00
Nubenetes Bot
6050b39545 merge: back-merge v2.9.6 into develop 2026-06-19 15:38:51 +02:00
Nubenetes Bot
29abd31e56 release: v2.9.6 — deterministic inventory dump (last_checked INTEGER) v2.9.6 2026-06-19 15:38:46 +02:00
Nubenetes Bot
6090747083 docs: automated README metric synchronization [skip ci] 2026-06-19 13:38:44 +00:00
Inaki
fe08a271f4 Merge pull request #382 from nubenetes/fix/deterministic-dump-code
fix: deterministic inventory dump — last_checked as INTEGER
2026-06-19 15:38:19 +02:00
Nubenetes Bot
1fe0509433 fix: deterministic inventory dump — last_checked as INTEGER
last_checked stored epoch seconds as REAL; SQLite's version-specific
REAL->text float printing rewrote ~every row on dump, so a locally
regenerated inventory.sql diverged from CI's. Normalize last_checked to
int on the entry before both the SQL record and the YAML dump, and make
the column INTEGER. All readers do coarse day-level staleness checks, so
sub-second precision is unused.

Verified: load->save idempotent for inventory.sql AND inventory.yaml, and
local (SQLite 3.40.1) output byte-identical to CI-equivalent python:3.11
(SQLite 3.46.1). The deterministic data regenerates on the next pipeline
save; committing only the code avoids conflicting with pipeline data churn.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:37:51 +02:00
Inaki
d9ed471d16 Merge pull request #380 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-19 15:32:13 +02:00
Nubenetes Bot
6bed317cdc feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 13:30:54 +00:00
Nubenetes Bot
a0927d47f7 Merge remote-tracking branch 'origin/develop' into develop 2026-06-19 15:24:51 +02:00
Nubenetes Bot
543e3c4d82 merge: back-merge v2.9.5 into develop 2026-06-19 15:24:49 +02:00