# Public Pair 01 Build Report

- Generated at UTC: `2026-07-19T02:44:29Z`
- Source pair: `/users/a2andrad/www/matches/plan1_dualseat_tests/mirrored-7pt-sage_vs_gnubg_show10_20260717T182417Z_pair01`
- Parser output: `/users/a2andrad/www/matches/plan1_dualseat_tests/stage1_private_preview_parser_v1_1_rounding_fix`
- Staging path: `/users/a2andrad/www/matches/plan1_dualseat_tests/public_staging/stage1_curated_v1/pair_01`
- Pair status: `fail`
- Stage 1 frozen-release status: `fail`

## Public tree

```text
README.md
dice/
dice/consumed_rolls.csv
dice/dice_verification.json
match_A/
match_A/4ply_review/
match_A/4ply_review/gnu_vs_sage_match_1a.sgf
match_A/4ply_review/gnu_vs_sage_match_1a_game_1.txt
match_A/4ply_review/gnu_vs_sage_match_1a_game_2.txt
match_A/checksums.sha256
match_A/gnu_vs_sage_match_1a.sgf
match_A/match_record.json
match_A/metadata.json
match_B/
match_B/4ply_review/
match_B/4ply_review/gnu_vs_sage_match_1b.sgf
match_B/4ply_review/gnu_vs_sage_match_1b_game_1.txt
match_B/4ply_review/gnu_vs_sage_match_1b_game_2.txt
match_B/checksums.sha256
match_B/gnu_vs_sage_match_1b.sgf
match_B/match_record.json
match_B/metadata.json
pair_manifest.json
```

## Source-to-public mapping

