← Receivers

tasks:everywhere

tasks family

mcp

Every workspace I belong to, one queue: open+picked tasks visible by assignment/follow/ownership, with claimable + mine + offeredByMe flags; closed:true returns the logbook (done/verified, newest first)

Effect
ask
Awaits an outcome — the call returns the response below.
Caller
member
The class of authority the caller must already hold, decided from the attested context with no round trip.
Reversible
yes
The effect can be undone by a later call.
Idempotent
yes
Safe to retry as-is.

Send it with your agent

One click hands your coding agent a prompt that registers the substrate, reads this contract, and makes the call. Launch opens the app; the others copy the prompt.

Claude Code
Codex
Cursor
Gemini CLI
Claude Desktop
ChatGPT
curl -X POST https://one.ie/api/ask/tasks:everywhere \
  -H "Authorization: Bearer $ONE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"data": { "limit": <number>, "closed": <boolean>, "workspace": <string>, "slug": <string> }}'

The key is never in a link. npx -y @oneie/cli login writes it to ~/.config/oneie/key on your machine.

Request

Validated before dispatch — an invalid payload is refused with the fix, never half-applied.

  • limit number optional
  • closed boolean optional
  • workspace string optional
  • slug string optional

Response

What comes back from the call.

  • ok boolean
  • tasks object[]
  • total number Rows matching BEFORE `limit`. A FLOOR, not a count, whenever `truncatedTypes` is present
  • truncated boolean true = the answer is short: more rows than returned (raise limit, or use tasks:board) OR graph.json marks a type this read touched as cut (`truncatedTypes`)
  • truncatedTypes string[] Graph types the RAM snapshot marks cut that this read touched (contract #13: the snapshot's `truncated` ∩ the funs' types). Absent = nothing was cut
  • asOf string When the task scan this answer reads was taken from TypeDB (ISO) — shared by every caller for up to 60 s (KV), so up to a minute behind a write. Never read-modify-write a row through this receiver: read it with tasks:board {tid, fresh:true}. `claimable` is a prediction as of this instant; tasks:claim decides
  • prose "unavailable" notes/contextDocs could not be hydrated for this page (they are not in the RAM graph — one keyed read fetches them). Present = every `notes`/`contextDocs` here is MISSING, not empty
  • reason no_subscriptions | no_workspace_membership Why an ok:true queue may be empty: `no_subscriptions` (tasks:mine — subscribe, or read the board directly) · `no_workspace_membership` (tasks:everywhere — the caller belongs to no workspace)
  • error string On ok:false: `upstream_unavailable` (no graph — `detail` says why) · `edge_fun_missing` (funs.json lacks a queue fun — `missing` names each) · `edge_ir_mismatch` · `budget` · `edge_solve_failed`. Never an empty queue in place of a reason
  • detail string
  • missing object[] edge_fun_missing: each fun the edge cannot solve and codegen's reason (e.g. not on prod)
  • edgesTruncated true The `blocks` edge sweep was cut or failed: every `claimable:true` in this body is a best effort, not a promise

Traffic

Every call to tasks:everywhere, counted where it is dispatched — over HTTP or in-process alike. Aggregate only — no actor, no payload, no workspace.

Counting…

Wiring

Every place in the open source that names tasks:everywhere, and the file that answers it. Read from the tree at build time — a receiver is reached by NAME through one door, so there is no import edge to follow and a grep is the honest shape of the question. Structure, not volume — the count is in Traffic above.

Called from

UI 5
  • one.ie/web/src/components/chat/panels/FactoryPanel.tsx:5
  • one.ie/web/src/components/chat/panels/MyTasksPanel.tsx:4
  • one.ie/web/src/components/chat/panels/tabs.ts:38
  • one.ie/web/src/components/in/TasksGoals.tsx:278
  • one.ie/web/src/components/in/TasksPane.tsx:753
API route 6
  • one.ie/web/src/lib/chat/meta/proof.ts:157
  • one.ie/web/src/lib/receiver-index.generated.ts:391
  • one.ie/web/src/lib/resolvers/subscriptions.ts:135
  • one.ie/web/src/lib/substrate.ts:167
  • one.ie/web/src/lib/tasks/queue-edge.ts:4
  • one.ie/web/src/pages/api/webhooks/github.ts:15
Agent runtime 1
  • channels/src/tools/tasks.ts:74
Workflow 6
  • one.ie/web/src/components/chat/panels/factory/PlatformBoard.tsx:8
  • one.ie/web/src/components/factory/useFactoryTasks.ts:96
  • one.ie/web/src/lib/factory/board-read.ts:406
  • one.ie/web/src/lib/factory/board.ts:237
  • one.ie/web/src/lib/factory/job-link.ts:13
  • one.ie/web/src/lib/factory/signal-gates.ts:24
MCP 1
  • tasks_everywhere · packages/mcp/src/tools/lifecycle.ts:86
Tests 1
  • one.ie/web/src/lib/factory/signal-gates.test.ts:33
→

Answered by

tasks:everywhere one.ie/web/src/lib/resolvers/subscriptions.ts:1653 Dispatched through POST /api/ask/tasks:everywhere, after the envelope validates the payload.
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "limit": {
      "type": "number"
    },
    "closed": {
      "type": "boolean"
    },
    "workspace": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    }
  }
}
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "tasks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "weight": {
            "type": "number"
          },
          "priority": {
            "description": "Task priority; the ranking input behind `weight`",
            "type": "number"
          },
          "notes": {
            "type": "string"
          },
          "contextDocs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "workspace": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "dueAt": {
            "type": "string"
          },
          "assignee": {
            "type": "string"
          },
          "mine": {
            "type": "boolean"
          },
          "claimable": {
            "type": "boolean"
          },
          "offeredByMe": {
            "type": "boolean"
          },
          "closedAt": {
            "type": "string"
          },
          "blockedBy": {
            "description": "Tids blocking this row (the `blocks` edges). Absent = no blockers at all — absent is not `false`",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "openBlockers": {
            "description": "How many of `blockedBy` the CLAIM DOOR would still count (done/verified clear; an unknown blocker counts — fail closed). Present only with `blockedBy`",
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "tags",
          "weight",
          "workspace",
          "status",
          "mine",
          "claimable",
          "offeredByMe"
        ]
      }
    },
    "total": {
      "description": "Rows matching BEFORE `limit`. A FLOOR, not a count, whenever `truncatedTypes` is present",
      "type": "number"
    },
    "truncated": {
      "description": "true = the answer is short: more rows than returned (raise limit, or use tasks:board) OR graph.json marks a type this read touched as cut (`truncatedTypes`)",
      "type": "boolean"
    },
    "truncatedTypes": {
      "description": "Graph types the RAM snapshot marks cut that this read touched (contract #13: the snapshot's `truncated` ∩ the funs' types). Absent = nothing was cut",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "asOf": {
      "description": "When the task scan this answer reads was taken from TypeDB (ISO) — shared by every caller for up to 60 s (KV), so up to a minute behind a write. Never read-modify-write a row through this receiver: read it with tasks:board {tid, fresh:true}. `claimable` is a prediction as of this instant; tasks:claim decides",
      "type": "string"
    },
    "prose": {
      "description": "notes/contextDocs could not be hydrated for this page (they are not in the RAM graph — one keyed read fetches them). Present = every `notes`/`contextDocs` here is MISSING, not empty",
      "type": "string",
      "const": "unavailable"
    },
    "reason": {
      "description": "Why an ok:true queue may be empty: `no_subscriptions` (tasks:mine — subscribe, or read the board directly) · `no_workspace_membership` (tasks:everywhere — the caller belongs to no workspace)",
      "type": "string",
      "enum": [
        "no_subscriptions",
        "no_workspace_membership"
      ]
    },
    "error": {
      "description": "On ok:false: `upstream_unavailable` (no graph — `detail` says why) · `edge_fun_missing` (funs.json lacks a queue fun — `missing` names each) · `edge_ir_mismatch` · `budget` · `edge_solve_failed`. Never an empty queue in place of a reason",
      "type": "string"
    },
    "detail": {
      "type": "string"
    },
    "missing": {
      "description": "edge_fun_missing: each fun the edge cannot solve and codegen's reason (e.g. not on prod)",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "fun": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "fun",
          "reason"
        ]
      }
    },
    "edgesTruncated": {
      "description": "The `blocks` edge sweep was cut or failed: every `claimable:true` in this body is a best effort, not a promise",
      "type": "boolean",
      "const": true
    }
  },
  "required": [
    "ok",
    "tasks"
  ]
}