Skip to content

refactor(app-server-protocol): remove dead item/fileChange/outputDelta notification#168

Merged
andrei-hasna merged 1 commit into
mainfrom
openloops/open-codewith/08f0301d-9504-49b7-940c-870f05926e5d-93c9b343
Jul 7, 2026
Merged

refactor(app-server-protocol): remove dead item/fileChange/outputDelta notification#168
andrei-hasna merged 1 commit into
mainfrom
openloops/open-codewith/08f0301d-9504-49b7-940c-870f05926e5d-93c9b343

Conversation

@andrei-hasna

Copy link
Copy Markdown
Contributor

Summary

Removes the deprecated item/fileChange/outputDelta server-notification compatibility surface (FileChangeOutputDeltaNotification). Both the type doc-comments and the app-server README state the server no longer emits this notification, and there is no emitter path anywhere in codex-rs (core / app-server / protocol). The only consumers were a protocol union arm, a no-op TUI handler stub, and a test-client opt-out entry — all dead.

Changes

  • Drop FileChangeOutputDeltaNotification struct (app-server-protocol/src/protocol/v2/item.rs).
  • Drop the FileChangeOutputDelta => "item/fileChange/outputDelta" registration (app-server-protocol/src/protocol/common.rs).
  • Drop the TUI routing arm (tui/src/app/app_server_event_targets.rs) and the match arm plus the now-unused no-op on_patch_apply_output_delta handler stub (tui/src/chatwidget/protocol.rs, protocol_requests.rs).
  • Remove the item/fileChange/outputDelta entry from NOTIFICATIONS_TO_OPT_OUT (app-server-test-client/src/lib.rs).
  • Remove the retained-for-compatibility README bullet (app-server/README.md).
  • Regenerate app-server schema/TypeScript artifacts (just write-app-server-schema): deletes the FileChangeOutputDeltaNotification schema/TS files and drops the arm from the ServerNotification union.

Compatibility decision

Full removal. It is a server->client notification the server never emits, so removing it only means an out-of-tree client would never receive something it already never receives — no request/response contract break.

Out of scope (intentional)

The vendored Python SDK bindings under sdk/python still reference FileChangeOutputDeltaNotification. They are generated from a pinned published runtime (openai-codex-cli-bin==0.137.0a4), decoupled from the local source tree, so regenerating them now would either be a no-op or force an unrelated runtime bump. They will regenerate naturally on the next SDK runtime bump to a release containing this removal.

Preserved

The live item/fileChange/patchUpdated streaming path is untouched. Its app-server tests pass: turn_start_streams_apply_patch_change_updates_v2 and turn_start_does_not_stream_apply_patch_change_updates_without_feature_v2.

Validation

  • rg for removed symbols outside schema/: zero hits.
  • just check-fast -p codex-app-server-protocol: ok
  • just test-fast -p codex-app-server-protocol: 256/256 pass (schema fixtures match)
  • just check-fast -p codex-tui: ok
  • just fmt: clean
  • app-server patchUpdated tests: 2/2 pass

Generated with Claude Code

@andrei-hasna
andrei-hasna force-pushed the openloops/open-codewith/08f0301d-9504-49b7-940c-870f05926e5d-93c9b343 branch from b1ee2bb to f01fec9 Compare July 7, 2026 08:51
@andrei-hasna

Copy link
Copy Markdown
Contributor Author

[codewith] Repaired the PR branch to current main with only the intended protocol-removal commit: f01fec9. Local validation passed: fmt, app-server-protocol check/tests, TUI check, and the focused app-server apply-patch streaming tests.\n\nI am not merging yet because CI is failing in cargo-deny, run 28853835648 / job 85575391225, on RUSTSEC-2026-0204 for crossbeam-epoch. That blocker is unrelated to this PR's protocol-only diff and appears covered by #174 (fix(deps): bump crossbeam-epoch to 0.9.20).

@andrei-hasna
andrei-hasna merged commit 95232c6 into main Jul 7, 2026
16 of 26 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 7, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant