mirror of
https://github.com/openai/codex.git
synced 2026-11-05 20:10:33 +00:00
## What changed - Add `currentAccountOnly` to `thread/list` and `thread/search`, defaulting to `false`, and enable it for TUI history discovery, resume pickers, and task mentions. - Mark newly created threads as account-scoped and require each recorded creator user or account ID to match the current login. Older threads and threads without creator IDs remain shared; API-key logins continue to see all local history. - Preserve account scope through resume and revert, including fallback to original rollout metadata when an older binary drops the marker. Forks receive new-thread scope. - Skip unreadable rollout headers in scoped discovery and filter search candidates before reading snippets. Direct access by thread ID remains available. ## Testing Add coverage for account matching, shared legacy history, list page refilling, search pagination, API-key visibility, and scope preservation across reverts. Extend rollout lookup coverage to compressed active and archived files. GitOrigin-RevId: aa374f5e69165be5a71c0716ded1b105f5fb51e0
171 lines
4.4 KiB
JSON
Generated
171 lines
4.4 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",
|
|
"section_position"
|
|
],
|
|
"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"
|
|
]
|
|
},
|
|
"currentAccountOnly": {
|
|
"description": "Show local history visible to the current ChatGPT account. Defaults to false.",
|
|
"type": "boolean"
|
|
},
|
|
"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."
|
|
},
|
|
"excludedThreadIds": {
|
|
"description": "Thread IDs to exclude before applying the result limit. Up to 100 entries; invalid IDs or a larger list are rejected, never truncated. Send the same exclusions on each page. Omitted, null, or empty means no exclusions.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"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"
|
|
]
|
|
},
|
|
"originators": {
|
|
"description": "Optional originator allowlist, matching any supplied value exactly. Supported by hosted backends only; the local app-server rejects a nonempty list. Omitted or empty lists leave originators unrestricted.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"searchTerm": {
|
|
"description": "Optional substring filter for the extracted thread title.",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"sectionId": {
|
|
"description": "Omit to include every section, set to `null` for unsectioned threads, or provide a section ID to return only threads in that section.",
|
|
"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"
|
|
} |