Catalog seeding, blank-unique fix, slides rotation, console repair

This commit is contained in:
2026-08-05 13:19:51 -04:00
parent 9c530a70db
commit d3e7311376
13 changed files with 3721 additions and 219 deletions

View File

@@ -127,6 +127,10 @@ param(
# client reads as 127.0.0.1: the GE-Enforce IP allowlist, the dashboard
# visitor-location lookup and per-host login rate limiting all break quietly.
[ValidateSet('direct','proxy')] [string] $ClientIpSource = 'direct',
# Load the shared vendor/model catalog during stage 3. Offered by the
# wizard rather than assumed: a site that machines nothing does not want
# 21 machine types cluttering its dropdowns.
[switch] $SeedCatalog,
# Required before this installer will alter an installation it did not
# create. Everything here is built for a greenfield server: it makes its own
# Python, its own venv and its own IIS objects, and its upgrade path assumes
@@ -1747,6 +1751,14 @@ build to get a matching pair, then send the install log to support.
Invoke-Native $Flask @('seed',$seed) "seed $seed"
}
# Additive and idempotent, so a re-run adds only what is genuinely new
# and never overwrites a description somebody corrected here.
if ($SeedCatalog) {
Write-Log 'flask seed catalog (shared vendor and model catalog)'
$catalogOut = Invoke-Native $Flask @('seed','catalog') 'seed catalog' -OkExit 0,1
$catalogOut | Select-Object -Last 12 | ForEach-Object { Write-Log " $_" }
}
# Plugin registry starts empty on a fresh box. apply-profile resolves the
# declared set's hard-dependency closure and installs + enables it in
# dependency order, idempotently (ADR-013). It fails loudly if the profile