{
  "schemaVersion": 1,
  "generatedFrom": "src/data/catalogue.js",
  "wiki": {
    "title": "Co.Property internal wiki",
    "version": "2026.10.20.2",
    "date": "20 October 2026"
  },
  "page": {
    "stableId": "data-replicas#page",
    "pageId": "data-replicas",
    "pageTitle": "Provider → data → replica: one writer, protected projections",
    "pageSlug": "systems/data-replicas",
    "sectionId": "page",
    "sectionTitle": "Provider → data → replica: one writer, protected projections",
    "sectionProse": [
      "Providers remain authoritative for their own transactions. The main mini writes internal company state; Cloudflare protected replicas and the Vercel staff PWA consume projections rather than replacing the master record.",
      "Make the provider-to-data-to-replica architecture legible, especially the difference between source freshness, publication success, and a recent dashboard repaint.",
      "Hospitable, Turno, and PriceLabs provide their own authoritative observations. The main mini writes internal company state and publishes protected Cloudflare replicas. The Vercel staff PWA and passive TV consume projections. Hermes is a separate adapter boundary.",
      "Provider observations and company state travel through different responsibilities",
      "Company documents provide business context. Hospitable, Turno, and PriceLabs provide supported observations, while each provider remains authoritative for its own transactions. The main mini writes the internal tasks, decisions, identity links, and audit state that connect those observations to company work.",
      "Cloudflare Worker, D1, and KV distribute protected replicated data and selected summaries. The Vercel staff PWA and passive TV consume these projections. Replicas and caches can be useful, but they are not the master record.",
      "Freshness requires a complete read and successful publication",
      "Freshness means the relevant source window was read completely and then published successfully. It is not established by a recent screen repaint, a reopened browser tab, or a timestamp without source coverage context.",
      "The data-health screenshot is a dated example that shows why labels such as live, unverified, stale, or reconciled need interpretation. It does not prove current provider freshness on its own.",
      "Protected replicas improve access without changing authority",
      "Protected replicas let staff use a dashboard without each person operating the mini. This is a distribution benefit, not a reason to move company writes into a cache, replica, or client surface.",
      "When a projection disagrees with a source, investigate the source read, identity mapping, publication result, and exception owner. Do not quietly patch the replica and lose the underlying cause."
    ],
    "version": "2026.10.20.2",
    "date": "20 October 2026",
    "status": "Checked",
    "currentStatus": "Checked — ownership boundaries are documented; provider freshness needs current evidence and must not be inferred from a display.",
    "proposedStatus": "Exercise source windows and publication outcomes with explicit fresh, stale, failed, and duplicate cases.",
    "expectedOutcome": "A reader can identify the source, writer, replica, consumer, and freshness condition behind an operational view.",
    "tests": [
      "Check the main mini is the only component described as owning writes to internal company state.",
      "Check all source freshness claims require complete source read plus successful publication."
    ],
    "sourcePointers": [
      "docs/CONNECTOR-CONTRACTS.md",
      "coprop_kb/cloud_projection.py",
      "coprop_kb/cloud_export.py",
      "coprop_kb/record_cloud_export.py",
      "dashboard/src/pages/health.tsx",
      "tests/test_cloud_export.py",
      "tests/test_record_cloud_export.py",
      "tests/test_connectors.py",
      "Handoff / pages/infrastructure.html",
      "Handoff / pages/app-tour.html",
      "Handoff / START-HERE.html"
    ],
    "related": [
      {
        "id": "mac-mini",
        "title": "The Mac mini: authoritative writer and local operating core",
        "summary": "The office Mac mini holds internal company state and runs configured operating processes. It is the authoritative writer for internal tasks, decisions, identity links, and audit state.",
        "status": "Checked",
        "path": "/systems/mac-mini/"
      },
      {
        "id": "dashboard-tv",
        "title": "Dashboard and passive TV: shared views, not source authority",
        "summary": "The staff dashboard and passive TV surfaces make a shared operating picture visible. They consume projections; they do not become the authoritative writer for company state.",
        "status": "Checked",
        "path": "/systems/dashboard-and-tv/"
      },
      {
        "id": "hermes",
        "title": "Hermes: an adapter boundary, not a company identity",
        "summary": "Hermes is an adapter in the operating architecture. It does not replace the company Official Account, employee operations bot, provider authority, or a reviewed record boundary.",
        "status": "In progress",
        "path": "/systems/hermes/"
      }
    ],
    "sshTarget": {
      "alias": "coproperty-office",
      "hostname": "copropertys-mac-mini.tail3ab9e5.ts.net",
      "user": "coproperty",
      "projectPath": "/Users/coproperty/Projects/coproperty-office-os",
      "codexPath": "/Users/coproperty/.local/bin/codex",
      "hostFingerprint": "SHA256:UUFmlsdclEmRtyRWNqAdVYUoFxeUkRUGhbzObQPsOPg",
      "requiredChecks": [
        "Verify the hostname, project path, and repository status before any work.",
        "Create an isolated task worktree outside the installed project.",
        "Never modify the installed runtime from this contribution path."
      ]
    }
  },
  "sections": {
    "information-path": {
      "stableId": "data-replicas#information-path",
      "pageId": "data-replicas",
      "pageTitle": "Provider → data → replica: one writer, protected projections",
      "pageSlug": "systems/data-replicas",
      "sectionId": "information-path",
      "sectionTitle": "Provider observations and company state travel through different responsibilities",
      "sectionProse": [
        "Company documents provide business context. Hospitable, Turno, and PriceLabs provide supported observations, while each provider remains authoritative for its own transactions. The main mini writes the internal tasks, decisions, identity links, and audit state that connect those observations to company work.",
        "Cloudflare Worker, D1, and KV distribute protected replicated data and selected summaries. The Vercel staff PWA and passive TV consume these projections. Replicas and caches can be useful, but they are not the master record."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "Checked",
      "currentStatus": "Checked — this is the stated architecture boundary, not a claim about every individual field or live deployment.",
      "proposedStatus": "Document source ownership and publication behavior when adding a provider, field, or projection.",
      "expectedOutcome": "A change proposal can preserve source authority and avoid a competing writer.",
      "tests": [
        "Check every diagram node has a text-equivalent and focused-page link.",
        "Check architecture exports mention the mini, Cloudflare, and Vercel roles without credentials."
      ],
      "sourcePointers": [
        "docs/CONNECTOR-CONTRACTS.md",
        "coprop_kb/cloud_projection.py",
        "coprop_kb/cloud_export.py",
        "coprop_kb/record_cloud_export.py",
        "dashboard/src/pages/health.tsx",
        "tests/test_cloud_export.py",
        "tests/test_record_cloud_export.py",
        "tests/test_connectors.py",
        "Handoff / pages/infrastructure.html",
        "Handoff / pages/app-tour.html",
        "Handoff / START-HERE.html"
      ],
      "related": [
        {
          "id": "mac-mini",
          "title": "The Mac mini: authoritative writer and local operating core",
          "summary": "The office Mac mini holds internal company state and runs configured operating processes. It is the authoritative writer for internal tasks, decisions, identity links, and audit state.",
          "status": "Checked",
          "path": "/systems/mac-mini/"
        },
        {
          "id": "dashboard-tv",
          "title": "Dashboard and passive TV: shared views, not source authority",
          "summary": "The staff dashboard and passive TV surfaces make a shared operating picture visible. They consume projections; they do not become the authoritative writer for company state.",
          "status": "Checked",
          "path": "/systems/dashboard-and-tv/"
        },
        {
          "id": "hermes",
          "title": "Hermes: an adapter boundary, not a company identity",
          "summary": "Hermes is an adapter in the operating architecture. It does not replace the company Official Account, employee operations bot, provider authority, or a reviewed record boundary.",
          "status": "In progress",
          "path": "/systems/hermes/"
        }
      ],
      "sshTarget": {
        "alias": "coproperty-office",
        "hostname": "copropertys-mac-mini.tail3ab9e5.ts.net",
        "user": "coproperty",
        "projectPath": "/Users/coproperty/Projects/coproperty-office-os",
        "codexPath": "/Users/coproperty/.local/bin/codex",
        "hostFingerprint": "SHA256:UUFmlsdclEmRtyRWNqAdVYUoFxeUkRUGhbzObQPsOPg",
        "requiredChecks": [
          "Verify the hostname, project path, and repository status before any work.",
          "Create an isolated task worktree outside the installed project.",
          "Never modify the installed runtime from this contribution path."
        ]
      }
    },
    "freshness": {
      "stableId": "data-replicas#freshness",
      "pageId": "data-replicas",
      "pageTitle": "Provider → data → replica: one writer, protected projections",
      "pageSlug": "systems/data-replicas",
      "sectionId": "freshness",
      "sectionTitle": "Freshness requires a complete read and successful publication",
      "sectionProse": [
        "Freshness means the relevant source window was read completely and then published successfully. It is not established by a recent screen repaint, a reopened browser tab, or a timestamp without source coverage context.",
        "The data-health screenshot is a dated example that shows why labels such as live, unverified, stale, or reconciled need interpretation. It does not prove current provider freshness on its own."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "In progress",
      "currentStatus": "In progress — provider freshness must be verified against current source windows and publication evidence.",
      "proposedStatus": "Use explicit freshness fixtures and show the source-read and publication outcome in the relevant staff view.",
      "expectedOutcome": "A user can ask whether data is current enough for the decision at hand instead of assuming it is.",
      "tests": [
        "Run complete, stale, incomplete, and failed-publication fixtures.",
        "Assert a screen repaint alone never changes a stale state to fresh."
      ],
      "sourcePointers": [
        "docs/CONNECTOR-CONTRACTS.md",
        "coprop_kb/connectors.py",
        "coprop_kb/cloud_projection.py",
        "dashboard/src/pages/health.tsx",
        "tests/test_connectors.py",
        "tests/test_cloud_export.py",
        "Handoff / pages/infrastructure.html",
        "Handoff / pages/app-tour.html",
        "Handoff / START-HERE.html"
      ],
      "related": [
        {
          "id": "mac-mini",
          "title": "The Mac mini: authoritative writer and local operating core",
          "summary": "The office Mac mini holds internal company state and runs configured operating processes. It is the authoritative writer for internal tasks, decisions, identity links, and audit state.",
          "status": "Checked",
          "path": "/systems/mac-mini/"
        },
        {
          "id": "dashboard-tv",
          "title": "Dashboard and passive TV: shared views, not source authority",
          "summary": "The staff dashboard and passive TV surfaces make a shared operating picture visible. They consume projections; they do not become the authoritative writer for company state.",
          "status": "Checked",
          "path": "/systems/dashboard-and-tv/"
        },
        {
          "id": "hermes",
          "title": "Hermes: an adapter boundary, not a company identity",
          "summary": "Hermes is an adapter in the operating architecture. It does not replace the company Official Account, employee operations bot, provider authority, or a reviewed record boundary.",
          "status": "In progress",
          "path": "/systems/hermes/"
        }
      ],
      "sshTarget": {
        "alias": "coproperty-office",
        "hostname": "copropertys-mac-mini.tail3ab9e5.ts.net",
        "user": "coproperty",
        "projectPath": "/Users/coproperty/Projects/coproperty-office-os",
        "codexPath": "/Users/coproperty/.local/bin/codex",
        "hostFingerprint": "SHA256:UUFmlsdclEmRtyRWNqAdVYUoFxeUkRUGhbzObQPsOPg",
        "requiredChecks": [
          "Verify the hostname, project path, and repository status before any work.",
          "Create an isolated task worktree outside the installed project.",
          "Never modify the installed runtime from this contribution path."
        ]
      }
    },
    "replica-safeguards": {
      "stableId": "data-replicas#replica-safeguards",
      "pageId": "data-replicas",
      "pageTitle": "Provider → data → replica: one writer, protected projections",
      "pageSlug": "systems/data-replicas",
      "sectionId": "replica-safeguards",
      "sectionTitle": "Protected replicas improve access without changing authority",
      "sectionProse": [
        "Protected replicas let staff use a dashboard without each person operating the mini. This is a distribution benefit, not a reason to move company writes into a cache, replica, or client surface.",
        "When a projection disagrees with a source, investigate the source read, identity mapping, publication result, and exception owner. Do not quietly patch the replica and lose the underlying cause."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "Checked",
      "currentStatus": "Checked — the documented design separates writing from protected projection consumption.",
      "proposedStatus": "Keep access protection, source pointers, and refresh semantics explicit as new views are added.",
      "expectedOutcome": "The architecture stays understandable under failure, not only when a dashboard looks normal.",
      "tests": [
        "Check a replica-disagreement fixture opens an investigation path rather than a direct data edit.",
        "Check no generated prompt asks for a token or a production write."
      ],
      "sourcePointers": [
        "docs/CONNECTOR-CONTRACTS.md",
        "coprop_kb/cloud_projection.py",
        "coprop_kb/cloud_export.py",
        "coprop_kb/record_cloud_export.py",
        "dashboard/src/pages/health.tsx",
        "tests/test_cloud_export.py",
        "tests/test_record_cloud_export.py",
        "tests/test_connectors.py",
        "Handoff / pages/infrastructure.html",
        "Handoff / pages/app-tour.html",
        "Handoff / START-HERE.html"
      ],
      "related": [
        {
          "id": "mac-mini",
          "title": "The Mac mini: authoritative writer and local operating core",
          "summary": "The office Mac mini holds internal company state and runs configured operating processes. It is the authoritative writer for internal tasks, decisions, identity links, and audit state.",
          "status": "Checked",
          "path": "/systems/mac-mini/"
        },
        {
          "id": "dashboard-tv",
          "title": "Dashboard and passive TV: shared views, not source authority",
          "summary": "The staff dashboard and passive TV surfaces make a shared operating picture visible. They consume projections; they do not become the authoritative writer for company state.",
          "status": "Checked",
          "path": "/systems/dashboard-and-tv/"
        },
        {
          "id": "hermes",
          "title": "Hermes: an adapter boundary, not a company identity",
          "summary": "Hermes is an adapter in the operating architecture. It does not replace the company Official Account, employee operations bot, provider authority, or a reviewed record boundary.",
          "status": "In progress",
          "path": "/systems/hermes/"
        }
      ],
      "sshTarget": {
        "alias": "coproperty-office",
        "hostname": "copropertys-mac-mini.tail3ab9e5.ts.net",
        "user": "coproperty",
        "projectPath": "/Users/coproperty/Projects/coproperty-office-os",
        "codexPath": "/Users/coproperty/.local/bin/codex",
        "hostFingerprint": "SHA256:UUFmlsdclEmRtyRWNqAdVYUoFxeUkRUGhbzObQPsOPg",
        "requiredChecks": [
          "Verify the hostname, project path, and repository status before any work.",
          "Create an isolated task worktree outside the installed project.",
          "Never modify the installed runtime from this contribution path."
        ]
      }
    }
  }
}
