Phase log 63: second rename sweep, Apache-2.0, README and CHANGELOG rewrite, demo server and screenshots, CI hardening
Date: 2026-10-09. Version 0.42.1 (not bumped by the agent). Phases 1-42 done, next phase 43.
Goal
User asked, in order: (a) rename every remaining old name to UnENVerse and migrate his own usage; (b) README without private artefacts, beginner-first, no "What is not finished"; history table -> CHANGELOG.md generated from handoffs; (c) Apache-2.0; (d) drop the casual writing style; (e) fix the persistent GitHub CI failures; (f) build a fake demo server, screenshots (one hero shot), and market the tool.
Done (evidence)
- Rename sweep (script over
git ls-files, skipping the session records/, review/, ADR bodies, Cargo.lock):io.envvault->io.unenverse(tauri identifier, CLI path, nodes/catalogue/pool),envvault*->unenverse*(storage keys, test dirs, ICS UIDs@unenverse, CXF markers_unenverse_type),.envv.json->.unv.json, state direnvv->unv,ENVV_->UNV_,envv-->unv-temp names, JS helpers__unvBulkToggleetc., lib nameenv_vault_lib->unenverse_lib, Tauri packageunenverse, release asset namesunv-<ver>-<platform>,ENVVAULT_VERSION->UNV_VERSION.vault_core::compatand the dotenvENVV_fallback deleted. Deliberately kept (existing signed/chained data or backups):envv-node-v1,envv-hub-v1,envv-approval-v1,envv-history-v2,envvault/entropy/v1,ENVVBAK1,ENVVARC1. Changing them needs a data migration (history chain re-hash, re-enrol nodes, old backups unreadable); offer it only if wanted. - Licence: LICENSE replaced by the official Apache-2.0 text (curl from apache.org), NOTICE added,
licensefields in package.json, vscode-extension, tauri.conf, 4 Cargo.toml, image label. - README rewritten: short description, long overview, feature table, tour with screenshots, quick start; user guide first, security/build/development/CI last; removed "What is not finished", "How it got here", Phase references, private-acceptance wording, "Lint is at zero". CHANGELOG.md generated by a script from handoff 1-60 (session-scratchpad
chlog.py; filters first-person lines) plus a hand-written 0.42.x section; it is in.prettierignore. - Demo + screenshots:
tools/demo/seed.py(fake vault via theunvCLI against a throwaway server: 29 entries across the common providers and kinds, 3 projects, 12 categories, users alice/bob/ci-bot, classes Developers/Operators, permission expressions),tools/demo/shots_demo.py,tools/demo/run.sh(startsunv-demoon :18743, seeds, runs the real app in the viewer container over--network host). OutputScreenshots/*.png; hero isScreenshots/unenverse.png(1920x1200).tools/viewer/shots.pycrop nowSHOT_CROPenv. No secret-shaped literal is committed: issuer prefixes are assembled from parts and values are random at run time. - CI:
unv-server/tests/nodes_e2e.rswaits forlast_polled(Windows race),history.rssnapshot test sleeps between saves (timing under load),cargo fmtapplied everywhere (the Ubuntu failure was import order after the rename),scripts/preflight.sh+npm run preflight+.githooks/pre-commitmirror CI's gates. - Verification:
cargo test --workspace707 passed;npm run check1497 passed; fmt/clippy clean for unv-cli.
Not done / traps
- Nothing pushed; no CI run observed for these changes.
- Peer comment lines (
# name) of the live wg0.conf are not produced by the exporter. - Old ghcr packages deleted by the user;
git remoteurl change was left to the user. - The CHANGELOG is machine-compiled from session notes; wording is uneven for older entries.
- VS Code extension settings keys are now
unenverse.*(users must re-set them). cargo clean -p envvault(wrong package) once deleted 33 GB of target; use the four-package clean in phase log 62.
Addendum: unv node install (same day)
-
New
unv-cli/src/node_install.rs+NodeCmd::Installinmain.rs(agent side, exempt incapabilities.jsonnext tonode enroll).plan()builds aVec<Step>(run / write file / install binary / enrol) that is printed by--planand executed byexecute(); 9 unit tests, including a round trip of the generatednode.tomlthroughNodeConfig::parse. -
Known limits:
syncconfdoes not re-run PostUp/PostDown, so those edits need a manualsystemctl restart wg-quick@wg0; a failed reload is visible in systemd, not to the node; Linux/systemd only; the executor was exercised only through--planand unit tests, NOT against a real host. Re-install usessystemctl restart unv-node. -
Result:
wg0in_sync, file sha = vault render,unv-reload-wg0.serviceResult=success, tunnel handshakes fresh, 2 peers. Reload takes about 3 s per run (wg syncconfof a 10 KB config). -
Note:
/etc/wireguard/wg0.confwas mode 644 (world-readable, contains PrivateKey) before and after; the node preserves the mode. Recommendchmod 600(the ACL for unv-node survives; root wg-quick still reads). -
The
# peer namecomment lines of the live file are gone (the exporter does not write them).
10 line(s) about the maintainer's own machines were left out of this page.