<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>field_ios, branch HEAD</title>
<subtitle>In-the-field app for Radroots on iOS
</subtitle>
<entry>
<id>7852a0f6dd748a3d1128a27b711fe3815a478961</id>
<published>2026-06-20T01:15:58Z</published>
<updated>2026-06-20T01:15:58Z</updated>
<title>ffi: pin field_lib lock fix revision</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/7852a0f6dd748a3d1128a27b711fe3815a478961.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 7852a0f6dd748a3d1128a27b711fe3815a478961
parent 5b7bc99f3e8bf78247fd6e85f8284fe34527ddf2
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Fri, 19 Jun 2026 18:15:58 -0700

ffi: pin field_lib lock fix revision

- update the checked-in field_lib FFI source lock

- align Makefile git-mode defaults with the current field_lib revision

- keep regenerated Swift and framework artifacts unchanged

</content>
</entry>
<entry>
<id>5b7bc99f3e8bf78247fd6e85f8284fe34527ddf2</id>
<published>2026-06-20T01:09:08Z</published>
<updated>2026-06-20T01:09:08Z</updated>
<title>ui: remove deferred Market listing surface</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/5b7bc99f3e8bf78247fd6e85f8284fe34527ddf2.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 5b7bc99f3e8bf78247fd6e85f8284fe34527ddf2
parent 7ca86c3a19e7f50c7a2aa11743dba5ae2c692a3a
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Fri, 19 Jun 2026 18:09:08 -0700

ui: remove deferred Market listing surface

- delete app-authored Market and listing views

- remove the field app listing runtime wrapper

- regenerate the Xcode project without deferred listing sources

- keep generated shared FFI bindings intact for future runtime work

</content>
</entry>
<entry>
<id>7ca86c3a19e7f50c7a2aa11743dba5ae2c692a3a</id>
<published>2026-06-20T01:01:01Z</published>
<updated>2026-06-20T01:01:01Z</updated>
<title>config: remove field RHI settings</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/7ca86c3a19e7f50c7a2aa11743dba5ae2c692a3a.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 7ca86c3a19e7f50c7a2aa11743dba5ae2c692a3a
parent cc77c9c37607b041facc0bca13d1b6b9f6231325
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Fri, 19 Jun 2026 18:01:01 -0700

config: remove field RHI settings

- delete the retired TradeSettings helper
- remove RHI configuration from app build settings and Info.plist
- drop the Settings view RHI pubkey section
- regenerate the Xcode project without the deleted source file

</content>
</entry>
<entry>
<id>cc77c9c37607b041facc0bca13d1b6b9f6231325</id>
<published>2026-06-19T23:56:43Z</published>
<updated>2026-06-19T23:56:43Z</updated>
<title>api: drop retired trade mobile consumers</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/cc77c9c37607b041facc0bca13d1b6b9f6231325.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit cc77c9c37607b041facc0bca13d1b6b9f6231325
parent 29565094868a88a103526a7275bb816bb63c6f62
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Fri, 19 Jun 2026 16:56:43 -0700

api: drop retired trade mobile consumers

- remove Swift wrappers for retired trade validation, order, and message APIs.
- simplify listing detail around the active listing read model.
- delete the retired order request view from the app target.
- lock FFI generation to the reduced field_lib trade surface.

</content>
</entry>
<entry>
<id>29565094868a88a103526a7275bb816bb63c6f62</id>
<published>2026-06-19T23:46:05Z</published>
<updated>2026-06-19T23:46:05Z</updated>
<title>runtime: handle typed mobile read outcomes</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/29565094868a88a103526a7275bb816bb63c6f62.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 29565094868a88a103526a7275bb816bb63c6f62
parent 0ae444daa24d60a1813a45086dbbdc138944af7c
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Fri, 19 Jun 2026 16:46:05 -0700

runtime: handle typed mobile read outcomes

- call throwing runtime reads from the Swift service boundary.
- surface profile no-data separately from typed profile read failures.
- keep post stream polling resilient to typed stream failures.
- lock iOS FFI generation to the runtime-read field_lib revision.

</content>
</entry>
<entry>
<id>0ae444daa24d60a1813a45086dbbdc138944af7c</id>
<published>2026-06-19T23:37:49Z</published>
<updated>2026-06-19T23:37:49Z</updated>
<title>errors: adapt field app to typed runtime failures</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/0ae444daa24d60a1813a45086dbbdc138944af7c.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 0ae444daa24d60a1813a45086dbbdc138944af7c
parent a4be87232936816d49be78f4be69dbe495a294be
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Fri, 19 Jun 2026 16:37:49 -0700

errors: adapt field app to typed runtime failures

- add a Swift adapter for generated Radroots runtime error categories.
- route app error displays through typed runtime messages.
- lock FFI generation to the typed field_lib source revision.
- keep generated bindings and frameworks in the existing ignored output paths.

</content>
</entry>
<entry>
<id>a4be87232936816d49be78f4be69dbe495a294be</id>
<published>2026-06-19T23:17:24Z</published>
<updated>2026-06-19T23:17:24Z</updated>
<title>ffi: consume language-neutral field crate</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/a4be87232936816d49be78f4be69dbe495a294be.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit a4be87232936816d49be78f4be69dbe495a294be
parent dcff472cd1ab34a12dac7d7887bbb64f5b403847
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Fri, 19 Jun 2026 16:17:24 -0700

ffi: consume language-neutral field crate

- point the FFI build recipe at field_lib crates/field_ffi.
- package libradroots_field_ffi inside the existing RadrootsFFI xcframework.
- lock generated bindings to the committed field_lib rename.
- update local override guidance for the renamed manifest path.

</content>
</entry>
<entry>
<id>dcff472cd1ab34a12dac7d7887bbb64f5b403847</id>
<published>2026-06-19T23:12:30Z</published>
<updated>2026-06-19T23:12:30Z</updated>
<title>ffi: lock generated bindings to current field_lib</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/dcff472cd1ab34a12dac7d7887bbb64f5b403847.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit dcff472cd1ab34a12dac7d7887bbb64f5b403847
parent 31e470c385a3dfd5fc697324f23a5a5c14650dd3
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Fri, 19 Jun 2026 16:12:30 -0700

ffi: lock generated bindings to current field_lib

- update the field_lib source lock to the current committed runtime.
- align the FFI Makefile fallback revision with the lock.
- keep generated Swift artifacts reproducible from the checked-in source lock.
- leave generated binaries and Swift bindings ignored in the Swift app repo.

</content>
</entry>
<entry>
<id>31e470c385a3dfd5fc697324f23a5a5c14650dd3</id>
<published>2026-06-19T23:02:18Z</published>
<updated>2026-06-19T23:02:18Z</updated>
<title>identity: preserve stored key on failed import</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/31e470c385a3dfd5fc697324f23a5a5c14650dd3.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 31e470c385a3dfd5fc697324f23a5a5c14650dd3
parent 44ea2b2d22d3bf1b4a982adbb796fef10a68464f
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Fri, 19 Jun 2026 16:02:18 -0700

identity: preserve stored key on failed import

- stage imported Nostr identities before selecting or persisting them.
- roll secure storage back when final runtime selection fails.
- add a debug import-failure probe without exposing secret material.
- keep the Swift app Nostr-only while hardening identity custody.

</content>
</entry>
<entry>
<id>44ea2b2d22d3bf1b4a982adbb796fef10a68464f</id>
<published>2026-06-18T20:59:05Z</published>
<updated>2026-06-18T20:59:05Z</updated>
<title>security: prove identity policy config</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/44ea2b2d22d3bf1b4a982adbb796fef10a68464f.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 44ea2b2d22d3bf1b4a982adbb796fef10a68464f
parent 70fb20459654f4d687f5227ac730718395dc3a4c
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 18 Jun 2026 13:59:05 -0700

security: prove identity policy config

- expose a debug-only identity policy probe
- map configured custody policy to secure store policy values
- keep production user-presence policy on compiled config
- include the generated app project source reference

