<feed xmlns='http://www.w3.org/2005/Atom'>
<title>microblog/app, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/'/>
<entry>
<title>Move passkey login inline to home page, remove /auth/login route</title>
<updated>2026-06-20T00:51:12+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-20T00:51:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/commit/?id=d7a8e8a42b752aeaa22315e96b7e5fb69811fdbc'/>
<id>d7a8e8a42b752aeaa22315e96b7e5fb69811fdbc</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove debug code from passkey registration page</title>
<updated>2026-06-19T15:47:22+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-19T15:47:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/commit/?id=077fdc0b950deb018a0470894c700cc4ab83557a'/>
<id>077fdc0b950deb018a0470894c700cc4ab83557a</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix TypeError: remove erroneous b64urlToBuffer call on user object</title>
<updated>2026-06-19T15:44:47+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-19T15:44:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/commit/?id=9f9bd0c381dc32e1f9d83df8f9134aa33f95eb4d'/>
<id>9f9bd0c381dc32e1f9d83df8f9134aa33f95eb4d</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix: move passkey API to dedicated route without React component</title>
<updated>2026-06-19T15:43:10+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-19T15:43:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/commit/?id=abe09e38fb5dc5ede5abe715520c3e4006c66894'/>
<id>abe09e38fb5dc5ede5abe715520c3e4006c66894</id>
<content type='text'>
React Router v7 treats POST to routes with a default export as document
requests and returns HTML instead of the action's JSON response. Moving
the API logic to an action-only route (/api/passkey) fixes this.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
React Router v7 treats POST to routes with a default export as document
requests and returns HTML instead of the action's JSON response. Moving
the API logic to an action-only route (/api/passkey) fixes this.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Debug: show raw response body to diagnose json() failure</title>
<updated>2026-06-19T15:37:48+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-19T15:37:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/commit/?id=3ec8bce7073bd922096681348fa86b6e8ff9b0d1'/>
<id>3ec8bce7073bd922096681348fa86b6e8ff9b0d1</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Debug: force render between steps, remove rp.id from native options</title>
<updated>2026-06-19T15:35:47+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-19T15:35:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/commit/?id=9232c6c29514df0cb20f27fb7157baf5ed1a255b'/>
<id>9232c6c29514df0cb20f27fb7157baf5ed1a255b</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add step-by-step debug display to passkey registration</title>
<updated>2026-06-19T15:29:50+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-19T15:29:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/commit/?id=c205e6ad73f14db1f7efdf1e4e4b594eb73a1f34'/>
<id>c205e6ad73f14db1f7efdf1e4e4b594eb73a1f34</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bypass @simplewebauthn/browser: call WebAuthn API directly</title>
<updated>2026-06-19T15:26:47+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-19T15:26:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/commit/?id=6de9ab5bab41ae4c2d8e06a72362cf6bf2375598'/>
<id>6de9ab5bab41ae4c2d8e06a72362cf6bf2375598</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Debug passkey: send minimal options to isolate iOS SyntaxError</title>
<updated>2026-06-19T15:22:20+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-19T15:22:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/commit/?id=9da6a06bea17c26315225f394d997ff5379c8ad2'/>
<id>9da6a06bea17c26315225f394d997ff5379c8ad2</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Strip extensions + filter algs for iOS Safari compatibility</title>
<updated>2026-06-19T15:13:24+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-19T15:13:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/commit/?id=0b44daefb11b5eb764bca32ab2af79c5325a3672'/>
<id>0b44daefb11b5eb764bca32ab2af79c5325a3672</id>
<content type='text'>
- Remove extensions.credProps (WebAuthn L2, causes TypeError on older iOS)
- Remove alg:-8 (Ed25519, not universally supported)
- Show error name in UI for easier debugging

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Remove extensions.credProps (WebAuthn L2, causes TypeError on older iOS)
- Remove alg:-8 (Ed25519, not universally supported)
- Show error name in UI for easier debugging

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
