From 93c7a3b34c17fde13d80ab71645b51bb8204067c Mon Sep 17 00:00:00 2001 From: sanguine59 Date: Sun, 17 May 2026 16:26:28 +0700 Subject: [PATCH] fix(wiki): wikimeta stores lang and up-to-date guard throws actionable error instead of silent fails --- gitnexus/src/core/wiki/generator.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gitnexus/src/core/wiki/generator.ts b/gitnexus/src/core/wiki/generator.ts index 8fcdbe930..a048e1d95 100644 --- a/gitnexus/src/core/wiki/generator.ts +++ b/gitnexus/src/core/wiki/generator.ts @@ -74,6 +74,7 @@ export interface WikiMeta { fromCommit: string; generatedAt: string; model: string; + lang: string; moduleFiles: Record; moduleTree: ModuleTreeNode[]; } @@ -218,6 +219,15 @@ export class WikiGenerator { // Up-to-date check (skip if --force) if (!forceMode && existingMeta && existingMeta.fromCommit === currentCommit) { + const currentLang = this.options.lang ?? ''; + const metaLang = existingMeta.lang ?? ''; + if (currentLang !== metaLang) { + const prevDisplay = metaLang || 'english (default)'; + const nextDisplay = currentLang || 'english (default)'; + throw new Error( + `Wiki was generated in ${prevDisplay}; use --force to regenerate in ${nextDisplay}.`, + ); + } // Still regenerate the HTML viewer in case it's missing await this.ensureHTMLViewer(); return { pagesGenerated: 0, mode: 'up-to-date', failedModules: [] }; @@ -379,6 +389,7 @@ export class WikiGenerator { fromCommit: currentCommit, generatedAt: new Date().toISOString(), model: this.llmConfig.model, + lang: this.options.lang ?? '', moduleFiles, moduleTree, }); @@ -836,6 +847,7 @@ export class WikiGenerator { fromCommit: currentCommit, generatedAt: new Date().toISOString(), model: this.llmConfig.model, + lang: this.options.lang ?? '', }); this.onProgress('done', 100, 'Incremental update complete');