Deploy Safety
Vango treats state compatibility as a framework-level concern. That means persistence, schema IDs, and generated artifacts are part of normal app authoring, not optional cleanup work.
What Persists
Vango supports deliberate persistence through:
SessionKey
SharedSignal
GlobalSignal
Everything else should remain local unless you explicitly want durable behavior.
Not persisted:
setup.Signal
setup.Memo
setup.Resource
setup.Action
props, lifecycle state, and runtime scratch data
Schema IDs
Persisted state carries schema identity. Refactors that affect persisted shape can change compatibility, which is why Vango tracks state artifacts and computes deploy impact.
If a persisted type should survive renames or package moves, give it a stable schema ID:
1func (UserPrefs) VangoSchemaID() string {
2 return "myapp:UserPrefs:v1"
3}
Warm vs Cold Deploy
Run:
1vango state plan
This tells you whether the current change remains warm-deploy safe or whether it requires cold-deploy acknowledgement.
Generated Artifacts Matter
Commit these outputs when they change:
app/routes/routes_gen.go
vango_state_manifest.json
vango_state_schema.json
generated bindings files when stateful components require them
Healthy workflow
Treat generated routes and state artifacts as normal source files. If they change, review them and commit them in the same change as the app code that caused the update.
Recommended Workflow
1vango gen routes
2vango state plan
3vango state apply
4vango gen bindings
5go test ./...
Cold deploys require explicit acknowledgement:
1vango state apply --ack-cold
Do not hand-edit generated route, manifest, schema, or binding artifacts. Review them like source and commit them with the code change that caused them.