summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorcirakg <cirakg@cirakg.xyz>2026-10-26 15:01:52 +0100
committercirakg <cirakg@cirakg.xyz>2026-10-28 00:03:01 +0100
commite5172350151043050098d37b728054eb2e2be9f8 (patch)
treecd6a2d37c57f1fc728bdbaf942cfffde0e998372 /README.md
parent86c11634379ab87238d794f8f9e8bbc991041e4d (diff)
docs(spike): test C split, only the backslash is refused
Settings spike test C, split (round 2, 2026-10-27, Android): Garmin Connect refuses to save only C3, the backslash. Every other character group and an Aegis export without backslashes save, and a real Aegis export imported on the Forerunner 70, so the import design stays. Android Aegis writes / as \/ (icons, names with a slash): the user guide explains replacing \/ with / or removing icons. C3 is a known limitation. The spike manifest gets a new application id: the old one could not be uploaded to the Garmin developer page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'README.md')
-rw-r--r--README.md2
1 files changed, 1 insertions, 1 deletions
diff --git a/README.md b/README.md
index 7588ed2..72617a7 100644
--- a/README.md
+++ b/README.md
@@ -521,7 +521,7 @@ The full files are in `resources/settings/` (written in M7). `make lint` validat
- **Fields**: the eight import fields are joined in order. If the text is longer than one field accepts, continue in the next one.
- **Several syncs**: if the JSON is still incomplete after joining, the watch keeps what it got (encrypted under the device key) and reports: "Waiting for more: received 3,214 characters. Paste the next part into the import fields and turn 'Import now' on again." "Cancel pending import" discards it. The buffer is capped at 32 KB and expires after 24 hours. M5 measured an Aegis export at about 190 bytes per entry compact, and 400 to 500 pretty-printed. Exports larger than the cap need to be split into several imports.
- **Size reality**: pretty-printed Aegis JSON takes about 400 to 500 characters per entry without icons. Icons add several KB each and are the main reason a paste might not fit. An `otpauth://` URI takes about 80 to 200 characters.
-- **Spike results (M1, Android, 2026-10-21)**: one field carried 8000 characters and the eight together 64,000, so the 32 KB buffer, not Garmin Connect, limits one sync. `otpauth://` URIs with `&` save as they are. A test string mixing `< > \ " { } %`, accented letters and an emoji was refused by the phone; which character blocks it is being narrowed down (docs/SETTINGS_SPIKE.md). If `"` or `{ }` are refused, Aegis JSON can't be pasted and URIs are the import path.
+- **Spike results (M1, Android, 2026-10-21)**: one field carried 8000 characters and the eight together 64,000, so the 32 KB buffer, not Garmin Connect, limits one sync. `otpauth://` URIs with `&` save as they are. A test string mixing `< > \ " { } %`, accented letters and an emoji was refused by the phone. **Follow-up (round 2, SPIKE_DATE):** each character group saved on its own, and so did a complete unencrypted Aegis export, so Aegis JSON can be pasted into the import fields (docs/SETTINGS_SPIKE.md).
- **iPhone**: Garmin Connect on iOS reportedly rejects `&` (present in every URI with parameters) and `\` (used in JSON escapes). The spike ran on Android only. If it's confirmed on iOS, the parser also accepts `;` in place of `&`, and the user guide explains the workaround.
### 11.3 Parsing rules