- `/users/a2andrad/www/matches/plan1_dualseat_tests/mirrored-7pt-sage_vs_gnubg_show10_20260717T182417Z_pair01/match_A/match_001_7pt_sage_checker4ply_cube3ply_vs_gnubg_checker3ply_cube2ply.sgf` → `/users/a2andrad/www/matches/plan1_dualseat_tests/public_staging/stage1_curated_v1/.pair_01.tmp.fvjfhjsh/pair_01/match_A/gnu_vs_sage_match_1a.sgf` (copied_verbatim, Match A authoritative played SGF)
- `/users/a2andrad/www/matches/plan1_dualseat_tests/mirrored-7pt-sage_vs_gnubg_show10_20260717T182417Z_pair01/match_A/4ply_gnu_analyzed_match_001_7pt_sage_checker4ply_cube3ply_vs_gnubg_checker3ply_cube2ply.sgf` → `/users/a2andrad/www/matches/plan1_dualseat_tests/public_staging/stage1_curated_v1/.pair_01.tmp.fvjfhjsh/pair_01/match_A/4ply_review/gnu_vs_sage_match_1a.sgf` (copied_verbatim, Match A GNU 4-ply reviewed SGF)
- `/users/a2andrad/www/matches/plan1_dualseat_tests/mirrored-7pt-sage_vs_gnubg_show10_20260717T182417Z_pair01/match_A/4ply_gnu_analyzed_match_001_7pt_sage_checker4ply_cube3ply_vs_gnubg_checker3ply_cube2ply.txt` → `/users/a2andrad/www/matches/plan1_dualseat_tests/public_staging/stage1_curated_v1/.pair_01.tmp.fvjfhjsh/pair_01/match_A/4ply_review/gnu_vs_sage_match_1a_game_1.txt` (copied_verbatim, Match A GNU 4-ply reviewed game text 1)
- `/users/a2andrad/www/matches/plan1_dualseat_tests/mirrored-7pt-sage_vs_gnubg_show10_20260717T182417Z_pair01/match_A/4ply_gnu_analyzed_match_001_7pt_sage_checker4ply_cube3ply_vs_gnubg_checker3ply_cube2ply_002.txt` → `/users/a2andrad/www/matches/plan1_dualseat_tests/public_staging/stage1_curated_v1/.pair_01.tmp.fvjfhjsh/pair_01/match_A/4ply_review/gnu_vs_sage_match_1a_game_2.txt` (copied_verbatim, Match A GNU 4-ply reviewed game text 2)
- `/users/a2andrad/www/matches/plan1_dualseat_tests/stage1_private_preview_parser_v1_1_rounding_fix/canonical_match_records/pair_01_match_a.json` → `/users/a2andrad/www/matches/plan1_dualseat_tests/public_staging/stage1_curated_v1/.pair_01.tmp.fvjfhjsh/pair_01/match_A/match_record.json` (public_projection, Match A public analytical match record)
- `/users/a2andrad/www/matches/plan1_dualseat_tests/mirrored-7pt-sage_vs_gnubg_show10_20260717T182417Z_pair01/match_B/match_001_7pt_sage_checker4ply_cube3ply_vs_gnubg_checker3ply_cube2ply.sgf` → `/users/a2andrad/www/matches/plan1_dualseat_tests/public_staging/stage1_curated_v1/.pair_01.tmp.fvjfhjsh/pair_01/match_B/gnu_vs_sage_match_1b.sgf` (copied_verbatim, Match B authoritative played SGF)
- `/users/a2andrad/www/matches/plan1_dualseat_tests/mirrored-7pt-sage_vs_gnubg_show10_20260717T182417Z_pair01/match_B/4ply_gnu_analyzed_match_001_7pt_sage_checker4ply_cube3ply_vs_gnubg_checker3ply_cube2ply.sgf` → `/users/a2andrad/www/matches/plan1_dualseat_tests/public_staging/stage1_curated_v1/.pair_01.tmp.fvjfhjsh/pair_01/match_B/4ply_review/gnu_vs_sage_match_1b.sgf` (copied_verbatim, Match B GNU 4-ply reviewed SGF)
- `/users/a2andrad/www/matches/plan1_dualseat_tests/mirrored-7pt-sage_vs_gnubg_show10_20260717T182417Z_pair01/match_B/4ply_gnu_analyzed_match_001_7pt_sage_checker4ply_cube3ply_vs_gnubg_checker3ply_cube2ply.txt` → `/users/a2andrad/www/matches/plan1_dualseat_tests/public_staging/stage1_curated_v1/.pair_01.tmp.fvjfhjsh/pair_01/match_B/4ply_review/gnu_vs_sage_match_1b_game_1.txt` (copied_verbatim, Match B GNU 4-ply reviewed game text 1)
- `/users/a2andrad/www/matches/plan1_dualseat_tests/mirrored-7pt-sage_vs_gnubg_show10_20260717T182417Z_pair01/match_B/4ply_gnu_analyzed_match_001_7pt_sage_checker4ply_cube3ply_vs_gnubg_checker3ply_cube2ply_002.txt` → `/users/a2andrad/www/matches/plan1_dualseat_tests/public_staging/stage1_curated_v1/.pair_01.tmp.fvjfhjsh/pair_01/match_B/4ply_review/gnu_vs_sage_match_1b_game_2.txt` (copied_verbatim, Match B GNU 4-ply reviewed game text 2)
- `/users/a2andrad/www/matches/plan1_dualseat_tests/stage1_private_preview_parser_v1_1_rounding_fix/canonical_match_records/pair_01_match_b.json` → `/users/a2andrad/www/matches/plan1_dualseat_tests/public_staging/stage1_curated_v1/.pair_01.tmp.fvjfhjsh/pair_01/match_B/match_record.json` (public_projection, Match B public analytical match record)

## Generated and projected files

- Verbatim copies: 8
- Public projections: 2
- Generated files: 10
- Omitted optional artifacts: 0

## Validation