</content>
</entry>
<entry>
<id>70fb20459654f4d687f5227ac730718395dc3a4c</id>
<published>2026-06-18T20:34:36Z</published>
<updated>2026-06-18T20:34:36Z</updated>
<title>runtime: apply imported relay settings</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/70fb20459654f4d687f5227ac730718395dc3a4c.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 70fb20459654f4d687f5227ac730718395dc3a4c
parent 9335dce30ed1aa74a0f382503dc48050420260d2
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 18 Jun 2026 13:34:36 -0700

runtime: apply imported relay settings

- add a non-secret stored relay settings document
- apply imported relay documents to unlocked Nostr runtimes
- surface effective relay source and URLs in settings
- route background relay refresh through effective settings

</content>
</entry>
<entry>
<id>9335dce30ed1aa74a0f382503dc48050420260d2</id>
<published>2026-06-18T20:02:23Z</published>
<updated>2026-06-18T20:02:23Z</updated>
<title>background: fail closed on startup lifecycle gaps</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/9335dce30ed1aa74a0f382503dc48050420260d2.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 9335dce30ed1aa74a0f382503dc48050420260d2
parent 2156def908cb25c2e7968dfab91b5edb34292730
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 18 Jun 2026 13:02:23 -0700

background: fail closed on startup lifecycle gaps

- record handler registration failures before propagating startup errors
- prevent background task scheduling before handlers register
- drain pending URLSession completions when startup fails
- disable background event forwarding until startup attaches a fresh executor

</content>
</entry>
<entry>
<id>2156def908cb25c2e7968dfab91b5edb34292730</id>
<published>2026-06-18T19:55:45Z</published>
<updated>2026-06-18T19:55:45Z</updated>
<title>runtime: make config and logging deterministic</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/2156def908cb25c2e7968dfab91b5edb34292730.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 2156def908cb25c2e7968dfab91b5edb34292730
parent b1267fb6c240f6211a07f08b2ddb37d4dc0fc5fe
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 18 Jun 2026 12:55:45 -0700

runtime: make config and logging deterministic

- read release app config from plist-backed build values only
- keep launch environment overrides behind the Debug UI-test harness
- fail startup explicitly when runtime logging setup fails
- record logging initialization without fallback diagnostics

</content>
</entry>
<entry>
<id>b1267fb6c240f6211a07f08b2ddb37d4dc0fc5fe</id>
<published>2026-06-18T19:50:50Z</published>
<updated>2026-06-18T19:50:50Z</updated>
<title>runtime: split UI test host-service harness</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/b1267fb6c240f6211a07f08b2ddb37d4dc0fc5fe.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit b1267fb6c240f6211a07f08b2ddb37d4dc0fc5fe
parent 0f8bffd1cd4ac1d237d5d44fd9c68da70bf74a7a
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 18 Jun 2026 12:50:50 -0700

runtime: split UI test host-service harness

- remove the production RadrootsKitTesting target dependency
- add app-local Debug harness services for deterministic UI tests
- gate hidden probes and launch-environment hooks behind Debug code
- regenerate the Xcode project after the dependency split

</content>
</entry>
<entry>
<id>0f8bffd1cd4ac1d237d5d44fd9c68da70bf74a7a</id>
<published>2026-06-18T03:41:49Z</published>
<updated>2026-06-18T03:41:49Z</updated>
<title>field-ios: bridge background session lifecycle</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/0f8bffd1cd4ac1d237d5d44fd9c68da70bf74a7a.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 0f8bffd1cd4ac1d237d5d44fd9c68da70bf74a7a
parent d3b1aabb8347a6cf5033c0816fde6ab187e69f8c
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Wed, 17 Jun 2026 20:41:49 -0700

field-ios: bridge background session lifecycle

Forward iOS background URLSession lifecycle events through the shared background execution service and normalize the background execution UI test probe shape across success and failure paths.

</content>
</entry>
<entry>
<id>d3b1aabb8347a6cf5033c0816fde6ab187e69f8c</id>
<published>2026-06-18T01:20:49Z</published>
<updated>2026-06-18T01:20:49Z</updated>
<title>field-ios: align background probe with guard</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/d3b1aabb8347a6cf5033c0816fde6ab187e69f8c.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit d3b1aabb8347a6cf5033c0816fde6ab187e69f8c
parent 2b739836097054dda56a8aae85c4298750faea16
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Wed, 17 Jun 2026 18:20:49 -0700

field-ios: align background probe with guard

- rename background handler registration telemetry
- keep UI-test assertions on the registration behavior
- expire probe staged blobs through the test clock
- verify cleanup through AppleKit file access

</content>
</entry>
<entry>
<id>2b739836097054dda56a8aae85c4298750faea16</id>
<published>2026-06-18T01:05:39Z</published>
<updated>2026-06-18T01:05:39Z</updated>
<title>field-ios: add background execution UI test probe</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/2b739836097054dda56a8aae85c4298750faea16.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 2b739836097054dda56a8aae85c4298750faea16
parent 3d5215d146a05fff52cb1f6c238de1741fe84b6f
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Wed, 17 Jun 2026 18:05:39 -0700

field-ios: add background execution UI test probe

- expose a hidden deterministic background execution probe
- seed fake transfers and expired staged blobs for maintenance checks
- report redacted scheduling and cancellation probe state
- keep the probe behind field iOS UI-test launch configuration

</content>
</entry>
<entry>
<id>3d5215d146a05fff52cb1f6c238de1741fe84b6f</id>
<published>2026-06-18T00:30:18Z</published>
<updated>2026-06-18T00:30:18Z</updated>
<title>field-ios: add Nostr-only background maintenance</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/3d5215d146a05fff52cb1f6c238de1741fe84b6f.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 3d5215d146a05fff52cb1f6c238de1741fe84b6f
parent 46cd51708df7a001f3582a04474ed60d84698864
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Wed, 17 Jun 2026 17:30:18 -0700

field-ios: add Nostr-only background maintenance

- refresh Nostr relay status only when identity is unlocked
- inspect AppleKit transfer snapshots without remote upload behavior
- sweep expired AppleKit staged blobs during maintenance
- cancel scheduled background tasks during destructive identity reset

</content>
</entry>
<entry>
<id>46cd51708df7a001f3582a04474ed60d84698864</id>
<published>2026-06-18T00:24:13Z</published>
<updated>2026-06-18T00:24:13Z</updated>
<title>field-ios: add background execution coordinator shell</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/46cd51708df7a001f3582a04474ed60d84698864.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 46cd51708df7a001f3582a04474ed60d84698864
parent 7b6cb20ac3898f570961c9370a4665cb8a6556f3
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Wed, 17 Jun 2026 17:24:13 -0700

field-ios: add background execution coordinator shell

- configure permitted background task identifiers and modes
- add AppleKit-backed background execution coordinator
- schedule refresh and processing tasks from lifecycle events
- record local background execution telemetry outcomes

</content>
</entry>
<entry>
<id>7b6cb20ac3898f570961c9370a4665cb8a6556f3</id>
<published>2026-06-15T21:44:43Z</published>
<updated>2026-06-15T21:44:43Z</updated>
<title>telemetry: add deterministic UI test probe</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/7b6cb20ac3898f570961c9370a4665cb8a6556f3.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 7b6cb20ac3898f570961c9370a4665cb8a6556f3
parent 417d5882b824fd3e8e0ec9cd74a66a9b8da4d226
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Mon, 15 Jun 2026 14:44:43 -0700

telemetry: add deterministic UI test probe

- expose recorded UI-test telemetry through a hidden safe probe

- route document interchange probes through app telemetry wrappers

- publish structured event coverage and unsafe-value absence flags

- keep the telemetry proof out of product-facing UI

