Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions .github/workflows/validate-state-35555.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: validate-state-candidate

on:
push:
branches:
- "ci/35555-v3-public-runner"

permissions:
contents: read

jobs:
codex-state:
runs-on: ubuntu-24.04
timeout-minutes: 45
defaults:
run:
working-directory: codex-rs
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: 61d04d21d842c27638d67464735e0ef9b2308007
persist-credentials: false
- uses: ./.github/actions/setup-ci
- uses: dtolnay/rust-toolchain@e081816240890017053eacbb1bdf337761dc5582 # 1.95.0
with:
components: clippy
- name: Install Linux build dependencies
shell: bash
run: |
sudo apt-get update -y
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends build-essential pkg-config libcap-dev
- name: Fix codex-state
run: cargo clippy --fix --tests --allow-dirty -p codex-state
- name: Format Rust
run: cargo fmt -- --config imports_granularity=Item
- name: Verify fix and format are clean
run: git diff --exit-code
- name: Check codex-app-server library
run: cargo check -p codex-app-server --lib
- name: Clippy codex-state
run: cargo clippy -p codex-state --tests -- -D warnings
- name: Test codex-state serially
env:
RUST_MIN_STACK: "8388608"
run: cargo test -p codex-state -- --test-threads=1
9 changes: 9 additions & 0 deletions codex-rs/app-server/src/request_processors/thread_delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,15 @@ impl ThreadRequestProcessor {

self.validate_root_thread_delete(thread_id, thread_ids.len() > 1)
.await?;
if let Some(state_db) = self.state_db.as_ref() {
state_db
.ensure_strict_thread_delete_available()
.map_err(|err| {
internal_error(format!(
"failed to prepare app-server state deletion for {thread_id}: {err}"
))
})?;
}
for thread_id_to_delete in thread_ids.iter().copied() {
self.prepare_thread_for_delete(thread_id_to_delete).await;
}
Expand Down
Loading
Loading