Package and update
Packaging is intentionally mechanical; installation is intentionally strict. The packager gathers the declared source. The Installer is the authority that validates, reviews, rehearses and activates it.
Package commands
# First install without credentials
cargo xtask package app counter
# First install with every declared credential
cargo xtask package app exa path/to/exa-credentials.json
# Update: never carry credentials
cargo xtask package app exaInspect the artifact
tar -tf target/pocketapps/exa.pocketappExpect only the four required source files, declared assets, valid migrations and optionallycredentials.json for first install. The output file is permission-restricted on Unix.
Version decisions
| You changed… | version | schemaVersion | Migration |
|---|---|---|---|
| View copy or layout | Advance | Keep | No |
| Action validation/provider mapping | Advance | Keep | No |
| SQLite table/index shape | Advance | Advance | Every forward step |
| Credential id, endpoint or native permission | New release is not eligible for ordinary update | As needed | Install contract must be reconsidered |
Fresh activation
- Stage and validate the package.
- Show one product review and wait for human confirmation.
- Initialize a new database from
schema.sql. - Evaluate Actions and View against the candidate App boundary.
- Store credentials natively and remove their transport file.
- Move the release into place and register Tools/schedules.
Update activation
- Reject credentials, native permission changes, schema downgrade or missing steps.
- Wait for a quiescent App service boundary.
- Copy SQLite and rehearse migrations plus candidate Actions/View on the copy.
- Apply migrations in one live transaction.
- Swap the single source release and replace Tools, schedules and cached Guests.
- Remove temporary old source after the new App is active.
State that is preserved
- App SQLite rows and App data files;
- native credential values already installed;
- the stable App id and private data root;
- schedule state that remains compatible with the new declarations.
State that is replaced
app.json,actions.js,view.jsand declared resources;- public Tool routes and schedule declarations;
- cached ordinary View and Action Guests.
The runtime retains one active ordinary App release. There is recovery for an approved interrupted update, but no release history, automatic rollback or downgrade path.