</content>
</entry>
<entry>
<id>417d5882b824fd3e8e0ec9cd74a66a9b8da4d226</id>
<published>2026-06-15T21:27:36Z</published>
<updated>2026-06-15T21:27:36Z</updated>
<title>telemetry: emit structured app events</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/417d5882b824fd3e8e0ec9cd74a66a9b8da4d226.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 417d5882b824fd3e8e0ec9cd74a66a9b8da4d226
parent 0feaf1efb7b4c3ceccda83fdb6e3c3635d8bc32e
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Mon, 15 Jun 2026 14:27:36 -0700

telemetry: emit structured app events

- add typed field telemetry event helpers
- record startup, relay, identity, user presence, capture, document, and external action outcomes
- keep telemetry fields to safe counts, booleans, and enum values
- suppress duplicate relay status telemetry between polling ticks

</content>
</entry>
<entry>
<id>0feaf1efb7b4c3ceccda83fdb6e3c3635d8bc32e</id>
<published>2026-06-15T21:19:06Z</published>
<updated>2026-06-15T21:19:06Z</updated>
<title>telemetry: route app logging through AppleKit</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/0feaf1efb7b4c3ceccda83fdb6e3c3635d8bc32e.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 0feaf1efb7b4c3ceccda83fdb6e3c3635d8bc32e
parent 3353c52c82cff9c50c6a44fdfc01f3131d107130
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Mon, 15 Jun 2026 14:19:06 -0700

telemetry: route app logging through AppleKit

- add a FieldTelemetry runtime facade backed by RadrootsKit telemetry
- configure UI-test recording telemetry and logging-filter level mapping
- keep Rust runtime logging initialization in LoggingSettings
- remove direct app OSLog and generated Rust helper logging calls

</content>
</entry>
<entry>
<id>3353c52c82cff9c50c6a44fdfc01f3131d107130</id>
<published>2026-06-15T20:25:14Z</published>
<updated>2026-06-15T20:25:14Z</updated>
<title>user-presence: gate identity actions</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/3353c52c82cff9c50c6a44fdfc01f3131d107130.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 3353c52c82cff9c50c6a44fdfc01f3131d107130
parent 06c1dc402ec42601719422a9f07d7c8093cfee52
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Mon, 15 Jun 2026 13:25:14 -0700

user-presence: gate identity actions

Require verified user presence before unlocking, saving, importing, or deleting local Nostr identity material.
Expose a small setup/settings status surface so deterministic UI tests can prove the requested gate outcome.

</content>
</entry>
<entry>
<id>06c1dc402ec42601719422a9f07d7c8093cfee52</id>
<published>2026-06-15T20:24:05Z</published>
<updated>2026-06-15T20:24:05Z</updated>
<title>user-presence: add identity gate</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/06c1dc402ec42601719422a9f07d7c8093cfee52.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 06c1dc402ec42601719422a9f07d7c8093cfee52
parent 9af86307f7de9b4914660fab768be1b9a048a401
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Mon, 15 Jun 2026 13:24:05 -0700

user-presence: add identity gate

Add the field-owned user-presence gate around the AppleKit service with deterministic UI-test fakes.
Add the Face ID usage string required for local Nostr identity custody.

</content>
</entry>
<entry>
<id>9af86307f7de9b4914660fab768be1b9a048a401</id>
<published>2026-06-15T00:18:13Z</published>
<updated>2026-06-15T00:18:13Z</updated>
<title>field-ios: stabilize app shell startup actions</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/9af86307f7de9b4914660fab768be1b9a048a401.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 9af86307f7de9b4914660fab768be1b9a048a401
parent 7754b85b01a45adc0160e6b084713cc9c53b5385
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 17:18:13 -0700

field-ios: stabilize app shell startup actions

- open local identity setup without blocking on relay connect

- keep relay status polling in the background

- preserve location check-in result state across view refreshes

- make location check-in use the full-row capture action affordance

</content>
</entry>
<entry>
<id>7754b85b01a45adc0160e6b084713cc9c53b5385</id>
<published>2026-06-14T22:51:53Z</published>
<updated>2026-06-14T22:51:53Z</updated>
<title>external-actions: stabilize location recovery ui</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/7754b85b01a45adc0160e6b084713cc9c53b5385.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 7754b85b01a45adc0160e6b084713cc9c53b5385
parent 927e7eaa35fa7b3e2631742f4792243980389fbf
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 15:51:53 -0700

external-actions: stabilize location recovery ui

- scope location check-in accessibility identifiers to the active tab surface
- render permission recovery as its own Capture row for stable XCUITest access
- keep app settings recovery behind the AppleKit External Actions boundary
- preserve the Swift-only Nostr field shell while tightening permission UX

</content>
</entry>
<entry>
<id>927e7eaa35fa7b3e2631742f4792243980389fbf</id>
<published>2026-06-14T21:55:07Z</published>
<updated>2026-06-14T21:55:07Z</updated>
<title>external-actions: wire recovery ui</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/927e7eaa35fa7b3e2631742f4792243980389fbf.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 927e7eaa35fa7b3e2631742f4792243980389fbf
parent 6dd31fc2461c0a5c0294c9083167ead645882b4f
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 14:55:07 -0700

external-actions: wire recovery ui

</content>
</entry>
<entry>
<id>6dd31fc2461c0a5c0294c9083167ead645882b4f</id>
<published>2026-06-14T21:53:14Z</published>
<updated>2026-06-14T21:53:14Z</updated>
<title>external-actions: add runtime boundary</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/6dd31fc2461c0a5c0294c9083167ead645882b4f.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 6dd31fc2461c0a5c0294c9083167ead645882b4f
parent 86efc576d4ce8fca722147fad69a354e9338e328
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 14:53:14 -0700

external-actions: add runtime boundary

</content>
</entry>
<entry>
<id>86efc576d4ce8fca722147fad69a354e9338e328</id>
<published>2026-06-14T20:13:43Z</published>
<updated>2026-06-14T20:13:43Z</updated>
<title>capture: add intake controls</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/86efc576d4ce8fca722147fad69a354e9338e328.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 86efc576d4ce8fca722147fad69a354e9338e328
parent 90e3de137b5eff6a35dafc61b98d3576a0b8f589
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 13:13:43 -0700

capture: add intake controls

- replace passive Capture rows with explicit intake actions
- show support, progress, error, and latest-record state
- add stable capture intake accessibility identifiers
- verify field_ios project/build through radroots-scripts

</content>
</entry>
<entry>
<id>90e3de137b5eff6a35dafc61b98d3576a0b8f589</id>
<published>2026-06-14T20:12:28Z</published>
<updated>2026-06-14T20:12:28Z</updated>
<title>capture: add field intake runtime</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/90e3de137b5eff6a35dafc61b98d3576a0b8f589.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 90e3de137b5eff6a35dafc61b98d3576a0b8f589
parent 974e7375deb4b519dc7fc931aa7d731a179adff5
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 13:12:28 -0700

capture: add field intake runtime

- add app-owned durable capture record storage
- wire AppleKit media and document scanner services
- add camera privacy metadata for invoked capture
- include RadrootsKitTesting for deterministic UI probes

</content>
</entry>
<entry>
<id>974e7375deb4b519dc7fc931aa7d731a179adff5</id>
<published>2026-06-14T11:04:13Z</published>
<updated>2026-06-14T11:04:13Z</updated>
<title>app: add location check-in test probes</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/974e7375deb4b519dc7fc931aa7d731a179adff5.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 974e7375deb4b519dc7fc931aa7d731a179adff5
parent dac6052952c6fd09b33371adb2018fbd03df9b23
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 04:04:13 -0700

app: add location check-in test probes

- add deterministic UI-test location service modes
- route AppState through the configured check-in runtime
- keep production location behavior on AppleKit services
- support success denied unavailable and timeout UI proofs

</content>
</entry>
<entry>
<id>dac6052952c6fd09b33371adb2018fbd03df9b23</id>
<published>2026-06-14T10:37:49Z</published>
<updated>2026-06-14T10:37:49Z</updated>
<title>ui: add visible location check-in flow</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/dac6052952c6fd09b33371adb2018fbd03df9b23.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit dac6052952c6fd09b33371adb2018fbd03df9b23
parent 5bfff42bbaaf0d653c296daef7aed641fdf3a3dc
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 03:37:49 -0700

