{
  "schema": "huanxi.upgrade-package.v1",
  "upgrade_kind": "schema",
  "source_release": "0.8.13.33",
  "target_release": "0.8.13.34",
  "source_schema": "0.8.2-runtime-tables.84",
  "target_schema": "0.8.2-runtime-tables.85",
  "forward_sql": "forward.sql",
  "rollback_sql": "rollback.sql",
  "forward_sha256": "ba91ee016a783736fccae0149ee5c19ea6cde6d63414dbe48c6763dcc3ee8901",
  "rollback_sha256": "9055293fa0ee2f09e04dfa90e72da9f854c9b7a67a92aaae0842fd268968a062",
  "rollback_mode": "logical",
  "service_stop_required": true,
  "database_backup_required": true,
  "preserve_tables": [
    "employees",
    "projects",
    "assignments",
    "runtime_conversation_messages",
    "user_decisions",
    "runtime_artifacts",
    "assignment_results",
    "qa_results",
    "deliveries",
    "channel_delivery_outbox",
    "channel_bindings",
    "input_commands"
  ],
  "append_only_tables": [],
  "notes": "Additive SQL index coverage hop (schema .84 -> .85). Adds 16 covering indexes for foreign-key / scope columns PostgreSQL does not auto-index: channel_inbound_fences (input_command_id / archive_message_id, partial on status='durably_recorded'), agent_session_mailbox (claim + lease, mirroring the chat-side index), projects (owner+conversation active partial for the FOR SHARE lookups), assignments (project_id,status per-project slot count), channel_delivery_outbox (per-account lease reclaim), project child tables (project_tasks/qa_results/assignment_results/deliveries by project_id), runtime_conversation_messages (conversation_id-leading for dashboard DISTINCT ON), runtime_chat_session_events (agent_run_id), runtime_agent_runs (chat_session_id+started_at partial), runtime_llm_calls (chat_session_id ledger), runtime_conversation_open_commands (employee_group completed scope). Purely additive DDL: no data read or rewritten, no query semantics change. Unlike the 0.8.13.32 leakproof-content-ref-index hop, every index is a plain-column btree or leakproof-partial, so no superuser is required. Rollback is subtractive (drop the 16 indexes, restore marker .84); no runtime query references these indexes by name so the previous runtime plans correctly without them. Existing database, configuration, credential references and workspace are unchanged."
}
