Skip to content

v2.9.0 — Critical publisher/deploy safety fixes

Choose a tag to compare

@inafev inafev released this 19 Jun 11:30

Root cause of portal outage — fixed

Bug 1 (Critical): Pruning ran in --render-only mode

Publisher CI uses --render-only but the Phase 5 pruning deleted pages not regenerated in that pass, breaking MkDocs nav references.

Fix: Pruning and nav sync are completely skipped in --render-only mode.

Bug 2: Nav sync failure didn't abort deletion

If _sync_enterprise_navigation threw an exception, deletion still ran → inconsistent state.

Fix: Nav sync returns True/False. Deletion is gated on nav sync success.

Bug 3: Fragile nav sync regex

re.sub(r'nav:.*', ..., re.DOTALL) could eat content after the nav block.

Fix: Uses content.index('nav:') string split instead of regex.

Bug 4: V2 build failure overwrote V1

If V2 produced a broken build, cp -r site_v2/* site/ overwrote V1's working content.

Fix: Deploy checks V2 page count (minimum 50 HTML pages + index.html) before overwriting V1. Falls back to V1-only if V2 looks broken.

Safeguard added

Pages in self.dimensions are never deleted even in full mode — only truly orphaned pages (not in any dimension) can be pruned.

🤖 Generated with Claude Code