6121 Commits

Author SHA1 Message Date
Nubenetes Bot
4b65cbc9de release: v2.9.2 — fix dark-theme CSS content-visibility flashes v2.9.2 2026-06-19 14:33:20 +02:00
Inaki
dcc01e833a Merge pull request #374 from nubenetes/fix/v2-css-content-visibility
fix: remove content-visibility from dense indexes (v2.9.2)
2026-06-19 14:32:56 +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
858f969b93 merge: back-merge v2.9.1 into develop 2026-06-19 14:10:46 +02:00
Nubenetes Bot
9c3c026f1b release: v2.9.1 — incremental Gemini digest engine v2.9.1 2026-06-19 14:10:39 +02:00
Nubenetes Bot
ce96d91c55 docs: automated README metric synchronization [skip ci] 2026-06-19 12:10:14 +00:00
Inaki
546e1df714 Merge pull request #373 from nubenetes/feat/incremental-digest-engine
feat: incremental digest engine — 0 Gemini calls when inventory unchanged
2026-06-19 14:09:55 +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
Inaki
10c20f6665 Merge pull request #372 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-19 14:07:23 +02:00
Nubenetes Bot
72bb3c5150 feat: sync V2 elite curated edition and README metrics [skip ci] 2026-06-19 11:58:46 +00:00
Nubenetes Bot
43fae0f9d0 docs: update Video Hub with high-fidelity metadata 2026-06-19 11:31:29 +00:00
Nubenetes Bot
cfe98dcada docs: automated README metric synchronization [skip ci] 2026-06-19 11:31:01 +00:00
Nubenetes Bot
6308fc66ea chore: update inventory AI analysis 2026-06-19 11:30:32 +00:00
Nubenetes Bot
1c182e500d merge: back-merge v2.9.0 into develop 2026-06-19 13:30:02 +02:00
Nubenetes Bot
608e072dda docs: automated README metric synchronization [skip ci] 2026-06-19 11:29:47 +00:00
Nubenetes Bot
0ae118d85b release: v2.9.0 — fix publisher safety: no pruning in render-only, V2 sanity check in deploy v2.9.0 2026-06-19 13:29:43 +02:00
Inaki
9c4adeb5ac Merge pull request #371 from nubenetes/feat/fix-publisher-safety
fix: 3 critical publisher/deploy safety issues
2026-06-19 13:29:28 +02:00
Nubenetes Bot
1dd0dab308 fix: 3 critical publisher/deploy safety issues
1. Skip page deletion and nav sync in --render-only mode
   The CI publisher always uses --render-only but the pruning phase was
   deleting pages not regenerated in a given pass (e.g. low-hit pages),
   breaking nav references and corrupting the MkDocs build.

2. Protect dimension pages from deletion in full mode
   Even in a full (non-render-only) run, pages defined in self.dimensions
   are never deleted. Truly orphaned pages (not in dimensions AND not
   generated) are the only ones pruned.

3. _sync_enterprise_navigation returns True/False
   Deletion is gated on nav sync success. If nav sync fails, deletion
   is skipped to prevent inconsistency (deleted files + stale nav).
   Also fixes the fragile re.sub(r'nav:.*') regex by using string
   indexing instead, preventing accidental truncation of extra_css etc.

4. Deploy workflow V2 sanity check
   If V2 build produces fewer than 50 HTML pages or no index.html,
   deploy falls back to V1-only instead of overwriting V1 with a
   broken V2 build.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 13:29:10 +02:00
