$ adk api_server --port 8765 --session_service_uri sqlite:///sessions.db --allow_origins http://localhost:3000 .
$ python client.py 'How do I undo the last production deploy?'
apps: ['docs_assistant']
docs_assistant  final    call read_page({"page": "rollback"})
docs_assistant  final    result read_page
docs_assistant  final    'To undo the last production deploy, run:'
answer: To undo the last production deploy, run:

`shipctl rollback --env production`

Without `--to`, `shipctl rollback` moves the environment back to the previous release. Note that database migrations are not rolled back automatically; if the release ran a migration, you must write a new migration to reverse it.

$ python client.py --stream 'How do I undo the last production deploy?'
docs_assistant  partial  call read_page({"page": "rollback"})
docs_assistant  partial  (no text)
docs_assistant  final    call read_page({"page": "rollback"})
docs_assistant  final    result read_page
docs_assistant  partial  'To undo the last production deploy and r'
docs_assistant  partial  '`\n\nWithout the `--to` flag, `shipctl rol'
docs_assistant  partial  ' migrations are not rolled back automati'
docs_assistant  partial  (no text)
docs_assistant  final    'To undo the last production deploy and r'
yielded 9 events; the session stored 4

$ curl -X POST /run with session_id no-such-session
HTTP 404 {"detail": "Session not found: no-such-session"}
$ curl -X POST /run -H 'Origin: https://docs-portal.example'
HTTP 403 Forbidden: origin not allowed
$ curl -X POST /apps/docs_assistant/users/dev-1/sessions/s-old -d '{"state": {"team": "payments"}}'
HTTP 200 state: {"state": {"team": "payments"}}

$ adk run --in_memory --replay replay.json docs_assistant
[user]: How do I roll back production to release r41?
[docs_assistant]: To roll back production to release r41, run:
`shipctl rollback --env production --to r41`
This points traffic to the specified release without rebuilding. Note that database migrations are not rolled back automatically.
[user]: Does that also undo the database migration?
[docs_assistant]: No, database migrations are not rolled back. If the release you are leaving ran a migration, you must write a new migration that reverses it.

$ adk run --in_memory --jsonl docs_assistant 'Which page explains tokens?'
{"author": "docs_assistant", "session_id": "6a0dc749-f1c8-41ea-b470-4e353ed8e778", "node_path": "docs_assistant@1", "id": "037796ae-5804-40e6-831a-66d …
{"author": "docs_assistant", "session_id": "6a0dc749-f1c8-41ea-b470-4e353ed8e778", "node_path": "docs_assistant@1", "id": "1f724bc1-7801-4c5e-bcb2-244 …
{"author": "docs_assistant", "session_id": "6a0dc749-f1c8-41ea-b470-4e353ed8e778", "node_path": "docs_assistant@1", "id": "5e7df9fd-da33-4164-9385-013 …
