<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otpGarmin/source, branch v0.6.0</title>
<subtitle>OTP Wallet for Garmin Connect IQ: offline one-time passwords and barcodes.</subtitle>
<id>https://git.cirakg.xyz/otpGarmin/atom?h=v0.6.0</id>
<link rel='self' href='https://git.cirakg.xyz/otpGarmin/atom?h=v0.6.0'/>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/otpGarmin/'/>
<updated>2026-10-20T10:16:59+00:00</updated>
<entry>
<title>test(codes): compare Aztec with aztec_code_generator, decode it and its screenshot</title>
<updated>2026-10-20T10:16:59+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-10-20T10:16:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/otpGarmin/commit/?id=1ebc828f30698c1661055e17483e8d50a139ed45'/>
<id>urn:sha1:1ebc828f30698c1661055e17483e8d50a139ed45</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(codes): add an Aztec encoder (compact and full range) as a resumable job</title>
<updated>2026-10-20T10:16:59+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-10-20T10:16:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/otpGarmin/commit/?id=dfb8e358c20cf1f5f5eae365feca78ce4aa4176d'/>
<id>urn:sha1:dfb8e358c20cf1f5f5eae365feca78ce4aa4176d</id>
<content type='text'>
Upper/Lower/Digit modes with Binary Shift, bit stuffing, Reed-Solomon over
GF(2^6..2^12) in steps, geometry ported from aztec_code_generator; symbols
match it for single-class text.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(ui): show Data Matrix and PDF417 codes; fit 2D codes inside round screens</title>
<updated>2026-10-20T09:24:58+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-10-20T09:24:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/otpGarmin/commit/?id=d94eb32c80d2dbf00a45d7e69804f8247240a769'/>
<id>urn:sha1:d94eb32c80d2dbf00a45d7e69804f8247240a769</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(codes): add Data Matrix (ECC 200, 10x10-144x144) and PDF417 encoders as jobs</title>
<updated>2026-10-20T09:24:58+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-10-20T09:24:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/otpGarmin/commit/?id=cc2fa8917b65eeda8d222dcbd69e9342884bb545'/>
<id>urn:sha1:cc2fa8917b65eeda8d222dcbd69e9342884bb545</id>
<content type='text'>
Data Matrix: ASCII with digit pairs, Base256 or Upper Shift for UTF-8,
interleaved Reed-Solomon in steps, utah placement; matches ppf.datamatrix.
PDF417: pdf417gen's compaction, automatic or fixed EC level, columns fitted
to the screen, pattern tables as generated JSON resources; matches
pdf417gen. 2D matrices gain a row height and 8-at-a-time packing.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(ui): show QR codes, encoded once with progress and cached sealed per entry</title>
<updated>2026-10-20T04:56:58+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-10-20T04:56:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/otpGarmin/commit/?id=2df98d1ba129f95a10c6b81665671d3b12560c79'/>
<id>urn:sha1:2df98d1ba129f95a10c6b81665671d3b12560c79</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(codes): add a QR Code encoder (versions 1-40, levels L-H) as a resumable job</title>
<updated>2026-10-20T04:56:58+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-10-20T04:56:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/otpGarmin/commit/?id=3548312586aeafbfca0d0b87db90f9bdd972c831'/>
<id>urn:sha1:3548312586aeafbfca0d0b87db90f9bdd972c831</id>
<content type='text'>
Optimal numeric/alphanumeric/byte segmentation, Reed-Solomon over GF(256),
all eight masks scored like segno, steps sized for the 120,000-bytecode
watchdog; block tables generated from segno; a generic Matrix type with a
compact form for caching.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(ui): show barcode entries black on white at the largest whole module size</title>
<updated>2026-10-20T00:43:08+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-10-20T00:43:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/otpGarmin/commit/?id=59255b1a55a81ba2b5de967eefced11910597b48'/>
<id>urn:sha1:59255b1a55a81ba2b5de967eefced11910597b48</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(codes): add EAN/UPC, Code 128, Code 39, ITF and Codabar encoders</title>
<updated>2026-10-20T00:43:08+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-10-20T00:43:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/otpGarmin/commit/?id=776a563b97b99b054323dc06f02b4d374805777a'/>
<id>urn:sha1:776a563b97b99b054323dc06f02b4d374805777a</id>
<content type='text'>
Check digits added, verified, fixed or off; canonical UPC-E zero
suppression; Code 128 sets B and C with zxing's switching rules; module
rows match zxing-cpp (Code 128 by length, the tie-breaking differs).

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(settings): apply the Import form from the phone and show results</title>
<updated>2026-10-19T23:51:05+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-10-19T23:51:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/otpGarmin/commit/?id=d537f4e154a40075405b0ab2fed14fbe2eeaac81'/>
<id>urn:sha1:d537f4e154a40075405b0ab2fed14fbe2eeaac81</id>
<content type='text'>
Import group in the app settings; the processor runs after the first
frame and on settings changes, clears the fields, writes the status,
remembers form hashes and opens the results screen.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(import): parse otpauth URIs and unencrypted Aegis JSON in resumable steps</title>
<updated>2026-10-19T23:51:05+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-10-19T23:51:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/otpGarmin/commit/?id=40d9a1d5c3e85486aea964c1446402a3be6ec05a'/>
<id>urn:sha1:40d9a1d5c3e85486aea964c1446402a3be6ec05a</id>
<content type='text'>
Streaming JSON tokenizer with depth and length limits and native skipping
of long strings; Aegis reader for database versions 1-3 with groups and
encrypted-export detection; otpauth parser with ';' separators and Steam;
import job with Replace mode, duplicate and replacement checks, a sealed
multi-part buffer and a report. Google Authenticator exports deferred.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