ui: add visible location check-in flow

- replace placeholder location rows with a real check-in control
- surface location permission readiness and failure states
- show app-local coordinate and accuracy summaries after check-in
- add stable accessibility identifiers for the flow

</content>
</entry>
<entry>
<id>5bfff42bbaaf0d653c296daef7aed641fdf3a3dc</id>
<published>2026-06-14T10:36:14Z</published>
<updated>2026-06-14T10:36:14Z</updated>
<title>app: add location check-in runtime</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/5bfff42bbaaf0d653c296daef7aed641fdf3a3dc.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 5bfff42bbaaf0d653c296daef7aed641fdf3a3dc
parent f7cd11a2876bf91ff6019af674c8b76a614d8c96
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 03:36:14 -0700

app: add location check-in runtime

- add the field location check-in runtime boundary
- expose check-in status and actions through AppState
- add the When In Use location privacy string
- regenerate the Xcode project for the new runtime source

</content>
</entry>
<entry>
<id>f7cd11a2876bf91ff6019af674c8b76a614d8c96</id>
<published>2026-06-14T09:44:30Z</published>
<updated>2026-06-14T09:44:30Z</updated>
<title>test: route probe checks through AppleKit</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/f7cd11a2876bf91ff6019af674c8b76a614d8c96.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit f7cd11a2876bf91ff6019af674c8b76a614d8c96
parent ab5e35352d9ab684a1ecfbd03cda1b2f9683f1b4
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 02:44:30 -0700

test: route probe checks through AppleKit

Use RadrootsFileAccess prepared export checks in the document interchange UI-test probe.

Advance the AppleKit package pin to the host-service API required by the app.

</content>
</entry>
<entry>
<id>ab5e35352d9ab684a1ecfbd03cda1b2f9683f1b4</id>
<published>2026-06-14T09:37:50Z</published>
<updated>2026-06-14T09:37:50Z</updated>
<title>test: expose document interchange probe</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/ab5e35352d9ab684a1ecfbd03cda1b2f9683f1b4.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit ab5e35352d9ab684a1ecfbd03cda1b2f9683f1b4
parent 6ed849e562b2ed7f6da36fc36c79e4daadb8b78d
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 02:37:50 -0700

test: expose document interchange probe

- add a UI-test-only document interchange probe for export import and share contracts

- surface probe results through hidden accessibility state

- include the probe source in the generated Xcode project

</content>
</entry>
<entry>
<id>6ed849e562b2ed7f6da36fc36c79e4daadb8b78d</id>
<published>2026-06-14T09:28:17Z</published>
<updated>2026-06-14T09:28:17Z</updated>
<title>ui: add document interchange flows</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/6ed849e562b2ed7f6da36fc36c79e4daadb8b78d.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 6ed849e562b2ed7f6da36fc36c79e4daadb8b78d
parent 33fdd9f3010502e248502fe19a7368006fc1cc7f
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 02:28:17 -0700

ui: add document interchange flows

- add diagnostics and relay config export controls

- add relay config import presentation and validation feedback

- route post sharing through AppleKit presentation

- expose stable identifiers for document interchange tests

</content>
</entry>
<entry>
<id>33fdd9f3010502e248502fe19a7368006fc1cc7f</id>
<published>2026-06-14T09:23:20Z</published>
<updated>2026-06-14T09:23:20Z</updated>
<title>app: add document interchange runtime</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/33fdd9f3010502e248502fe19a7368006fc1cc7f.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 33fdd9f3010502e248502fe19a7368006fc1cc7f
parent e54953ce64691ee034353cae7a652519559e2e61
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 02:23:20 -0700

app: add document interchange runtime

- add Nostr-safe diagnostics and relay config export preparation
- validate imported relay config JSON without backend dependencies
- expose AppState document interchange entry points for SwiftUI screens
- include the runtime file in the generated Xcode project

</content>
</entry>
<entry>
<id>e54953ce64691ee034353cae7a652519559e2e61</id>
<published>2026-06-14T08:38:39Z</published>
<updated>2026-06-14T08:38:39Z</updated>
<title>test: expose file access probe</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/e54953ce64691ee034353cae7a652519559e2e61.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit e54953ce64691ee034353cae7a652519559e2e61
parent def6c140a95ae67be2034828ca58e7e60f743170
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 01:38:39 -0700

test: expose file access probe

- add a UI-test-only AppleKit file access probe
- report logging and reset sentinel state through accessibility
- keep identity reset scoped to secure identity material
- regenerate the app project for the new probe source

</content>
</entry>
<entry>
<id>def6c140a95ae67be2034828ca58e7e60f743170</id>
<published>2026-06-14T08:15:19Z</published>
<updated>2026-06-14T08:15:19Z</updated>
<title>app: route file roots through apple kit</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/def6c140a95ae67be2034828ca58e7e60f743170.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit def6c140a95ae67be2034828ca58e7e60f743170
parent 412a1a940cbbc016bcdecccf081ea34936a336f5
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 14 Jun 2026 01:15:19 -0700

app: route file roots through apple kit

- add the field local state AppleKit boundary

- use AppleKit file roots for log file placement

- split destructive local reset from identity-only reset

- pin the app to the AppleKit file-access package revision

</content>
</entry>
<entry>
<id>412a1a940cbbc016bcdecccf081ea34936a336f5</id>
<published>2026-06-13T22:40:55Z</published>
<updated>2026-06-13T22:40:55Z</updated>
<title>ui: expose identity state accessibility</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/412a1a940cbbc016bcdecccf081ea34936a336f5.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 412a1a940cbbc016bcdecccf081ea34936a336f5
parent 2d120b23e4004995ba48a81dca90fde1d66f8a76
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sat, 13 Jun 2026 15:40:55 -0700

ui: expose identity state accessibility

- add stable accessibility identifiers for identity state rows
- expose saved and runtime identity values to UI tests
- preserve the visible Settings identity copy
- keep existing settings action identifiers unchanged

</content>
</entry>
<entry>
<id>2d120b23e4004995ba48a81dca90fde1d66f8a76</id>
<published>2026-06-13T22:21:56Z</published>
<updated>2026-06-13T22:21:56Z</updated>
<title>ui: align identity setup copy</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/2d120b23e4004995ba48a81dca90fde1d66f8a76.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 2d120b23e4004995ba48a81dca90fde1d66f8a76
parent ef2fb7e6f3f70be6530edfbe4d172f404914dc66
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sat, 13 Jun 2026 15:21:56 -0700

ui: align identity setup copy

- rename stored-identity setup affordances around on-device unlock behavior
- make settings status rows describe saved versus runtime identity state
- replace sign-out copy with lock semantics while preserving the stable action id
- rename destructive reset copy to identity deletion without exposing raw secrets

</content>
</entry>
<entry>
<id>ef2fb7e6f3f70be6530edfbe4d172f404914dc66</id>
<published>2026-06-13T22:17:56Z</published>
<updated>2026-06-13T22:17:56Z</updated>
<title>app: route identity through secure store</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/ef2fb7e6f3f70be6530edfbe4d172f404914dc66.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit ef2fb7e6f3f70be6530edfbe4d172f404914dc66
parent e1ce6d1f43d910aef6960c94af0052d618b958a6
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sat, 13 Jun 2026 15:17:56 -0700

app: route identity through secure store

- replace custody-store naming with secure identity storage
- call host-custody FFI methods for validation and restore
- separate durable secret storage from public metadata updates
- lock and reset transient runtime identity through explicit APIs

