{
  "schemaVersion": 1,
  "generatedFrom": "src/data/catalogue.js",
  "wiki": {
    "title": "Co.Property internal wiki",
    "version": "2026.10.20.2",
    "date": "20 October 2026"
  },
  "page": {
    "stableId": "mac-mini#page",
    "pageId": "mac-mini",
    "pageTitle": "The Mac mini: authoritative writer and local operating core",
    "pageSlug": "systems/mac-mini",
    "sectionId": "page",
    "sectionTitle": "The Mac mini: authoritative writer and local operating core",
    "sectionProse": [
      "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.",
      "Explain why the main mini owns writes, what local responsibility means, and why technical access requires a deliberate route rather than an assumed remote environment.",
      "A technical operator reaches the mini through approved Tailscale and SSH access. The mini owns local company and operational writes, publishes protected projections, and may require physical FileVault unlock after a cold boot.",
      "The main mini owns the internal write boundary",
      "The office Mac mini is the authoritative writer for internal tasks, decisions, identity links, and audit state. Its local stores have distinct company, knowledge, operational, company-record, and portfolio-observation responsibilities. This separation helps explain why a projection should not be mistaken for the original record.",
      "A staff dashboard, Cloudflare replica, or Vercel application can make a useful view available without taking over the write role. If a projected value needs correction, investigate its source and approved writer rather than trying to patch the display.",
      "Cold boot is a recovery condition, not a background detail",
      "FileVault protects the mini at rest. After a cold boot, the machine may require physical unlock before network services can become available. That means a remote access route may be correct in normal operation but still be unavailable during this recovery condition.",
      "The correct current status is pending until an approved, attended recovery exercise demonstrates the intended behavior. Do not claim an automated recovery path or unattended access merely because a normal SSH session has worked before.",
      "Local viewer paths require the secured connection",
      "The mini viewer exposes `/admin`, `/planning`, `/health`, `/reports`, and `/tv` on loopback port 8790. These paths are intended to be reached through an approved SSH tunnel; they are not public links for an unconnected laptop.",
      "A healthy-looking viewer page is still a view. Use the record, source freshness, and relevant operating boundary before turning an observation into a write or acceptance decision."
    ],
    "version": "2026.10.20.2",
    "date": "20 October 2026",
    "status": "Checked",
    "currentStatus": "Checked — the documented ownership boundary is clear; cold-boot recovery needs a real, current test before it is called complete.",
    "proposedStatus": "Verify recovery and maintenance procedures through approved access, with the installed runtime left untouched.",
    "expectedOutcome": "A contributor understands where company state is written and avoids treating replicas or personal machines as an authoritative replacement.",
    "tests": [
      "Check architecture diagrams identify the mini as writer and Cloudflare/Vercel as projection consumers.",
      "Check cold-boot language remains pending and does not claim unattended recovery."
    ],
    "sourcePointers": [
      "docs/MAC-MINI-SETUP.md",
      "docs/RECOVERY.md",
      "ops/macmini/setup.py",
      "coprop_kb/backup.py",
      "coprop_kb/wallboard_viewer.py",
      "tests/test_macmini_setup.py",
      "tests/test_backup.py",
      "Handoff / pages/infrastructure.html",
      "Handoff / pages/access.html",
      "Handoff / START-HERE.html"
    ],
    "related": [
      {
        "id": "data-replicas",
        "title": "Provider → data → replica: one writer, protected projections",
        "summary": "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.",
        "status": "Checked",
        "path": "/systems/data-replicas/"
      },
      {
        "id": "access",
        "title": "Personal access: choose the least-privileged path",
        "summary": "Most staff should use approved dashboard access. Technical operators use their own Tailscale identity and SSH key to reach the office mini only after owner approval.",
        "status": "Checked",
        "path": "/contribution/access/"
      },
      {
        "id": "workspace-pr",
        "title": "Contribution: isolated workspaces, meaningful tests, reviewed release",
        "summary": "A safe change begins by verifying the remote target, then uses an isolated worktree outside the installed project. It is tested, submitted as a pull request, and reviewed before a person releases it.",
        "status": "Checked",
        "path": "/contribution/workspace-and-pr/"
      }
    ],
    "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": {
    "writer-boundary": {
      "stableId": "mac-mini#writer-boundary",
      "pageId": "mac-mini",
      "pageTitle": "The Mac mini: authoritative writer and local operating core",
      "pageSlug": "systems/mac-mini",
      "sectionId": "writer-boundary",
      "sectionTitle": "The main mini owns the internal write boundary",
      "sectionProse": [
        "The office Mac mini is the authoritative writer for internal tasks, decisions, identity links, and audit state. Its local stores have distinct company, knowledge, operational, company-record, and portfolio-observation responsibilities. This separation helps explain why a projection should not be mistaken for the original record.",
        "A staff dashboard, Cloudflare replica, or Vercel application can make a useful view available without taking over the write role. If a projected value needs correction, investigate its source and approved writer rather than trying to patch the display."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "Checked",
      "currentStatus": "Checked — this ownership description is directly supported by the handoff architecture.",
      "proposedStatus": "Maintain an explicit source and writer boundary whenever a new projection or integration is proposed.",
      "expectedOutcome": "Data changes can be traced to the right authoritative environment and reviewed safely.",
      "tests": [
        "Check architecture text says “mini owns writes” and does not assign master-record status to replicas.",
        "Check proposed connector changes identify duplicate, failure, and freshness behavior."
      ],
      "sourcePointers": [
        "docs/MAC-MINI-SETUP.md",
        "docs/RECOVERY.md",
        "ops/macmini/setup.py",
        "coprop_kb/backup.py",
        "coprop_kb/wallboard_viewer.py",
        "tests/test_macmini_setup.py",
        "tests/test_backup.py",
        "Handoff / pages/infrastructure.html",
        "Handoff / pages/access.html",
        "Handoff / START-HERE.html"
      ],
      "related": [
        {
          "id": "data-replicas",
          "title": "Provider → data → replica: one writer, protected projections",
          "summary": "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.",
          "status": "Checked",
          "path": "/systems/data-replicas/"
        },
        {
          "id": "access",
          "title": "Personal access: choose the least-privileged path",
          "summary": "Most staff should use approved dashboard access. Technical operators use their own Tailscale identity and SSH key to reach the office mini only after owner approval.",
          "status": "Checked",
          "path": "/contribution/access/"
        },
        {
          "id": "workspace-pr",
          "title": "Contribution: isolated workspaces, meaningful tests, reviewed release",
          "summary": "A safe change begins by verifying the remote target, then uses an isolated worktree outside the installed project. It is tested, submitted as a pull request, and reviewed before a person releases it.",
          "status": "Checked",
          "path": "/contribution/workspace-and-pr/"
        }
      ],
      "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."
        ]
      }
    },
    "cold-boot": {
      "stableId": "mac-mini#cold-boot",
      "pageId": "mac-mini",
      "pageTitle": "The Mac mini: authoritative writer and local operating core",
      "pageSlug": "systems/mac-mini",
      "sectionId": "cold-boot",
      "sectionTitle": "Cold boot is a recovery condition, not a background detail",
      "sectionProse": [
        "FileVault protects the mini at rest. After a cold boot, the machine may require physical unlock before network services can become available. That means a remote access route may be correct in normal operation but still be unavailable during this recovery condition.",
        "The correct current status is pending until an approved, attended recovery exercise demonstrates the intended behavior. Do not claim an automated recovery path or unattended access merely because a normal SSH session has worked before."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "In progress",
      "currentStatus": "In progress — FileVault cold-boot recovery may need physical unlock and has not been asserted as complete.",
      "proposedStatus": "Run an owner-approved, attended recovery check and record only its outcome and necessary next steps in the authorised operations record.",
      "expectedOutcome": "The team knows when a physical unlock is needed and avoids relying on an untested recovery assumption.",
      "tests": [
        "Check cold-boot content uses pending language in all exports.",
        "Check any recovery procedure avoids publishing credentials, private keys, or runtime logs."
      ],
      "sourcePointers": [
        "docs/RECOVERY.md",
        "docs/MAC-MINI-SETUP.md",
        "ops/macmini/setup.py",
        "tests/test_macmini_setup.py",
        "Handoff / pages/infrastructure.html",
        "Handoff / pages/access.html",
        "Handoff / START-HERE.html"
      ],
      "related": [
        {
          "id": "data-replicas",
          "title": "Provider → data → replica: one writer, protected projections",
          "summary": "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.",
          "status": "Checked",
          "path": "/systems/data-replicas/"
        },
        {
          "id": "access",
          "title": "Personal access: choose the least-privileged path",
          "summary": "Most staff should use approved dashboard access. Technical operators use their own Tailscale identity and SSH key to reach the office mini only after owner approval.",
          "status": "Checked",
          "path": "/contribution/access/"
        },
        {
          "id": "workspace-pr",
          "title": "Contribution: isolated workspaces, meaningful tests, reviewed release",
          "summary": "A safe change begins by verifying the remote target, then uses an isolated worktree outside the installed project. It is tested, submitted as a pull request, and reviewed before a person releases it.",
          "status": "Checked",
          "path": "/contribution/workspace-and-pr/"
        }
      ],
      "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."
        ]
      }
    },
    "viewer": {
      "stableId": "mac-mini#viewer",
      "pageId": "mac-mini",
      "pageTitle": "The Mac mini: authoritative writer and local operating core",
      "pageSlug": "systems/mac-mini",
      "sectionId": "viewer",
      "sectionTitle": "Local viewer paths require the secured connection",
      "sectionProse": [
        "The mini viewer exposes `/admin`, `/planning`, `/health`, `/reports`, and `/tv` on loopback port 8790. These paths are intended to be reached through an approved SSH tunnel; they are not public links for an unconnected laptop.",
        "A healthy-looking viewer page is still a view. Use the record, source freshness, and relevant operating boundary before turning an observation into a write or acceptance decision."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "Checked",
      "currentStatus": "Checked — the loopback viewer target is documented as a secured connection surface, not a public deployment.",
      "proposedStatus": "Keep tunnel instructions scoped to approved operators and do not publish access material in the wiki.",
      "expectedOutcome": "Operators know the difference between a local viewer path and a public staff service.",
      "tests": [
        "Check loopback paths only appear with the SSH-tunnel safety description.",
        "Check no source export includes a token, private key, or shell command that changes runtime state."
      ],
      "sourcePointers": [
        "coprop_kb/wallboard_viewer.py",
        "coprop_kb/display_config.py",
        "tests/test_wallboard_viewer.py",
        "tests/test_display_config.py",
        "Handoff / pages/infrastructure.html",
        "Handoff / pages/access.html",
        "Handoff / START-HERE.html"
      ],
      "related": [
        {
          "id": "data-replicas",
          "title": "Provider → data → replica: one writer, protected projections",
          "summary": "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.",
          "status": "Checked",
          "path": "/systems/data-replicas/"
        },
        {
          "id": "access",
          "title": "Personal access: choose the least-privileged path",
          "summary": "Most staff should use approved dashboard access. Technical operators use their own Tailscale identity and SSH key to reach the office mini only after owner approval.",
          "status": "Checked",
          "path": "/contribution/access/"
        },
        {
          "id": "workspace-pr",
          "title": "Contribution: isolated workspaces, meaningful tests, reviewed release",
          "summary": "A safe change begins by verifying the remote target, then uses an isolated worktree outside the installed project. It is tested, submitted as a pull request, and reviewed before a person releases it.",
          "status": "Checked",
          "path": "/contribution/workspace-and-pr/"
        }
      ],
      "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."
        ]
      }
    }
  }
}
