UAI Explorer Production Cutover Evidence
Date: 2026-06-21
Timezone: America/St_Johns
Scope
Cut over production CT 121 from the legacy UAI Explorer 0.1.0 surface to
the verified public-safe 0.2.3 build. This promoted the CT 126 curated app,
data, and database state into production.
No DNS, TLS, firewall, reverse proxy, NetBird, cluster membership, or public route changes were made.
Operator Decisions
- Production cutover: approved and executed for internal production CT
121. - Dormant/future node identity: not part of this UAI Explorer production cutover; future node work belongs to separate infrastructure onboarding.
- Proxmox storage policy: approved backup-only production cutover; no snapshot deletion, backup pruning, migration, or cleanup was performed.
- Real content promotion: closed for public-safe v1 with no raw survey content
promotion. Production uses curated CT
126catalog data only.
Backup
Pre-cutover backup method:
vzdump 121 --mode suspend --compress zstd --storage local --remove 0
Backup artifact:
/[REDACTED:high-entropy].tar.zst
Backup log:
/[REDACTED:high-entropy].log
Backup verification:
- Backup job finished successfully.
- Archive size:
541723941bytes. - SHA256:
[REDACTED:high-entropy]. - CT
121guest was online again after the brief suspend window.
Restore reference:
pct restore 121 /[REDACTED:high-entropy].tar.zst --force
Use the restore command only during an explicit rollback window.
Cutover Action
The live CT 121 /opt/uai-explorer tree was replaced with:
- local
0.2.3application files, - curated CT
126data/, - curated CT
126uai-explorer.sqlite3, - production
.envwithPUBLIC_SAFE_MODE=trueandALLOW_ADMIN_RAW_READ=false.
The production .env does not include a bootstrap admin password value. The
production user database was migrated from the curated CT 126 public-safe
database state.
The prior legacy production tree contained broad/private-looking files under
data/ and an app-local .ssh directory. Those were removed from the live
production app tree during cutover. The pre-cutover backup remains the recovery
source.
Verification
Production CT 121 after cutover:
{"status":"ok","version":"0.2.3"}
Production readiness after cutover:
{"status":"ready","version":"0.2.3","public_safe_mode":true,"data_root_exists":true,"db_exists":true,"user_count":1,"catalog_count":7,"redaction_enabled":true,"redaction_boundary":"server-side","admin_raw_downloads_enabled":false,"legacy_file_apis_enabled":false,"uploads_enabled":false,"raw_survey_zone_mounted":false,"raw_survey_mounts_detected":0,"public_data_boundary":"sanitized-catalog-only"}
In-container CT 121 verification:
systemctl is-active uai-explorerreturnedactive.server.pyreportsVERSION = "0.2.3".python -m py_compile server.py tools/*.py tests/*.pypassed.python -m unittest discover -s tests -vpassed with42tests..sshwas absent from/opt/uai-explorer.raw-survey-zoneandsanitized-exportswere absent from/opt/uai-explorer.- Legacy
data/uai-discord-envwas absent from the live production data root. START_HERE_UAI_LAB.mdSHA256:[REDACTED:high-entropy].
Sandbox CT 126 remained ready on 0.2.3 after the production cutover.
Post-Governance Refresh
After the documentation governance pass, the refreshed app/docs state was
synced back into CT 121 and CT 126 while preserving .env, data, uploads,
virtualenvs, and SQLite databases.
Final post-governance verification recorded:
- CT
121service active,/health0.2.3,/readyready/public-safe. - CT
126service active,/health0.2.3,/readyready/public-safe. - In-container
python -m unittest discover -s tests -vpassed with55tests on both CT121and CT126. .ssh,raw-survey-zone,sanitized-exports, anddata/uai-discord-envwere absent from both app trees.- Evidence:
[REDACTED:high-entropy].md. - Repo docs catalog sync then published
60Markdown docs into each live Explorer catalog; both CTs reportedcatalog_count=67.
Result
Production CT 121 now runs the public-safe UAI Explorer 0.2.3 build with
login, tag authorization, server-side redaction, audit, human/AI separation,
and raw-file/public-safe denial gates.
No open UAI Explorer decisions remain for public-safe v1.