diff options
| author | cirakg <cirakg@cirakg.xyz> | 2026-10-28 00:03:01 +0100 |
|---|---|---|
| committer | cirakg <cirakg@cirakg.xyz> | 2026-10-28 00:03:01 +0100 |
| commit | 9e5a85fe01e94489198a64a458f9b09584594f80 (patch) | |
| tree | 9b3668b4c42dc30dbfe65db734987663de2bdfbb /docs/STORE_LISTING.md | |
| parent | e5172350151043050098d37b728054eb2e2be9f8 (diff) | |
chore(release): 1.0.0, with the Connect IQ Store listingv1.0.0
The second real-watch round on the Forerunner 70 passed: codes from
otpauth:// links, the 4-digit PIN, touch scrolling and Aegis JSON import.
Version 1.0.0 ships the fixes of the 0.9.0 review.
- docs/STORE_LISTING.md: title, description and What's New for the
Garmin developer page, with measured character counts.
- docs/store/: hero (1440x720), cover (500x500) and seven round screen
images, built by tools/store_assets.py from the fr70 goldens.
- CHANGELOG 1.0.0, README status, TESTING round 2 results, YOUR_STEPS
marked done, fr70 about.png golden at 1.0.0.
make ci green on fr70.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/STORE_LISTING.md')
| -rw-r--r-- | docs/STORE_LISTING.md | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/docs/STORE_LISTING.md b/docs/STORE_LISTING.md new file mode 100644 index 0000000..8317138 --- /dev/null +++ b/docs/STORE_LISTING.md @@ -0,0 +1,84 @@ +<!-- + Author: cirakg & claude ai + Summary: Text and images for the Connect IQ Store listing, ready to paste into the Garmin developer page. +--> +# Connect IQ Store listing + +Copy each block into the matching field of the app page on the Garmin developer site. The text inside each block is plain text: the Store shows line breaks but no Markdown. The character counts were measured when the text was written: title 32, description 2385, What's New 755. + +## Title (max. 50 characters) + +```text +OTP Wallet: 2FA Codes & Barcodes +``` + +## Description (max. 4000 characters) + +```text +Your two-factor codes and your loyalty cards on your wrist, with no phone and no network. + +OTP Wallet shows one-time passwords (TOTP, HOTP and Steam Guard) and stores barcodes and QR codes to show at a scanner. Everything is encrypted on the watch. There is no cloud, no account and no analytics, and the app requests no permissions, so it cannot use the network. + +ONE-TIME CODES +- TOTP (SHA-1, SHA-256, SHA-512; 6 to 8 digits; any period), HOTP and Steam Guard. +- A ring shows the seconds left; the next code is shown before the current one expires. +- Optional glance with your favourite code. +- Codes use the watch's clock. Keep the watch synced with your phone for the right time. + +BARCODES AND QR CODES +- QR, Aztec, Data Matrix, PDF417, Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, ITF and Codabar, all drawn on the watch. +- Black on white with full brightness on AMOLED watches (backlight on MIP watches) for easy scanning. +- The watch tells you if a code is too large for its screen. + +SECURITY +- Secrets and codes are stored encrypted on the watch. +- Optional 4-digit app PIN: entries marked "Require PIN" are encrypted with a key only the PIN opens. +- Auto-lock, a growing wait after wrong PINs, and an option to erase the locked entries after 10 wrong PINs. +- A 4-digit PIN stops someone using your watch, not someone who copies its storage to a computer. +- Secrets only flow into the watch. The app never exports them. + +ADDING ENTRIES +Open the app settings in Garmin Connect on your phone: +- Paste otpauth:// links (from most authenticator apps' export or "show secret" screens). +- Or paste an unencrypted Aegis export (JSON). +- Or fill in the "Add OTP" and "Add code" forms by hand. +The watch parses the text itself and shows an import report. Changes to entries marked "Require PIN" wait on the watch until you confirm them with your PIN. + +GOOD TO KNOW +- App settings work with the Store version only. +- Garmin Connect refuses text that contains a backslash. If an Aegis export is refused, replace every \/ with / in a text editor, or use otpauth:// links. +- Encrypted Aegis exports and Google Authenticator export links are not supported. +- Keep a backup of your secrets in your phone authenticator. The watch is not a backup. + +Needs a watch with Connect IQ API 5.0 or newer and enough app memory (72 models, including Forerunner, fenix, epix, Venu and Instinct models). +``` + +## What's New (max. 4000 characters) + +```text +1.0.0: first public release. + +Tested on a Forerunner 70: one-time codes, the PIN, touch scrolling, otpauth:// import and Aegis JSON import. + +Since the beta (0.9.0): +- On touch screens, START no longer submits an old-style PIN by accident. +- "Change PIN" after an old-style PIN asks for the new PIN once, not twice. +- Entering the PIN with many waiting phone changes no longer stops the app; the changes are applied in small steps. +- Large waiting changes no longer stop the app at start. +- A replacement secret or code is checked as soon as it arrives. +- "Confirm all" and "Reject all" act only on the changes shown. +- A full storage reports "Storage full" instead of stopping the app. +- Pasting about 100 otpauth:// links at once no longer stops the app. +``` + +## Images + +Built by `python3 tools/store_assets.py` from the Forerunner 70 goldens (`test/golden/fr70/`) into [docs/store/](store/). Re-run it after the goldens change. + +| Store field | File | Size limit | +| --- | --- | --- | +| Hero image (1440 × 720) | [hero-1440x720.png](store/hero-1440x720.png) | 2048 KB | +| Cover image (500 × 500) | [cover-500.png](store/cover-500.png) | 300 KB | +| Screen images (390 × 390, round, transparent corners) | [screen-1-list.png](store/screen-1-list.png), [screen-2-otp.png](store/screen-2-otp.png), [screen-3-qr.png](store/screen-3-qr.png), [screen-4-glance.png](store/screen-4-glance.png), [screen-5-pin.png](store/screen-5-pin.png), [screen-6-pdf417.png](store/screen-6-pdf417.png), [screen-7-import.png](store/screen-7-import.png) | 150 KB each | + +All images show fake data only. |
