[codex] add non-local thread store regression harness (#19266)

- Add an integration test that guarantees nothing gets written to codex
home dir or sqlite when running a rollout with a non-local ThreadStore
- Add an in-memory "spy" ThreadStore for tests like this

Note I could not find a good way to also ensure there were no filesystem
_reads_ that didn't go through threadstore. I explored a more elaborate
sandboxed-subprocess approach but it isn't platform portable and felt
like it wasn't (yet) worth it.
This commit is contained in:
Tom
2026-04-24 15:45:44 -07:00
committed by GitHub
parent 3c6e2638ac
commit 588f7a9fc4
10 changed files with 667 additions and 15 deletions

View File

@@ -2093,6 +2093,42 @@
},
"type": "object"
},
"ThreadStoreToml": {
"oneOf": [
{
"properties": {
"type": {
"enum": [
"local"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
{
"properties": {
"endpoint": {
"type": "string"
},
"type": {
"enum": [
"remote"
],
"type": "string"
}
},
"required": [
"endpoint",
"type"
],
"type": "object"
}
]
},
"ToolSuggestConfig": {
"additionalProperties": false,
"properties": {
@@ -2489,6 +2525,14 @@
"description": "Experimental / do not use. When set, app-server fetches thread-scoped config from a remote service at this endpoint.",
"type": "string"
},
"experimental_thread_store": {
"allOf": [
{
"$ref": "#/definitions/ThreadStoreToml"
}
],
"description": "Experimental / do not use. Selects the thread store implementation."
},
"experimental_thread_store_endpoint": {
"description": "Experimental / do not use. When set, app-server uses a remote thread store at this endpoint instead of the local filesystem/SQLite store.",
"type": "string"