{
  "schema_version": "vaani.release-preparation.v1",
  "candidate": {
    "distribution": "vaani",
    "version": "1.0.0rc34",
    "state": "prepared_not_published",
    "prepared_from_commit": "c62fff74fdaddc3d53de6890f74ae4c575cf32c5",
    "publication_source_commit": null,
    "source_commit_semantics": "This candidate record describes the release state embedded in the immutable archives. The publication record below records the subsequent private-registry upload and read-back for those exact archives.",
    "target_registry": "asia-south1-python.pkg.dev/birla-loyalty-voice-bot/vaani-python",
    "public_pypi": "not_published"
  },
  "local_artifacts": {
    "source_tree_state": "clean_committed_consolidated_release_source",
    "built_from_commit": "c62fff74fdaddc3d53de6890f74ae4c575cf32c5",
    "source_commit_epoch": 1786541149,
    "canonical_build_command": ".venv/bin/python -m scripts.release_candidate --source . --out-dir /tmp/vaani-rc34-release",
    "release_build_manifest": "/tmp/vaani-rc34-release/vaani-1.0.0rc34-release-build.json",
    "publishable": false,
    "wheel": {
      "filename": "vaani-1.0.0rc34-py3-none-any.whl",
      "sha256": "56ae74c1e9aeca7715c3255b4503836561f0c515df4ecbf9d04f7dbbfa9da08b",
      "size_bytes": 252967
    },
    "sdist": {
      "filename": "vaani-1.0.0rc34.tar.gz",
      "sha256": "fe0b289ff70c31cbb450f8176e09e560b0dad4686a1aea5cb58e1cb8b7676408",
      "size_bytes": 503069
    },
    "reproducibility": {
      "builds": 2,
      "separate_clean_snapshots": true,
      "source_trees_clean_after_build": true,
      "wheel_byte_identical": true,
      "sdist_byte_identical": true
    },
    "privacy_scan": {
      "status": "passed",
      "archives_scanned": 2,
      "entries_scanned": 260,
      "operational_evidence_packaged": false
    }
  },
  "local_install": {
    "source": "built_wheel",
    "installed_version": "1.0.0rc34",
    "direct_url": "file://LOCAL_RELEASE_PREPARATION/vaani-1.0.0rc34-py3-none-any.whl",
    "editable": false,
    "local_path_dependency": true,
    "public_api_probes": {
      "assistant_preparation_conversation_bypass_and_terminal_result": "passed",
      "mid_call_terminal_outcome": "passed",
      "response_watch_recovery_playout": "passed",
      "tool_bearing_terminal_preparation": "passed",
      "enabled_immutable_approved_recording_and_disabled_negative": "passed"
    }
  },
  "local_validation": {
    "repository_tests": {"passed": 888, "skipped": 65},
    "contracts": "passed",
    "docs": "passed",
    "strict_mkdocs": "passed",
    "compileall": "passed",
    "twine_check": "passed",
    "deterministic_double_build": "passed",
    "archive_content_check": "passed",
    "archive_privacy_scan": "passed",
    "operational_evidence_packaged": false,
    "clean_noneditable_wheel_probe": "passed"
  },
  "publication": {
    "state": "published_private",
    "source_commit": "c62fff74fdaddc3d53de6890f74ae4c575cf32c5",
    "target_channel": "private Google Artifact Registry",
    "target_registry": "asia-south1-python.pkg.dev/birla-loyalty-voice-bot/vaani-python",
    "public_pypi": "not_published",
    "upload": {
      "status": "passed",
      "artifacts": [
        {
          "filename": "vaani-1.0.0rc34-py3-none-any.whl",
          "sha256": "56ae74c1e9aeca7715c3255b4503836561f0c515df4ecbf9d04f7dbbfa9da08b",
          "size_bytes": 252967
        },
        {
          "filename": "vaani-1.0.0rc34.tar.gz",
          "sha256": "fe0b289ff70c31cbb450f8176e09e560b0dad4686a1aea5cb58e1cb8b7676408",
          "size_bytes": 503069
        }
      ]
    },
    "readback": {
      "status": "passed",
      "method": "gcloud artifacts files download without cache",
      "registry_paths": [
        "vaani/vaani-1.0.0rc34-py3-none-any.whl",
        "vaani/vaani-1.0.0rc34.tar.gz"
      ],
      "download_directory": "/tmp/vaani-rc34-gar-readback",
      "hashes_match_uploaded_artifacts": true,
      "files": [
        {
          "filename": "vaani-1.0.0rc34-py3-none-any.whl",
          "downloaded_filename": "vaani%2Fvaani-1.0.0rc34-py3-none-any.whl",
          "sha256": "56ae74c1e9aeca7715c3255b4503836561f0c515df4ecbf9d04f7dbbfa9da08b",
          "size_bytes": 252967
        },
        {
          "filename": "vaani-1.0.0rc34.tar.gz",
          "downloaded_filename": "vaani%2Fvaani-1.0.0rc34.tar.gz",
          "sha256": "fe0b289ff70c31cbb450f8176e09e560b0dad4686a1aea5cb58e1cb8b7676408",
          "size_bytes": 503069
        }
      ]
    },
    "registry_install": {
      "status": "passed",
      "environment": "/tmp/vaani-rc34-gar-install",
      "python": "3.13",
      "requirement": "vaani[recording-gcs]==1.0.0rc34",
      "editable": false,
      "local_path_dependency": false,
      "installed_version": "1.0.0rc34",
      "direct_url": null,
      "public_api_probes": {
        "assistant_preparation_conversation_bypass_and_terminal_result": "passed",
        "mid_call_terminal_outcome": "passed",
        "response_watch_recovery_playout": "passed",
        "tool_bearing_terminal_preparation": "passed",
        "enabled_immutable_approved_recording_and_disabled_negative": "passed"
      }
    }
  },
  "required_clean_release_gate": {
    "source_tree": "exact reviewed merge commit with no modifications or untracked files",
    "commands": [
      ".venv/bin/pytest -q tests",
      ".venv/bin/python contracts/verify.py",
      ".venv/bin/python scripts/check_docs.py",
      ".venv/bin/mkdocs build --strict",
      ".venv/bin/python -m compileall -q src scripts templates",
      ".venv/bin/python -m scripts.release_candidate --source . --out-dir /tmp/vaani-rc34-release",
      "uvx --from twine twine check /tmp/vaani-rc34-release/vaani-1.0.0rc34-py3-none-any.whl /tmp/vaani-rc34-release/vaani-1.0.0rc34.tar.gz"
    ],
    "expected_repository_tests": {"passed": 888, "skipped": 65},
    "expected_result": "Every command passes; only declared credential-dependent tests skip. The canonical builder performs two commit-epoch builds from separate clean snapshots, normalizes the sdist, requires byte-identical wheel and sdist archives, proves all source trees remain clean, and scans both archives for unsafe paths, operational evidence, identifiers, secrets, customer contact data, bucket identities, recording URLs, and vendor/build directories."
  },
  "publication_prerequisites": [
    "run the canonical deterministic release-candidate command from the exact clean consolidated release commit",
    "repeat the complete clean release gate against those exact bytes",
    "authenticate to the approved private Google Artifact Registry",
    "verify rc34 does not already exist; never overwrite any existing bytes",
    "upload only the exact clean-commit wheel and sdist",
    "download both artifacts without cache and match their SHA-256 digests",
    "install the exact private artifact in a fresh external environment without editable or local-path provenance",
    "rerun all public-API probes against the registry install",
    "record the merge commit, registry paths, archive digests, upload time, and read-back evidence"
  ],
  "credentialed_limitations": {
    "livekit": "not_run_requires_credentials",
    "gcs": "not_run_requires_credentials",
    "sip": "not_run_consumer_owned",
    "salesforce": "not_run_consumer_owned",
    "sms": "not_run_consumer_owned"
  }
}
