Commit Graph
5324 Commits
Author SHA1 Message Date
evgeny b7ca74d61d Clarify link callback captures and their lifetime requirements 2026-10-28 00:58:59 +01:00
evgeny 25f0e21fb9 Document history selection state and delegate, link and scrolling contracts 2026-10-28 00:58:59 +01:00
evgeny b95fd63c46 Clarify the frozen attachment snapshot and shared submission diagnostics 2026-10-28 00:58:59 +01:00
evgeny 73a5366f1c Make regression callback cleanup safe after failed assertions 2026-10-28 00:58:59 +01:00
evgeny 58c2b5644d Translate the shared channel send failure message 2026-10-28 00:58:59 +01:00
evgeny 939b458c33 Check synchronous attachment handlers cannot redirect or access a deleted composer 2026-10-28 00:58:59 +01:00
evgeny 45485f4fbc Use one owned channel submission path and preserve the emitting context 2026-10-28 00:58:59 +01:00
evgeny 195b9c5afb Keep send fault injection and callback lifetimes isolated in tests 2026-10-28 00:58:59 +01:00
evgeny 48a6f03d78 Cover channel send success, retry, cancellation and allocation failures end to end 2026-10-28 00:58:59 +01:00
evgeny 143fd51791 Transfer channel text requests through the owned composer bridge 2026-10-28 00:58:59 +01:00
evgeny 4d18a7015d Report cancelled composer submissions before releasing their owned requests 2026-10-28 00:58:59 +01:00
evgeny 3c5e52a630 Keep ordinary channel drafts until their correlated save result 2026-10-28 00:58:59 +01:00
evgeny 9be3c4af48 Reproduce ordinary draft loss and missing cancellation acknowledgments 2026-10-28 00:58:59 +01:00
evgeny 88760510da Document composer acknowledgments, attachment ownership and context snapshots 2026-10-28 00:58:59 +01:00
evgeny cdaad39cf2 Verify corrected emoji insertion through the real composer connection 2026-10-28 00:58:59 +01:00
evgeny 214af09510 Correct emoji catalog mappings and log selected Unicode bytes 2026-10-28 00:58:59 +01:00
evgeny 5f90557a36 Reproduce emoji label mismatches through real picker selections 2026-10-28 00:58:59 +01:00
evgeny d0755477f2 Clarify parentless emoji panel sizing and tab icon drawing 2026-10-28 00:58:59 +01:00
evgeny b5d4c2be8b Describe category tab rendering and palette behavior 2026-10-28 00:58:59 +01:00
evgeny 62175e04a8 Document emoji catalog side effects and picker icon lifetimes 2026-10-28 00:58:59 +01:00
evgeny 8fddf854de Verify member save requests owner shutdown if rollback remains open 2026-10-28 00:58:59 +01:00
evgeny 1515a37b8a Verify fresh role snapshots and admin transfer cancellation ownership 2026-10-28 00:58:59 +01:00
evgeny b78fd7a8e6 Match editable roles to the same owner version read from SQLite 2026-10-28 00:58:59 +01:00
evgeny bc5e6aa5a5 Document cancellation acknowledgments for member edit commands 2026-10-28 00:58:59 +01:00
evgeny 8f02e1ec2d Read member edit capabilities and fields in one GUI snapshot 2026-10-28 00:58:59 +01:00
evgeny 84bf74e034 Limit commit fault injection to the member save transaction 2026-10-28 00:58:59 +01:00
evgeny f11ab51ccc Check stale forms, read failures and member command memory ownership 2026-10-28 00:58:59 +01:00
evgeny 49cbfe1ae0 Block property saves without a successfully read member snapshot 2026-10-28 00:58:59 +01:00
evgeny d73d62db48 Reject rename saves when the initial nickname read failed 2026-10-28 00:58:59 +01:00
evgeny 2d79023c5e Verify member save rollback across nickname SQL and owner changes 2026-10-28 00:58:59 +01:00
evgeny 279d7da51c Name member save status widgets for regression checks 2026-10-28 00:58:59 +01:00
evgeny f537f302c6 Exercise member dialogs against a real worker and SQLite failures 2026-10-28 00:58:59 +01:00
evgeny 5842855583 Confirm atomic member property saves before closing the dialog 2026-10-28 00:58:59 +01:00
evgeny 7e412d950a Bind owned admin transfer requests to the selected database 2026-10-28 00:58:59 +01:00
evgeny be11fbb8b6 Keep rename dialog open until the core confirms its write 2026-10-28 00:58:59 +01:00
evgeny 096e721faa Return correlated member save and cancellation results to live GUI contexts 2026-10-28 00:58:59 +01:00
evgeny 1431507ac5 Save member nicknames and owner changes in one core transaction 2026-10-28 00:58:59 +01:00
evgeny 30a15f6cfd Document audio settings snapshots and device test behavior 2026-10-28 00:58:58 +01:00
evgeny 005d136dc7 Make Android microphone capture stoppable and cleanup resilient
Use nonblocking AudioRecord reads with data and timestamp deadlines. Serialize idempotent close, finish interrupted joins before release, isolate callback failures, and abort stereo fallback when partial-record cleanup fails.

Close failed shared readers to new subscriptions, roll back worker startup, isolate observers, preserve interrupt state, and release the last consumer exactly once. Add an independent capture-tests JVM module to the standard Android unit-test task.

Validation: 38 capture scenarios (25 AudioRecord plus 13 PCM/PTT), 455 JVM tests, assembleDebug, core build, and full check.sh (225 tests plus proxy/burst/load) passed.
2026-10-28 00:53:01 +01:00
evgeny 74035fc043 Recover Android media audio sessions with explicit resource ownership
Retry monitor and capture setup after invalidating failed attempts. Bind output leases and callbacks to registration identity, cancel confirmation timers, and keep hardware cleanup independent from device enumeration during call handoff.

Commit profiles only after successful storage writes, acquire mode ownership before Android side effects, and reject blocking operations on main or the control worker. Keep the app singleton backed by an isolated MediaAudioSession with a single executor.

Validation: 30 media session scenarios, 420 JVM tests, assembleDebug, core build, and full check.sh (225 tests plus proxy/burst/load) passed.
2026-10-28 00:28:42 +01:00
evgeny a6ae4df3ff Harden Android audio router lifecycle and route selection
Roll back failed startup, finish independent stop cleanup, invalidate stale device and Telecom callbacks, and serialize router mutations. Publish input/output targets after accepted selection and support retries of rejected requests.

Separate modern communication device selection from legacy SCO, refresh replaced descriptors, and support A2DP and USB input-only devices in per-track mode. Clarify routing and observer ownership contracts.

Validation: 45 router scenarios, 390 JVM tests, assembleDebug, core build, and full check.sh (225 tests plus proxy/burst/load) passed. Previous router fails 25 of the 30 new cases.
2026-10-27 23:53:21 +01:00
evgeny 0d45bdbad6 Own Android incoming call alerts and notification actions
Bind notification tokens to full call IDs and call kinds, cancel actions on stop, and reject decline callbacks after ringing ends. Serialize alert state on main and recover notification channel setup after Android API failures.

Keep sound independent of wake-lock and notification failures. Remove orphaned notifications on cold start, preserve idempotent alerts during duplicate delivery and language changes, and document lifecycle contracts.

Validation: 32 new lifecycle cases, 360 JVM tests, assembleDebug, core build, and full check.sh (225 tests plus proxy/burst/load) passed.
2026-10-27 23:31:56 +01:00
evgeny 5a6eabf4fc Fix Android alert profiles and playback resource ownership
Configure audio attributes before MediaPlayer preparation, keep vibration independent from sound failures, and guard loop/focus cleanup against stale callbacks. Preserve ringback players on repeated phase requests.

Add 35 alert lifecycle tests against real Kotlin sources with controlled Android API failures. Validation: 328 JVM tests, assembleDebug, core build, and full check.sh (225 tests plus proxy/burst/load) passed. Previous sources fail 32 of the 35 new cases.
2026-10-27 23:12:11 +01:00
evgeny f4ef949482 Guard Android radio configuration with worker-owned tasks 2026-10-27 22:41:30 +01:00
evgeny f71aff3e11 Document Android radio automatic capture and background window contracts 2026-10-27 21:58:02 +01:00
evgeny d6dc6234d5 Recover SIM observers without losing healthy subscription state 2026-10-27 21:49:15 +01:00
evgeny 6a38eaa4eb Compile the real SIM monitor in the Android host tests 2026-10-27 21:39:26 +01:00
evgeny 6e6260ab29 Add controlled Telephony fixtures for Android SIM monitoring 2026-10-27 21:35:45 +01:00
evgeny 142cc1a7a1 Verify Android phone state publishing and JNI restart recovery 2026-10-27 21:30:07 +01:00
evgeny 4859d03f29 Return Android phone state queue acceptance through JNI 2026-10-27 21:25:51 +01:00