# ThreadRecollection

A thread a recall found, with why it ranked where it did.

**Kind:** an object, used in responses.

## Fields

Every field is present in a response; empty ones are `null`.

| Field | Type | Description |
|---|---|---|
| `thread` | [`LoomThread`](https://docs.maitento.com/reference/types/loom-thread.md) | The thread. |
| `relevance` | `number` | Overall 0..1 ranking score. |
| `semantic` | `number` | How close the thread's meaning is to the query, 0 to 1. |
| `lexical` | `number` | How well the thread's words match the query, 0 to 1, relative to the best match. |
| `context` | `number` | 1 when the thread is about one of the people or things present, otherwise 0. |
| `companionOf` | `uuid \| null` | Set when the thread was brought back as a companion of another thread the recall found. |

## Example

```json
{
  "thread": {
    "loomId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
    "content": "...",
    "kind": "Semantic",
    "strand": "Weft",
    "weight": 0,
    "fray": 0,
    "decayRate": "Normal",
    "subjects": [
      "..."
    ],
    "subjectKeys": [
      "..."
    ],
    "tags": [
      "..."
    ],
    "cues": [
      "..."
    ],
    "visibility": "Shared",
    "until": "2026-10-26T12:00:00.0000000Z",
    "basis": "Said",
    "pinned": false,
    "origin": {
      "kind": "Manual",
      "interactionProcessId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
      "appProcessId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
      "agentId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
      "agentName": "...",
      "userId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
      "nightWeavingId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f"
    },
    "companions": [
      {}
    ],
    "provenance": {
      "kind": "Gift",
      "sourceLoomId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
      "sourceLoomName": "...",
      "sourceThreadId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
      "givenBy": "...",
      "note": "...",
      "date": "2026-10-26T12:00:00.0000000Z",
      "ownedAt": "2026-10-26T12:00:00.0000000Z",
      "isOwned": false
    },
    "canTravel": false,
    "accessCount": 0,
    "lastAccessedAt": "2026-10-26T12:00:00.0000000Z",
    "surfacedCount": 0,
    "lastSurfacedAt": "2026-10-26T12:00:00.0000000Z",
    "reinforcements": 0,
    "knot": {
      "dateCut": "2026-10-26T12:00:00.0000000Z",
      "acknowledgment": "...",
      "essence": "...",
      "wovenIntoThreadId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
      "supersededByThreadId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
      "cutBy": {}
    },
    "seams": [
      {}
    ],
    "revision": 0,
    "isKnot": false,
    "isWarp": false,
    "isIntention": false,
    "isLoose": false,
    "salience": 0,
    "shortId": "...",
    "tenantId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
    "id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
    "dateCreated": "2026-10-26T12:00:00.0000000Z",
    "dateUpdated": "2026-10-26T12:00:00.0000000Z"
  },
  "relevance": 0,
  "semantic": 0,
  "lexical": 0,
  "context": 0,
  "companionOf": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f"
}
```

## Where it's used

- [`looms.recall`](https://docs.maitento.com/reference/api/looms.md) (`PUT /looms/by-id/{id}/threads/recall`)
