VESPERANManual testing
Reliability and operator rehearsals / 41

Operator: isolated real-clock restart drill

Resume an account, a session and committed work from a separate save.

Operator-only prerequisites: shell access to an isolated test checkout, installed dependencies and an unused local port and database path. This drill never connects a second gateway process to the production application. Use an explicit test database on every command.

Example path and port below are placeholders for a new rehearsal. If either already exists or is in use, choose new ones. Keep the real and manual clock modes separate.

Step by step

Tick a step after observing the expected result. Saved on this device only.

01Start a fresh account server

From the checkout run: .venv/bin/python run_floor.py --db runtime/qa-restart-01.sqlite3 --port 8775 --clock real --no-browser

EXPECTED RESULT

A separate loopback account service starts with a fresh real-clock world. The production save is untouched.

02Create and progress a test account

Create one test browser account at the printed loopback address. Walk to Southfields, earn berries through ordinary work, then start one ration recipe. Keep the signed-in browser open.

EXPECTED RESULT

A normal authenticated account and a genuine active recipe exist in the isolated save.

03Record and stop

Record the test character name, current job, visible inventory and scheduled finish time privately. Stop this test server cleanly with Ctrl+C before the recipe finishes.

EXPECTED RESULT

The test process exits without deleting its database. No production service is stopped.

04Allow elapsed time

Wait beyond the recipe’s boundary while the test server is stopped. Restart with the exact same command, database path, port and real clock mode.

EXPECTED RESULT

Startup checks compatibility and catches up elapsed time.

05Resume the existing session

Refresh the already signed-in browser; also sign in using a new browser session.

EXPECTED RESULT

The original account and session resolve to the same character. The recipe settles once and its output is not reset or doubled.

06Audit and record limits

Run .venv/bin/python tools/manage.py audit runtime/qa-restart-01.sqlite3 and .venv/bin/python tools_patch/check_save.py --db runtime/qa-restart-01.sqlite3

EXPECTED RESULT

Accounting reconciles and compatibility passes. Record this as an isolated real-process restart result, not proof that external backups or failover hosting are deployed.

Type two or more characters to search.