{
  "_": "Машиночитаемый якорь того, что собрано и где канон. Оперативный порядок: паспорт → OPS-STATUS-LIVE в ноутбуке владельца → L113X-RELEASE-RECEIPT в waves/queue → доска.",
  "updatedAt": "2026-09-22T21:35:00Z",
  "serving": {
    "equalsProd": true,
    "line": "l115q",
    "sha": "cc278e18",
    "short": "cc278e18",
    "url": "https://app.sixbyy.com",
    "flippedAt": null,
    "backends": [
      "nc-a1:3010",
      "nc-a1-b:3012"
    ],
    "controller": "upstream-controller --await",
    "dryRun": "A1 :3011 paid enforce_ready"
  },
  "rollback": {
    "line": null,
    "sha": null,
    "short": null
  },
  "candidate": {
    "line": "l115r",
    "sha": "1a5822a8",
    "sourceTree": "wt-l115s",
    "sourceHead": "25b6d5be",
    "note": "sourceHead carries the Stripe patch on top of the l115r candidate"
  },
  "release": {
    "artifact": "arm64-l115q-20260915T230431Z",
    "artifactSha256Abbreviated": null,
    "run": null,
    "releaseId": "arm64-l115q-20260915T230431Z",
    "artifactMigrationDirectories": 206,
    "receipt": "not supplied"
  },
  "canon": {
    "A1": {
      "role": "ПРОД на OCI ARM: app.sixbyy.com, nginx, nc-a1:3010 + nc-a1-b:3012, active PostgreSQL. Посадка/flip/migrate/host-sync только координатором.",
      "state": "serving l115q cc278e18"
    },
    "A2": {
      "role": "Сборка линий l113Xchain.sh: artifact tar + att-build с ephemeral key; пассивный app runtime.",
      "state": "candidate l115r 1a5822a8; capacity stand 4400-r2 at four lanes; instrument r27-v10"
    },
    "M4": {
      "path": "/Users/milamarty/nc",
      "role": "Координация: detached worktrees и waves/queue. Линии получает только через bundle/branch update координатора. Worktree wt-wash-l115g = прод-исходник для триажа.",
      "rule": "Основной репозиторий не checkout; воркер работает в отдельном worktree от точного SHA. DeepSeek вручную: ~/bin/claude-deepseek.sh (tmux -L ds)."
    },
    "ownerLaptop": {
      "role": "OPS-STATUS-LIVE в ноутбуке владельца и подпись activation ключом владельца.",
      "communication": "Telegram: короткие тезисы по-русски, время UTC."
    },
    "Pi": {
      "role": "Standby PostgreSQL 16 на :55433 и standby line.",
      "state": "line=l115q; base=22.09; status=OK"
    },
    "hetzbk": {
      "path": "/home/app-artifact/l115q",
      "role": "Публикация release artifact и env-pack после flip; hourly hetzbk-publish-current.timer (:23).",
      "state": "l115q release, daily base, continuous WAL, env-pack and manifests live (22.09 supplied fact)"
    },
    "github": {
      "role": "Line/source mirror",
      "state": "98 branches from A2; line/current-prod=cc278e18; nightly mirror 03:40 from M1"
    }
  },
  "domains": {
    "root": "https://sixbyy.com",
    "app": "https://app.sixbyy.com",
    "dev": "https://dev.sixbyy.com",
    "sip": "https://sip.sixbyy.com",
    "board": "https://bugs.wool2.online/",
    "passport": "https://bugs.wool2.online/passport"
  },
  "deploy": {
    "build": "A2 l113Xchain.sh → tar + att-build(ephemeral key)",
    "activation": "owner-key signature on owner laptop",
    "land": "A1 land-l113X.sh: unpack→env→dryrun(:3011 paid enforce_ready)→migrate→flip(controller --await)→verify",
    "afterFlip": "hetzbk artifact+env-pack → Pi standby line → L113X-RELEASE-RECEIPT.md → role battery/post-QA",
    "ancestryRule": "Посадка только принятых предков живой линии с полным trail и распиской."
  },
  "security": {
    "lead": "gpt-6-astra on M1",
    "audit": "OPEN: 22 blocks, 214 briefs, current registry 46 SEC tickets; 44 in l113p code",
    "telegramWebhook": "/api/messenger/v1/telegram/webhook",
    "voiceSip": "restricted; host-sync coordinator-only",
    "fcDr": "parked",
    "environment": ".env forbidden to agents"
  },
  "database": {
    "observedAt": "2026-09-22 21:35Z",
    "postgres": "PostgreSQL 16.15 (Ubuntu 16.15-0ubuntu0.24.04.1)",
    "extensions": "vector 0.6.0, pg_trgm 1.6",
    "prismaMigrationRows": 211,
    "artifactMigrationDirectories": 206,
    "sizeMb": 2999,
    "tables": 220,
    "indexes": 924,
    "liveRows": 373807,
    "differenceNote": "Aggregate input lacks migration names/statuses and roles; cause of +5 DB records is INPUT_GAP."
  }
}
