Conversation
WalkthroughRecent changes in the NVDA screen reader enhance the update checking functionality by including a unique, anonymous installation ID in telemetry data. This improves user statistics collection and resource allocation. User consent remains central, with an emphasis on transparency in data usage as documented in user guides. Debug logging was also introduced to track the NVDA user ID during initialization, ensuring better visibility into the process. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant NVDA
participant UpdateCheck
participant NVAccess
User->>NVDA: Start NVDA
NVDA->>UpdateCheck: Check state
alt State ID not present
UpdateCheck->>UpdateCheck: Initialize State ID (uuid4)
end
User->>NVDA: Continue using NVDA
NVDA->>UpdateCheck: Request update
UpdateCheck->>NVAccess: Send telemetry data with unique ID
NVAccess->>UpdateCheck: Process update
UpdateCheck->>NVDA: Confirm update or latest version
Assessment against linked issues
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
Qchristensen
left a comment
There was a problem hiding this comment.
Looks good. Made one minor suggestion re the changes file, but otherwise fine.
|
Is there a protocol for rotating unique IDs on a regular schedule, so these IDs still provide usage statistics without being linkable to individual users? |
|
@codeofdusk , yes it resets once a month on the first check of the month |
Link to issue number:
Closes #16266
Summary of the issue:
Right now NV access is unable to gauge monthly or weekly users, only daily users.
Each day NVDA performs an update check and optionally sends more usage data information.
We are unable to differentiate copies performing update checks, meaning we only know X users who checked for an update on a given day.
Description of user facing changes
None
Description of development approach
A unique ID is stored to user config when initializing the update check.
This creates a unique ID per user of NVDA, counting portable copies and each Windows user's profile of an installation.
When checking for update, NVDA now sends the unique ID if usage tracking is enabled.
Testing strategy:
lastCheckUpdatetime to trigger new unique ID.Known issues with pull request:
Code Review Checklist:
Summary by CodeRabbit
New Features
Documentation
Enhancements
Bug Fixes