Stabilize TTS playback state transitions and harden Media Session handling#2
Merged
Merged
Conversation
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/1dcb4948-935d-4b46-bf80-4418dfcda69d Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/1dcb4948-935d-4b46-bf80-4418dfcda69d Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/1dcb4948-935d-4b46-bf80-4418dfcda69d Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/1dcb4948-935d-4b46-bf80-4418dfcda69d Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/1dcb4948-935d-4b46-bf80-4418dfcda69d Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/49b00265-8844-4adf-ae98-38dd97408ba1 Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/49b00265-8844-4adf-ae98-38dd97408ba1 Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/49b00265-8844-4adf-ae98-38dd97408ba1 Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/49b00265-8844-4adf-ae98-38dd97408ba1 Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/65032962-304c-4be0-b9b5-2e1b103d4e6c Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/65032962-304c-4be0-b9b5-2e1b103d4e6c Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/f2bc025c-dc76-45be-a91b-404ee5f37a5b Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/c91b2f47-0672-4060-a7dc-2b389251a273 Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/074af2d7-d310-4ac6-a809-5228b278432c Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/074af2d7-d310-4ac6-a809-5228b278432c Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/c6121c02-dd55-4b3a-af87-2b0eb0de9cd3 Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/d9fef9be-22bf-4adb-8fe2-af52aee494ef Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/d9fef9be-22bf-4adb-8fe2-af52aee494ef Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/f885334d-5a4c-4def-bf72-63025bbc18ce Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/f885334d-5a4c-4def-bf72-63025bbc18ce Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/000ea9f5-99a8-46c7-be9f-0c5b6a0e5aff Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/000ea9f5-99a8-46c7-be9f-0c5b6a0e5aff Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/000ea9f5-99a8-46c7-be9f-0c5b6a0e5aff Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/000ea9f5-99a8-46c7-be9f-0c5b6a0e5aff Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/bdf39230-a5bf-4328-87ef-3d626bbdc3a9 Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/bdf39230-a5bf-4328-87ef-3d626bbdc3a9 Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/51656337-4778-4d75-be77-fe6fdd64d38f Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/51656337-4778-4d75-be77-fe6fdd64d38f Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hansai-art/article-voice-reader/sessions/51656337-4778-4d75-be77-fe6fdd64d38f Co-authored-by: hansai-art <132933660+hansai-art@users.noreply.github.com>
Copilot created this pull request from a session on behalf of
hansai-art
April 11, 2026 16:03
View session
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This change tightens the playback path where voice changes, restarts, and browser media controls could drift out of sync with current state. It also removes the remaining hook dependency issues that were masking those edge cases.
TTS state synchronization
useTTSso callback dependencies stop churning on each render.Playback restart semantics
Browser integration hardening
navigator.mediaSession.setActionHandler(...)registration and cleanup so unsupported or partial browser implementations fail safely.Hook correctness on input flow
AddArticlePageso clipboard/import side effects stay aligned with the active language function.Example of the state-stable replay path: