fix: serialize USSD sends safely - #129
Conversation
|
Review/merge-manager classification: The concurrency/USSD privacy direction is good and local read-only review found the new serialization/redaction tests useful, but there is an API/regression blocker around cancellation/reset semantics:
Requested fix: keep the fail-closed behavior for uncertain timeout/cancellation paths, but either (a) do not poison the session after a confirmed successful
Holding this PR as |
|
Review/merge-manager classification: needs-fix. I am not marking this ready or merging yet. The branch currently conflicts with Requested changes:
|
|
Release review: needs-human. This draft is held from autonomous merge because it changes a security-sensitive, credential/SIM-recovery, production-deployment, or public product/API policy surface. Please provide an explicit product/security decision and a refreshed review-ready head (this PR is also stale/dirty where applicable) before it can re-enter the landing queue. No behavior was approved or merged in this pass. |
|
Release-captain classification: needs-fix. This PR is now |
|
Release lane update: needs-human. This change affects a sensitive security/privacy, production-deployment, modem/SIM, audio/hardware, or public realtime product boundary. It will not be autonomously merged under this lane. Please obtain an explicit Korgo decision on the intended policy/scope and, where applicable, rebase on current |
|
Release review: needs-human. This PR changes a sensitive credential, security, or modem-safety policy. Per the autonomous release-lane policy it is intentionally held for an explicit Korgo decision and will not be merged on local-test evidence alone. After a decision, refresh it over current |
|
Release review: needs-human. This stale PR changes a sensitive modem/security-control surface that is not eligible for autonomous landing. A current-base rework may proceed only after Korgo records the intended policy and safety/compatibility decisions; do not merge or attempt to salvage the stale head autonomously. |
|
Release review classification: needs-human. This changes security/credential or externally reachable policy behavior and requires Korgo’s explicit product/security decision before release. It will not be auto-merged in this lane. Please retain the branch and provide the requested policy/operational rationale plus updated gates for a later human-approved review. |
|
Release-lane classification: needs-human. This is an old conflicted USSD concurrency/security change. It needs an explicit product/security decision on serialization and timeout/cancellation behavior before a focused rebase and review. No merge action taken in this lane. |
|
Release-lane classification: needs human decision. This changes a security-sensitive or externally exposed policy surface. It requires Korgo's explicit product/security decision and a focused security review before an autonomous merge; local test success alone is not authorization to land it. |
|
Release classification: needs-fix for this release pass. The draft has not received a current exact-head review and prescribed local integration gate over the advancing |
|
Release review: needs-fix. GitHub reports this USSD concurrency PR |
Summary
AT+CUSDwrite;cancel()sendsAT+CUSD=2but does not clear the unsafe session state because late+CUSDresponses cannot be correlated safely.Tests
PYTHONPATH=. uv run --no-project --with pytest --with pytest-asyncio --with pytest-aiohttp --with pyserial-asyncio --with aiosqlite pytest tests/test_ussd.py tests/test_http_api_validation.py tests/test_api_auth.py tests/test_executor.py -q→ 108 passedgit diff --check→ passedPYTHONPATH=. uv run --no-project --with pytest --with pytest-asyncio --with pytest-aiohttp --with pyserial-asyncio --with aiosqlite pytest tests/ -q→ 595 passedRisks
+CUSDbelongs to which request.