</content>
</entry>
<entry>
<id>e1ce6d1f43d910aef6960c94af0052d618b958a6</id>
<published>2026-06-13T20:51:05Z</published>
<updated>2026-06-13T20:51:05Z</updated>
<title>app: add launch splash screen</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/e1ce6d1f43d910aef6960c94af0052d618b958a6.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit e1ce6d1f43d910aef6960c94af0052d618b958a6
parent bd3bf69ee2013b80afb96278658cc4db82a8157b
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sat, 13 Jun 2026 13:51:05 -0700

app: add launch splash screen

- point the native launch screen at generated splash assets
- render bootstrap startup with the branded logomark
- add a UI-test-only splash hold for deterministic checks
- track the splash asset catalog resources

</content>
</entry>
<entry>
<id>bd3bf69ee2013b80afb96278658cc4db82a8157b</id>
<published>2026-06-13T09:31:06Z</published>
<updated>2026-06-13T09:31:06Z</updated>
<title>ffi: update field lib source lock</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/bd3bf69ee2013b80afb96278658cc4db82a8157b.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit bd3bf69ee2013b80afb96278658cc4db82a8157b
parent 5642f537c0f1da2ce610ac0139e95075b3f022dd
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sat, 13 Jun 2026 02:31:06 -0700

ffi: update field lib source lock

- pin RadrootsFFI generation to the field_lib custody boundary commit
- keep standalone git-mode FFI generation aligned with the local binding surface
- preserve the existing field_lib repository source mode and feature set
- avoid reintroducing the retired selected-secret export binding from older pins

</content>
</entry>
<entry>
<id>5642f537c0f1da2ce610ac0139e95075b3f022dd</id>
<published>2026-06-13T09:21:06Z</published>
<updated>2026-06-13T09:21:06Z</updated>
<title>app: harden nostr key custody state</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/5642f537c0f1da2ce610ac0139e95075b3f022dd.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 5642f537c0f1da2ce610ac0139e95075b3f022dd
parent cdd53a3d82c49dbd5901e907fa605b80b543e638
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sat, 13 Jun 2026 02:21:06 -0700

app: harden nostr key custody state

</content>
</entry>
<entry>
<id>cdd53a3d82c49dbd5901e907fa605b80b543e638</id>
<published>2026-06-12T08:09:15Z</published>
<updated>2026-06-12T08:09:15Z</updated>
<title>config: use remote RadrootsKit package</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/cdd53a3d82c49dbd5901e907fa605b80b543e638.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit cdd53a3d82c49dbd5901e907fa605b80b543e638
parent 45b2e978a75c4169c9db07a483357d0019cb1036
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Fri, 12 Jun 2026 01:09:15 -0700

config: use remote RadrootsKit package

</content>
</entry>
<entry>
<id>45b2e978a75c4169c9db07a483357d0019cb1036</id>
<published>2026-06-12T07:34:00Z</published>
<updated>2026-06-12T07:34:00Z</updated>
<title>app: polish diagnostics and bundle posture</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/45b2e978a75c4169c9db07a483357d0019cb1036.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 45b2e978a75c4169c9db07a483357d0019cb1036
parent fef4d58901aab7548697ac4d8fe9244ca0d3b172
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Fri, 12 Jun 2026 00:34:00 -0700

app: polish diagnostics and bundle posture

- move raw runtime metadata behind debug Settings diagnostics

- keep normal Today UI focused on relay posture

- set the Release bundle id while preserving the local Debug id

</content>
</entry>
<entry>
<id>fef4d58901aab7548697ac4d8fe9244ca0d3b172</id>
<published>2026-06-12T07:28:02Z</published>
<updated>2026-06-12T07:28:02Z</updated>
<title>app: support nostr ui-test startup states</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/fef4d58901aab7548697ac4d8fe9244ca0d3b172.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit fef4d58901aab7548697ac4d8fe9244ca0d3b172
parent da64b73eb5af90f07efe9cdb028425767c5d07e0
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Fri, 12 Jun 2026 00:28:02 -0700

app: support nostr ui-test startup states

- avoid relay configuration before a local identity exists

- add a guarded deterministic startup-failure path for UI acceptance

- keep first launch on the Nostr identity setup surface

</content>
</entry>
<entry>
<id>da64b73eb5af90f07efe9cdb028425767c5d07e0</id>
<published>2026-06-12T07:05:46Z</published>
<updated>2026-06-12T07:05:46Z</updated>
<title>app: persist nostr identity in keychain</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/da64b73eb5af90f07efe9cdb028425767c5d07e0.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit da64b73eb5af90f07efe9cdb028425767c5d07e0
parent f389c69a922cf47ce41de9d7db9c9f6ef64390d0
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Fri, 12 Jun 2026 00:05:46 -0700

app: persist nostr identity in keychain

- add field-specific Nostr identity custody over RadrootsKit secure storage

- restore the selected identity into field_lib on launch

- make reset-local-state clear keychain custody and FFI identity state

</content>
</entry>
<entry>
<id>f389c69a922cf47ce41de9d7db9c9f6ef64390d0</id>
<published>2026-06-12T06:57:12Z</published>
<updated>2026-06-12T06:57:12Z</updated>
<title>app: replace auth login with nostr onboarding</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/f389c69a922cf47ce41de9d7db9c9f6ef64390d0.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit f389c69a922cf47ce41de9d7db9c9f6ef64390d0
parent adb5bbcfe2602417de3e62222542ec001b217e29
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 11 Jun 2026 23:57:12 -0700

app: replace auth login with nostr onboarding

- add an async runtime service for serialized Rust FFI calls

- replace accounts login state with local Nostr identity setup

- make sign out non-destructive and identity reset explicit

- remove auth endpoint config and session token storage from Swift

</content>
</entry>
<entry>
<id>adb5bbcfe2602417de3e62222542ec001b217e29</id>
<published>2026-06-12T06:32:34Z</published>
<updated>2026-06-12T06:32:34Z</updated>
<title>config: remove auth endpoint inputs</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/adb5bbcfe2602417de3e62222542ec001b217e29.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit adb5bbcfe2602417de3e62222542ec001b217e29
parent a954168d99cc6fbca4261212012d1b4ede6dd23d
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 11 Jun 2026 23:32:34 -0700

config: remove auth endpoint inputs

</content>
</entry>
<entry>
<id>a954168d99cc6fbca4261212012d1b4ede6dd23d</id>
<published>2026-06-12T04:58:01Z</published>
<updated>2026-06-12T04:58:01Z</updated>
<title>ui: align field shell tabs</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/a954168d99cc6fbca4261212012d1b4ede6dd23d.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit a954168d99cc6fbca4261212012d1b4ede6dd23d
parent 834ad56bfb220169bcdaba367eaaa781a0cf46e9
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 11 Jun 2026 21:58:01 -0700

ui: align field shell tabs

Replace the retired feed/market tab scaffold with the approved Today, Capture, Activity, and Settings field shell posture.

Keep runtime diagnostics visible on Today while reserving field workflow surfaces for capture and activity.

</content>
</entry>
<entry>
<id>834ad56bfb220169bcdaba367eaaa781a0cf46e9</id>
<published>2026-06-12T04:47:26Z</published>
<updated>2026-06-12T04:47:26Z</updated>
<title>app: replace setup with field login</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/834ad56bfb220169bcdaba367eaaa781a0cf46e9.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 834ad56bfb220169bcdaba367eaaa781a0cf46e9
parent 8395046f2ab6a6bfc11d26a3c1ce15a23e07806c
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 11 Jun 2026 21:47:26 -0700

app: replace setup with field login

- Removes the app-local RadrootsKit package and moves app-specific Swift into the Radroots target.
- Links generated field_lib FFI artifacts directly from app-owned generated locations.
- Adds field auth API config and Keychain-backed session token storage through apple_kit.
- Replaces raw Nostr key setup and secret export UI with login challenge verification.

