| 2026-06-20 01:15 | ffi: pin field_lib lock fix revision | triesap | 2 | +2 | -2 |
| 2026-06-20 01:09 | ui: remove deferred Market listing surface | triesap | 5 | +0 | -549 |
| 2026-06-20 01:01 | config: remove field RHI settings | triesap | 6 | +0 | -41 |
| 2026-06-19 23:56 | api: drop retired trade mobile consumers | triesap | 6 | +2 | -287 |
| 2026-06-19 23:46 | runtime: handle typed mobile read outcomes | triesap | 6 | +43 | -24 |
| 2026-06-19 23:37 | errors: adapt field app to typed runtime failures | triesap | 16 | +93 | -31 |
| 2026-06-19 23:17 | ffi: consume language-neutral field crate | triesap | 3 | +7 | -7 |
| 2026-06-19 23:12 | ffi: lock generated bindings to current field_lib | triesap | 2 | +2 | -2 |
| 2026-06-19 23:02 | identity: preserve stored key on failed import | triesap | 5 | +172 | -5 |
| 2026-06-18 20:59 | security: prove identity policy config | triesap | 4 | +50 | -0 |
| 2026-06-18 20:34 | runtime: apply imported relay settings | triesap | 5 | +196 | -19 |
| 2026-06-18 20:02 | background: fail closed on startup lifecycle gaps | triesap | 3 | +51 | -13 |
| 2026-06-18 19:55 | runtime: make config and logging deterministic | triesap | 4 | +35 | -20 |
| 2026-06-18 19:50 | runtime: split UI test host-service harness | triesap | 10 | +369 | -139 |
| 2026-06-18 03:41 | field-ios: bridge background session lifecycle | triesap | 7 | +106 | -0 |
| 2026-06-18 01:20 | field-ios: align background probe with guard | triesap | 2 | +17 | -8 |
| 2026-06-18 01:05 | field-ios: add background execution UI test probe | triesap | 5 | +214 | -0 |
| 2026-06-18 00:30 | field-ios: add Nostr-only background maintenance | triesap | 3 | +222 | -31 |
| 2026-06-18 00:24 | field-ios: add background execution coordinator shell | triesap | 6 | +261 | -0 |
| 2026-06-15 21:44 | telemetry: add deterministic UI test probe | triesap | 5 | +156 | -0 |
| 2026-06-15 21:27 | telemetry: emit structured app events | triesap | 2 | +463 | -53 |
| 2026-06-15 21:19 | telemetry: route app logging through AppleKit | triesap | 7 | +151 | -118 |
| 2026-06-15 20:25 | user-presence: gate identity actions | triesap | 3 | +43 | -0 |
| 2026-06-15 20:24 | user-presence: add identity gate | triesap | 3 | +197 | -0 |
| 2026-06-15 00:18 | field-ios: stabilize app shell startup actions | triesap | 2 | +43 | -15 |
| 2026-06-14 22:51 | external-actions: stabilize location recovery ui | triesap | 1 | +44 | -38 |
| 2026-06-14 21:55 | external-actions: wire recovery ui | triesap | 5 | +123 | -1 |
| 2026-06-14 21:53 | external-actions: add runtime boundary | triesap | 4 | +171 | -0 |
| 2026-06-14 20:13 | capture: add intake controls | triesap | 1 | +188 | -2 |
| 2026-06-14 20:12 | capture: add field intake runtime | triesap | 5 | +537 | -11 |
| 2026-06-14 11:04 | app: add location check-in test probes | triesap | 2 | +89 | -7 |
| 2026-06-14 10:37 | ui: add visible location check-in flow | triesap | 1 | +139 | -2 |
| 2026-06-14 10:36 | app: add location check-in runtime | triesap | 5 | +122 | -16 |
| 2026-06-14 09:44 | test: route probe checks through AppleKit | triesap | 2 | +4 | -4 |
| 2026-06-14 09:37 | test: expose document interchange probe | triesap | 4 | +133 | -0 |
| 2026-06-14 09:28 | ui: add document interchange flows | triesap | 4 | +196 | -2 |
| 2026-06-14 09:23 | app: add document interchange runtime | triesap | 3 | +225 | -0 |
| 2026-06-14 08:38 | test: expose file access probe | triesap | 4 | +164 | -2 |
| 2026-06-14 08:15 | app: route file roots through apple kit | triesap | 7 | +72 | -20 |
| 2026-06-13 22:40 | ui: expose identity state accessibility | triesap | 1 | +24 | -2 |
| 2026-06-13 22:21 | ui: align identity setup copy | triesap | 2 | +11 | -11 |
| 2026-06-13 22:17 | app: route identity through secure store | triesap | 6 | +241 | -212 |
| 2026-06-13 20:51 | app: add launch splash screen | triesap | 8 | +96 | -7 |
| 2026-06-13 09:31 | ffi: update field lib source lock | triesap | 1 | +1 | -1 |
| 2026-06-13 09:21 | app: harden nostr key custody state | triesap | 10 | +262 | -45 |
| 2026-06-12 08:09 | config: use remote RadrootsKit package | triesap | 3 | +28 | -17 |
| 2026-06-12 07:34 | app: polish diagnostics and bundle posture | triesap | 4 | +45 | -6 |
| 2026-06-12 07:28 | app: support nostr ui-test startup states | triesap | 1 | +22 | -1 |
| 2026-06-12 07:05 | app: persist nostr identity in keychain | triesap | 4 | +152 | -4 |
| 2026-06-12 06:57 | app: replace auth login with nostr onboarding | triesap | 21 | +555 | -606 |
| 2026-06-12 06:32 | config: remove auth endpoint inputs | triesap | 3 | +0 | -8 |
| 2026-06-12 04:58 | ui: align field shell tabs | triesap | 1 | +185 | -11 |
| 2026-06-12 04:47 | app: replace setup with field login | triesap | 41 | +793 | -511 |
| 2026-06-12 01:55 | ui: connect Nostr after identity setup | triesap | 2 | +22 | -4 |
| 2026-06-12 01:10 | ui: add stable test accessibility anchors | triesap | 6 | +12 | -0 |
| 2026-06-12 01:10 | tests: remove app-local unit test target | triesap | 4 | +0 | -139 |
| 2026-06-12 01:00 | config: track local xcconfig project reference | triesap | 1 | +2 | -0 |
| 2026-06-12 00:51 | config: namespace runtime settings | triesap | 10 | +98 | -68 |
| 2026-06-12 00:29 | assets: add generated app iconset | triesap | 4 | +35 | -4 |
| 2026-06-12 00:05 | build: make field ios testable | triesap | 5 | +234 | -0 |
| 2026-06-11 23:49 | build: sync generated xcode project | triesap | 1 | +2 | -0 |
| 2026-06-11 23:38 | ios: align app shell with field runtime | triesap | 14 | +132 | -214 |
| 2026-02-16 00:40 | build: replace ios ffi wrapper with makefile pipeline | triesap | 13 | +184 | -107 |
| 2026-02-15 19:59 | build: repoint RadrootsCore ffi sources | triesap | 4 | +11 | -12 |
| 2026-02-15 19:06 | build: minimize ios wrapper docs and makefiles | triesap | 4 | +15 | -35 |
| 2026-02-15 18:59 | core: remove direct ffi dependency from wrapper | triesap | 3 | +1 | -1502 |
| 2026-02-15 18:28 | build: align radrootscore makefile to shared ffi crate | triesap | 2 | +13 | -10 |
| 2026-02-15 18:15 | core: add radrootscore rust wrapper manifest | triesap | 5 | +1546 | -5 |
| 2026-02-15 17:41 | ios: replace radrootscore submodule with tracked wrapper | triesap | 6 | +77 | -48 |
| 2026-02-15 16:23 | app: add market trade listing flows and rhi config | triesap | 14 | +1216 | -172 |
| 2025-12-25 01:53 | kit: add Swift nostr posting and stream helpers | triesap | 1 | +93 | -0 |
| 2025-11-03 04:01 | Update git submodules reference | triesap | 0 | +0 | -0 |
| 2025-10-06 17:18 | 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. | triesap | 2 | +62 | -37 |
| 2025-10-06 14:18 | Refactor post feed to use a view model for state, loading, and live updates. Add model handling async fetch, replies, and refresh loop. | triesap | 3 | +142 | -88 |
| 2025-10-06 13:13 | Refactor post feed with inline reply composer. Integrate structured debug dump utility for post metadata logging. | triesap | 4 | +255 | -34 |
| 2025-10-05 21:20 | 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. | triesap | 10 | +431 | -123 |
| 2025-10-04 21:12 | Add `PostView` for composing and posting text notes. | triesap | 3 | +116 | -0 |
| 2025-10-04 20:20 | Refactor SwiftUI views to fix console errors in navigation and form layouts. | triesap | 4 | +34 | -24 |
| 2025-10-04 20:12 | 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. | triesap | 23 | +761 | -256 |
| 2025-10-03 23:14 | 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. | triesap | 9 | +346 | -143 |
| 2025-10-03 21:03 | Migrated application state, runtime lifecycle, and key management into shared `RadrootsKit` module with dedicated classes for persistence and provisioning. | triesap | 14 | +402 | -132 |
| 2025-08-30 01:25 | Initial commit | triesap | 20 | +1562 | -0 |