{
  "schema_version": 1,
  "product": "ottto-local-platform",
  "version": "0.1.173",
  "channel": "stable",
  "commit": "896b98f6b734",
  "generated_at": "2026-10-15T20:05:50Z",
  "release_notes": "Codex sign-in now runs through the Ottto service: the app shows the sign-in step, minutes left, Open again and Copy link for the sign-in page, and a Cancel button, with a plain message and one next step for every outcome. Codex sessions stay fresh while a rescan is pending, and Claude usage reports keep their detailed request breakdown when they include telemetry-only side calls. Plus maintenance and reliability fixes.",
  "min_supported_version": "0.1.0",
  "min_protocol_version": 15,
  "supported_install_owners": [
    "app_bundle",
    "homebrew"
  ],
  "install_methods": {
    "verified_native_installer": {
      "kind": "verified_native_installer",
      "path": "install-macos.sh",
      "url": "https://install.ottto.net/ottto-local-platform/releases/stable/0.1.173/install-macos.sh",
      "latest_url": "https://install.ottto.net/ottto-local-platform/releases/stable/latest/install-macos.sh",
      "runtime_install_owner": "app_bundle"
    }
  },
  "rollback": {
    "strategy": "channel_latest_pointer",
    "immutable_prefix": "https://install.ottto.net/ottto-local-platform/releases/stable/0.1.173",
    "latest_manifest_url": "https://install.ottto.net/ottto-local-platform/releases/stable/latest/release-manifest.json",
    "preserve_failed_version": true,
    "operator_steps": [
      "Repoint the channel latest manifest to the last known good immutable versioned prefix.",
      "Invalidate the release CDN paths for the channel latest pointer.",
      "Run download, checksum, Gatekeeper, and installed smoke verification before announcing recovery."
    ],
    "verification": {
      "release_gate": "scripts/macos_release_gate.sh --manifest release-manifest.json",
      "stable_preflight": "scripts/macos_stable_preflight.sh --manifest release-manifest.json",
      "installed_smoke": "scripts/dev_e2e_smoke.sh or stable clean-machine smoke"
    }
  },
  "supply_chain": {
    "materials": [
      {
        "kind": "git_repository",
        "repository": "ottto-ai/ottto",
        "commit": "896b98f6b7347251b35c2d13cd462b132cd99d84"
      },
      {
        "kind": "git_subtree",
        "repository": "ottto-ai/coding-agents-observability",
        "commit": "12ea93c611c3ebdec6bbb8d93dc2b254d067ac3a",
        "path": "tools/ottto-macos-app",
        "tree": "67e36dbd0f68585d32f0283190d7adb0e57d33c5",
        "clean": true
      }
    ],
    "slsa_build": {
      "spec_version": "1.2",
      "level": "build_l2",
      "predicate_type": "https://slsa.dev/provenance/v1",
      "repository": "ottto-ai/ottto",
      "signer_workflow": ".github/workflows/macos-stable-release.yml",
      "subjects": [
        "Ottto-macos-arm64.dmg",
        "install-macos.sh",
        "ottto-local-platform-sbom.cdx.json",
        "ottto-macos-arm64.zip",
        "ottto-service-macos-arm64.zip",
        "release-manifest.json"
      ],
      "attested": true,
      "verified": true,
      "verification_command": "gh attestation verify /Users/ronshub/actions-runner-ottto-release-38798474441/_work/ottto/ottto/dist/macos/Ottto-macos-arm64.dmg --repo ottto-ai/ottto --predicate-type https://slsa.dev/provenance/v1 --signer-workflow ottto-ai/ottto/.github/workflows/macos-stable-release.yml --source-ref refs/heads/main --source-digest 896b98f6b7347251b35c2d13cd462b132cd99d84 --format json",
      "source_ref": "refs/heads/main",
      "source_digest": "896b98f6b7347251b35c2d13cd462b132cd99d84"
    },
    "sbom": {
      "format": "cyclonedx-json",
      "spec_version": "1.7",
      "predicate_type": "https://cyclonedx.org/bom",
      "path": "/Users/ronshub/actions-runner-ottto-release-38798474441/_work/ottto/ottto/dist/macos/ottto-local-platform-sbom.cdx.json",
      "url": "https://install.ottto.net/ottto-local-platform/releases/stable/0.1.173/ottto-local-platform-sbom.cdx.json",
      "sha256": "dbe0163c08bb3499b47ae108ef5867dd3badfbac7782b938e3bd82ab813c1fac",
      "attested": true,
      "verified": true,
      "verification_command": "gh attestation verify /Users/ronshub/actions-runner-ottto-release-38798474441/_work/ottto/ottto/dist/macos/Ottto-macos-arm64.dmg --repo ottto-ai/ottto --predicate-type https://cyclonedx.org/bom --signer-workflow ottto-ai/ottto/.github/workflows/macos-stable-release.yml --source-ref refs/heads/main --source-digest 896b98f6b7347251b35c2d13cd462b132cd99d84 --format json"
    }
  },
  "quality_gates": {
    "packaged_app_launch": {
      "status": "passed",
      "checked_at": "2026-10-15T20:05:31Z",
      "wait_seconds": 10,
      "bundle_id": "net.ottto.Companion",
      "bundle_version": "0.1.173",
      "bundle_short_version": "0.1.173",
      "executable_name": "Ottto",
      "process_survived_wait": true,
      "crash_reports": [],
      "evidence_path": "/Users/ronshub/actions-runner-ottto-release-38798474441/_work/ottto/ottto/dist/macos/packaged-app-launch-smoke.json"
    },
    "stable_candidate_rc": {
      "status": "passed",
      "checked_at": "2026-10-15T20:08:43Z",
      "evidence_path": "stable-candidate-rc-qa.json",
      "candidate_manifest_sha256": "b9694eaa50d7cbca550d4ae25bef4c8ce3eb0ad0ca4213ee5dc656c9be325abe"
    },
    "stable_clean_machine_qa": {
      "status": "not_run",
      "evidence_path": "stable-clean-machine-qa.json",
      "required_install_owners": [
        "app_bundle",
        "homebrew"
      ]
    }
  },
  "artifacts": [
    {
      "name": "Ottto.app",
      "kind": "macos_app",
      "platform": "macos",
      "arch": "arm64",
      "path": "/Users/ronshub/actions-runner-ottto-release-38798474441/_work/ottto/ottto/dist/macos/Ottto-macos-arm64.dmg",
      "url": "https://install.ottto.net/ottto-local-platform/releases/stable/0.1.173/Ottto-macos-arm64.dmg",
      "verification_path": "/Users/ronshub/actions-runner-ottto-release-38798474441/_work/ottto/ottto/dist/macos/Ottto.app",
      "sha256": "990770f2a4c4f462011b1d8ab2033a839beb723a2b2b2e00b4617c0d060acc8f",
      "signed": true,
      "notarized": true,
      "gatekeeper_assessed": true
    },
    {
      "name": "ottto",
      "kind": "cli",
      "platform": "macos",
      "arch": "arm64",
      "path": "/Users/ronshub/actions-runner-ottto-release-38798474441/_work/ottto/ottto/dist/macos/ottto-macos-arm64.zip",
      "url": "https://install.ottto.net/ottto-local-platform/releases/stable/0.1.173/ottto-macos-arm64.zip",
      "verification_path": "/Users/ronshub/actions-runner-ottto-release-38798474441/_work/ottto/ottto/dist/macos/ottto",
      "sha256": "ac6927daeb923e45f1f0f9399fc19cab6a10215ce7d17d16af80b970688f4a3b",
      "signed": true,
      "notarized": true,
      "gatekeeper_assessed": true
    },
    {
      "name": "ottto-service",
      "kind": "daemon",
      "platform": "macos",
      "arch": "arm64",
      "path": "/Users/ronshub/actions-runner-ottto-release-38798474441/_work/ottto/ottto/dist/macos/ottto-service-macos-arm64.zip",
      "url": "https://install.ottto.net/ottto-local-platform/releases/stable/0.1.173/ottto-service-macos-arm64.zip",
      "verification_path": "/Users/ronshub/actions-runner-ottto-release-38798474441/_work/ottto/ottto/dist/macos/ottto-service",
      "sha256": "ee5cbdd9024c690cb0b8695e61194c7262183a0887a662eb1551fe0d4a4bd3ac",
      "signed": true,
      "notarized": true,
      "gatekeeper_assessed": true
    }
  ]
}
