{
  "baseline_commit": "c62d5281b53c0be9fb270524773cbecf1220f891",
  "baseline_file_count": 20,
  "baseline_file_sha256": {
    "etc/caddy/Caddyfile": "428532252ec29db89723311beb4d53f0f25082f0acdde3f223cd3aa071767093"
  },
  "baseline_tree": "f5ecf2d787d47fff6dded3f731c5521a7a0f1d33",
  "caddy_intended_change": false,
  "canonical_zip_required": true,
  "classification": "core",
  "current_latest": "WG_PAID_MGTS_LATEST_20260927-054218.zip",
  "current_latest_sha256": "e5973a9005f0b4166ef35f2955637cbb2747e241020ecc111a14217f244ad54b",
  "database_schema_intended_change": false,
  "dist_file_count": 7,
  "dist_package_sha256": "8103e642afe31c4792c30d7ad8685dafec69e47bde3a7fea29da8b759b9ec0c6",
  "exact_worker_fixture": "tests/exact-worker.sh",
  "expected_installer_sha256": "94ecf5c613659e1545f0c56b3d34de49752b398ddf37b619ac513346a75c37d2",
  "expected_target_file_count": 20,
  "expected_target_tree": "c697debf7db0eca9b38b4c020b23a0b89c72c76d",
  "functional_stage": "p29g5_vm103_web_deploy",
  "machine_git_change_required": true,
  "mandatory_fixture_count": 4,
  "node_version": "24.20.0",
  "npm_version": "11.19.0",
  "openapi_canonical_sha256": "e95c8ee255e6d7f65065d8efde9e4c4283e3b5f60e9a90e0ee15756189620347",
  "path_ownership_manifest": "reference/path-ownership.tsv",
  "payment_create_during_step": false,
  "provider_write_during_step": false,
  "public_api_ingress_intended_change": false,
  "revision": "R01",
  "revision_note": "R01 deploys accepted P29G frontend ce8e2a7f after Medium+Low contract fixes: quantity billing, request-aware payment recovery, exact retirement editing and billing-managed Admin limits; preserves accepted P29G4 Caddy ingress and all existing public/private boundaries.",
  "rollback_contract": "restore exact pre-step accepted P30I access-web + admin-web from verified VM103 backup; preserve exact accepted P29G4 Caddy SHA and pending-retirements/bulk/magic public ingress routes; validate Caddy and ingress health",
  "runtime_impact": true,
  "same_class_skeleton": "STEP_050M07P30I_R01_VM103_ADMIN_INVITE_TRIAL_UI",
  "same_class_skeleton_sha256": "80683fb15c8628907928711fe239978374de2ba845b04aa20fc31881bb9f80c6",
  "schema": "router-step-release-v1",
  "source_of_truth": "current_post_P29G4_latest_vm103_machine_git_plus_exact_P30I_R01_static_web_deploy_skeleton_plus_exact_accepted_P29G_web_dist_ce8e2a7f",
  "step_class": "B",
  "step_id": "STEP_050M07P29G5_R01_VM103_WEB_DEPLOY",
  "target_caddy_sha256": "428532252ec29db89723311beb4d53f0f25082f0acdde3f223cd3aa071767093",
  "target_environment_matrix": "reference/target-environment.tsv",
  "target_package_path": "payload/web-dist.tar.gz",
  "target_package_sha256": "8103e642afe31c4792c30d7ad8685dafec69e47bde3a7fea29da8b759b9ec0c6",
  "touched_machines": [
    "VM103"
  ],
  "vm130_contract_commit": "fadde79bcc5756d478b8814f94ad16ad48fd25d2",
  "web_source_commit": "ce8e2a7f8cff11867cc83886f17ade0c660dbff8",
  "web_source_tree": "88074ad35aa149e3b2c1dc26ee19b0f4fbd564db",
  "worker_entry": "scripts/worker.sh",
  "workflow_contract_version": 2,
  "yookassa_provider_mode_intended_change": false
}
