infra: launch frozen V145 magnitude separator #10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Trace Ace V145 Magnitude Separator | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/trace-ace-transcript-cache-seed.yml' | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| actions: read | |
| jobs: | |
| v145: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 150 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: agent/v145-v135-plus-evidence-family | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| cache: pip | |
| - name: Record V145 run start | |
| run: | | |
| python - <<'PY' | |
| import json,os,pathlib | |
| pathlib.Path('/tmp/V145_RUN_START.json').write_text(json.dumps({'run_id':int(os.environ['GITHUB_RUN_ID']),'status':'STARTED','frozen_commit':'f19e3c2287a17ecccfd660f12ff047253ecbba3a'},indent=2)) | |
| PY | |
| git fetch origin main | |
| git worktree add /tmp/v145-start origin/main | |
| cd /tmp/v145-start | |
| mkdir -p competitions/trace_the_ace/results | |
| cp /tmp/V145_RUN_START.json competitions/trace_the_ace/results/V145_RUN_START.json | |
| git config user.name github-actions[bot] | |
| git config user.email 41898282+github-actions[bot]@users.noreply.github.com | |
| git add competitions/trace_the_ace/results/V145_RUN_START.json | |
| git commit -m "results: record V145 run start $GITHUB_RUN_ID" || true | |
| git push origin HEAD:main || true | |
| - name: Install dependencies | |
| run: python -m pip install --disable-pip-version-check numpy pandas scipy scikit-learn gdown | |
| - name: Restore frozen transcript archive from GitHub cache only | |
| id: transcript-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: transcripts.zip | |
| key: trace-ace-transcripts-v1-603547640 | |
| - name: Require exact transcript cache | |
| run: | | |
| set -euo pipefail | |
| test '${{ steps.transcript-cache.outputs.cache-hit }}' = 'true' | |
| test "$(stat -c%s transcripts.zip)" = '603547640' | |
| echo 'e685b85b04694e130c25b17d09cdd1892fbda5e9fa685e98b2300114b915aa2d transcripts.zip' | sha256sum -c - | |
| - name: Download frozen small metadata archive only | |
| run: | | |
| set -euo pipefail | |
| gdown 1EpqoamY0vFI2qE57R6wdqU5HwuoVk3Zz -O metadata.zip | |
| mkdir -p data/transcripts data/meta | |
| unzip -q transcripts.zip -d data/transcripts | |
| unzip -q metadata.zip -d data/meta | |
| - name: Resolve and audit schemas | |
| run: | | |
| set -euo pipefail | |
| FEATURES=$(find data/meta -type f -name 'train_features*.csv' -print -quit) | |
| LABELS=$(find data/meta -type f -name 'train_labels*.csv' -print -quit) | |
| FIRST=$(find data/transcripts -type f -name '*.csv' -print -quit) | |
| TRANSCRIPTS=$(dirname "$FIRST") | |
| test -n "$FEATURES" && test -n "$LABELS" && test -n "$TRANSCRIPTS" | |
| python - <<'PY' "$FEATURES" "$LABELS" | |
| import pandas as pd,sys | |
| f=pd.read_csv(sys.argv[1]); y=pd.read_csv(sys.argv[2]) | |
| print('FEATURE_COLUMNS',list(f.columns)); print('LABEL_COLUMNS',list(y.columns)); print('SHAPES',f.shape,y.shape) | |
| assert len(f)==35072 and len(y)==35072 | |
| PY | |
| echo "FEATURES=$FEATURES" >> "$GITHUB_ENV" | |
| echo "LABELS=$LABELS" >> "$GITHUB_ENV" | |
| echo "TRANSCRIPTS=$TRANSCRIPTS" >> "$GITHUB_ENV" | |
| - name: Run frozen V145 full-data separator | |
| run: | | |
| cd competitions/trace_the_ace | |
| python v145_v135_plus_evidence_family.py \ | |
| --features "../../$FEATURES" --labels "../../$LABELS" --transcripts "../../$TRANSCRIPTS" \ | |
| --out ../../v145_v135_plus_evidence_family.json | |
| - name: Show V145 decision | |
| if: always() | |
| run: cat v145_v135_plus_evidence_family.json || true | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: trace-ace-v145-v135-plus-evidence-family | |
| path: v145_v135_plus_evidence_family.json | |
| retention-days: 14 | |
| - name: Record V145 completion | |
| if: always() | |
| run: | | |
| python - <<'PY' | |
| import json,os,pathlib | |
| p=pathlib.Path('v145_v135_plus_evidence_family.json') | |
| out={'run_id':int(os.environ['GITHUB_RUN_ID']),'status':'FINAL','result_exists':p.exists()} | |
| if p.exists(): | |
| try: | |
| r=json.loads(p.read_text()); out['verdict']=r.get('decision',{}).get('verdict'); out['session_gain']=r.get('session_grouped',{}).get('gain_vs_v135'); out['objective_gain']=r.get('objective_grouped',{}).get('gain_vs_v135') | |
| except Exception as e: out['parse_error']=str(e) | |
| pathlib.Path('/tmp/V145_RUN_FINAL.json').write_text(json.dumps(out,indent=2)); print(json.dumps(out,indent=2)) | |
| PY | |
| git fetch origin main | |
| git worktree add /tmp/v145-final origin/main | |
| cd /tmp/v145-final | |
| mkdir -p competitions/trace_the_ace/results | |
| cp /tmp/V145_RUN_FINAL.json competitions/trace_the_ace/results/V145_RUN_FINAL.json | |
| git config user.name github-actions[bot] | |
| git config user.email 41898282+github-actions[bot]@users.noreply.github.com | |
| git add competitions/trace_the_ace/results/V145_RUN_FINAL.json | |
| git commit -m "results: record V145 final $GITHUB_RUN_ID" || true | |
| git push origin HEAD:main || true |