Event
push
Branch
main
Commit
5822154
Started
Duration
1:22

Synced from GitHub

end-to-end (windows-latest)

SuccessTook 1:22
Whole log, 81 KB
Current runner version: '2.338.0'
▸ Runner Image Provisioner
Hosted Compute Agent
Version: 20261021.618
Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e
Build Date: 2026-10-21T00:45:21Z
Worker ID: {cb21ad95-68f2-40c1-aebf-3318bcae5d34}
Region: westus3
Cloud: Azure
▸ Operating System
Microsoft Windows Server 2025
10.0.26100
Datacenter
▸ Runner Image
Image: windows-2025-vs2026
Version: 20261021.278.1
Included Software: https://github.com/actions/runner-images/blob/win25-vs2026/20261021.278/images/windows/Windows2025-VS2026-Readme.md
Image Release: https://github.com/actions/runner-images/releases/tag/win25-vs2026%2F20261021.278
▸ GITHUB_TOKEN Permissions
Contents: read
Metadata: read
Packages: read
Secret source: Actions
Cache mode: write
Prepare workflow directory
Prepare all required actions
Getting action download info
Download action repository 'actions/checkout@v7' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1)
Download action repository 'actions/setup-python@v7' (SHA:6d4fd22b20465ccc0f7354476588e8df7c9ca0e0)
Complete job name: end-to-end (windows-latest)
▸ Run actions/checkout@v7
with:
  repository: Narayan201120/airlock-db
  token: ***
  ssh-strict: true
  ssh-user: git
  persist-credentials: true
  clean: true
  sparse-checkout-cone-mode: true
  fetch-depth: 1
  fetch-tags: false
  show-progress: true
  lfs: false
  submodules: false
  set-safe-directory: true
  allow-unsafe-pr-checkout: false
