chore: add temporary rectification diagnostics
Diagnose rectification request (temporary) / diagnose (push) Failing after 10s

This commit is contained in:
Jesse_Chen
2026-08-27 18:39:59 +08:00
parent f3327235ea
commit 6f809ce116
@@ -0,0 +1,73 @@
name: Diagnose rectification request (temporary)
on:
push:
branches:
- codex/diagnose-rectification-request-20260827
permissions:
contents: read
jobs:
diagnose:
runs-on: xiaoxin
timeout-minutes: 10
env:
DEPLOY_HOST: ${{ vars.STAGING_HOST }}
DEPLOY_PORT: ${{ vars.STAGING_PORT }}
DEPLOY_USER: ${{ vars.STAGING_USER }}
DEPLOY_PATH: ${{ vars.STAGING_PATH }}
STAGING_KNOWN_HOSTS: ${{ vars.STAGING_KNOWN_HOSTS }}
REQUEST_HASH: dc94cae0e5cf998f4128a9f882cdf9b5
CASE_HASH: 6b6659f437f3296fe54c0621b56a3052
steps:
- name: Query redacted durable runtime state
env:
SSH_PRIVATE_KEY_BASE64: ${{ secrets.STAGING_SSH_PRIVATE_KEY }}
run: |
set -euo pipefail
ssh_root="${RUNNER_TEMP}/staging-ssh"
key_path="$ssh_root/id_ed25519"
known_hosts_path="$ssh_root/known_hosts"
install -m 700 -d "$ssh_root"
trap 'rm -rf -- "$ssh_root"' EXIT
test -n "$SSH_PRIVATE_KEY_BASE64"
printf '%s' "$SSH_PRIVATE_KEY_BASE64" | base64 --decode > "$key_path"
printf '%s\n' "$STAGING_KNOWN_HOSTS" | tr -d '\r' > "$known_hosts_path"
chmod 600 "$key_path" "$known_hosts_path"
ssh-keygen -y -f "$key_path" >/dev/null
ssh_options=(-i "$key_path" -p "$DEPLOY_PORT" -o BatchMode=yes -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes -o "UserKnownHostsFile=$known_hosts_path")
remote="$DEPLOY_USER@$DEPLOY_HOST"
ssh "${ssh_options[@]}" "$remote" "cd '$DEPLOY_PATH' && sudo -n docker compose -p jyotisha-staging -f deploy/docker-compose.postgres.yml exec -T postgres psql -X -v ON_ERROR_STOP=1 -U postgres -d jyotisha -v request_hash='$REQUEST_HASH' -v case_hash='$CASE_HASH'" <<'SQL'
\pset tuples_only on
\pset format unaligned
\echo TURN
select concat_ws('|', t.status, t.created_at, t.updated_at, (t.successful_attempt_id is not null)::text)
from public.agentic_rectification_turns t
where md5(t.request_id::text) = :'request_hash';
\echo ATTEMPTS
select concat_ws('|', a.attempt_number::text, a.status, coalesce(a.error_code, ''), a.started_at, coalesce(a.completed_at::text, ''))
from public.agentic_rectification_run_attempts a
join public.agentic_rectification_turns t on t.id = a.turn_id
where md5(t.request_id::text) = :'request_hash'
order by a.attempt_number;
\echo PHASES
select concat_ws('|', p.sequence::text, p.phase, coalesce(p.tool_name, ''), p.created_at)
from public.agentic_rectification_run_phases p
join public.agentic_rectification_turns t on t.id = p.turn_id
where md5(t.request_id::text) = :'request_hash'
order by p.sequence;
\echo RECEIPTS
select concat_ws('|', r.tool_name, r.public_phase, r.status, coalesce(r.safe_error_code, ''))
from public.agentic_rectification_tool_receipts r
join public.agentic_rectification_turns t on t.id = r.turn_id
where md5(t.request_id::text) = :'request_hash'
order by r.started_at;
\echo CASE_STATE
select concat_ws('|', c.status, c.skill_version, c.case_revision::text,
coalesce(c.conversation_summary->'active_focus'->>'kind', 'none'),
coalesce(c.conversation_summary->'active_focus'->>'status', 'none'),
coalesce(c.conversation_summary->'active_focus'->'expected_answer_schema'->>'probe_id', 'none'))
from public.agentic_rectification_cases c
where md5(c.id::text) = :'case_hash';
SQL