Inaki
e599793928 Merge pull request #370 from nubenetes/rollback/v2.8.4-restore
HOTFIX: revert to v2.8.4 — publisher deletions broke V2 portal
2026-06-19 13:20:55 +02:00
nubenetes-bot
7f5fbe34ee style(cleaner): auto-correcting formatting & URL normalization 2026-06-19 11:20:45 +00: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
a355889969 docs: automated README metric synchronization [skip ci] 2026-06-19 11:07:02 +00:00
Nubenetes Bot
cf717c67ce release: v2.8.5 — fix invalid extra_head and broken redirect in v2-mkdocs.yml v2.8.5 2026-06-19 13:07:00 +02:00
Inaki
512b37287e Merge pull request #369 from nubenetes/feat/fix-mkdocs-config
fix: remove invalid extra_head + fix broken redirect in v2-mkdocs.yml
2026-06-19 13:06:39 +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
Inaki
101b341200 Merge pull request #368 from nubenetes/develop
🚀 Release: Agentic V2 Portal Update
2026-06-19 12:53:51 +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
655ad7d5ed docs: automated README metric synchronization [skip ci] 2026-06-19 10:45:46 +00:00
Nubenetes Bot
29e2593e42 merge: back-merge v2.8.4 into develop 2026-06-19 12:45:43 +02:00
Nubenetes Bot
1e89f8af00 release: v2.8.4 — comprehensive None-stars guard in v2_optimizer v2.8.4 2026-06-19 12:45:39 +02:00
Inaki
1a092a5af2 Merge pull request #367 from nubenetes/feat/fix-stars-none-comprehensive
fix: comprehensive None-stars guard in _render_single_link and all comparisons
2026-06-19 12:45:26 +02:00
Nubenetes Bot
f4208bca4d fix: comprehensive None-stars guard across all v2_optimizer comparisons
_render_single_link (line 872) crashed with TypeError: '>=' not supported
between NoneType and int. Replaced ALL remaining .get('stars', 0) patterns
with .get('stars') or 0 throughout v2_optimizer.py to prevent further
crashes from null stars values in inventory.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 12:45:20 +02:00
Nubenetes Bot
90d04e6d6a merge: back-merge v2.8.3 into develop 2026-06-19 12:14:57 +02:00
Nubenetes Bot
7d845fab3e release: v2.8.3 — cache news_digest.json to skip Gemini on same-day re-runs v2.8.3 2026-06-19 12:14:53 +02:00
Inaki
fbfa85c2d3 Merge pull request #366 from nubenetes/feat/digest-cache
feat: cache news_digest.json by date, skip Gemini on same-day re-runs
2026-06-19 12:14:41 +02:00
Nubenetes Bot
dc4591fb3e feat: cache news_digest.json by date to avoid re-calling Gemini on re-runs
Publisher and weekly digest workflows now restore news_digest.json from
GitHub Actions cache using key news-digest-YYYY-MM-DD. If cache hits
(same-day re-run after publisher failure), the Gemini digest step is
skipped entirely — saving ~20min and Gemini API credits.

Cache is saved immediately after successful generation and expires
automatically after 7 days (GitHub Actions cache policy).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 12:14:34 +02:00
Nubenetes Bot
96706aff90 docs: automated README metric synchronization [skip ci] 2026-06-19 10:13:08 +00:00
Nubenetes Bot
f3cb3a1ff3 merge: back-merge v2.8.2 into develop 2026-06-19 12:13:04 +02:00
Nubenetes Bot
cc6633dcdd release: v2.8.2 — fix all None-stars sort crashes in v2_optimizer v2.8.2 2026-06-19 12:12:58 +02:00
Inaki
759c10ad2c Merge pull request #365 from nubenetes/feat/fix-stars-none-sort
fix: all negated .get(stars) sort keys crash on null values
2026-06-19 12:12:46 +02:00
Nubenetes Bot
58601de338 fix: guard all negated .get('stars') sort keys against None values
Three sites in v2_optimizer where `-x.get("stars", default)` crashes
with TypeError when stars field is present but null in inventory.
Fixed with `-(x.get("stars") or default)` pattern consistently.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 12:12:39 +02:00
Nubenetes Bot
11ebda6187 docs: automated README metric synchronization [skip ci] 2026-06-19 09:43:30 +00:00
Nubenetes Bot
227dc23933 merge: back-merge v2.8.1 into develop 2026-06-19 11:43:22 +02:00
Nubenetes Bot
56db4d5e53 release: v2.8.1 — fix None resource_type crash in v2_optimizer v2.8.1 2026-06-19 11:43:18 +02:00
Inaki
e332af2ea8 Merge pull request #364 from nubenetes/feat/fix-resource-type-none
fix: None resource_type crash in _calculate_tags
2026-06-19 11:43:05 +02:00
Nubenetes Bot
9d3321d0f0 fix: guard against None resource_type in _calculate_tags
item.get("resource_type", "Reference") returns None when the field
exists with a null value in the inventory. Use `or "Reference"` instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 11:42:58 +02:00
Nubenetes Bot
9ed1318a9c merge: back-merge v2.8.0 into develop 2026-06-19 11:12:21 +02:00
Nubenetes Bot
91da9c8495 release: v2.8.0 — geo inference, last-updated badge, search boost, RSS feed, weekly cron v2.8.0 2026-06-19 11:12:16 +02:00
Nubenetes Bot
c9a7b2a8cb docs: automated README metric synchronization [skip ci] 2026-06-19 09:11:47 +00:00
Inaki
ad59cb75f0 Merge pull request #363 from nubenetes/feat/five-improvements
feat: geo inference, last-updated badge, search boost, RSS feed, weekly cron
2026-06-19 11:11:32 +02:00