zinit startup sequence: make demo #39
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
in make file
keep on respecting skill /makefile_helper
create make demo
which starts a zinit which first stops all, the resets all, then load the demo data
make clear list of what we need to test for
Implementation Spec for Issue #39: Zinit Startup Sequence
Objective
Add a
make demotarget to the Makefile that provides a clean demo startup sequence: stops all running services, resets state, loads demo data, starts zinit_server and zinit_ui, and prints the port. Ensuremake runcontinues to work correctly with proper shutdown handling.Requirements
make demostarts from completely clean state (no leftover services, DB, or configs)make demostarts zinit_server in screen, waits for health checkmake demoloads demo services viazinit demoCLI commandmake demostarts zinit_ui connected to server socketmake demoprints admin port URLmake demoshows service list at endmake runcontinues working (no regressions)Files to Modify
Makefile— Adddemotarget, ensure .PHONY includes itImplementation Plan
Step 1: Add
make demotargetzinit demoto load demo servicesStep 2: Ensure .PHONY and help compliance
## help commentfor make help outputAcceptance Criteria
make demostarts from clean statemake demostarts zinit_server in screen, health check passesmake demoloads demo services (demo-ticker, demo-setup, demo-app, demo-crasher)make demostarts zinit_ui, prints portmake stopshuts down cleanlymake runstill worksmake helpshows demo targetTesting Checklist
make demobuilds and installs binariesmake demoremoves existing DB and configsmake demostarts server, passes health checkmake democreates demo services (verify with zinit list)make demostarts UI on port 9999make stopcleans up all processes and socketsmake runworks independently (no regression)make helpshows demo target with descriptionImplementation Complete
Changes Made
make demotarget that:installdependency)stopdependency)zinit_serverin a screen sessionzinit demoCLI (demo-ticker, demo-setup, demo-app, demo-crasher)zinit_uiin a screen session connected to server socketUsage
Testing Checklist
make helpshowsdemotarget with descriptionmake demobuilds and installs binariesmake demoremoves existing DB and configsmake demostarts server, passes health checkmake democreates demo services (verify with zinit list)make demostarts UI on configured portmake stopcleans up all processes and socketsmake runworks independently (no regression)Implementation Complete
Commit:
044a117Changes
ServiceSpec.actionsis nowarray of string(action name references) instead ofarray of ActionSpec— matches the server's actual DB-backed type system.build()now returnsServiceBuildResultwith both theServiceConfig(action names) andActionSpecobjects for separate creationcmd_demoreplaced withzinit_sdk::populate_demo_environment()— creates 27 actions, 8 services, 24 jobs via RPCmake demotarget: Clean start with demo data (stops all, resets DB, loads demo, starts UI on port 9999)Browser-verified UI
Tests
Additional commit:
45bb638— docs: CLI reference, examples, updated oschema and generated typeszinit startup sequenceto zinit startup sequence: make demoTODO: now test using browser mcp and start it, test end to end how user would
End-to-End Browser Test Results
All testing checklist items verified via headless browser (Hero Browser MCP):
Build & Setup
make demobuilds and installs binaries (zinit, zinit_server, zinit_ui, zinit_pid1)make demoremoves existing DB and configs (clean state)make demostarts server, health check passes within secondsDemo Data
make democreates demo services — 8 services verified (demo-api-server, demo-backup-scheduler, demo-cache, demo-database, demo-dev-tools, demo-monitoring, demo-network, demo-web-frontend)zinit demoRPCUI Verification (browser-tested on port 9999)
Shutdown & Cleanup
make stopperforms graceful shutdown via RPCmake stopOther
make helpshows demo target with descriptionBuild Fix Applied
Fixed missing
conflictsandwantsfields inDependencyDefstruct initializers:crates/zinit_sdk/src/builders.rs:360crates/zinit/src/cli/commands.rs:592These fields were added to the upstream
openrpc_client::DependencyDefbut not yet reflected in the SDK builder and CLI code.Commit:
6a27425— Logs tab fix, demo logs, job detail modalFixes
LogFilterserde deserialization defaultedlimitto0instead of1000, causing alllogs.filterqueries to return zero results. Fixed with#[serde(default = "LogFilter::new")].service/timestamp_msbut UI expectedsrc/epoch. FixedloadLogs()to handle both.New Features
populate_demo_environmentnow inserts 25 realistic log entries (database, cache, API, web, monitoring sources) with mixed log levels and error flags.Browser-verified
make stop/make democycle works cleanlyBrowse:
geomind_code/zinit@6a27425