Stale manifest recovery (#7)

Reviewed-on: https://gitea.westgate.pw/ShadowsOverWestgate/sow-tools/pulls/7
Co-authored-by: vickydotbat <vickydotbat@tutamail.com>
Co-committed-by: vickydotbat <vickydotbat@tutamail.com>
This commit is contained in:
2026-05-21 20:02:45 +02:00
committed by archvillainette
parent 8cebf718b7
commit 59ec5cb41d
3 changed files with 187 additions and 18 deletions
+10 -7
View File
@@ -407,13 +407,16 @@ sow-toolkit deploy-wiki --dry-run --namespace spells --category spells=42
When a deploy manifest is missing but matching wiki pages already exist in
NodeBB, `deploy-wiki` checks the Westgate Wiki namespace directory API and
adopts those topic/post mappings before planning updates. `--create` is still
required for genuinely new pages that have no existing remote topic. If NodeBB
rejects a create because the clean wiki URL already exists, `deploy-wiki`
re-queries the namespace by page leaf, adopts the matching topic, and updates it
instead. Updates and stale-page archives acquire a Westgate Wiki edit lock
before saving, then send the returned `wikiEditLockToken` with the NodeBB post
edit request. Stale generated pages are reported by default.
adopts those topic/post mappings before planning updates. It does the same when
a cached manifest mapping points to a post NodeBB no longer has. Generated
public slugs are preferred during adoption before title-based compatibility
matching. `--create` is still required for genuinely new pages that have no
existing remote topic. If NodeBB rejects a create because the clean wiki URL
already exists, `deploy-wiki` re-queries the namespace by page leaf, adopts the
matching topic, and updates it instead. Updates and stale-page archives acquire
a Westgate Wiki edit lock before saving, then send the returned
`wikiEditLockToken` with the NodeBB post edit request. Stale generated pages are
reported by default.
`--stale-policy archive` rewrites stale generated pages in place as archived
managed content. `--stale-policy purge` permanently removes only stale generated
topics already tracked in the wiki deploy manifest. Dry-run that policy before