<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-05-04T21:02:30&#43;02:00</updated>
  <generator>https://nostr.ae</generator>

  <title>Nostr notes by clave </title>
  <author>
    <name>clave </name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.ae/npub1claveqd4fwqj5rsssmg3f5sa97qc8sh8rq5x607em9s8hth3t54qyc539g.rss" />
  <link href="https://nostr.ae/npub1claveqd4fwqj5rsssmg3f5sa97qc8sh8rq5x607em9s8hth3t54qyc539g" />
  <id>https://nostr.ae/npub1claveqd4fwqj5rsssmg3f5sa97qc8sh8rq5x607em9s8hth3t54qyc539g</id>
  <icon>https://clave.casa/clave-icon.png</icon>
  <logo>https://clave.casa/clave-icon.png</logo>




  <entry>
    <id>https://nostr.ae/nevent1qqs0da7xeqrg0mcrarc4ldyf52thcguf6tjcqleaps9scrtezs5yz6qzyrrl4nypk49cz2swzzrdz9xjr5hcrq7zuuvzsmflm8vkq7aw79wj5nru90p</id>
    
      <title type="html">Clave build 71 just hit external TestFlight. Two things to know: ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs0da7xeqrg0mcrarc4ldyf52thcguf6tjcqleaps9scrtezs5yz6qzyrrl4nypk49cz2swzzrdz9xjr5hcrq7zuuvzsmflm8vkq7aw79wj5nru90p" />
    <content type="html">
      Clave build 71 just hit external TestFlight.&lt;br/&gt;&lt;br/&gt;Two things to know:&lt;br/&gt;&lt;br/&gt;1. On iOS, prefer bunker:// if your client is on the same iPhone as Clave. Same-device nostrconnect:// is supported but fragile — iOS suspends the client&amp;#39;s WebSocket when you switch between apps, breaking the handshake. Bunker pairing avoids the whole problem (it goes through Clave&amp;#39;s primary relay via APNs and doesn&amp;#39;t care about foreground state).&lt;br/&gt;&lt;br/&gt;If you do use same-device nostrconnect, build 71 fixes the misleading &amp;#34;Stay in Clave&amp;#34; copy — the new prompt tells you to switch back to your client app, which keeps its WebSocket alive long enough to receive the response.&lt;br/&gt;&lt;br/&gt;2. Bunker connection cap is now actually enforced. Was bypassable due to a timing bug — closed at all three layers in this build. Thanks to the tester who reported it.&lt;br/&gt;&lt;br/&gt;Plus a sizable refactor under the hood (~2,000 LOC of AppState.swift split into focused files; same behavior, much easier to reason about going forward).&lt;br/&gt;&lt;br/&gt;Find a bug? DM me.&lt;br/&gt;&lt;br/&gt;Clave social post — Option B (narrative, for client devs)&lt;br/&gt;New Clave build out on external TestFlight. Two things worth flagging for anyone shipping NIP-46 in a client:&lt;br/&gt;&lt;br/&gt;Same-device iOS pairing: recommend bunker://, not nostrconnect://. When the user taps Approve in Clave, the client app loses foreground and iOS suspends its WebSocket within seconds. The connect-response Clave publishes goes to a closed connection. Bunker pairing routes through wss://relay.powr.build/ (Clave&amp;#39;s primary sub) via APNs, so foreground state doesn&amp;#39;t matter.&lt;br/&gt;&lt;br/&gt;If your client wants to support nostrconnect:// on iOS anyway, two things help:&lt;br/&gt;&lt;br/&gt;Include wss://relay.powr.build/ in your URI&amp;#39;s relay set — the proxy&amp;#39;s primary subscription catches signing requests there regardless of client foreground state&lt;br/&gt;Don&amp;#39;t show the user &amp;#34;stay in the signer for a few seconds&amp;#34; — they need to switch back to your app for the WebSocket to stay alive&lt;br/&gt;Documented end-to-end at &lt;a href=&#34;https://github.com/DocNR/clave/blob/main/docs/nip46-compatibility.md&#34;&gt;https://github.com/DocNR/clave/blob/main/docs/nip46-compatibility.md&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Beyond that: build 71 also closes a bunker pair-cap bypass and ships an ~85% reduction in AppState.swift size from a behavior-preserving refactor. &lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://testflight.apple.com/join/5Mx5AZx7&#34;&gt;https://testflight.apple.com/join/5Mx5AZx7&lt;/a&gt;
    </content>
    <updated>2026-05-09T13:55:57&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdtu6k4q6dzd5up4zw35g289md2qadywaremlweq7s3wndl6fxajszyrrl4nypk49cz2swzzrdz9xjr5hcrq7zuuvzsmflm8vkq7aw79wj5tgumhh</id>
    
      <title type="html">Clave v0.2.0 build 60 — now available in TestFlight 📲 A ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsdtu6k4q6dzd5up4zw35g289md2qadywaremlweq7s3wndl6fxajszyrrl4nypk49cz2swzzrdz9xjr5hcrq7zuuvzsmflm8vkq7aw79wj5tgumhh" />
    <content type="html">
      Clave v0.2.0 build 60 — now available in TestFlight 📲&lt;br/&gt;&lt;br/&gt;A polish round on the pending-approval surface, based on tester feedback:&lt;br/&gt;&lt;br/&gt;• Lock-screen banners properly clear when requests expire, are approved, or denied&lt;br/&gt;• New &amp;#34;Not now&amp;#34; button — defer pending alerts and handle them via the bell on your own time&lt;br/&gt;• Pending tile on Home is now tappable (opens the inbox)&lt;br/&gt;• Correct &amp;#34;X of N&amp;#34; numbering when multiple requests are stacked&lt;br/&gt;&lt;br/&gt;TestFlight: &lt;a href=&#34;https://testflight.apple.com/join/5Mx5AZx7&#34;&gt;https://testflight.apple.com/join/5Mx5AZx7&lt;/a&gt;&lt;br/&gt;Source: &lt;a href=&#34;https://github.com/DocNR/clave&#34;&gt;https://github.com/DocNR/clave&lt;/a&gt;
    </content>
    <updated>2026-05-06T13:57:04&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvjsf20g0tuj2hwsnfzvt6rn98nuuht2vmme0x45h7ffvd2mm7c4czyrrl4nypk49cz2swzzrdz9xjr5hcrq7zuuvzsmflm8vkq7aw79wj5tsu3qc</id>
    
      <title type="html">New Clave build on TestFlight (v0.2.0 build 54). Two big ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsvjsf20g0tuj2hwsnfzvt6rn98nuuht2vmme0x45h7ffvd2mm7c4czyrrl4nypk49cz2swzzrdz9xjr5hcrq7zuuvzsmflm8vkq7aw79wj5tsu3qc" />
    <content type="html">
      New Clave build on TestFlight (v0.2.0 build 54). Two big quality-of-life shifts:&lt;br/&gt;&lt;br/&gt;Signing requests now have a real inbox — bell icon on Home, cross-tab alerts, Approve/Deny right from the lock screen.&lt;br/&gt;&lt;br/&gt;Connecting a Nostr app got simpler — one sheet with Bunker &#43; Nostrconnect tabs, no more 3-card maze.&lt;br/&gt;&lt;br/&gt;Plus: tap any signed event in Activity to see the raw JSON.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://testflight.apple.com/join/5Mx5AZx7&#34;&gt;https://testflight.apple.com/join/5Mx5AZx7&lt;/a&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/eacfdf38062afe48dc8cf1003933fd4c763747629d51b2bb23a219172c875e44.jpg&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/a1a5d7ef49875394b1aec2b6b5ab7b87c90a0715ce4c3aab7d1d26cc4c1cd39c.jpg&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/8cab9f5c396931d7aa48acd5aa04b4c8324afba0f6b77ce073b0ba5be79554ac.jpg&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/53aab486a9837bd3442962ab4b79198715fc5468aba24246992e479c2fe47a42.jpg&#34;&gt; 
    </content>
    <updated>2026-05-05T04:50:42&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsw7y6z9pmnpmcz0de2g5tha7nqz3y326t5n856x5yj2xrqurdushqzyrrl4nypk49cz2swzzrdz9xjr5hcrq7zuuvzsmflm8vkq7aw79wj5dc5txg</id>
    
      <title>Nostr event nevent1qqsw7y6z9pmnpmcz0de2g5tha7nqz3y326t5n856x5yj2xrqurdushqzyrrl4nypk49cz2swzzrdz9xjr5hcrq7zuuvzsmflm8vkq7aw79wj5dc5txg</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsw7y6z9pmnpmcz0de2g5tha7nqz3y326t5n856x5yj2xrqurdushqzyrrl4nypk49cz2swzzrdz9xjr5hcrq7zuuvzsmflm8vkq7aw79wj5dc5txg" />
    <content type="html">
      Hello Nostr. The keys stayed home today. #clave&lt;br/&gt;
    </content>
    <updated>2026-05-04T16:58:21&#43;02:00</updated>
  </entry>

</feed>