Cadence extension privacy policy
Prepared 12 September 2026 for Cadence - LeetCode Attempt Stopwatch 1.16.3. This source update does not establish Store or public-policy publication.
Cadence helps you practise LeetCode by recording attempt time, preserving code before an editor reset, and preparing practice comments automatically or when you choose. This policy covers the Chrome extension, not the separate Cadence evaluator, dashboard or any AI assistant.
Information the extension uses
On LeetCode problem pages, Cadence uses the problem address and identifier, programming language, editor code and comments, submission identifiers and verdicts, submission notes and stopwatch state. It observes page visibility, focus and editor activity to manage timing and avoid overwriting active work. It does not send a record of your keystrokes to the developer.
Cadence recognizes /lcn, /lcr and /lcb as you type in the active code editor to insert practice comments or a blank bug log. Recognition uses temporary page memory and does not keep a separate typing history. A matching active practice keeps its identifier; conflicting state is left for your explicit choice.
When automatic comment preparation is enabled, Cadence reads your signed-in status, username, user identifier and active legacy-session identifier, public language and verdict catalogs, the native starter code, and one matching prior Accepted submission for the current problem and language. Account and submission context are used in page memory; the extension does not persist an account-history copy. Public language/status catalogs and language bindings are cached in device-local extension storage. An unverified history scope remains unknown; preparation does not establish canonical Cadence registration or mastery.
The extension no longer imports a Cadence practice registry or uses one to choose a template. You can choose the practice type manually or through a shortcut; automatic preparation uses the verified LeetCode context described above. An unavailable history remains unknown, never proof that a problem is new.
The optional practice-note fields let you describe help you received. Cadence does not read conversations with other AI assistants or retrieve LeetCode AI chat history. It does not observe the static hints you open. If you submit code containing those comments, LeetCode receives them with your submission.
Choosing New practice creates an opaque practice identifier in local tab context only; new code comments omit practice identifiers and help-scope metadata. Help starts undeclared; the extension does not infer independence or a hint count. Reloading, retrying or receiving Accepted does not create another practice identifier. Automatic preparation may also allocate an identifier and mark its local context as automatic preparation. An identifier alone does not prove an independent practice or absence of help; it is not a user account identifier or a submission timestamp.
Where information goes
Cadence reads and updates submission notes directly through LeetCode's HTTPS API, using your existing signed-in browser session. The browser sends the existing session cookies; the extension reads LeetCode's CSRF token to authorize those requests. It does not create a separate stored copy of your login credentials. New automatic note updates contain elapsed time only, merged with existing manual text and historical metadata. Accepted notes are left untouched; pending historical updates can still be recovered. Cadence does not submit solutions automatically.
For supported submission requests, Cadence remembers the problem address and the submission identifier returned by LeetCode in temporary page memory to attribute the clock after navigation. It does not read the request body for this association or export request IDs, practice IDs or hint snapshots into new notes.
Settings, including the Automatic/Light/Dark appearance preference, and the identifiers of problems you exclude from automatic clearing use Chrome Sync storage. If Chrome Sync is enabled, Chrome may synchronize these through Google to your other signed-in browsers. Code recovery copies, learned starter code, pending note updates, diagnostics and public preparation catalogs use device-local extension storage, not Chrome Sync. Practice registries imported by older versions may also remain in that local storage, unused.
Cadence has no developer-operated data collection service, advertising or analytics. The extension does not sell user information or transmit it to external AI services. LeetCode and Google handle information sent to their services under their own privacy policies.
Storage and retention
Local recovery storage keeps recent code copies, replacing an older copy for the same problem and pruning older entries as its limits are reached. Learned starter code is also bounded. These copies have no fixed time-based expiry. An old imported registry may retain problem identifiers, practice phases, generation date and revision. This build does not read, write, listen for changes to or delete it. Existing registry files and private evaluation backups elsewhere on disk are not deleted by upgrading or removing the extension. Local diagnostic counters and recent action timestamps help show whether reset and recovery features are working; they are not uploaded to the developer.
Pending note updates are kept locally for retry. Successful writes are removed; recovery also discards entries older than seven days when it next runs. The extension does not run a guaranteed deletion job at the seven-day mark.
Per-tab clocks, practice context, automatic-preparation suppression and reset guards use LeetCode page session storage. Practice context is keyed by Chrome's tab identifier and problem. While a start is pending, it includes the prepared editor text needed to confirm or recover the change; confirmation removes that pending text. Older hint and submission records may remain in session storage; this build does not create new ones. Session storage lifetime depends on Chrome's tab and session restoration behavior. The extension reads LeetCode's native stopwatch storage without changing it.
Cadence relies on Chrome's storage and access controls and HTTPS for LeetCode requests. It does not add its own encryption to data stored by the browser. Anyone with access to your browser profile may be able to access locally stored information.
Your choices and deletion
Appearance defaults to Automatic and follows your device. Choose Light or Dark in Settings to override it for Cadence extension panels. This does not change the LeetCode theme. Fonts ship inside the extension; displaying its interface makes no external font request.
Automatic comment preparation defaults to on after a successful settings read. You can turn it off independently of automatic clearing; /lcn, /lcr, /lcb and manual template actions remain available. Automatic comments are added only to empty code or an exactly verified native starter while its preparation guards still hold.
You can turn automatic clearing off in Settings, choose whether it applies only to solved problems, or exclude an individual problem. After a reset, the page offers to restore the saved code when a recovery copy is available.
New practice preserves authored code and comments, saves the previous revision when there is work to preserve, and clears the prior help declaration for the new practice. An unchanged empty scaffold does not replace an existing recovery copy. Undo is available only while the captured editor revision still matches; recovery remains bounded, not a complete history of your code. Insert template adds readable comments without starting a new practice.
Disable the extension to stop future extension activity. Removing it clears its device-local Chrome extension storage. The current Settings page has no erase-all button. Chrome Sync and browser-session data are controlled separately through Chrome; this policy does not promise deletion of copies retained on other devices or by Google.
Notes and submissions already saved to LeetCode remain there after the extension is removed. Review or edit your notes in LeetCode and use LeetCode's controls for information held by that service.
Limited use and contact
Cadence uses and transfers information only to provide the features described here, in accordance with the Chrome Web Store User Data Policy and its Limited Use requirements. It does not use that information for advertising, credit decisions or data brokerage.
For privacy questions, use the developer contact provided in this extension's Chrome Web Store listing. Material changes to the extension's data handling will be reflected in this policy and the listing.