- Raw checksum snapshot: `{"manifest_sha256": "97e98e1fb19c4fcd96c05a408146c10981545eccb65a9295831b6d14c28abc7f", "mismatches": 0, "missing": 0, "present": true, "verified": 120}`
- Existing repository validator available: `True`
- Existing repository validator passed: `True`
- Dice verification: `{"consumed_event_count": 239, "consumed_rolls_sha256": "f0d7c85a11b2c8ba79d7b0544b89c12eb63a9a73d805606e4da6e17333dcf058", "consumed_values_verified": true, "cross_match_consumption_counts_equal": false, "cross_match_consumption_counts_required_equal": false, "cross_match_stream_files_required_byte_identical": false, "dice_mode": "physical_seat_rolls_v1", "internal_sequence_errors": 0, "matches": {"A": {"consumed_event_count": 105, "consumption_log_sha256": "46a60de43835341036a03ee414c88d2170faa107ed40f2680bd02948f4213704", "dice_seed": "sage_vs_gnubg_show10_20260717T182417Z_pair01:match:A", "manifest_sha256": "d3881e09d51af0cd474ad2db76da2b7eb94f8247f6815c659e161fd5db138a21", "match_side": "A", "max_game_number_consumed": 2, "prompt_counts": {"checker": 101, "opening": 4}, "stream_count": 50}, "B": {"consumed_event_count": 134, "consumption_log_sha256": "9c43a332fc34146df8270d33b6c547a748fd04cbabccd07124496e51a63c46bc", "dice_seed": "sage_vs_gnubg_show10_20260717T182417Z_pair01:match:B", "manifest_sha256": "440ed163879cd22a1966fab27a893b735c234224bfa24505a527b54844c4f24c", "match_side": "B", "max_game_number_consumed": 2, "prompt_counts": {"checker": 130, "opening": 4}, "stream_count": 50}}, "matches_verified": ["A", "B"], "pair_id": "pair_01", "repository_source_validator_available": true, "repository_source_validator_passed": true, "schema_version": "stage1-public-dice-verification-v1", "seat_swap_verified": true, "source_checksums_verified": true, "source_pair_manifest_valid": true, "source_stream_count": 100, "stream_contract_basis": "side_specific_dice_seed_contract_with_repository_validator", "stream_contract_verified": true}`
- Privacy findings: `2`
- Checksum verification: `{"match_A": {"mismatches": 0, "missing": 0, "passed": true, "verified": 6}, "match_B": {"mismatches": 0, "missing": 0, "passed": true, "verified": 6}}`

## Failures

- **BUILD_EXCEPTION** — BuildState.fail() got multiple values for argument 'code' `{"exception_type": "TypeError"}`

## Warnings

- None

## Privacy findings

- `{'path': 'pair_manifest.json', 'code': 'unix_home_path', 'match': '/users/a2andrad/www/matches/plan1_dualseat_tests/stage1_private_preview_parser_v1_1_rounding_fix/release_validation.json', 'context': 'locking_failure_count": 3,     "path": "/users/a2andrad/www/matches/plan1_dualseat_tests/stage1_private_preview_parser_v1_1_rounding_fix/release_validation.json",     "present": true,     "status": "f'}`
- `{'path': 'pair_manifest.json', 'code': 'private_account', 'match': 'a2andrad', 'context': '_failure_count": 3,     "path": "/users/a2andrad/www/matches/plan1_dualseat_tests/stage1'}`

## Existing validator output

```text
Trial validation: PASS
Root: /users/a2andrad/www/matches/plan1_dualseat_tests/mirrored-7pt-sage_vs_gnubg_show10_20260717T182417Z_pair01
Generated at UTC: 2026-07-19T02:43:57Z

Pair status: complete
Valid pair: True
Manifest matches: 2

Checksums verified: 120/120
Checksum missing: 0
Checksum transient missing: 0
Checksum mismatches: 0

Seat dice mode: physical_seat_rolls_v1
Seat dice streams: 100
Seat dice consumption logs: 2
Seat dice mismatches: 0

Decision count: 119
pre_decision_xgid nulls: 0
cube_owner nulls: 0
resulting_xgid nulls: 2
unexpected resulting_xgid nulls: 0

Warning counts:
  missing_position_or_match_id: 2
  resulting_board_unavailable_until_validated: 119
  resulting_identifiers_from_next_decision_pre_state: 117

GNU 4/4 post-analysis:
  match A: complete
  match B: complete

/users/a2andrad/backgammon_bot/scripts/validate_mirrored_pair_trial.py:36: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
  return datetime.datetime.utcnow().isoformat(timespec="seconds") + "Z"
```

No source artifact was modified. Nothing was published or pushed.