</content>
</entry>
<entry>
<id>8395046f2ab6a6bfc11d26a3c1ce15a23e07806c</id>
<published>2026-06-12T01:55:50Z</published>
<updated>2026-06-12T01:55:50Z</updated>
<title>ui: connect Nostr after identity setup</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/8395046f2ab6a6bfc11d26a3c1ce15a23e07806c.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 8395046f2ab6a6bfc11d26a3c1ce15a23e07806c
parent c19cfabd6d0209f9a753615a1f191ad6e99726e9
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 11 Jun 2026 18:55:50 -0700

ui: connect Nostr after identity setup

- activate relay connection startup after generated or imported identities
- expose relay counters and configured URLs as accessibility values
- keep setup completion on the shared app activation path
- support outer XCUITest verification of relay connectivity

</content>
</entry>
<entry>
<id>c19cfabd6d0209f9a753615a1f191ad6e99726e9</id>
<published>2026-06-12T01:10:47Z</published>
<updated>2026-06-12T01:10:47Z</updated>
<title>ui: add stable test accessibility anchors</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/c19cfabd6d0209f9a753615a1f191ad6e99726e9.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit c19cfabd6d0209f9a753615a1f191ad6e99726e9
parent d050f57a84f7c52bb74ab9d7a8452329aeaa559a
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 11 Jun 2026 18:10:47 -0700

ui: add stable test accessibility anchors

- identify the app bootstrap and setup surfaces for UI tests
- identify the field dashboard tab container
- identify feed, market, and settings roots
- keep test source ownership outside the app repository

</content>
</entry>
<entry>
<id>d050f57a84f7c52bb74ab9d7a8452329aeaa559a</id>
<published>2026-06-12T01:10:06Z</published>
<updated>2026-06-12T01:10:06Z</updated>
<title>tests: remove app-local unit test target</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/d050f57a84f7c52bb74ab9d7a8452329aeaa559a.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit d050f57a84f7c52bb74ab9d7a8452329aeaa559a
parent 68ef3d38e770c5727725fbc29658371b3539b2ed
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 11 Jun 2026 18:10:06 -0700

tests: remove app-local unit test target

- drop the placeholder RadrootsTests target from XcodeGen
- remove the app-local smoke test bundle source
- regenerate the Radroots scheme without local test ownership
- leave integration testing to the outer monorepo harness

</content>
</entry>
<entry>
<id>68ef3d38e770c5727725fbc29658371b3539b2ed</id>
<published>2026-06-12T01:00:23Z</published>
<updated>2026-06-12T01:00:23Z</updated>
<title>config: track local xcconfig project reference</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/68ef3d38e770c5727725fbc29658371b3539b2ed.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 68ef3d38e770c5727725fbc29658371b3539b2ed
parent 2f49510b1017cae4d47fa40aa5f61d2f7349ab3c
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 11 Jun 2026 18:00:23 -0700

config: track local xcconfig project reference

- add the XcodeGen local xcconfig reference to the generated project
- keep the local override file ignored and materialized by monorepo scripts

</content>
</entry>
<entry>
<id>2f49510b1017cae4d47fa40aa5f61d2f7349ab3c</id>
<published>2026-06-12T00:51:08Z</published>
<updated>2026-06-12T00:51:08Z</updated>
<title>config: namespace runtime settings</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/2f49510b1017cae4d47fa40aa5f61d2f7349ab3c.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 2f49510b1017cae4d47fa40aa5f61d2f7349ab3c
parent 5aacafcae2d58bed72370a73f8928a9ce0ff283e
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 11 Jun 2026 17:51:08 -0700

config: namespace runtime settings

- replace legacy relay, logging, and trade keys with RADROOTS_FIELD_IOS names
- prefer launch environment values over Info.plist build substitutions
- keep Debug local overrides separate from Release production defaults
- use wss://radroots.org as the checked-in production relay default

</content>
</entry>
<entry>
<id>5aacafcae2d58bed72370a73f8928a9ce0ff283e</id>
<published>2026-06-12T00:29:42Z</published>
<updated>2026-06-12T00:29:42Z</updated>
<title>assets: add generated app iconset</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/5aacafcae2d58bed72370a73f8928a9ce0ff283e.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 5aacafcae2d58bed72370a73f8928a9ce0ff283e
parent 7e227f2fa595721422bae86520bab5d1e6daf59d
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 11 Jun 2026 17:29:42 -0700

assets: add generated app iconset

- add generated default, dark, and tinted AppIcon PNG assets
- switch AppIcon.appiconset to the current universal iOS catalog shape
- keep the asset catalog as tracked app resources only
- leave generation ownership outside this repository

</content>
</entry>
<entry>
<id>7e227f2fa595721422bae86520bab5d1e6daf59d</id>
<published>2026-06-12T00:05:26Z</published>
<updated>2026-06-12T00:05:26Z</updated>
<title>build: make field ios testable</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/7e227f2fa595721422bae86520bab5d1e6daf59d.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 7e227f2fa595721422bae86520bab5d1e6daf59d
parent 0d04c79f62c02ed6f7214c99aad409248e5fcee2
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 11 Jun 2026 17:05:26 -0700

build: make field ios testable

- clear stale UniFFI generated output before installing Swift bindings
- add a Radroots smoke test target for the Xcode test action
- commit the regenerated XcodeGen project and shared scheme
- keep generated FFI artifacts ignored outside source control

</content>
</entry>
<entry>
<id>0d04c79f62c02ed6f7214c99aad409248e5fcee2</id>
<published>2026-06-11T23:49:16Z</published>
<updated>2026-06-11T23:49:16Z</updated>
<title>build: sync generated xcode project</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/0d04c79f62c02ed6f7214c99aad409248e5fcee2.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 0d04c79f62c02ed6f7214c99aad409248e5fcee2
parent ce6b27509c6f7860ccaa02e8835cf08b7b25c6b2
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 11 Jun 2026 16:49:16 -0700

build: sync generated xcode project

- include the generated git SHA xcconfig reference in the project
- keep the committed XcodeGen output aligned with project.yml
- leave the generated xcconfig itself ignored
- preserve the Swift-only app source boundary

</content>
</entry>
<entry>
<id>ce6b27509c6f7860ccaa02e8835cf08b7b25c6b2</id>
<published>2026-06-11T23:38:12Z</published>
<updated>2026-06-11T23:38:12Z</updated>
<title>ios: align app shell with field runtime</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/ce6b27509c6f7860ccaa02e8835cf08b7b25c6b2.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit ce6b27509c6f7860ccaa02e8835cf08b7b25c6b2
parent e15e04f32fcdfe1bb055b47b2dc015ea7ba9d12d
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Thu, 11 Jun 2026 16:38:12 -0700

ios: align app shell with field runtime

</content>
</entry>
<entry>
<id>e15e04f32fcdfe1bb055b47b2dc015ea7ba9d12d</id>
<published>2026-02-16T00:40:04Z</published>
<updated>2026-02-16T00:40:04Z</updated>
<title>build: replace ios ffi wrapper with makefile pipeline</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/e15e04f32fcdfe1bb055b47b2dc015ea7ba9d12d.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit e15e04f32fcdfe1bb055b47b2dc015ea7ba9d12d
parent a741b7cab63983c0e58ebc99500bb3c81976c1c6
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Mon, 16 Feb 2026 00:40:04 +0000

build: replace ios ffi wrapper with makefile pipeline

</content>
</entry>
<entry>
<id>a741b7cab63983c0e58ebc99500bb3c81976c1c6</id>
<published>2026-02-15T19:59:31Z</published>
<updated>2026-02-15T19:59:31Z</updated>
<title>build: repoint RadrootsCore ffi sources</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/a741b7cab63983c0e58ebc99500bb3c81976c1c6.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit a741b7cab63983c0e58ebc99500bb3c81976c1c6
parent be7593e1e34711a0deebe40d135421784c7cd805
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 15 Feb 2026 19:59:31 +0000

build: repoint RadrootsCore ffi sources

- update RadrootsCore Cargo workspace dependency for radroots-app-ffi-swift
- align ios wrapper make targets with the shared ffi source layout
- refresh RadrootsCore README build paths and dependency wording
- verify with cargo metadata on RadrootsCore manifest

