What issue are you seeing?
The Python app-server SDK treats two typed v2 app-server notifications as UnknownNotification:
model/verification
guardianWarning
These notifications are defined and emitted by the Rust app-server protocol. The JSON/TypeScript schema also includes both variants.
However, the generated Python SDK currently does not expose ModelVerificationNotification or GuardianWarningNotification in generated/v2_all.py, and generated/notification_registry.py has no entries for either method. As a result, AppServerClient._coerce_notification() falls back to UnknownNotification.
This can cause Python SDK clients to miss typed handling for safety/account verification or guardian warning notifications.
What steps can reproduce the bug?
From the repo root:
PYTHONPATH=sdk/python/src python3 - <<'PY'
from codex_app_server.client import AppServerClient
from codex_app_server.models import UnknownNotification
client = object.__new__(AppServerClient)
notif = client._coerce_notification(
"model/verification",
{"threadId": "t", "turnId": "u", "verifications": ["trustedAccessForCyber"]},
)
print(type(notif.payload).__name__, isinstance(notif.payload, UnknownNotification))
warning = client._coerce_notification(
"guardianWarning",
{"threadId": "t", "message": "m"},
)
print(type(warning.payload).__name__, isinstance(warning.payload, UnknownNotification))
PY
Actual output:
UnknownNotification True
UnknownNotification True
What is the expected behavior?
The Python SDK should expose typed payload models for both notifications and register them in NOTIFICATION_MODELS:
model/verification -> ModelVerificationNotification
guardianWarning -> GuardianWarningNotification
Then _coerce_notification() should return typed notification payloads instead of UnknownNotification.
Additional information
Relevant files:
codex-rs/app-server-protocol/src/protocol/common.rs
codex-rs/app-server-protocol/src/protocol/v2.rs
codex-rs/app-server/src/bespoke_event_handling.rs
codex-rs/app-server-protocol/schema/json/ServerNotification.json
codex-rs/app-server-protocol/schema/typescript/ServerNotification.ts
sdk/python/src/codex_app_server/generated/v2_all.py
sdk/python/src/codex_app_server/generated/notification_registry.py
sdk/python/src/codex_app_server/client.py
sdk/python/scripts/update_sdk_artifacts.py
I checked for existing issues/PRs and did not find an exact duplicate.
Related but not duplicate:
A narrow fix could update the Python SDK generation path so these notification payload models are generated and registered, plus add a small Python SDK regression test for _coerce_notification().
If maintainers agree this is the right scope and invite a PR, I’d be happy to prepare a focused fix.
What issue are you seeing?
The Python app-server SDK treats two typed v2 app-server notifications as
UnknownNotification:model/verificationguardianWarningThese notifications are defined and emitted by the Rust app-server protocol. The JSON/TypeScript schema also includes both variants.
However, the generated Python SDK currently does not expose
ModelVerificationNotificationorGuardianWarningNotificationingenerated/v2_all.py, andgenerated/notification_registry.pyhas no entries for either method. As a result,AppServerClient._coerce_notification()falls back toUnknownNotification.This can cause Python SDK clients to miss typed handling for safety/account verification or guardian warning notifications.
What steps can reproduce the bug?
From the repo root:
Actual output:
What is the expected behavior?
The Python SDK should expose typed payload models for both notifications and register them in
NOTIFICATION_MODELS:model/verification->ModelVerificationNotificationguardianWarning->GuardianWarningNotificationThen
_coerce_notification()should return typed notification payloads instead ofUnknownNotification.Additional information
Relevant files:
codex-rs/app-server-protocol/src/protocol/common.rscodex-rs/app-server-protocol/src/protocol/v2.rscodex-rs/app-server/src/bespoke_event_handling.rscodex-rs/app-server-protocol/schema/json/ServerNotification.jsoncodex-rs/app-server-protocol/schema/typescript/ServerNotification.tssdk/python/src/codex_app_server/generated/v2_all.pysdk/python/src/codex_app_server/generated/notification_registry.pysdk/python/src/codex_app_server/client.pysdk/python/scripts/update_sdk_artifacts.pyI checked for existing issues/PRs and did not find an exact duplicate.
Related but not duplicate:
A narrow fix could update the Python SDK generation path so these notification payload models are generated and registered, plus add a small Python SDK regression test for
_coerce_notification().If maintainers agree this is the right scope and invite a PR, I’d be happy to prepare a focused fix.