# V4 Release

## Checklist

- [ ] Update README.md to match v4
- [ ] Event Log
- [ ] Record Spelling Corrections / Suggestions Used
- [ ] Sponsorship message
- [ ] Analytics

## README.md

The [README.md](../README.md) file is out of date.

## Event Log

The Event Log is used to record changes to the CSpell Stored data that can be synced across user machines.

### Local vs Shared

Since the Shared storage can be overwritten by any machine, it is necessary to have a local storage that handles possible data loss through synchronization. The idea is to use an Event Log to handle data changes.

## Record Spelling Corrections / Suggestion

To create a good user experience, we would like to show the "best" suggestions at the top of the list. But the current ranking of suggestions is based upon edit distance. This is very likely not the best choice.

The idea is to store the suggestions the user has picked and present them at the top. At a later release, we would like to be able to share suggestions chosen to improve everyone's experience.

## Sponsorship Message

Compose a sponsorship message to show users.

- Should describe why it is important to become a sponsor
- Provide a link to the Sponsor page.
- Should only be shown if they are using the extension.
- The User can hide the message for about a month, longer if they are a sponsor.

## Analytics / Telemetry Data

At the moment, the Spell Checker does not collect any Telemetry data. But that is likely to change:

- User must be able to op-out.
- Special care should be made to avoid collecting any sensitive or personally identifiable information.

### Reasons for Data Collection

- Usage:
    - Approximate number of unique users. The key here is to be able to distinguish between users, but not to identify an individual.
    - Frequency of use.
    - Feature usage.
- Errors:
    - Record any Error events.

### Metrics

- Throughput
    - Words / Second
    - Kilobytes / Second
- File type
- Line width (Avg,Med,Max)