</content>
</entry>
<entry>
<id>be7593e1e34711a0deebe40d135421784c7cd805</id>
<published>2026-02-15T19:06:48Z</published>
<updated>2026-02-15T19:06:48Z</updated>
<title>build: minimize ios wrapper docs and makefiles</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/be7593e1e34711a0deebe40d135421784c7cd805.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit be7593e1e34711a0deebe40d135421784c7cd805
parent 0b9a9e2e209f87979ef3105a698a98b683214a4a
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 15 Feb 2026 19:06:48 +0000

build: minimize ios wrapper docs and makefiles

</content>
</entry>
<entry>
<id>0b9a9e2e209f87979ef3105a698a98b683214a4a</id>
<published>2026-02-15T18:59:08Z</published>
<updated>2026-02-15T18:59:08Z</updated>
<title>core: remove direct ffi dependency from wrapper</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/0b9a9e2e209f87979ef3105a698a98b683214a4a.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 0b9a9e2e209f87979ef3105a698a98b683214a4a
parent a28264830bb9f5a8b0812f0937835a62fde16d2a
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 15 Feb 2026 18:59:08 +0000

core: remove direct ffi dependency from wrapper

- drop radroots-app-ffi-swift from wrapper runtime dependencies
- keep ffi crate anchored in workspace dependencies for path and version migration
- refresh wrapper lockfile after dependency graph change
- document manifest-path build pattern in radrootscore readme

</content>
</entry>
<entry>
<id>a28264830bb9f5a8b0812f0937835a62fde16d2a</id>
<published>2026-02-15T18:28:14Z</published>
<updated>2026-02-15T18:28:14Z</updated>
<title>build: align radrootscore makefile to shared ffi crate</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/a28264830bb9f5a8b0812f0937835a62fde16d2a.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit a28264830bb9f5a8b0812f0937835a62fde16d2a
parent 649b96d46fe36367daafcda6f7713dcb210f7a71
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 15 Feb 2026 18:28:14 +0000

build: align radrootscore makefile to shared ffi crate

- build ios ffi artifacts through crates/app-ffi-swift manifest path
- keep arm64 ios device and arm64 simulator targets as the default matrix
- keep rust build cache under ios/radrootscore/target and outputs in radrootskit
- update radrootscore readme to document the wrapper-driven shared crate flow

</content>
</entry>
<entry>
<id>649b96d46fe36367daafcda6f7713dcb210f7a71</id>
<published>2026-02-15T18:15:58Z</published>
<updated>2026-02-15T18:15:58Z</updated>
<title>core: add radrootscore rust wrapper manifest</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/649b96d46fe36367daafcda6f7713dcb210f7a71.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit 649b96d46fe36367daafcda6f7713dcb210f7a71
parent d43ec1f95872c1f8701b08096c0bae8a1b532bd2
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 15 Feb 2026 18:15:58 +0000

core: add radrootscore rust wrapper manifest

- add ios/radrootscore cargo manifest with local workspace dependency paths
- declare radroots-app-ffi-swift as the wrapper dependency anchor for ios builds
- add rust toolchain config aligned to 1.92 with arm64 ios targets
- add minimal wrapper crate source and document local-path to crates-io migration flow

</content>
</entry>
<entry>
<id>d43ec1f95872c1f8701b08096c0bae8a1b532bd2</id>
<published>2026-02-15T17:41:16Z</published>
<updated>2026-02-15T17:41:16Z</updated>
<title>ios: replace radrootscore submodule with tracked wrapper</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/d43ec1f95872c1f8701b08096c0bae8a1b532bd2.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit d43ec1f95872c1f8701b08096c0bae8a1b532bd2
parent bc2bb9145e26626e81c43289441e9b28ff020eda
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 15 Feb 2026 17:41:16 +0000

ios: replace radrootscore submodule with tracked wrapper

- remove the radrootscore git submodule and drop .gitmodules
- add ios/radrootscore makefile wrapper that builds crates/app-ffi-swift
- route root ios make targets through the radrootscore wrapper makefile
- document wrapper usage and shared crate mapping in ios/radrootscore/readme

</content>
</entry>
<entry>
<id>bc2bb9145e26626e81c43289441e9b28ff020eda</id>
<published>2026-02-15T16:23:04Z</published>
<updated>2026-02-15T16:23:04Z</updated>
<title>app: add market trade listing flows and rhi config</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/bc2bb9145e26626e81c43289441e9b28ff020eda.html" />
<author>
<name>triesap</name>
<email>tyson@radroots.org</email>
</author>
<content>commit bc2bb9145e26626e81c43289441e9b28ff020eda
parent f476611d115f0c9030a8c45ca9da0a15efb6da0f
Author: triesap &lt;tyson@radroots.org&gt;
Date:   Sun, 15 Feb 2026 16:23:04 +0000

app: add market trade listing flows and rhi config

</content>
</entry>
<entry>
<id>f476611d115f0c9030a8c45ca9da0a15efb6da0f</id>
<published>2025-12-25T01:53:26Z</published>
<updated>2025-12-25T01:53:26Z</updated>
<title>kit: add Swift nostr posting and stream helpers</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/f476611d115f0c9030a8c45ca9da0a15efb6da0f.html" />
<author>
<name>triesap</name>
<email>triesap@radroots.dev</email>
</author>
<content>commit f476611d115f0c9030a8c45ca9da0a15efb6da0f
parent 7104657813fd3f783ecf9a23f164ec40519ddc01
Author: triesap &lt;triesap@radroots.dev&gt;
Date:   Thu, 25 Dec 2025 01:53:26 +0000

kit: add Swift nostr posting and stream helpers

- Bump RadrootsCore submodule to latest runtime APIs
- Add NostrEventId wrapper for typed event identifiers
- Expose profile/text/reply posting helpers on Radroots
- Add start/next/stop post stream helpers with runtime guard

</content>
</entry>
<entry>
<id>7104657813fd3f783ecf9a23f164ec40519ddc01</id>
<published>2025-11-03T04:01:55Z</published>
<updated>2025-11-03T04:01:55Z</updated>
<title>Update git submodules reference</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/7104657813fd3f783ecf9a23f164ec40519ddc01.html" />
<author>
<name>triesap</name>
<email>triesap@radroots.dev</email>
</author>
<content>commit 7104657813fd3f783ecf9a23f164ec40519ddc01
parent 1d70711d6ca55c959efa53da08454a2eca3bf1bc
Author: triesap &lt;triesap@radroots.dev&gt;
Date:   Mon,  3 Nov 2025 04:01:55 +0000

Update git submodules reference

</content>
</entry>
<entry>
<id>1d70711d6ca55c959efa53da08454a2eca3bf1bc</id>
<published>2025-10-06T17:18:01Z</published>
<updated>2025-10-06T17:18:01Z</updated>
<title>Refactor post feed view model with main-actor–bound async tasks, detached concurrency for replies and live updates, and structured result handling. Update settings view with a copyable npub field and removal of redundant state.</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/1d70711d6ca55c959efa53da08454a2eca3bf1bc.html" />
<author>
<name>triesap</name>
<email>triesap@radroots.dev</email>
</author>
<content>commit 1d70711d6ca55c959efa53da08454a2eca3bf1bc
parent d95083797276a0b3061f3ff7ea941f7a48cf10a9
Author: triesap &lt;triesap@radroots.dev&gt;
Date:   Mon,  6 Oct 2025 18:18:01 +0100

Refactor post feed view model with main-actor–bound async tasks, detached concurrency for replies and live updates, and structured result handling. Update settings view with a copyable npub field and removal of redundant state.

