48566993f6
Product layout for Lumina / Salon_Assistant at 0.1.0-design. No product implementation until explicit build.
3.1 KiB
3.1 KiB
Software updates and lifecycle
Owner transparency
Updates are an operator concern. The salon owner does not participate in or see software updates under normal operation.
When
| Trigger | Default |
|---|---|
Scheduled host job (upgrade.sh) |
ON by default at install |
Manual ./scripts/upgrade.sh |
Always available to operator |
| Owner chat | Does not drive platform upgrades |
How
Host upgrade.sh is the parent orchestrator:
- Snapshot via
nemohermes <name> snapshot createwhen available - Record release pins; optional volume backup
- Fetch product release (git tag / image digests)
- Non-interactive only — no Hermes interactive update/setup wizards
- Compose pull/build/recreate preserving volumes
- Run migrations if state schema changed
- Re-apply policy via
openshell/nemohermes policy-* - Re-assert inference/aux via
nemohermes inference set/ config set from.env - Gateway restart if required by platform matrix
- Doctor; write operator-only upgrade journal
Suppress Hermes interactive update
| Risk | Mitigation |
|---|---|
Interactive hermes update |
Never invoked; versions pinned by product release |
| Startup config wizards | Config pre-written; non-interactive entrypoint |
| Agent-triggered host upgrade | No tools for that; no docker.sock for owner agent |
| Concurrent sealed config writes | Serialize; honor shields/busy; retry |
Update content vectors
| # | Vector | Upgrade action |
|---|---|---|
| 1 | This product git repo | Fetch/checkout release tag |
| 2 | Host scripts | Replace from release |
| 3 | Docs | Replace |
| 4 | Compose files | Replace + recreate |
| 5 | Product images (if published) | Pull digests |
| 6 | NemoClaw CLI pin | Host install to pin |
| 7 | OpenShell CLI/gateway pin | Host/bootstrap |
| 8 | Sandbox / Hermes agent image | Rebuild/recreate as required |
| 9–10 | Hermes runtime + NemoClaw integration | With image |
| 11 | Lumina skills | Sync into sandbox |
| 12 | Default identity templates | Merge; never clobber owner name/profile |
| 13–14 | Owner memory / Hermes session state | Persist + migrate |
| 15 | Managed config.yaml / placeholders | Regenerate via sealed host commands |
| 16 | OpenShell provider secrets | Persist |
| 17–18 | Policy base/overlays/presets | Merge + apply |
| 19 | Square remote MCP registration | Re-assert + health |
| 20 | QBO local MCP package pin | Upgrade process + restart |
| 21 | Vagaro webhook service | Replace |
| 22–23 | Channels + allowlists | Rebuild if matrix requires; persist allowlists |
| 24–25 | Inference main + aux slots | inference set / config from .env |
| 26 | Dashboard/API forwards | Re-bind |
| 27 | Fixtures | Replace; not live connections |
| 28 | Migrations | Run by version |
| 29 | Auto-update timer unit | Enabled by default |
| 30 | Host Docker Engine | Separate documented path |
Instrumentation
Operator-only events under state/upgrade/: upgrade.started|step|migration|policy|service|doctor|finished|failed.
Rollback
Previous pins + volumes; upgrade.sh --rollback; doctor.