mirror of
https://github.com/openai/codex.git
synced 2026-09-10 20:26:47 +00:00
## What changed - Add `isPinned` to thread responses and allow `thread/metadata/update` to pin or unpin stored threads. - Add an `isPinned` filter to `thread/list`, including cursor-based pagination and combinations with relationship filters. - Persist pin state in SQLite without modifying rollout files, default existing threads to unpinned, and preserve pins through reconciliation and archive transitions. ## Testing - Cover protocol serialization, database migration and indexing, pin updates, filtered pagination, rollout reconciliation, and archive/unarchive behavior. GitOrigin-RevId: c2eacabd6dae465e2ae6ce8a169e00740960cdb7
146 lines
3.5 KiB
JSON
Generated
146 lines
3.5 KiB
JSON
Generated
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"definitions": {
|
|
"SortDirection": {
|
|
"enum": [
|
|
"asc",
|
|
"desc"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"ThreadListCwdFilter": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
]
|
|
},
|
|
"ThreadSortKey": {
|
|
"enum": [
|
|
"created_at",
|
|
"updated_at",
|
|
"recency_at"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"ThreadSourceKind": {
|
|
"enum": [
|
|
"cli",
|
|
"vscode",
|
|
"exec",
|
|
"appServer",
|
|
"subAgent",
|
|
"subAgentReview",
|
|
"subAgentCompact",
|
|
"subAgentThreadSpawn",
|
|
"subAgentOther",
|
|
"unknown"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"properties": {
|
|
"archived": {
|
|
"description": "Optional archived filter; when set to true, only archived threads are returned. If false or null, only non-archived threads are returned.",
|
|
"type": [
|
|
"boolean",
|
|
"null"
|
|
]
|
|
},
|
|
"cursor": {
|
|
"description": "Opaque pagination cursor returned by a previous call.",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"cwd": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/ThreadListCwdFilter"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional cwd filter or filters; when set, only threads whose session cwd exactly matches one of these paths are returned."
|
|
},
|
|
"isPinned": {
|
|
"description": "Optional pinned filter; when set, only threads matching this value are returned.",
|
|
"type": [
|
|
"boolean",
|
|
"null"
|
|
]
|
|
},
|
|
"limit": {
|
|
"description": "Optional page size; defaults to a reasonable server-side value.",
|
|
"format": "uint32",
|
|
"minimum": 0.0,
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
},
|
|
"modelProviders": {
|
|
"description": "Optional provider filter; when set, only sessions recorded under these providers are returned. When present but empty, includes all providers.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"searchTerm": {
|
|
"description": "Optional substring filter for the extracted thread title.",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"sortDirection": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/SortDirection"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional sort direction; defaults to descending (newest first)."
|
|
},
|
|
"sortKey": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/ThreadSortKey"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional sort key; defaults to created_at."
|
|
},
|
|
"sourceKinds": {
|
|
"description": "Optional source filter; when set, only sessions from these source kinds are returned. When omitted or empty, defaults to interactive sources.",
|
|
"items": {
|
|
"$ref": "#/definitions/ThreadSourceKind"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"useStateDbOnly": {
|
|
"description": "If true, return from the state DB without scanning JSONL rollouts to repair thread metadata. Omitted or false preserves scan-and-repair behavior.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"title": "ThreadListParams",
|
|
"type": "object"
|
|
} |