</content>
</entry>
<entry>
<id>d95083797276a0b3061f3ff7ea941f7a48cf10a9</id>
<published>2025-10-06T14:18:10Z</published>
<updated>2025-10-06T14:18:10Z</updated>
<title>Refactor post feed to use a view model for state, loading, and live updates. Add model handling async fetch, replies, and refresh loop.</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/d95083797276a0b3061f3ff7ea941f7a48cf10a9.html" />
<author>
<name>triesap</name>
<email>triesap@radroots.dev</email>
</author>
<content>commit d95083797276a0b3061f3ff7ea941f7a48cf10a9
parent ccdbdcf88355d226de8e32fbad70da1e504cb2f9
Author: triesap &lt;triesap@radroots.dev&gt;
Date:   Mon,  6 Oct 2025 15:18:10 +0100

Refactor post feed to use a view model for state, loading, and live updates. Add model handling async fetch, replies, and refresh loop.

</content>
</entry>
<entry>
<id>ccdbdcf88355d226de8e32fbad70da1e504cb2f9</id>
<published>2025-10-06T13:13:17Z</published>
<updated>2025-10-06T13:13:17Z</updated>
<title>Refactor post feed with inline reply composer. Integrate structured debug dump utility for post metadata logging.</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/ccdbdcf88355d226de8e32fbad70da1e504cb2f9.html" />
<author>
<name>triesap</name>
<email>triesap@radroots.dev</email>
</author>
<content>commit ccdbdcf88355d226de8e32fbad70da1e504cb2f9
parent 9beecc9c6a5218a47efd6820c79af8465013feb1
Author: triesap &lt;triesap@radroots.dev&gt;
Date:   Mon,  6 Oct 2025 14:13:17 +0100

Refactor post feed with inline reply composer. Integrate structured debug dump utility for post metadata logging.

</content>
</entry>
<entry>
<id>9beecc9c6a5218a47efd6820c79af8465013feb1</id>
<published>2025-10-05T21:20:22Z</published>
<updated>2025-10-05T21:20:22Z</updated>
<title>Add Nostr post feed and detail views with post display and sharing, introduce copy and toast UI components, and update home and profile views for new metadata integration.</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/9beecc9c6a5218a47efd6820c79af8465013feb1.html" />
<author>
<name>triesap</name>
<email>triesap@radroots.dev</email>
</author>
<content>commit 9beecc9c6a5218a47efd6820c79af8465013feb1
parent 8c8084df6f9fa981b448795237ee9c2ab18b2714
Author: triesap &lt;triesap@radroots.dev&gt;
Date:   Sun,  5 Oct 2025 22:20:22 +0100

Add Nostr post feed and detail views with post display and sharing, introduce copy and toast UI components, and update home and profile views for new metadata integration.

</content>
</entry>
<entry>
<id>8c8084df6f9fa981b448795237ee9c2ab18b2714</id>
<published>2025-10-04T21:12:04Z</published>
<updated>2025-10-04T21:12:04Z</updated>
<title>Add `PostView` for composing and posting text notes.</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/8c8084df6f9fa981b448795237ee9c2ab18b2714.html" />
<author>
<name>triesap</name>
<email>triesap@radroots.dev</email>
</author>
<content>commit 8c8084df6f9fa981b448795237ee9c2ab18b2714
parent 8550af403b49a80aab0324eecd441376b341fe97
Author: triesap &lt;triesap@radroots.dev&gt;
Date:   Sat,  4 Oct 2025 22:12:04 +0100

Add `PostView` for composing and posting text notes.

</content>
</entry>
<entry>
<id>8550af403b49a80aab0324eecd441376b341fe97</id>
<published>2025-10-04T20:20:00Z</published>
<updated>2025-10-04T20:20:00Z</updated>
<title>Refactor SwiftUI views to fix console errors in navigation and form layouts.</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/8550af403b49a80aab0324eecd441376b341fe97.html" />
<author>
<name>triesap</name>
<email>triesap@radroots.dev</email>
</author>
<content>commit 8550af403b49a80aab0324eecd441376b341fe97
parent 8a94e2310397bf7205bbc635a2a682a0bbc670bc
Author: triesap &lt;triesap@radroots.dev&gt;
Date:   Sat,  4 Oct 2025 21:20:00 +0100

Refactor SwiftUI views to fix console errors in navigation and form layouts.

</content>
</entry>
<entry>
<id>8a94e2310397bf7205bbc635a2a682a0bbc670bc</id>
<published>2025-10-04T20:12:34Z</published>
<updated>2025-10-04T20:12:34Z</updated>
<title>Add build-time configuration system with new xcconfig files, dynamic logging initialization, and relay/environment settings integration. Replace legacy app root with a gated app entry and expand UI with updated profile, relay, and setup views plus shared navigation and button components.</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/8a94e2310397bf7205bbc635a2a682a0bbc670bc.html" />
<author>
<name>triesap</name>
<email>triesap@radroots.dev</email>
</author>
<content>commit 8a94e2310397bf7205bbc635a2a682a0bbc670bc
parent 948ebebe06c1046ba0c346c7fbff931815c3c724
Author: triesap &lt;triesap@radroots.dev&gt;
Date:   Sat,  4 Oct 2025 21:12:34 +0100

Add build-time configuration system with new xcconfig files, dynamic logging initialization, and relay/environment settings integration. Replace legacy app root with a gated app entry and expand UI with updated profile, relay, and setup views plus shared navigation and button components.

</content>
</entry>
<entry>
<id>948ebebe06c1046ba0c346c7fbff931815c3c724</id>
<published>2025-10-03T23:14:01Z</published>
<updated>2025-10-03T23:14:01Z</updated>
<title>Add home, profile, and tab navigation views with a refactored app entry, replacing the legacy root container with a tabbed navigation stack. Refactor settings, setup, and state management to support account lifecycle, key import/export with keychain persistence, and async task–based status polling.</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/948ebebe06c1046ba0c346c7fbff931815c3c724.html" />
<author>
<name>triesap</name>
<email>triesap@radroots.dev</email>
</author>
<content>commit 948ebebe06c1046ba0c346c7fbff931815c3c724
parent 4779c742f1063b5672870fdbd4297b267d8e1b38
Author: triesap &lt;triesap@radroots.dev&gt;
Date:   Sat,  4 Oct 2025 00:14:01 +0100

Add home, profile, and tab navigation views with a refactored app entry, replacing the legacy root container with a tabbed navigation stack. Refactor settings, setup, and state management to support account lifecycle, key import/export with keychain persistence, and async task–based status polling.

</content>
</entry>
<entry>
<id>4779c742f1063b5672870fdbd4297b267d8e1b38</id>
<published>2025-10-03T21:03:42Z</published>
<updated>2025-10-03T21:03:42Z</updated>
<title>Migrated application state, runtime lifecycle, and key management into shared `RadrootsKit` module with dedicated classes for persistence and provisioning.</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/4779c742f1063b5672870fdbd4297b267d8e1b38.html" />
<author>
<name>triesap</name>
<email>triesap@radroots.dev</email>
</author>
<content>commit 4779c742f1063b5672870fdbd4297b267d8e1b38
parent 7df0250936011a9f289be57bed0683887f5e5106
Author: triesap &lt;triesap@radroots.dev&gt;
Date:   Fri,  3 Oct 2025 22:03:42 +0100

Migrated application state, runtime lifecycle, and key management into shared `RadrootsKit` module with dedicated classes for persistence and provisioning.

</content>
</entry>
<entry>
<id>7df0250936011a9f289be57bed0683887f5e5106</id>
<published>2025-08-30T01:25:13Z</published>
<updated>2025-08-30T01:25:13Z</updated>
<title>Initial commit</title>
<link rel="alternate" type="text/html" href="https://radroots.dev/git/field_ioscommit/7df0250936011a9f289be57bed0683887f5e5106.html" />
<author>
<name>triesap</name>
<email>triesap@radroots.dev</email>
</author>
<content>commit 7df0250936011a9f289be57bed0683887f5e5106
Author: triesap &lt;triesap@radroots.dev&gt;
Date:   Sat, 30 Aug 2025 01:25:13 +0000

Initial commit

</content>
</entry>
</feed>
