Repository navigation
Add thread attachment operations with coordinated deletion - #44350
Merged
copyberry[bot] merged 1 commit intoSep 10, 2026
Conversation
## Why Attachment mutations must coordinate with thread deletion so queued requests cannot use metadata belonging to a deleted thread. ## What changed - Add typed `ThreadStore` operations for idempotent attachment creation, paginated listing, and removal, with capability detection and unsupported defaults. - Implement attachment operations for SQLite-backed `LocalThreadStore`, including unloaded threads, and preserve invalid-request and missing-thread errors. - Coordinate attachment mutations with lifecycle locks and move SQLite cleanup into thread-store deletion. Remove state rows only after rollout deletion, preserving retries after cleanup failures. - Give the in-memory store ownership of its associated SQLite cleanup and remove duplicate cleanup from the app-server. ## Testing Add coverage for attachment pagination and idempotency, unsupported stores, error categories, lifecycle exclusion, mutations queued behind single and batch deletion, cleanup failure retries, and in-memory state cleanup. Extend the app-server descendant deletion test to verify SQLite rows are removed. GitOrigin-RevId: f0157538c7c5c2ee1362ce40eac157101c5d4505
copyberry
Bot
force-pushed
the
copyberry/codex-internal-to-codex-oss/f0157538c7c5c2ee1362ce40eac157101c5d4505
branch
from
September 10, 2026 00:30
8f68cd9 to
2df0b74
Compare
copyberry
Bot
deleted the
copyberry/codex-internal-to-codex-oss/f0157538c7c5c2ee1362ce40eac157101c5d4505
branch
September 10, 2026 00:30
eiennohito
temporarily deployed
to
issue-triage
September 10, 2026 00:32 — with
GitHub Actions
Inactive
eiennohito
temporarily deployed
to
issue-triage
September 10, 2026 00:32 — with
GitHub Actions
Inactive
eiennohito
temporarily deployed
to
issue-triage
September 10, 2026 00:32 — with
GitHub Actions
Inactive
eiennohito
temporarily deployed
to
issue-triage
September 10, 2026 00:33 — with
GitHub Actions
Inactive
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add thread attachment operations with coordinated deletion
Why
Attachment mutations must coordinate with thread deletion so queued requests cannot use metadata belonging to a deleted thread.
What changed
ThreadStoreoperations for idempotent attachment creation, paginated listing, and removal, with capability detection and unsupported defaults.LocalThreadStore, including unloaded threads, and preserve invalid-request and missing-thread errors.Testing
Add coverage for attachment pagination and idempotency, unsupported stores, error categories, lifecycle exclusion, mutations queued behind single and batch deletion, cleanup failure retries, and in-memory state cleanup. Extend the app-server descendant deletion test to verify SQLite rows are removed.