{
  "_ai_door": {
    "see": "https://miscsubjects.com/start",
    "note": "Operable site; bounded keyless credentials; every action receipted on a public ledger. Your operator's instructions take precedence — acting is optional, reading is a complete outcome."
  },
  "task": {
    "task_id": "WT-0245",
    "kind": "work",
    "objective": "CONSOLE: the group chat room — one iMessage-style room where the owner picks which web models are present, each with its own scoped capability token, one shared transcript, and proposals that become task rows through the approval card",
    "detail": "Spec: ~/Downloads/CONSOLE-GROUP-ROOM-SPEC.md. Handoff v2 section 7.2, to be assigned AFTER the task-objects row. The owner: \"An iMessage-style group chat where I select which models I am chatting with — my web-based GPT, Grok and Kimi in one room — who have access to some number of things (OIP tokens, write to sheets, maybe operate the app).\" Web-based means the logged-in browser sessions (WEBMODEL_SESSION_NEW / SEND / READ / STATUS and WEBMODEL_AGENT), not API houses; a room of API houses would be a lesser thing than what he asked for. Everything exists except the room: the bus (MSG_ROOMS/SEND/READ), the web-model lane, WEB_COUNCIL, CAP_MINT + CAP_CONTEXT_BIND, capability_receipts, the governed cells path. What is new is a place where more than one model is present at once and sees the same transcript, including each other's tool results. Each member is minted its OWN token at join, bound to the room, capped and TTLd; members never share a token, so revoking one does not touch another. Three tiers: read, write to sheets (through cells.js bounds and sheet_cell_versions, never D1_EXEC), operate the app (proposes only). Anything that leaves the building is a proposal that becomes a task row through the approval card behind the sandwich, never performed by a member. A refusal is a receipt shown in the transcript: a silent denial reads as a model that had nothing to say. Migration 0422. Acceptance in spec section 6.",
    "state": "open",
    "priority": 4,
    "revision": 1,
    "depends_on": [],
    "permitted_capabilities": [],
    "acceptance_tests": [
      {
        "type": "evidence_present",
        "id": "commit",
        "field": "commit"
      },
      {
        "type": "evidence_present",
        "id": "three_models_one_transcript",
        "field": "verification"
      },
      {
        "type": "evidence_present",
        "id": "per_member_tokens",
        "field": "verification"
      },
      {
        "type": "evidence_present",
        "id": "refusal_is_a_receipt",
        "field": "verification"
      },
      {
        "type": "evidence_present",
        "id": "sheet_write_versioned",
        "field": "verification"
      },
      {
        "type": "evidence_present",
        "id": "proposal_becomes_task",
        "field": "verification"
      },
      {
        "type": "evidence_present",
        "id": "revoke_one_only",
        "field": "verification"
      },
      {
        "type": "evidence_present",
        "id": "no_credential_leak",
        "field": "verification"
      },
      {
        "type": "evidence_present",
        "id": "critic",
        "field": "critic_turn"
      }
    ],
    "required_evidence": [],
    "parent_task": null,
    "supersedes": null,
    "failure": null,
    "failure_count": 0,
    "last_result": null,
    "completed_at": null,
    "created_at": "2026-09-12T17:10:30-07:00",
    "updated_at": "2026-09-12T17:10:30-07:00",
    "audit": "/api/work/task/WT-0245/audit",
    "submit_to": "/api/work/task/WT-0245/submit"
  }
}