Syncing repository: Narayan201120/airlock-db
▸ Getting Git version info
Working directory is 'D:\a\airlock-db\airlock-db'
[command]"C:\Program Files\Git\bin\git.exe" version
git version 2.56.0.windows.2
Temporarily overriding HOME='D:\a\_temp\fa3cc870-b856-4962-b007-9f128619c8c4' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]"C:\Program Files\Git\bin\git.exe" config --global --add safe.directory D:\a\airlock-db\airlock-db
Deleting the contents of 'D:\a\airlock-db\airlock-db'
▸ Determining repository object format
▸ Initializing the repository
[command]"C:\Program Files\Git\bin\git.exe" init D:\a\airlock-db\airlock-db
Initialized empty Git repository in D:/a/airlock-db/airlock-db/.git/
[command]"C:\Program Files\Git\bin\git.exe" remote add origin https://github.com/Narayan201120/airlock-db
▸ Disabling automatic garbage collection
[command]"C:\Program Files\Git\bin\git.exe" config --local gc.auto 0
▸ Setting up auth
Removing SSH command configuration
[command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp core\.sshCommand
[command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\""
Removing HTTP extra header
[command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
[command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :\""
Removing includeIf entries pointing to credentials config files
[command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp ^includeIf\.gitdir:
[command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "git config --local --show-origin --name-only --get-regexp remote.origin.url"
[command]"C:\Program Files\Git\bin\git.exe" config --file D:\a\_temp\git-credentials-7dd5916f-76fa-46fa-8777-5dcd2aa3b82b.config http.https://github.com/.extraheader "AUTHORIZATION: basic ***"
[command]"C:\Program Files\Git\bin\git.exe" config --local includeIf.gitdir:D:/a/airlock-db/airlock-db/.git.path D:\a\_temp\git-credentials-7dd5916f-76fa-46fa-8777-5dcd2aa3b82b.config
[command]"C:\Program Files\Git\bin\git.exe" config --local includeIf.gitdir:D:/a/airlock-db/airlock-db/.git/worktrees/*.path D:\a\_temp\git-credentials-7dd5916f-76fa-46fa-8777-5dcd2aa3b82b.config
[command]"C:\Program Files\Git\bin\git.exe" config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-7dd5916f-76fa-46fa-8777-5dcd2aa3b82b.config
[command]"C:\Program Files\Git\bin\git.exe" config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-7dd5916f-76fa-46fa-8777-5dcd2aa3b82b.config
▸ Fetching the repository
[command]"C:\Program Files\Git\bin\git.exe" -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +5822154f768bf9922a90d9aca6f1465c4106d643:refs/remotes/origin/main
From https://github.com/Narayan201120/airlock-db
 * [new ref]         5822154f768bf9922a90d9aca6f1465c4106d643 -> origin/main
[command]"C:\Program Files\Git\bin\git.exe" branch --list --remote origin/main
  origin/main
[command]"C:\Program Files\Git\bin\git.exe" rev-parse refs/remotes/origin/main
5822154f768bf9922a90d9aca6f1465c4106d643
▸ Determining the checkout info
[command]"C:\Program Files\Git\bin\git.exe" sparse-checkout disable
[command]"C:\Program Files\Git\bin\git.exe" config --local --unset-all extensions.worktreeConfig
▸ Checking out the ref
[command]"C:\Program Files\Git\bin\git.exe" checkout --progress --force -B main refs/remotes/origin/main
Switched to a new branch 'main'
branch 'main' set up to track 'origin/main'.
[command]"C:\Program Files\Git\bin\git.exe" log -1 --format=%H
5822154f768bf9922a90d9aca6f1465c4106d643
▸ Run actions/setup-python@v7
with:
  python-version: 3.12
  check-latest: false
  token: ***
  mirror: https://raw.githubusercontent.com/actions/python-versions/main
  update-environment: true
  allow-prereleases: false
  freethreaded: false
▸ Installed versions
Successfully set up CPython (3.12.10)
▸ Run python -m pip install .
python -m pip install .
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
Processing .\.
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Collecting pydantic<3,>=2.6 (from airlock-db==0.4.0)
  Downloading pydantic-2.14.1-py3-none-any.whl.metadata (133 kB)
Collecting PyYAML<7,>=6 (from airlock-db==0.4.0)
  Downloading pyyaml-6.0.3-cp312-cp312-win_amd64.whl.metadata (2.4 kB)
Collecting annotated-types>=0.6.0 (from pydantic<3,>=2.6->airlock-db==0.4.0)
  Downloading annotated_types-0.8.0-py3-none-any.whl.metadata (15 kB)
Collecting pydantic-core==2.50.1 (from pydantic<3,>=2.6->airlock-db==0.4.0)
  Downloading pydantic_core-2.50.1-cp312-cp312-win_amd64.whl.metadata (6.7 kB)
Collecting typing-extensions>=4.16.0 (from pydantic<3,>=2.6->airlock-db==0.4.0)
  Downloading typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB)
Collecting typing-inspection>=0.4.4 (from pydantic<3,>=2.6->airlock-db==0.4.0)
  Downloading typing_inspection-0.4.4-py3-none-any.whl.metadata (2.6 kB)
Downloading pydantic-2.14.1-py3-none-any.whl (488 kB)
Downloading pydantic_core-2.50.1-cp312-cp312-win_amd64.whl (2.2 MB)
   ---------------------------------------- 2.2/2.2 MB 12.2 MB/s  0:00:00
Downloading pyyaml-6.0.3-cp312-cp312-win_amd64.whl (154 kB)
Downloading annotated_types-0.8.0-py3-none-any.whl (13 kB)
Downloading typing_extensions-4.16.0-py3-none-any.whl (45 kB)
Downloading typing_inspection-0.4.4-py3-none-any.whl (14 kB)
Building wheels for collected packages: airlock-db
  Building wheel for airlock-db (pyproject.toml): started
  Building wheel for airlock-db (pyproject.toml): finished with status 'done'
  Created wheel for airlock-db: filename=airlock_db-0.4.0-py3-none-any.whl size=117761 sha256=ebf168c0dce36dfe6bd3d54bb5a516ed4254a3bcaac2567fe15b8f83d40aae8b
  Stored in directory: C:\Users\runneradmin\AppData\Local\Temp\pip-ephem-wheel-cache-26u77_cb\wheels\e4\fa\cf\c67290d3f064e1488d8f2921d218c094fd8e23b4f676040810
Successfully built airlock-db
Installing collected packages: typing-extensions, PyYAML, annotated-types, typing-inspection, pydantic-core, pydantic, airlock-db

Successfully installed PyYAML-6.0.3 airlock-db-0.4.0 annotated-types-0.8.0 pydantic-2.14.1 pydantic-core-2.50.1 typing-extensions-4.16.0 typing-inspection-0.4.4
▸ Run python -m compileall -q src
python -m compileall -q src
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
▸ Run set +e
set +e
python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --anonymize --output-dir ci-builtin
code=$?
set -e
test "$code" -eq 1
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
WARNING: Validation issue for source-ab1edd5e2e4b132e record 5: missing
WARNING: Validation issue for source-ab1edd5e2e4b132e record 6: missing
WARNING: Validation issue for source-ab1edd5e2e4b132e record 7: missing
WARNING: Validation issue for source-ab1edd5e2e4b132e record 9: datetime_type (type mismatch in posted_at; no automatic conversion applied)
WARNING: Validation issue for source-ab1edd5e2e4b132e record 10: string_too_short
WARNING: Validation issue for source-ab1edd5e2e4b132e record 12: string_too_short
WARNING: Validation issue for source-ab1edd5e2e4b132e record 13: value_error
WARNING: Validation issue for source-ab1edd5e2e4b132e record 14: value_error
WARNING: Validation issue for source-ab1edd5e2e4b132e record 15: value_error
WARNING: Validation issue for source-ab1edd5e2e4b132e record 16: value_error
WARNING: Validation issue for source-ab1edd5e2e4b132e record 17: value_error
WARNING: Validation issue for source-ab1edd5e2e4b132e record 18: string_too_long
WARNING: Validation issue for source-ab1edd5e2e4b132e record 19: greater_than
WARNING: Validation issue for source-ab1edd5e2e4b132e record 20: greater_than
WARNING: Validation issue for source-ab1edd5e2e4b132e record 21: decimal_max_places
WARNING: Validation issue for source-ab1edd5e2e4b132e record 22: decimal_max_digits
WARNING: Validation issue for source-ab1edd5e2e4b132e record 24: extra_forbidden,extra_forbidden,extra_forbidden
WARNING: Validation issue for source-ab1edd5e2e4b132e record 26: enum
WARNING: Validation issue for source-ab1edd5e2e4b132e record 27: enum
WARNING: Validation issue for source-ab1edd5e2e4b132e record 28: value_error
WARNING: Validation issue for source-ab1edd5e2e4b132e record 29: string_pattern_mismatch
WARNING: Validation issue for source-ab1edd5e2e4b132e record 30: string_too_long
WARNING: Validation issue for source-ab1edd5e2e4b132e record 31: string_too_long
WARNING: Validation issue for source-ab1edd5e2e4b132e record 32: is_instance_of
Records checked: 32
Valid: 8; invalid: 24
SQLite: target_migration.db (committed)
Report: airlock_report.html
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-builtin \
python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-builtin \
  --expected-checked 32 --expected-valid 8 --expected-invalid 24 --expected-rows 8 \
  --anonymized-field account_id --expect-type-mismatch-note
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
{
  "anonymized_field_token_violations": {
    "account_id": 0
  },
  "invalid_records": 24,
  "jsonl_rows": null,
  "posted_at_index": true,
  "records_checked": 32,
  "report_standalone": true,
  "sqlite_integrity": "ok",
  "sqlite_rows": 8,
  "status": "passed",
  "summary_verified": true,
  "type_mismatch_note_present": true,
  "valid_records": 8
}
▸ Run python main.py --input examples/real_data/online_retail_sample.jsonl \
python main.py --input examples/real_data/online_retail_sample.jsonl \
  --config examples/real_data/online_retail_schema.json --anonymize --output-dir ci-real
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
Records checked: 10
Valid: 10; invalid: 0
SQLite: target_migration.db (committed)
Report: airlock_report.html
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-real \
python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-real \
  --expected-checked 10 --expected-valid 10 --expected-invalid 0 --expected-rows 10 \
  --anonymized-field customer_id
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
{
  "anonymized_field_token_violations": {
    "customer_id": 0
  },
  "invalid_records": 0,
  "jsonl_rows": null,
  "posted_at_index": null,
  "records_checked": 10,
  "report_standalone": true,
  "sqlite_integrity": "ok",
  "sqlite_rows": 10,
  "status": "passed",
  "summary_verified": true,
  "type_mismatch_note_present": false,
  "valid_records": 10
}
▸ Run python main.py --input examples/real_data/online_retail_sample.jsonl \
python main.py --input examples/real_data/online_retail_sample.jsonl \
  --config examples/real_data/online_retail_schema.json --anonymize \
  --output-format jsonl --output-dir ci-jsonl
test ! -f ci-jsonl/target_migration.db
python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-jsonl \
  --skip-sqlite --expected-checked 10 --expected-valid 10 --expected-invalid 0 \
  --expected-jsonl-rows 10
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
Records checked: 10
Valid: 10; invalid: 0
SQLite: not used (--output-format jsonl)
JSONL: target_migration.jsonl (10 records)
Report: airlock_report.html
{
  "anonymized_field_token_violations": null,
  "invalid_records": 0,
  "jsonl_rows": 10,
  "posted_at_index": null,
  "records_checked": 10,
  "report_standalone": true,
  "sqlite_integrity": null,
  "sqlite_rows": null,
  "status": "passed",
  "summary_verified": true,
  "type_mismatch_note_present": false,
  "valid_records": 10
}
▸ Run python - <<'PY'
python - <<'PY'
import csv

header = ["transaction_id", "account_id", "posted_at", "amount", "currency",
          "transaction_type", "status", "counterparty", "description"]
rows = [
    ["3f8a1c2e-4b6d-4e9a-8f1c-2d5e7a9b0c11", "ACC-1001", "2026-01-15T09:30:00Z",
     "125.50", "USD", "DEBIT", "POSTED", "Northwind, Ltd", "Monthly supplies"],
    ["8b2d4f6a-1c3e-4a5b-9d7e-0f1a2b3c4d5e", "ACC_2200", "2026-02-03T16:45:00+02:00",
     "89.99", "EUR", "CREDIT", "POSTED", "Blue Yonder Airlines", ""],
    ["not-a-uuid", "ACC-1001", "2026-03-01T10:00:00Z", "10.00", "USD", "DEBIT",
     "POSTED", "Example Co", ""],
]
with open("ci-basic.csv", "w", encoding="utf-8-sig", newline="") as stream:
    writer = csv.writer(stream)
    writer.writerow(header)
    writer.writerows(rows)
PY
python main.py --input ci-basic.csv --output-dir ci-csv || test $? -eq 1
python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-csv \
  --expected-checked 3 --expected-valid 2 --expected-invalid 1 --expected-rows 2
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
WARNING: Validation issue for ci-basic.csv record 3: value_error
Records checked: 3
Valid: 2; invalid: 1
SQLite: ci-csv\target_migration.db (committed)
Report: ci-csv\airlock_report.html
{
  "anonymized_field_token_violations": null,
  "invalid_records": 1,
  "jsonl_rows": null,
  "posted_at_index": true,
  "records_checked": 3,
  "report_standalone": true,
  "sqlite_integrity": "ok",
  "sqlite_rows": 2,
  "status": "passed",
  "summary_verified": true,
  "type_mismatch_note_present": false,
  "valid_records": 2
}
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_archive_input.py ci-archives
python .cursor/skills/verify-airlock-db/scripts/verify_archive_input.py ci-archives
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
archive_input_ok scenarios=6 evidence=D:\a\airlock-db\airlock-db\ci-archives\archive_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_schema_infer.py ci-infer
python .cursor/skills/verify-airlock-db/scripts/verify_schema_infer.py ci-infer
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
schema_infer_ok scenarios=8 evidence=D:\a\airlock-db\airlock-db\ci-infer\schema_infer_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_handoff.py ci-handoff
python .cursor/skills/verify-airlock-db/scripts/verify_handoff.py ci-handoff
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
verify_handoff_ok scenarios=10 evidence=D:\a\airlock-db\airlock-db\ci-handoff\verify_handoff_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_jsonl_target.py ci-jsonl-verify
python .cursor/skills/verify-airlock-db/scripts/verify_jsonl_target.py ci-jsonl-verify
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
jsonl_target_ok scenarios=10 evidence=D:\a\airlock-db\airlock-db\ci-jsonl-verify\jsonl_target_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_source_manifest.py ci-source-manifest
python .cursor/skills/verify-airlock-db/scripts/verify_source_manifest.py ci-source-manifest
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
source_manifest_ok scenarios=9 evidence=D:\a\airlock-db\airlock-db\ci-source-manifest\source_manifest_verification.json
▸ Run python - <<'PY'
python - <<'PY'
import sqlite3

columns = ("transaction_id TEXT, account_id TEXT, posted_at TEXT, amount TEXT, "
           "currency TEXT, transaction_type TEXT, status TEXT, counterparty TEXT, "
           "description TEXT")
connection = sqlite3.connect("ci-multi.db")
connection.execute(f"CREATE TABLE a ({columns})")
connection.execute(f"CREATE TABLE b ({columns})")
connection.execute(
    "INSERT INTO a VALUES ('3f8a1c2e-4b6d-4e9a-8f1c-2d5e7a9b0c11', 'ACC-1001', "
    "'2026-01-15T09:30:00Z', '125.50', 'USD', 'DEBIT', 'POSTED', 'Northwind', NULL)")
connection.execute(
    "INSERT INTO b VALUES ('8b2d4f6a-1c3e-4a5b-9d7e-0f1a2b3c4d5e', 'ACC_2200', "
    "'2026-02-03T16:45:00+02:00', '89.99', 'EUR', 'CREDIT', 'POSTED', 'Blue Yonder', NULL)")
connection.execute(
    "INSERT INTO b VALUES ('not-a-uuid', 'ACC-1001', '2026-03-01T10:00:00Z', "
    "'10.00', 'USD', 'DEBIT', 'POSTED', 'Example', NULL)")
connection.commit()
connection.close()
PY
python main.py --source-db ci-multi.db --source-table a --source-table b --output-dir ci-multi || test $? -eq 1
python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-multi \
  --expected-checked 3 --expected-valid 2 --expected-invalid 1 --expected-rows 2
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
WARNING: Validation issue for ci-multi.db (b) record 2: value_error
Records checked: 3
Valid: 2; invalid: 1
SQLite: ci-multi\target_migration.db (committed)
Report: ci-multi\airlock_report.html
{
  "anonymized_field_token_violations": null,
  "invalid_records": 1,
  "jsonl_rows": null,
  "posted_at_index": true,
  "records_checked": 3,
  "report_standalone": true,
  "sqlite_integrity": "ok",
  "sqlite_rows": 2,
  "status": "passed",
  "summary_verified": true,
  "type_mismatch_note_present": false,
  "valid_records": 2
}
▸ Run python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --error-log --output-dir ci-repair || test $? -eq 1
python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --error-log --output-dir ci-repair || test $? -eq 1
printf 'd\nd\nq\n' | python main.py repair --error-log ci-repair/airlock_errors.jsonl --constraints examples/constraints.json | grep -q '0 corrected, 2 dropped'
printf 'q\n' | python main.py repair --error-log ci-repair/airlock_errors.jsonl --constraints examples/constraints.json | grep -q 'Resumed: 2'
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
WARNING: Validation issue for examples\messy_transactions.json record 5: missing
WARNING: Validation issue for examples\messy_transactions.json record 6: missing
WARNING: Validation issue for examples\messy_transactions.json record 7: missing
WARNING: Validation issue for examples\messy_transactions.json record 9: datetime_type (type mismatch in posted_at; no automatic conversion applied)
WARNING: Validation issue for examples\messy_transactions.json record 10: string_too_short
WARNING: Validation issue for examples\messy_transactions.json record 12: string_too_short
WARNING: Validation issue for examples\messy_transactions.json record 13: value_error
WARNING: Validation issue for examples\messy_transactions.json record 14: value_error
WARNING: Validation issue for examples\messy_transactions.json record 15: value_error
WARNING: Validation issue for examples\messy_transactions.json record 16: value_error
WARNING: Validation issue for examples\messy_transactions.json record 17: value_error
WARNING: Validation issue for examples\messy_transactions.json record 18: string_too_long
WARNING: Validation issue for examples\messy_transactions.json record 19: greater_than
WARNING: Validation issue for examples\messy_transactions.json record 20: greater_than
WARNING: Validation issue for examples\messy_transactions.json record 21: decimal_max_places
WARNING: Validation issue for examples\messy_transactions.json record 22: decimal_max_digits
WARNING: Validation issue for examples\messy_transactions.json record 24: extra_forbidden,extra_forbidden,extra_forbidden
WARNING: Validation issue for examples\messy_transactions.json record 26: enum
WARNING: Validation issue for examples\messy_transactions.json record 27: enum
WARNING: Validation issue for examples\messy_transactions.json record 28: value_error
WARNING: Validation issue for examples\messy_transactions.json record 29: string_pattern_mismatch
WARNING: Validation issue for examples\messy_transactions.json record 30: string_too_long
WARNING: Validation issue for examples\messy_transactions.json record 31: string_too_long
WARNING: Validation issue for examples\messy_transactions.json record 32: is_instance_of
Records checked: 32
Valid: 8; invalid: 24
SQLite: ci-repair\target_migration.db (committed)
Repair log: ci-repair\airlock_errors.jsonl
Report: ci-repair\airlock_report.html
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_repair_summary.py ci-repair-summary
python .cursor/skills/verify-airlock-db/scripts/verify_repair_summary.py ci-repair-summary
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
repair_summary_ok scenarios=8 evidence=D:\a\airlock-db\airlock-db\ci-repair-summary\repair_summary_verification.json
▸ Run python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --error-log --output-dir ci-decisions || test $? -eq 1
python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --error-log --output-dir ci-decisions || test $? -eq 1
printf '{"entry": 1, "action": "drop"}\n{"entry": 2, "action": "set", "field": "amount", "value": "5.00"}\n{"entry": 3, "action": "set", "field": "status", "value": "POSTED"}\n' > ci-decisions.jsonl
python main.py repair --error-log ci-decisions/airlock_errors.jsonl --constraints examples/constraints.json --decisions ci-decisions.jsonl
python main.py report --output-dir ci-decisions | grep -q 'Repair outcomes: 2 corrected, 1 dropped'
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
WARNING: Validation issue for examples\messy_transactions.json record 5: missing
WARNING: Validation issue for examples\messy_transactions.json record 6: missing
WARNING: Validation issue for examples\messy_transactions.json record 7: missing
WARNING: Validation issue for examples\messy_transactions.json record 9: datetime_type (type mismatch in posted_at; no automatic conversion applied)
WARNING: Validation issue for examples\messy_transactions.json record 10: string_too_short
WARNING: Validation issue for examples\messy_transactions.json record 12: string_too_short
WARNING: Validation issue for examples\messy_transactions.json record 13: value_error
WARNING: Validation issue for examples\messy_transactions.json record 14: value_error
WARNING: Validation issue for examples\messy_transactions.json record 15: value_error
WARNING: Validation issue for examples\messy_transactions.json record 16: value_error
WARNING: Validation issue for examples\messy_transactions.json record 17: value_error
WARNING: Validation issue for examples\messy_transactions.json record 18: string_too_long
WARNING: Validation issue for examples\messy_transactions.json record 19: greater_than
WARNING: Validation issue for examples\messy_transactions.json record 20: greater_than
WARNING: Validation issue for examples\messy_transactions.json record 21: decimal_max_places
WARNING: Validation issue for examples\messy_transactions.json record 22: decimal_max_digits
WARNING: Validation issue for examples\messy_transactions.json record 24: extra_forbidden,extra_forbidden,extra_forbidden
WARNING: Validation issue for examples\messy_transactions.json record 26: enum
WARNING: Validation issue for examples\messy_transactions.json record 27: enum
WARNING: Validation issue for examples\messy_transactions.json record 28: value_error
WARNING: Validation issue for examples\messy_transactions.json record 29: string_pattern_mismatch
WARNING: Validation issue for examples\messy_transactions.json record 30: string_too_long
WARNING: Validation issue for examples\messy_transactions.json record 31: string_too_long
WARNING: Validation issue for examples\messy_transactions.json record 32: is_instance_of
Records checked: 32
Valid: 8; invalid: 24
SQLite: ci-decisions\target_migration.db (committed)
Repair log: ci-decisions\airlock_errors.jsonl
Report: ci-decisions\airlock_report.html
Repair log: ci-decisions\airlock_errors.jsonl
Schema: FinancialTransaction; target: ci-decisions\target_migration.db
Each rejected row will be reviewed interactively. Type q to finish this session.
Corrected record passed validation and was staged with its resume checkpoint.
Corrected record passed validation and was staged with its resume checkpoint.
Repair complete: 2 corrected, 1 dropped, 0 non-repairable entries.
SQLite: ci-decisions\target_migration.db (2 inserted, 0 duplicates, 0 updated; 3 repair decisions saved)
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_decisions_dry_run.py ci-decisions-dry-run
python .cursor/skills/verify-airlock-db/scripts/verify_decisions_dry_run.py ci-decisions-dry-run
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
decisions_dry_run_ok scenarios=5 evidence=D:\a\airlock-db\airlock-db\ci-decisions-dry-run\decisions_dry_run_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_dry_run.py ci-dry-run
python .cursor/skills/verify-airlock-db/scripts/verify_dry_run.py ci-dry-run
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
dry_run_ok scenarios=8 evidence=D:\a\airlock-db\airlock-db\ci-dry-run\dry_run_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_config_check.py ci-config-check
python .cursor/skills/verify-airlock-db/scripts/verify_config_check.py ci-config-check
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
config_check_ok scenarios=7 evidence=D:\a\airlock-db\airlock-db\ci-config-check\config_check_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_input_encoding.py ci-input-encoding
python .cursor/skills/verify-airlock-db/scripts/verify_input_encoding.py ci-input-encoding
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
input_encoding_ok scenarios=9 evidence=D:\a\airlock-db\airlock-db\ci-input-encoding\input_encoding_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_run_compare.py ci-run-compare
python .cursor/skills/verify-airlock-db/scripts/verify_run_compare.py ci-run-compare
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
run_compare_ok scenarios=7 evidence=D:\a\airlock-db\airlock-db\ci-run-compare\run_compare_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_dynamic_constraints.py ci-dynamic-constraints
python .cursor/skills/verify-airlock-db/scripts/verify_dynamic_constraints.py ci-dynamic-constraints
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
dynamic_constraints_ok scenarios=7 evidence=D:\a\airlock-db\airlock-db\ci-dynamic-constraints\dynamic_constraints_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_xml_equivalence.py \
python .cursor/skills/verify-airlock-db/scripts/verify_xml_equivalence.py \
  examples/messy_transactions.json --constraints examples/constraints.json
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
records=8
table=transactions
xml_equals_json=true
▸ Run python - <<'PY'
python - <<'PY'
import json
import sqlite3

rows = json.load(open("examples/messy_transactions.json", encoding="utf-8"))
chosen = [rows[0], rows[3], rows[4], rows[8]]
connection = sqlite3.connect("legacy-source.db")
connection.execute(
    "CREATE TABLE transactions (transaction_id TEXT, account_id TEXT, "
    "posted_at TEXT, amount TEXT, currency TEXT, transaction_type TEXT, "
    "status TEXT, counterparty TEXT, description TEXT)"
)
for row in chosen:
    amount = row.get("amount")
    if isinstance(amount, float):
        amount = repr(amount)
    connection.execute(
        "INSERT INTO transactions VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",
        (
            row.get("transaction_id"),
            row.get("account_id"),
            row.get("posted_at"),
            amount,
            row.get("currency"),
            row.get("transaction_type"),
            row.get("status"),
            row.get("counterparty"),
            row.get("description"),
        ),
    )
connection.commit()
connection.close()
PY
python main.py --source-db legacy-source.db --output-dir ci-source-db || test $? -eq 1
python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-source-db \
  --expected-checked 4 --expected-valid 2 --expected-invalid 2 --expected-rows 2
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
WARNING: Validation issue for legacy-source.db (transactions) record 3: uuid_type (type mismatch in transaction_id; no automatic conversion applied)
WARNING: Validation issue for legacy-source.db (transactions) record 4: value_error
Records checked: 4
Valid: 2; invalid: 2
SQLite: ci-source-db\target_migration.db (committed)
Report: ci-source-db\airlock_report.html
{
  "anonymized_field_token_violations": null,
  "invalid_records": 2,
  "jsonl_rows": null,
  "posted_at_index": true,
  "records_checked": 4,
  "report_standalone": true,
  "sqlite_integrity": "ok",
  "sqlite_rows": 2,
  "status": "passed",
  "summary_verified": true,
  "type_mismatch_note_present": true,
  "valid_records": 2
}
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_cli_wins.py ci-cli-wins
python .cursor/skills/verify-airlock-db/scripts/verify_cli_wins.py ci-cli-wins
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
cli_wins_ok scenarios=11 evidence=D:\a\airlock-db\airlock-db\ci-cli-wins\cli_wins_verification.json
▸ Run printf '{"ticket_id": "TKT-000001", "customer_name": "Alice", "priority": "HIGH", "opened_at": "2026-01-05T08:00:00Z"}\n' > ci-ticket.jsonl
printf '{"ticket_id": "TKT-000001", "customer_name": "Alice", "priority": "HIGH", "opened_at": "2026-01-05T08:00:00Z"}\n' > ci-ticket.jsonl
python main.py --input ci-ticket.jsonl --config examples/schema_config.yaml --output-dir ci-yaml
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
Records checked: 1
Valid: 1; invalid: 0
SQLite: ci-yaml\target_migration.db (committed)
Report: ci-yaml\airlock_report.html
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_transforms.py ci-transforms
python .cursor/skills/verify-airlock-db/scripts/verify_transforms.py ci-transforms
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
transforms_ok scenarios=7 evidence=D:\a\airlock-db\airlock-db\ci-transforms\transforms_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_fixed_width.py ci-fixed-width
python .cursor/skills/verify-airlock-db/scripts/verify_fixed_width.py ci-fixed-width
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
fixed_width_ok scenarios=9 evidence=D:\a\airlock-db\airlock-db\ci-fixed-width\fixed_width_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_jsonl_reader.py ci-reader-edges
python .cursor/skills/verify-airlock-db/scripts/verify_jsonl_reader.py ci-reader-edges
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
jsonl_csv_reader_ok checks=73
▸ Run python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --commit-every 4 --output-dir ci-checkpoint || test $? -eq 1
python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --commit-every 4 --output-dir ci-checkpoint || test $? -eq 1
python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --commit-every 4 --resume --output-dir ci-checkpoint > ci-resume.log || test $? -eq 1
grep -q 'Resumed: 32' ci-resume.log
python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-checkpoint \
  --expected-checked 32 --expected-valid 8 --expected-invalid 24 --expected-rows 8
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
WARNING: Validation issue for examples\messy_transactions.json record 5: missing
WARNING: Validation issue for examples\messy_transactions.json record 6: missing
WARNING: Validation issue for examples\messy_transactions.json record 7: missing
WARNING: Validation issue for examples\messy_transactions.json record 9: datetime_type (type mismatch in posted_at; no automatic conversion applied)
WARNING: Validation issue for examples\messy_transactions.json record 10: string_too_short
WARNING: Validation issue for examples\messy_transactions.json record 12: string_too_short
WARNING: Validation issue for examples\messy_transactions.json record 13: value_error
WARNING: Validation issue for examples\messy_transactions.json record 14: value_error
WARNING: Validation issue for examples\messy_transactions.json record 15: value_error
WARNING: Validation issue for examples\messy_transactions.json record 16: value_error
WARNING: Validation issue for examples\messy_transactions.json record 17: value_error
WARNING: Validation issue for examples\messy_transactions.json record 18: string_too_long
WARNING: Validation issue for examples\messy_transactions.json record 19: greater_than
WARNING: Validation issue for examples\messy_transactions.json record 20: greater_than
WARNING: Validation issue for examples\messy_transactions.json record 21: decimal_max_places
WARNING: Validation issue for examples\messy_transactions.json record 22: decimal_max_digits
WARNING: Validation issue for examples\messy_transactions.json record 24: extra_forbidden,extra_forbidden,extra_forbidden
WARNING: Validation issue for examples\messy_transactions.json record 26: enum
WARNING: Validation issue for examples\messy_transactions.json record 27: enum
WARNING: Validation issue for examples\messy_transactions.json record 28: value_error
WARNING: Validation issue for examples\messy_transactions.json record 29: string_pattern_mismatch
WARNING: Validation issue for examples\messy_transactions.json record 30: string_too_long
WARNING: Validation issue for examples\messy_transactions.json record 31: string_too_long
WARNING: Validation issue for examples\messy_transactions.json record 32: is_instance_of
Records checked: 32
Valid: 8; invalid: 24
SQLite: ci-checkpoint\target_migration.db (committed)
Report: ci-checkpoint\airlock_report.html
WARNING: Validation issue for examples\messy_transactions.json record 5: missing
WARNING: Validation issue for examples\messy_transactions.json record 6: missing
WARNING: Validation issue for examples\messy_transactions.json record 7: missing
WARNING: Validation issue for examples\messy_transactions.json record 9: datetime_type (type mismatch in posted_at; no automatic conversion applied)
WARNING: Validation issue for examples\messy_transactions.json record 10: string_too_short
WARNING: Validation issue for examples\messy_transactions.json record 12: string_too_short
WARNING: Validation issue for examples\messy_transactions.json record 13: value_error
WARNING: Validation issue for examples\messy_transactions.json record 14: value_error
WARNING: Validation issue for examples\messy_transactions.json record 15: value_error
WARNING: Validation issue for examples\messy_transactions.json record 16: value_error
WARNING: Validation issue for examples\messy_transactions.json record 17: value_error
WARNING: Validation issue for examples\messy_transactions.json record 18: string_too_long
WARNING: Validation issue for examples\messy_transactions.json record 19: greater_than
WARNING: Validation issue for examples\messy_transactions.json record 20: greater_than
WARNING: Validation issue for examples\messy_transactions.json record 21: decimal_max_places
WARNING: Validation issue for examples\messy_transactions.json record 22: decimal_max_digits
WARNING: Validation issue for examples\messy_transactions.json record 24: extra_forbidden,extra_forbidden,extra_forbidden
WARNING: Validation issue for examples\messy_transactions.json record 26: enum
WARNING: Validation issue for examples\messy_transactions.json record 27: enum
WARNING: Validation issue for examples\messy_transactions.json record 28: value_error
WARNING: Validation issue for examples\messy_transactions.json record 29: string_pattern_mismatch
WARNING: Validation issue for examples\messy_transactions.json record 30: string_too_long
WARNING: Validation issue for examples\messy_transactions.json record 31: string_too_long
WARNING: Validation issue for examples\messy_transactions.json record 32: is_instance_of
{
  "anonymized_field_token_violations": null,
  "invalid_records": 24,
  "jsonl_rows": null,
  "posted_at_index": true,
  "records_checked": 32,
  "report_standalone": true,
  "sqlite_integrity": "ok",
  "sqlite_rows": 8,
  "status": "passed",
  "summary_verified": true,
  "type_mismatch_note_present": true,
  "valid_records": 8
}
▸ Run python scripts/perf_budget.py --work-dir ci-perf-budget
python scripts/perf_budget.py --work-dir ci-perf-budget
shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: C:\hostedtoolcache\windows\Python\3.12.10\x64
  PKG_CONFIG_PATH: C:\hostedtoolcache\windows\Python\3.12.10\x64/lib/pkgconfig
  Python_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python2_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
  Python3_ROOT_DIR: C:\hostedtoolcache\windows\Python\3.12.10\x64
valid-migration: exit=0 0.29s 6,994 records/s
invalid-migration: exit=1 0.31s
verify: exit=0 0.31s
perf_budget_ok workloads=3
Post job cleanup.
Post job cleanup.
[command]"C:\Program Files\Git\bin\git.exe" version
git version 2.56.0.windows.2
Temporarily overriding HOME='D:\a\_temp\b9292a9a-1f58-4e2a-9053-6687e567dab6' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]"C:\Program Files\Git\bin\git.exe" config --global --add safe.directory D:\a\airlock-db\airlock-db
Removing SSH command configuration
[command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp core\.sshCommand
[command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\""
Removing HTTP extra header
[command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
[command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :\""
Removing includeIf entries pointing to credentials config files
[command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp ^includeIf\.gitdir:
includeif.gitdir:D:/a/airlock-db/airlock-db/.git.path
includeif.gitdir:D:/a/airlock-db/airlock-db/.git/worktrees/*.path
includeif.gitdir:/github/workspace/.git.path
includeif.gitdir:/github/workspace/.git/worktrees/*.path
[command]"C:\Program Files\Git\bin\git.exe" config --local --get-all includeif.gitdir:D:/a/airlock-db/airlock-db/.git.path
D:\a\_temp\git-credentials-7dd5916f-76fa-46fa-8777-5dcd2aa3b82b.config
[command]"C:\Program Files\Git\bin\git.exe" config --local --unset includeif.gitdir:D:/a/airlock-db/airlock-db/.git.path D\:\\a\\_temp\\git\-credentials\-7dd5916f\-76fa\-46fa\-8777\-5dcd2aa3b82b\.config
[command]"C:\Program Files\Git\bin\git.exe" config --local --get-all includeif.gitdir:D:/a/airlock-db/airlock-db/.git/worktrees/*.path
D:\a\_temp\git-credentials-7dd5916f-76fa-46fa-8777-5dcd2aa3b82b.config
[command]"C:\Program Files\Git\bin\git.exe" config --local --unset includeif.gitdir:D:/a/airlock-db/airlock-db/.git/worktrees/*.path D\:\\a\\_temp\\git\-credentials\-7dd5916f\-76fa\-46fa\-8777\-5dcd2aa3b82b\.config
[command]"C:\Program Files\Git\bin\git.exe" config --local --get-all includeif.gitdir:/github/workspace/.git.path
/github/runner_temp/git-credentials-7dd5916f-76fa-46fa-8777-5dcd2aa3b82b.config
[command]"C:\Program Files\Git\bin\git.exe" config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-7dd5916f\-76fa\-46fa\-8777\-5dcd2aa3b82b\.config
[command]"C:\Program Files\Git\bin\git.exe" config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path
/github/runner_temp/git-credentials-7dd5916f-76fa-46fa-8777-5dcd2aa3b82b.config
[command]"C:\Program Files\Git\bin\git.exe" config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-7dd5916f\-76fa\-46fa\-8777\-5dcd2aa3b82b\.config
[command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "git config --local --show-origin --name-only --get-regexp remote.origin.url"
Removing credentials config 'D:\a\_temp\git-credentials-7dd5916f-76fa-46fa-8777-5dcd2aa3b82b.config'
Cleaning up orphan processes