mirror of
https://github.com/openai/codex.git
synced 2026-10-31 19:28:49 +00:00
## Why Creating child history before persisting its parent-child relationship can leave history that parent subtree deletion cannot discover, especially when fork startup copies history. A relationship write failure must reject the spawn before child storage is created. ## What changed - Reserve the child thread ID and persist its spawn edge before starting the child. Propagate persistence failures to the caller. - Keep pending relationship writes owned through caller cancellation, and wait for them to finish before closing the edge during cleanup, including when a write commits but reports an error. - Skip edge cleanup when publication was skipped, and reject IDs belonging to running threads before publication. ## Testing Add regression coverage for cancellation before commit or acknowledgement, errors after commit, skipped publication, and duplicate child IDs. Integration tests cover fresh children and full-history forks, verifying that failed publication leaves no child history, execution, or creation notification and preserves unrelated history during parent deletion. GitOrigin-RevId: 6e2e3f32d9558091312651ab47aa845d7d13b4ca
59 lines
1.8 KiB
TOML
59 lines
1.8 KiB
TOML
[package]
|
|
name = "core_test_support"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[lib]
|
|
path = "lib.rs"
|
|
doctest = false
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
anyhow = { workspace = true }
|
|
assert_cmd = { workspace = true }
|
|
base64 = { workspace = true }
|
|
codex-agent-graph-store = { workspace = true }
|
|
codex-analytics = { workspace = true }
|
|
codex-arg0 = { workspace = true }
|
|
codex-attachment-store = { workspace = true }
|
|
codex-config = { workspace = true }
|
|
codex-core = { workspace = true }
|
|
codex-extension-api = { workspace = true }
|
|
codex-exec-server = { workspace = true }
|
|
codex-guardian-v2 = { workspace = true }
|
|
codex-home = { workspace = true }
|
|
codex-features = { workspace = true }
|
|
codex-hooks = { workspace = true }
|
|
codex-login = { workspace = true }
|
|
codex-model-provider-info = { workspace = true }
|
|
codex-models-manager = { workspace = true }
|
|
codex-protocol = { workspace = true }
|
|
codex-thread-store = { workspace = true }
|
|
codex-utils-absolute-path = { workspace = true }
|
|
codex-utils-cargo-bin = { workspace = true }
|
|
codex-utils-path-uri = { workspace = true }
|
|
ctor = { workspace = true }
|
|
futures = { workspace = true }
|
|
notify = { workspace = true }
|
|
opentelemetry = { workspace = true }
|
|
opentelemetry_sdk = { workspace = true }
|
|
regex-lite = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
tokio = { workspace = true, features = ["net", "test-util", "time"] }
|
|
tokio-tungstenite = { workspace = true }
|
|
tracing = { workspace = true }
|
|
tracing-opentelemetry = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|
|
walkdir = { workspace = true }
|
|
wiremock = { workspace = true }
|
|
shlex = { workspace = true }
|
|
zstd = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
codex-http-client = { workspace = true }
|
|
pretty_assertions = { workspace = true }
|