| 2026-10-02 12:58 | availability: define admitted availability and unsupported-head views | triesap | 8 | +1675 | -4 |
| 2026-10-02 11:58 | availability: define public listing and publisher identities | triesap | 7 | +560 | -3 |
| 2026-10-02 11:16 | identity: bind completed import replay to original custody | triesap | 10 | +2162 | -84 |
| 2026-10-02 10:00 | metadata: enforce existing UTF-8 byte limits | triesap | 6 | +679 | -27 |
| 2026-10-02 09:00 | runtime: qualify observation cancellation and close | triesap | 7 | +1221 | -110 |
| 2026-10-02 06:12 | runtime: carry overflow recovery across FFI and Kotlin | triesap | 4 | +327 | -8 |
| 2026-10-02 05:19 | runtime: fix silent final-update loss in the snapshot stream | triesap | 1 | +277 | -15 |
| 2026-10-02 02:39 | test: cover replacement and deletion protocol ordering | triesap | 2 | +818 | -0 |
| 2026-10-02 02:08 | test: cover profile partitions and invalid-event exclusion | triesap | 2 | +586 | -0 |
| 2026-10-02 01:53 | test: add public focused-availability fixtures | triesap | 2 | +466 | -0 |
| 2026-10-02 01:27 | test: admit only the required shared event dependencies | triesap | 11 | +57 | -42 |
| 2026-09-05 17:24 | test: honor governed Gradle command | triesap | 1 | +9 | -4 |
| 2026-09-04 22:51 | build: define Step 290 evidence gate | triesap | 1 | +1 | -1 |
| 2026-09-04 22:43 | fix: make Harvest gate source regular | triesap | 1 | +0 | -0 |
| 2026-09-04 22:19 | fix: bind Step 289 platform probe source | triesap | 2 | +72 | -4 |
| 2026-09-04 22:16 | build: define Step 289 evidence gate | triesap | 2 | +348 | -0 |
| 2026-09-04 22:00 | fix(desktop): provision packaged health state root | triesap | 2 | +3 | -0 |
| 2026-09-04 21:51 | Keep advisory scans outside unsigned gate | triesap | 4 | +11 | -6 |
| 2026-09-04 21:47 | Separate HarvestCircle unsigned candidate gates | triesap | 13 | +630 | -18 |
| 2026-09-04 21:08 | build: validate actual Lib source-lock bytes | triesap | 8 | +492 | -6 |
| 2026-08-28 02:19 | fix(storage): select Linux keyring runtime | triesap | 3 | +18 | -2 |
| 2026-08-28 02:11 | fix(ffi): close keyring on owned runtime | triesap | 2 | +22 | -2 |
| 2026-08-28 02:06 | build: align storage schema compatibility | triesap | 3 | +3 | -3 |
| 2026-08-28 02:04 | style(xtask): restore canonical formatting | triesap | 1 | +4 | -11 |
| 2026-08-28 01:55 | storage: bound durable operation journal | triesap | 14 | +777 | -42 |
| 2026-08-28 01:23 | refactor(secrets): make credential mutations outcome-aware | triesap | 14 | +967 | -439 |
| 2026-08-28 00:40 | refactor(secrets): await credential operations | triesap | 14 | +404 | -225 |
| 2026-08-27 23:57 | test: provision governed native state root | triesap | 1 | +1 | -1 |
| 2026-08-27 23:09 | storage: govern atomic database bootstrap | triesap | 20 | +141 | -101 |
| 2026-08-26 20:19 | test: harden packaged health deadline | triesap | 1 | +1 | -1 |
| 2026-08-26 17:34 | build: bind Linux JVM home | triesap | 2 | +2 | -0 |
| 2026-08-26 17:08 | test: restore live relay timeout | triesap | 2 | +24 | -3 |
| 2026-08-26 16:47 | build: qualify development integration | triesap | 18 | +651 | -137 |
| 2026-08-26 04:16 | refactor(runtime): seal relay and host lifecycle | triesap | 33 | +1678 | -857 |
| 2026-08-26 03:19 | feat(storage): add governed backup restore | triesap | 9 | +491 | -21 |
| 2026-08-26 03:08 | refactor(storage): adopt governed sqlx host | triesap | 57 | +3739 | -6359 |
| 2026-08-26 01:48 | storage: freeze HarvestCircle state contract | triesap | 18 | +1526 | -82 |
| 2026-08-26 01:19 | product: finalize public HarvestCircle identity | triesap | 22 | +211 | -470 |
| 2026-08-16 19:30 | desktop: refresh HarvestCircle application icon | triesap | 2 | +0 | -0 |
| 2026-08-16 19:24 | fonts: pin bundled Inter resources | triesap | 1 | +29 | -0 |
| 2026-08-14 17:56 | test: qualify macOS window chrome integration | triesap | 3 | +48 | -17 |
| 2026-08-14 17:44 | ui: resolve dashboard window chrome geometry | triesap | 11 | +272 | -41 |
| 2026-08-14 17:36 | ui: protect lifecycle canvas window chrome | triesap | 3 | +58 | -9 |
| 2026-08-14 17:33 | desktop: provide macOS window chrome geometry | triesap | 3 | +70 | -7 |
| 2026-08-14 17:31 | design: model host window chrome exclusions | triesap | 4 | +210 | -2 |
| 2026-08-14 17:27 | ui: hide the redundant macOS window title | triesap | 2 | +15 | -5 |
| 2026-08-14 16:42 | ui: center tabs and retain native controls | triesap | 8 | +46 | -19 |
| 2026-08-13 19:39 | ui: stabilize shell tab selection layout | triesap | 6 | +34 | -5 |
| 2026-08-13 19:05 | ui: let read-only sessions manage identities | triesap | 8 | +111 | -15 |
| 2026-08-13 18:53 | ui: make identity activation observable | triesap | 10 | +157 | -6 |
| 2026-08-13 18:46 | identity: repair native activation lifecycle | triesap | 8 | +242 | -16 |
| 2026-08-13 17:56 | test(ui): follow the composed shell navigation | triesap | 1 | +4 | -3 |
| 2026-08-13 17:53 | test(ui): align shell integration assertions | triesap | 4 | +7 | -6 |
| 2026-08-13 17:51 | test(ui): verify the live shell visuals | triesap | 7 | +145 | -147 |
| 2026-08-13 17:46 | ui: align shell overlays and menus | triesap | 3 | +279 | -47 |
| 2026-08-13 17:43 | ui: align bootstrap and lifecycle canvases | triesap | 7 | +246 | -227 |
| 2026-08-13 17:40 | ui: compose product panes with Studio anatomy | triesap | 7 | +301 | -257 |
| 2026-08-13 17:36 | design: port the approved Studio content anatomy | triesap | 3 | +199 | -0 |
| 2026-08-13 17:35 | policy: adopt the complete Studio visual baseline | triesap | 4 | +50 | -25 |
| 2026-08-13 17:30 | ui: restore the approved Studio shell chrome | triesap | 11 | +298 | -142 |
| 2026-08-13 17:23 | design: port the approved Studio shell controls | triesap | 3 | +329 | -3 |
| 2026-08-13 17:18 | design: own the approved Studio shell foundation | triesap | 4 | +257 | -0 |
| 2026-08-13 16:26 | test: lock HarvestCircle visual regressions | triesap | 7 | +250 | -7 |
| 2026-08-13 16:19 | ui: remove superseded shell adapters | triesap | 20 | +484 | -513 |
| 2026-08-13 16:10 | ui: retire the template theme | triesap | 31 | +102 | -497 |
| 2026-08-13 16:04 | ui: migrate HarvestCircle overlays and status banners | triesap | 2 | +138 | -115 |
| 2026-08-13 16:01 | ui: migrate HarvestCircle product content panes | triesap | 4 | +49 | -27 |
| 2026-08-13 15:59 | ui: migrate bootstrap and lifecycle canvases | triesap | 7 | +148 | -63 |
| 2026-08-13 15:56 | ui: migrate the HarvestCircle dashboard chrome | triesap | 8 | +283 | -118 |
| 2026-08-13 15:52 | ui: route shell controls through the design system | triesap | 19 | +138 | -285 |
| 2026-08-13 15:45 | ui: install the owned appearance adapter | triesap | 5 | +108 | -25 |
| 2026-08-13 15:38 | design: add the stateless HarvestCircle frame | triesap | 4 | +356 | -0 |
| 2026-08-13 15:35 | design: add the HarvestCircle component catalog | triesap | 2 | +584 | -0 |
| 2026-08-13 15:33 | design: port HarvestCircle layout system | triesap | 6 | +418 | -0 |
| 2026-08-13 15:32 | design: port HarvestCircle choice components | triesap | 4 | +1008 | -0 |
| 2026-08-13 15:30 | design: port HarvestCircle content components | triesap | 6 | +694 | -0 |
| 2026-08-13 15:29 | design: port accessible HarvestCircle controls | triesap | 9 | +1055 | -4 |
| 2026-08-13 15:26 | design: port HarvestCircle interaction primitives | triesap | 21 | +603 | -2 |
| 2026-08-13 15:23 | design: own HarvestCircle theme foundation | triesap | 14 | +1566 | -1 |
| 2026-08-13 15:16 | deps: admit HarvestCircle design assets | triesap | 15 | +402 | -2 |
| 2026-08-13 15:11 | policy: admit HarvestCircle design provenance | triesap | 4 | +329 | -6 |
| 2026-08-13 15:05 | build: govern owned design modules | triesap | 11 | +228 | -55 |
| 2026-08-13 05:47 | test: qualify automatic removal expiry | triesap | 2 | +238 | -1 |
| 2026-08-13 05:22 | ui: clarify import secret custody | triesap | 2 | +28 | -1 |
| 2026-08-13 05:19 | identity: expire removal leases automatically | triesap | 3 | +406 | -95 |
| 2026-08-12 20:10 | test: qualify secret and lifecycle closure | triesap | 1 | +127 | -1 |
| 2026-08-12 19:52 | ui: localize overlay busy state | triesap | 7 | +107 | -12 |
| 2026-08-12 19:47 | security: redact imported secret draft custody | triesap | 10 | +231 | -25 |
| 2026-08-12 19:42 | identity: release removal requests safely | triesap | 2 | +295 | -44 |
| 2026-08-12 19:36 | security: reject ambiguous hexadecimal references | triesap | 8 | +110 | -2 |
| 2026-08-12 17:27 | test: qualify final shell security and interaction | triesap | 10 | +241 | -11 |
| 2026-08-12 17:20 | accessibility: contain modal input and focus | triesap | 14 | +496 | -107 |
| 2026-08-12 17:09 | accessibility: separate selection from unavailability | triesap | 10 | +92 | -36 |
| 2026-08-12 17:06 | ui: correct shell control state colors | triesap | 3 | +183 | -48 |
| 2026-08-12 17:03 | security: guard Nostr reference input before parsing | triesap | 8 | +206 | -28 |
| 2026-08-12 16:58 | identity: bind removal confirmation to its request | triesap | 17 | +525 | -156 |
| 2026-08-11 23:13 | tools: enforce the hardened shell boundary | triesap | 1 | +189 | -10 |
| 2026-08-11 23:08 | test: qualify the hardened product shell | triesap | 7 | +416 | -48 |
| 2026-08-11 22:51 | accessibility: close shell interaction gaps | triesap | 18 | +171 | -33 |
| 2026-08-11 22:42 | nostr: validate references through the native parser | triesap | 19 | +428 | -44 |
| 2026-08-11 21:53 | ui: remove the legacy identity surface | triesap | 9 | +247 | -928 |
| 2026-08-11 21:45 | ui: make the shell responsive | triesap | 10 | +66 | -21 |
| 2026-08-11 21:42 | application: derive live shell status | triesap | 10 | +221 | -78 |
| 2026-08-11 21:37 | ui: implement typed modal overlays | triesap | 8 | +192 | -52 |
| 2026-08-11 21:33 | ui: add typed shell controls | triesap | 13 | +474 | -170 |
| 2026-08-11 21:26 | ui: apply the HarvestCircle theme | triesap | 7 | +164 | -30 |
| 2026-08-11 21:22 | network: distinguish relay configuration from observation | triesap | 3 | +55 | -20 |
| 2026-08-11 21:20 | application: type shell presentation state | triesap | 9 | +100 | -71 |
| 2026-08-11 21:17 | navigation: align shell routes with the registry | triesap | 11 | +234 | -92 |
| 2026-08-11 21:12 | application: reduce shell state atomically | triesap | 4 | +274 | -54 |
| 2026-08-11 21:08 | application: keep degraded local state in the shell | triesap | 4 | +301 | -22 |
| 2026-08-11 21:02 | test: stabilize packaged health TestKit coverage | triesap | 2 | +59 | -30 |
| 2026-08-11 19:23 | test: qualify the hot-reload development lane | triesap | 2 | +29 | -3 |
| 2026-08-11 19:17 | build: govern hot-reload runtime dependencies | triesap | 1 | +673 | -0 |
| 2026-08-11 17:23 | test: exercise identity bootstrap through the product shell | triesap | 8 | +127 | -24 |
| 2026-08-11 17:11 | test: qualify the HarvestCircle product shell | triesap | 2 | +177 | -2 |
| 2026-08-11 17:06 | accessibility: implement shell keyboard and focus | triesap | 7 | +309 | -34 |
| 2026-08-11 17:01 | ui: implement foundation settings | triesap | 7 | +324 | -2 |
| 2026-08-11 16:57 | ui: implement the foundation Network screen | triesap | 4 | +342 | -0 |
| 2026-08-11 16:54 | ui: implement the foundation Today screen | triesap | 4 | +112 | -4 |
| 2026-08-11 16:51 | ui: integrate recovery and identity selection | triesap | 6 | +319 | -9 |
| 2026-08-11 16:45 | ui: integrate local identity entry | triesap | 3 | +200 | -0 |
| 2026-08-11 16:43 | ui: implement bootstrap welcome and read-only entry | triesap | 5 | +278 | -33 |
| 2026-08-11 16:36 | application: add the HarvestCircle shell presenter | triesap | 3 | +208 | -3 |
| 2026-08-11 16:34 | ui: implement the foundation overlay host | triesap | 4 | +271 | -0 |
| 2026-08-11 16:32 | ui: implement the main-panel header | triesap | 2 | +108 | -0 |
| 2026-08-11 16:30 | ui: implement the workspace sidebar | triesap | 3 | +100 | -1 |
| 2026-08-11 16:28 | ui: implement the global top bar | triesap | 2 | +142 | -0 |
| 2026-08-11 16:27 | ui: add main-panel templates | triesap | 3 | +125 | -0 |
| 2026-08-11 16:25 | ui: implement the canvas scaffold | triesap | 2 | +115 | -0 |
| 2026-08-11 16:23 | ui: implement the dashboard scaffold | triesap | 2 | +112 | -0 |
| 2026-08-11 16:21 | ui: add shared shell layout primitives | triesap | 2 | +119 | -0 |
| 2026-08-11 16:19 | ui: establish the HarvestCircle design system | triesap | 2 | +194 | -0 |
| 2026-08-11 16:18 | application: model shell feature availability | triesap | 2 | +158 | -0 |
| 2026-08-11 16:16 | navigation: add typed foundation routing | triesap | 2 | +183 | -0 |
| 2026-08-11 16:13 | product: codify the HarvestCircle surface registry | triesap | 3 | +328 | -0 |
| 2026-08-11 15:55 | test: qualify build-logic stability | triesap | 3 | +46 | -2 |
| 2026-08-11 15:41 | runtime: pass explicit storage through native open | triesap | 13 | +169 | -33 |
| 2026-08-11 04:42 | package: isolate packaged health-check data | triesap | 4 | +340 | -24 |
| 2026-08-11 04:26 | test: type the integration wire contract | triesap | 3 | +43 | -26 |
| 2026-08-11 04:18 | build: clean included build outputs | triesap | 2 | +11 | -0 |
| 2026-08-11 04:16 | build: normalize custom task execution | triesap | 10 | +142 | -23 |
| 2026-08-11 04:09 | build: use typed lint configuration | triesap | 3 | +12 | -23 |
| 2026-08-11 04:07 | test: make integration recovery custody opaque | triesap | 3 | +165 | -61 |
| 2026-08-11 03:58 | test: verify native compatibility behavior | triesap | 3 | +1 | -19 |
| 2026-08-11 03:55 | build: separate build contract tests from verification tasks | triesap | 5 | +125 | -130 |
| 2026-08-11 03:50 | test: include build logic in qualification lanes | triesap | 2 | +13 | -2 |
| 2026-08-10 23:37 | build: remove the transitional buildSrc implementation | triesap | 10 | +2 | -840 |
| 2026-08-10 23:26 | test: add the identity bootstrap acceptance flow | triesap | 10 | +243 | -22 |
| 2026-08-10 23:07 | test: add desktop native integration coverage | triesap | 11 | +1047 | -2 |
| 2026-08-10 22:37 | build: make HarvestCircle build modes explicit | triesap | 8 | +193 | -85 |
| 2026-08-10 22:24 | tools: move repository audits to xtask | triesap | 15 | +856 | -1123 |
| 2026-08-10 22:11 | test: qualify the HarvestCircle build logic | triesap | 3 | +127 | -26 |
| 2026-08-10 22:06 | build: add the desktop packaging convention plugin | triesap | 13 | +812 | -573 |
| 2026-08-10 21:30 | build: add the Rust FFI convention plugin | triesap | 8 | +656 | -344 |
| 2026-08-10 21:08 | build: add the desktop application convention plugin | triesap | 9 | +488 | -151 |
| 2026-08-10 20:53 | build: add the shared KMP convention plugin | triesap | 11 | +190 | -86 |
| 2026-08-10 20:41 | build: add the root convention plugin | triesap | 12 | +919 | -97 |
| 2026-08-10 20:34 | build: isolate deterministic build contracts | triesap | 9 | +509 | -15 |
| 2026-08-10 20:28 | build: add the explicit HarvestCircle build logic | triesap | 9 | +194 | -2 |
| 2026-08-10 20:23 | repo: align HarvestCircle with monorepo ownership | triesap | 18 | +33 | -595 |
| 2026-08-10 19:29 | release: record local workflow qualification | triesap | 1 | +40 | -27 |
| 2026-08-10 19:22 | ci: return workflow authority to local orchestration | triesap | 12 | +57 | -209 |
| 2026-08-10 18:55 | release: qualify the corrected HarvestCircle foundation | triesap | 1 | +190 | -0 |
| 2026-08-10 18:36 | test: stabilize observer qualification timing | triesap | 1 | +13 | -3 |
| 2026-08-10 18:23 | architecture: record transport and tooling decisions | triesap | 3 | +112 | -0 |
| 2026-08-10 18:17 | network: type relay destination policies | triesap | 26 | +572 | -230 |
| 2026-08-10 17:59 | identity: make signer binding access capability-safe | triesap | 7 | +105 | -36 |
| 2026-08-10 17:52 | lifecycle: close application scopes on disposal | triesap | 5 | +171 | -3 |
| 2026-08-10 17:46 | release: complete build information and readiness | triesap | 8 | +466 | -32 |
| 2026-08-10 17:33 | policy: require revision-pinned Git dependencies | triesap | 3 | +115 | -0 |
| 2026-08-10 17:22 | runtime: make snapshot delivery gap-aware | triesap | 4 | +198 | -9 |
| 2026-08-10 17:16 | ffi: generate Kotlin compatibility expectations | triesap | 7 | +199 | -61 |
| 2026-08-10 17:10 | product: make the coordinate manifest authoritative | triesap | 9 | +462 | -147 |
| 2026-08-10 17:02 | build: canonicalize product and provenance digests | triesap | 16 | +444 | -40 |
| 2026-08-10 16:48 | ci: execute the public verification lanes | triesap | 7 | +184 | -5 |
| 2026-08-10 16:37 | repo: publish the HarvestCircle specifications and governance | triesap | 16 | +432 | -10 |
| 2026-08-10 04:25 | security: remove the vulnerable redundant transport edge | triesap | 4 | +65 | -386 |
| 2026-08-10 04:02 | test: enforce HarvestCircle foundation boundaries | triesap | 5 | +304 | -4 |
| 2026-08-10 03:47 | ci: publish repository-owned verification lanes | triesap | 5 | +122 | -4 |
| 2026-08-10 03:38 | release: add passive build provenance | triesap | 14 | +374 | -7 |
| 2026-08-10 03:19 | core: remove inherited non-product preferences | triesap | 7 | +460 | -355 |
| 2026-08-10 03:13 | network: inject relay configuration from the desktop host | triesap | 9 | +156 | -65 |
| 2026-08-10 03:05 | operations: adopt durable UUIDv7 request identities | triesap | 20 | +150 | -68 |
| 2026-08-10 02:54 | lifecycle: make native disposal asynchronous | triesap | 8 | +201 | -64 |
| 2026-08-10 02:46 | desktop: reduce the host to platform composition | triesap | 5 | +22 | -351 |
| 2026-08-10 02:41 | ui: preserve identity bootstrap in shared Compose | triesap | 9 | +913 | -887 |
| 2026-08-10 02:36 | application: move identity orchestration to shared StateFlow | triesap | 15 | +1109 | -1166 |
| 2026-08-10 02:19 | identity: separate Nostr identity from signer binding | triesap | 65 | +5602 | -5462 |
| 2026-08-10 02:04 | desktop: adapt the native runtime to shared contracts | triesap | 3 | +1041 | -0 |
| 2026-08-10 01:52 | application: define platform-neutral runtime contracts | triesap | 7 | +697 | -1 |
| 2026-08-10 01:44 | build: establish the KMP shared and desktop boundary | triesap | 10 | +75 | -25 |
| 2026-08-10 01:34 | ffi: publish the HarvestCircle desktop v4 contract | triesap | 11 | +395 | -21 |
| 2026-08-10 01:21 | product: cut over final HarvestCircle coordinates | triesap | 64 | +3489 | -3447 |
| 2026-08-10 01:02 | product: add canonical HarvestCircle coordinates | triesap | 14 | +649 | -4 |
| 2026-08-10 00:40 | repo: establish machine provenance and dependency governance | triesap | 5 | +3651 | -2 |
| 2026-08-10 00:36 | policy: align exact Rust source allowlists | triesap | 1 | +4 | -1 |
| 2026-08-09 19:32 | policy: enforce portable HarvestCircle checks | triesap | 13 | +131 | -16 |
| 2026-08-09 19:16 | product: cut over to the HarvestCircle identity | triesap | 20 | +65 | -60 |
| 2026-08-09 19:10 | ffi: rename the HarvestCircle cross-language API | triesap | 11 | +126 | -119 |
| 2026-08-09 19:06 | bindings: align the generated Kotlin namespace | triesap | 1 | +1 | -1 |
| 2026-08-09 19:05 | desktop: rename the HarvestCircle product API | triesap | 21 | +2406 | -2406 |
| 2026-08-09 19:03 | desktop: move Kotlin to the HarvestCircle namespace | triesap | 47 | +3246 | -3244 |
| 2026-08-09 19:00 | ffi: rename HarvestCircle native crates | triesap | 19 | +209 | -209 |
| 2026-08-09 18:54 | runtime: rename HarvestCircle adapter crates | triesap | 36 | +1418 | -1418 |
| 2026-08-09 18:52 | application: rename application and storage crates | triesap | 65 | +3025 | -3033 |
| 2026-08-09 18:51 | domain: rename HarvestCircle leaf crates | triesap | 56 | +573 | -564 |
| 2026-08-09 18:47 | build: define the HarvestCircle naming contract | triesap | 3 | +22 | -3 |
| 2026-08-09 18:24 | build: support standalone contributor outputs | triesap | 4 | +36 | -36 |
| 2026-08-09 18:07 | core: complete local Rust ownership | triesap | 9 | +36 | -165 |
| 2026-08-09 17:56 | bindings: own the Studio UniFFI generator | triesap | 4 | +101 | -0 |
| 2026-08-09 17:52 | ffi: own the Studio native boundary | triesap | 10 | +2582 | -89 |
| 2026-08-09 17:49 | runtime: own the Studio runtime crate | triesap | 10 | +3451 | -3 |
| 2026-08-09 17:48 | nostr: own the Studio Nostr adapter | triesap | 7 | +722 | -4 |
| 2026-08-09 17:46 | storage: own the Studio storage crate | triesap | 25 | +4810 | -7 |
| 2026-08-09 17:43 | application: own the Studio application crate | triesap | 19 | +7806 | -6 |
| 2026-08-09 17:42 | domain: own the Studio domain crate | triesap | 10 | +1593 | -8 |
| 2026-08-09 17:41 | preferences: own the Studio preferences crate | triesap | 4 | +350 | -3 |
| 2026-08-09 17:38 | docs: define HarvestCircle Rust ownership | triesap | 1 | +26 | -24 |
| 2026-08-09 07:45 | docs: define Studio agent contract | triesap | 1 | +125 | -0 |
| 2026-08-07 00:16 | consolidation: remove retired studio implementation source | triesap | 60 | +0 | -15178 |
| 2026-08-06 20:57 | studio: qualify native product packaging | triesap | 2 | +136 | -22 |
| 2026-08-06 20:26 | studio: cut product over to canonical source | triesap | 12 | +692 | -215 |
| 2026-08-05 23:32 | studio: align the Rust baseline | triesap | 2 | +2 | -2 |
| 2026-08-04 20:42 | git: reconcile superseded branch ancestry | triesap | 0 | +0 | -0 |
| 2026-08-04 08:07 | accounts: make failed recovery commits terminal | triesap | 3 | +61 | -9 |
| 2026-08-04 08:04 | accounts: enforce exclusive generated recovery | triesap | 2 | +51 | -8 |
| 2026-08-04 08:02 | accounts: harden generated recovery ownership | triesap | 7 | +266 | -121 |
| 2026-08-04 07:58 | runtime: bind actor waits to native scheduler | triesap | 4 | +76 | -5 |
| 2026-08-04 02:03 | release: add fail-closed evidence gates | triesap | 5 | +174 | -2 |
| 2026-08-04 00:45 | build: verify macOS release provenance | triesap | 3 | +204 | -17 |
| 2026-08-04 00:30 | build: govern the complete local lifecycle | triesap | 22 | +1299 | -1035 |
| 2026-08-04 00:19 | build: harden native generation boundaries | triesap | 1 | +107 | -18 |
| 2026-08-04 00:14 | build: split debug and release native artifacts | triesap | 2 | +35 | -16 |
| 2026-08-04 00:12 | runtime: finalize removal and startup safety | triesap | 3 | +73 | -21 |
| 2026-08-04 00:10 | runtime: preserve local startup without relays | triesap | 2 | +43 | -6 |
| 2026-08-04 00:07 | profile: make overlapping refreshes monotonic | triesap | 2 | +92 | -14 |
| 2026-08-04 00:05 | profile: bind refresh tasks to signer sessions | triesap | 2 | +54 | -0 |
| 2026-08-04 00:03 | ui: harden account surface accessibility | triesap | 2 | +42 | -3 |
| 2026-08-04 00:02 | accounts: expose removal impact and recovery | triesap | 8 | +144 | -5 |
| 2026-08-03 23:59 | accounts: distinguish selected and active identity | triesap | 4 | +30 | -7 |
| 2026-08-03 23:58 | accounts: harden secret key import surface | triesap | 6 | +65 | -0 |
| 2026-08-03 23:57 | custody: make generated recovery exclusive | triesap | 5 | +75 | -8 |
| 2026-08-03 23:56 | accounts: add primary account entry choices | triesap | 5 | +117 | -35 |
| 2026-08-03 23:54 | lifecycle: project exhaustive native routes | triesap | 8 | +182 | -28 |
| 2026-08-03 23:50 | application: await native runtime shutdown | triesap | 4 | +103 | -9 |
| 2026-08-03 23:47 | application: make command admission explicit | triesap | 2 | +121 | -13 |
| 2026-08-03 23:43 | application: project root lifecycle from native state | triesap | 4 | +64 | -80 |
| 2026-08-03 23:42 | application: add typed native gateway contracts | triesap | 4 | +111 | -1 |
| 2026-08-03 23:40 | application: verify native compatibility before open | triesap | 3 | +68 | -9 |
| 2026-08-03 23:39 | ffi: remove superseded v1 command surface | triesap | 8 | +158 | -160 |
| 2026-08-03 23:35 | ffi: bridge ordered changes and recovery handles | triesap | 3 | +207 | -6 |
| 2026-08-03 23:33 | ffi: export idempotent request contexts | triesap | 4 | +204 | -19 |
| 2026-08-03 23:29 | ffi: define stable structured wire errors | triesap | 4 | +178 | -10 |
| 2026-08-03 23:27 | ffi: gate storage behind static compatibility | triesap | 1 | +129 | -2 |
| 2026-08-03 23:25 | application: own exclusive recovery presentation | triesap | 8 | +131 | -16 |
| 2026-08-03 23:23 | custody: bound and clear imported key transport | triesap | 10 | +64 | -14 |
| 2026-08-03 23:20 | custody: commit generated keys after acknowledgement | triesap | 5 | +236 | -27 |
| 2026-08-03 23:15 | custody: stage generated keys in Rust | triesap | 3 | +294 | -7 |
| 2026-08-03 23:13 | security: harden direct credential custody | triesap | 7 | +40 | -34 |
| 2026-08-03 23:08 | test(operations): cover durable crash windows | triesap | 1 | +93 | -0 |
| 2026-08-03 23:06 | operations: make removal plans durable and expiring | triesap | 6 | +350 | -21 |
| 2026-08-03 23:02 | operations: reconcile interrupted account writes | triesap | 2 | +254 | -4 |
| 2026-08-03 22:59 | operations: coordinate durable account writes | triesap | 3 | +334 | -15 |
| 2026-08-03 22:55 | operations: persist idempotent durable requests | triesap | 6 | +568 | -11 |
| 2026-08-03 22:51 | operations: define durable request contracts | triesap | 2 | +162 | -6 |
| 2026-08-03 22:49 | test(storage): complete migration failure matrix | triesap | 1 | +116 | -0 |
| 2026-08-03 22:47 | storage: adopt transactional normalized repositories | triesap | 6 | +128 | -60 |
| 2026-08-03 22:44 | storage: migrate V5 runtime data append-only | triesap | 3 | +170 | -4 |
| 2026-08-03 22:42 | storage: add normalized strict runtime schema | triesap | 3 | +135 | -3 |
| 2026-08-03 22:40 | storage: harden SQLite runtime policy | triesap | 1 | +103 | -7 |
| 2026-08-03 22:38 | storage: enforce single writable runtime ownership | triesap | 4 | +109 | -1 |
| 2026-08-03 22:35 | domain: adopt validated account aggregates | triesap | 12 | +149 | -214 |
| 2026-08-03 22:11 | runtime: bind foreground signer session | triesap | 3 | +162 | -9 |
| 2026-08-03 22:08 | domain: model signer binding availability | triesap | 2 | +128 | -7 |
| 2026-08-03 22:07 | domain: separate local signer binding | triesap | 2 | +30 | -2 |
| 2026-08-03 22:05 | domain: introduce canonical account identity | triesap | 6 | +94 | -2 |
| 2026-08-03 22:02 | runtime: remove unordered observer registry | triesap | 11 | +164 | -270 |
| 2026-08-03 21:57 | runtime: make shutdown terminal and bounded | triesap | 2 | +148 | -7 |
| 2026-08-03 21:55 | runtime: make change subscription atomic | triesap | 2 | +156 | -25 |
| 2026-08-03 21:52 | runtime: add ordered snapshot change stream | triesap | 3 | +197 | -3 |
| 2026-08-03 21:49 | runtime: enforce actor admission and closure | triesap | 4 | +278 | -8 |
| 2026-08-03 21:43 | runtime: supervise correlated profile tasks | triesap | 5 | +436 | -51 |
| 2026-08-03 21:37 | runtime: serialize account mutation through actor | triesap | 7 | +686 | -138 |
| 2026-08-03 21:30 | runtime: gate actor lifecycle transitions | triesap | 2 | +293 | -2 |
| 2026-08-03 21:27 | runtime: define bounded actor command protocol | triesap | 3 | +297 | -0 |
| 2026-08-03 21:23 | test(runtime): freeze V5 compatibility baseline | triesap | 5 | +119 | -13 |
| 2026-08-03 20:52 | docs: remove ad-hoc documentation | triesap | 13 | +0 | -1318 |
| 2026-08-03 15:43 | docs: reconcile superseded studio sdk cutover | triesap | 2 | +70 | -0 |
| 2026-08-02 20:35 | review: reconcile final Nostr runtime acceptance | triesap | 2 | +89 | -9 |
| 2026-08-02 20:31 | fix(ui): keep saved accounts scrollable | triesap | 1 | +3 | -1 |
| 2026-08-02 20:31 | fix(storage): make account selection transactional | triesap | 1 | +124 | -10 |
| 2026-08-02 20:25 | fix(security): clear owned clipboard on disposal | triesap | 3 | +26 | -1 |
| 2026-08-02 20:24 | fix(security): expire generated secret clipboard data | triesap | 5 | +126 | -10 |
| 2026-08-02 20:22 | fix(runtime): render safe native startup failures | triesap | 3 | +43 | -1 |
| 2026-08-02 20:21 | fix(runtime): harden desktop store lifecycle edges | triesap | 2 | +67 | -7 |
| 2026-08-02 20:19 | build: govern the complete desktop lifecycle | triesap | 3 | +82 | -5 |
| 2026-08-02 20:19 | test(core): release relay observer before shutdown | triesap | 1 | +5 | -4 |
| 2026-08-02 20:18 | fix(build): align runtime prerelease version | triesap | 4 | +9 | -9 |
| 2026-08-02 20:12 | docs: complete Nostr account runtime documentation | triesap | 8 | +121 | -25 |
| 2026-08-02 20:10 | fix(security): clear imported secrets immediately | triesap | 2 | +23 | -6 |
| 2026-08-02 20:08 | docs: record Nostr dependency and license decisions | triesap | 3 | +62 | -31 |
| 2026-08-02 20:07 | integration: prove restart and account isolation | triesap | 6 | +183 | -15 |
| 2026-08-02 20:04 | integration: prove local relay metadata refresh | triesap | 4 | +133 | -1 |
| 2026-08-02 20:03 | cleanup: remove generic remote-account remnants | triesap | 2 | +50 | -7 |
| 2026-08-02 20:01 | cleanup: remove Kotlin account reducer proof | triesap | 15 | +1 | -1482 |
| 2026-08-02 20:01 | ui(home): support account switching | triesap | 7 | +91 | -4 |
| 2026-08-02 20:00 | ui(home): add minimal active account screen | triesap | 4 | +106 | -2 |
| 2026-08-02 19:59 | ui(accounts): render saved Nostr accounts | triesap | 4 | +125 | -1 |
| 2026-08-02 19:58 | ui(accounts): show generated key backup receipt | triesap | 4 | +73 | -1 |
| 2026-08-02 19:56 | ui(accounts): add generate and import controls | triesap | 4 | +214 | -3 |
| 2026-08-02 19:55 | ui(accounts): map AppCore snapshots for Compose | triesap | 3 | +197 | -1 |
| 2026-08-02 19:54 | runtime(desktop): bootstrap AppCore at application root | triesap | 4 | +96 | -45 |
| 2026-08-02 19:52 | runtime(desktop): add the thin application store | triesap | 6 | +392 | -1 |
| 2026-08-02 19:47 | build(desktop): stage the native runtime | triesap | 5 | +68 | -3 |
| 2026-08-02 19:44 | build(desktop): generate UniFFI Kotlin bindings | triesap | 10 | +125 | -16 |
| 2026-08-02 19:37 | build(desktop): add the Rust core task | triesap | 3 | +34 | -1 |
| 2026-08-02 19:37 | build(core): verify the native FFI library | triesap | 2 | +15 | -1 |
| 2026-08-02 19:36 | ffi: add closeable snapshot observers | triesap | 4 | +217 | -8 |
| 2026-08-02 19:34 | ffi: expose explicit application commands | triesap | 6 | +448 | -2 |
| 2026-08-02 19:29 | ffi: scaffold safe application DTOs | triesap | 8 | +663 | -10 |
| 2026-08-02 19:26 | core(profile): expose manual active refresh | triesap | 2 | +60 | -4 |
| 2026-08-02 19:26 | core(profile): orchestrate cache-first refresh | triesap | 5 | +407 | -2 |
| 2026-08-02 19:22 | core(nostr): add local relay profile client | triesap | 7 | +790 | -22 |
| 2026-08-02 19:18 | core(nostr): verify kind-zero profile events | triesap | 3 | +168 | -1 |
| 2026-08-02 19:16 | core(config): add relay environment configuration | triesap | 4 | +117 | -1 |
| 2026-08-02 19:13 | core(recovery): resume pending account removals | triesap | 5 | +259 | -10 |
| 2026-08-02 19:10 | core(accounts): require confirmed account removal | triesap | 6 | +251 | -6 |
| 2026-08-02 19:08 | core(session): implement sign out semantics | triesap | 3 | +62 | -1 |
| 2026-08-02 19:07 | core(session): activate accounts with safe replacement | triesap | 5 | +234 | -1 |
| 2026-08-02 19:05 | core(accounts): implement selected account persistence | triesap | 3 | +62 | -2 |
| 2026-08-02 19:05 | core(accounts): persist generated and imported accounts | triesap | 2 | +105 | -7 |
| 2026-08-02 19:03 | core(accounts): add recoverable account write transactions | triesap | 3 | +358 | -19 |
| 2026-08-02 18:59 | core(accounts): reject duplicate imported accounts | triesap | 4 | +112 | -4 |
| 2026-08-02 18:57 | core(accounts): implement secret-key import command | triesap | 3 | +95 | -5 |
| 2026-08-02 18:57 | core(accounts): implement generated account command | triesap | 6 | +223 | -2 |
| 2026-08-02 18:55 | core(nostr): add key generation and parsing adapter | triesap | 6 | +541 | -8 |
| 2026-08-02 18:51 | test(core): add public redaction assertions | triesap | 4 | +108 | -3 |
| 2026-08-02 18:50 | core(secrets): add OS keyring credential adapter | triesap | 7 | +1063 | -4 |
| 2026-08-02 18:47 | core(secrets): add failure-injection credential fake | triesap | 3 | +170 | -3 |
| 2026-08-02 18:47 | core(secrets): add credential-store port and fake | triesap | 6 | +149 | -7 |
| 2026-08-02 18:45 | core(storage): wire persistence into AppCore bootstrap | triesap | 7 | +220 | -5 |
| 2026-08-02 18:44 | core(storage): add account operation journal | triesap | 8 | +449 | -8 |
| 2026-08-02 18:40 | core(storage): add account namespace persistence | triesap | 7 | +206 | -10 |
| 2026-08-02 18:32 | core(storage): persist Nostr profile cache | triesap | 7 | +342 | -17 |
| 2026-08-02 18:27 | core(storage): persist account registry and selection | triesap | 8 | +422 | -9 |
| 2026-08-02 18:24 | core(storage): add SQLite migration foundation | triesap | 9 | +705 | -11 |
| 2026-08-02 18:21 | core(state): add deterministic transition traces | triesap | 5 | +441 | -41 |
| 2026-08-02 18:16 | core(state): add in-memory AppCore observers | triesap | 3 | +217 | -1 |
| 2026-08-02 18:14 | core(state): add application service ports | triesap | 3 | +232 | -2 |
| 2026-08-02 18:12 | core(state): define immutable application snapshots | triesap | 6 | +384 | -10 |
| 2026-08-02 18:10 | core(domain): model kind-zero profile metadata | triesap | 4 | +297 | -1 |
| 2026-08-02 18:08 | core(domain): add Nostr account summary types | triesap | 6 | +244 | -1 |
| 2026-08-02 18:07 | core(domain): add relay URL validation | triesap | 6 | +514 | -1 |
| 2026-08-02 18:05 | core(domain): model NIP-19 display encodings | triesap | 4 | +111 | -5 |
| 2026-08-02 18:04 | core(domain): add redacted secret input boundary | triesap | 6 | +135 | -3 |
| 2026-08-02 18:01 | core(domain): add Nostr public key identity | triesap | 3 | +144 | -1 |
| 2026-08-02 18:00 | core(domain): define module layout and safe errors | triesap | 8 | +121 | -8 |
| 2026-08-02 17:59 | build(core): document Rust validation gates | triesap | 2 | +22 | -1 |
| 2026-08-02 17:58 | build(core): establish the Rust workspace | triesap | 17 | +175 | -2 |
| 2026-08-02 17:56 | docs: audit current accounts proof and Nostr references | triesap | 10 | +302 | -4 |
| 2026-08-02 17:54 | docs: define Nostr runtime checkpoint sequence | triesap | 1 | +565 | -0 |
| 2026-08-01 19:49 | ui: edit styles | triesap | 1 | +10 | -0 |
| 2026-08-01 18:51 | test: fail closed on an empty test inventory | triesap | 1 | +36 | -0 |
| 2026-08-01 18:41 | package: align the macOS alpha distribution | triesap | 1 | +4 | -6 |
| 2026-08-01 18:39 | test: prove the complete account UI journey | triesap | 2 | +48 | -0 |
| 2026-08-01 18:37 | ui: add confirmed account removal controls | triesap | 2 | +106 | -0 |
| 2026-08-01 18:36 | ui: add explicit account status controls | triesap | 2 | +73 | -0 |
| 2026-08-01 18:35 | ui: add the validated account form | triesap | 2 | +164 | -0 |
| 2026-08-01 18:33 | ui: present account list and selection | triesap | 3 | +182 | -14 |
| 2026-08-01 18:31 | runtime: compose the production account store | triesap | 2 | +50 | -6 |
| 2026-08-01 18:30 | test: prove account store isolation | triesap | 1 | +49 | -0 |
| 2026-08-01 18:29 | accounts: add the observable account store | triesap | 2 | +47 | -0 |
| 2026-08-01 18:29 | test: prove the complete account action trace | triesap | 1 | +32 | -0 |
| 2026-08-01 18:28 | accounts: implement confirmed account removal | triesap | 2 | +162 | -1 |
| 2026-08-01 18:27 | accounts: implement explicit account status actions | triesap | 2 | +103 | -0 |
| 2026-08-01 18:26 | accounts: implement validated account creation | triesap | 3 | +211 | -0 |
| 2026-08-01 18:25 | test: centralize synthetic account fixtures | triesap | 2 | +36 | -16 |
| 2026-08-01 18:24 | accounts: enforce account state invariants | triesap | 2 | +155 | -0 |
| 2026-08-01 18:23 | accounts: define the proof model vocabulary | triesap | 6 | +125 | -0 |
| 2026-08-01 18:22 | runtime: separate native and application composition | triesap | 3 | +21 | -13 |
| 2026-08-01 18:17 | test: establish the Compose test runtime | triesap | 3 | +29 | -0 |
| 2026-07-31 22:11 | runtime: migrate application runtime to Kotlin | triesap | 131 | +586 | -104526 |
| 2026-07-31 19:58 | deps: align the prepublication release cohort | triesap | 8 | +471 | -87 |
| 2026-07-30 20:02 | studio: govern host build and launch readiness | triesap | 4 | +58 | -5 |
| 2026-07-22 21:30 | deps: use registry block release | triesap | 5 | +2 | -415 |
| 2026-07-22 21:02 | sqlite: enforce registry bundled runtime | triesap | 4 | +96 | -5 |
| 2026-07-19 20:39 | tests: isolate protocol wire fixtures | triesap | 4 | +31 | -9 |
| 2026-07-18 11:38 | build: bind Studio to alpha event contract | triesap | 7 | +104 | -60 |
| 2026-07-17 19:28 | chore: snapshot local changes before remote alignment | triesap | 3 | +5 | -5 |
| 2026-07-16 16:56 | release-product: cut studio to semantic trade envelopes | triesap | 19 | +3008 | -5425 |
| 2026-07-15 23:05 | build: make Studio validation warning-clean | triesap | 9 | +296 | -292 |
| 2026-07-15 21:44 | runtime: tighten supervisor source boundary | triesap | 2 | +31 | -31 |
| 2026-07-15 20:30 | runtime: adopt desktop runtime supervisor | triesap | 12 | +2071 | -1766 |
| 2026-07-15 17:35 | runtime: align studio with validator receipt flow | triesap | 9 | +143 | -2029 |
| 2026-07-15 15:53 | runtime: align sdk signer and workflow states | triesap | 16 | +106 | -115 |
| 2026-07-15 05:31 | sqlite: move app store to SQLx | triesap | 32 | +2214 | -1558 |
| 2026-07-15 02:12 | sqlite: align app bundled runtime | triesap | 3 | +77 | -38 |
| 2026-07-15 01:19 | runtime: align SDK event evidence boundary | triesap | 6 | +303 | -188 |
| 2026-07-11 23:25 | crate-surface: use runtime store namespace | triesap | 31 | +1031 | -888 |
| 2026-07-05 02:54 | runtime: keep trade projections root aware | triesap | 3 | +319 | -39 |
| 2026-07-04 01:48 | runtime: keep validation receipts pending | triesap | 2 | +33 | -13 |
| 2026-07-04 01:02 | runtime: require explicit order note confirmation | triesap | 13 | +424 | -48 |
| 2026-07-04 00:11 | runtime: route trade mutations through SDK evidence modes | triesap | 3 | +120 | -68 |
| 2026-07-03 07:44 | runtime: rename fallback projection terms | triesap | 5 | +35 | -27 |
| 2026-07-03 06:40 | accounts: use primary-only secret backend | triesap | 2 | +1 | -1 |
| 2026-07-01 11:29 | studio: guard production dead-code suppressions | triesap | 2 | +19 | -1 |
| 2026-07-01 09:37 | desktop: harden source guard classification | triesap | 1 | +294 | -122 |
| 2026-07-01 04:50 | tests: harden source guard test stripping | triesap | 1 | +294 | -10 |
| 2026-07-01 04:43 | runtime: remove unused trade status aliases | triesap | 3 | +8 | -92 |
| 2026-07-01 04:40 | deps: govern patched block source | triesap | 4 | +90 | -25 |
| 2026-07-01 00:17 | build: patch block future incompatibility | triesap | 4 | +350 | -2 |
| 2026-06-30 23:57 | tests: harden Studio SDK surface guards | triesap | 1 | +113 | -0 |
| 2026-06-30 22:52 | studio: use grouped trade status | triesap | 1 | +0 | -1 |
| 2026-06-30 10:13 | store: enforce current schema cleanup | triesap | 7 | +100 | -93 |
| 2026-06-30 07:02 | desktop: harden sdk boundary guards | triesap | 2 | +101 | -63 |
| 2026-06-30 06:24 | trade: route studio actions through sdk facade | triesap | 14 | +1217 | -2711 |
| 2026-06-26 13:48 | runtime: refactor trade workflow projection | triesap | 20 | +796 | -409 |
| 2026-06-26 08:23 | desktop: align SDK client workflow status | triesap | 3 | +82 | -36 |
| 2026-06-26 07:17 | workflow: align studio app with RHI-pending trades | triesap | 31 | +882 | -401 |
| 2026-06-24 01:13 | app: share NIP-46 signer execution | triesap | 6 | +245 | -197 |
| 2026-06-20 04:21 | app: align order negotiation workflow | triesap | 18 | +302 | -1596 |
| 2026-06-20 03:39 | app: align order UI copy with agreements | triesap | 4 | +26 | -56 |
| 2026-06-20 03:32 | app: prune agreement-only order state | triesap | 28 | +631 | -6165 |
| 2026-06-19 23:23 | sync: guard deferred payment publish work | triesap | 1 | +17 | -5 |
| 2026-06-19 22:00 | runtime: harden listing publish retry state | triesap | 6 | +323 | -39 |
| 2026-06-19 21:18 | runtime: propagate listing SDK enqueue failure | triesap | 5 | +213 | -23 |
| 2026-06-19 11:29 | runtime: align order lifecycle SDK evidence tests | triesap | 1 | +445 | -373 |
| 2026-06-19 10:56 | runtime: remove listing direct publish guard exceptions | triesap | 2 | +29 | -86 |
| 2026-06-19 10:52 | runtime: migrate listing publish to SDK runtime | triesap | 2 | +277 | -587 |
| 2026-06-19 10:28 | runtime: add SDK listing enqueue command | triesap | 4 | +231 | -13 |
| 2026-06-19 08:46 | view: align order projection fixture | triesap | 1 | +1 | -0 |
| 2026-06-19 06:59 | app: route order lifecycle through sdk | triesap | 5 | +1023 | -271 |
| 2026-06-19 05:58 | app: route order decisions through sdk | triesap | 5 | +443 | -139 |
| 2026-06-19 05:07 | app: migrate farm and order publish to sdk | triesap | 8 | +906 | -379 |
| 2026-06-19 04:35 | store: add sdk migration receipts | triesap | 6 | +719 | -9 |
| 2026-06-18 21:41 | app: harden sdk runtime shutdown | triesap | 1 | +96 | -42 |
| 2026-06-18 21:35 | app: expand sdk boundary source guards | triesap | 1 | +107 | -84 |
| 2026-06-18 21:29 | app: surface sdk diagnostics in about status | triesap | 5 | +805 | -20 |
| 2026-06-18 21:15 | app: defer validation receipt migration audit | triesap | 1 | +29 | -3 |
| 2026-06-18 21:12 | app: harden sdk migration audit statuses | triesap | 1 | +357 | -11 |
| 2026-06-18 20:45 | app: add sdk boundary source guards | triesap | 2 | +474 | -1 |
| 2026-06-18 20:28 | app: add sdk restore lifecycle guards | triesap | 2 | +484 | -28 |
| 2026-06-18 20:22 | app: add read-only sdk migration audit | triesap | 2 | +946 | -0 |
| 2026-06-18 20:13 | app: surface sdk runtime diagnostics | triesap | 3 | +417 | -7 |
| 2026-06-18 20:07 | app: add sdk runtime foundation | triesap | 5 | +709 | -24 |
| 2026-06-18 19:56 | app: align sdk local runtime dependency | triesap | 4 | +302 | -65 |
| 2026-06-18 19:31 | build: refresh dependency lockfile | triesap | 1 | +0 | -1 |
| 2026-06-14 21:48 | runtime: align trade reducer APIs | triesap | 3 | +44 | -32 |
| 2026-06-13 23:37 | sdk: align app order event types | triesap | 4 | +586 | -343 |
| 2026-06-13 22:09 | sdk: point app at SDK workspace | triesap | 4 | +42 | -26 |
| 2026-06-13 07:44 | app: align typed order ids | triesap | 4 | +227 | -174 |
| 2026-06-13 02:48 | app: align order event consumer APIs | triesap | 5 | +677 | -748 |
| 2026-06-09 18:51 | ui: update blossom settings status | triesap | 5 | +69 | -13 |
| 2026-06-09 18:41 | ui: update relay settings actions | triesap | 2 | +38 | -28 |
| 2026-06-08 02:47 | ui: fix sidebar account menu layout | triesap | 1 | +19 | -9 |
| 2026-06-08 02:00 | ui: refine sidebar account menu | triesap | 1 | +13 | -12 |
| 2026-06-08 01:53 | ui: add sidebar account menu | triesap | 4 | +168 | -14 |
| 2026-06-08 00:34 | ui: tighten shared pill tabs | triesap | 1 | +10 | -7 |
| 2026-06-08 00:08 | ui: bound farm details card scroll | triesap | 2 | +43 | -28 |
| 2026-06-07 23:59 | ui: refine farm profile summary | triesap | 2 | +17 | -12 |
| 2026-06-07 23:54 | ui: fix account content width | triesap | 1 | +1 | -0 |
| 2026-06-07 23:49 | ui: fix account farm layout alignment | triesap | 2 | +5 | -20 |
| 2026-06-07 23:45 | ui: fix farm details profile layout | triesap | 1 | +25 | -22 |
| 2026-06-07 23:40 | ui: align farm pill tab styling | triesap | 2 | +61 | -10 |
| 2026-06-07 23:35 | ui: fix farm details sticky tabs | triesap | 1 | +88 | -75 |
| 2026-06-07 23:23 | ui: add farm details nested tabs | triesap | 7 | +195 | -22 |
| 2026-06-07 23:17 | ui: revert account tab scroll edge | triesap | 1 | +0 | -7 |
| 2026-06-07 23:11 | ui: tighten account tab scroll edge | triesap | 1 | +7 | -0 |
| 2026-06-07 23:05 | ui: fix account tab action header | triesap | 1 | +111 | -70 |
| 2026-06-07 22:57 | ui: remove farm profile completeness card | triesap | 4 | +1 | -204 |
| 2026-06-07 22:51 | ui: expand farm details scroll view | triesap | 5 | +1227 | -52 |
| 2026-06-07 22:26 | ui: move account form actions into headings | triesap | 7 | +272 | -76 |
| 2026-06-07 22:11 | ui: refine settings relay row controls | triesap | 6 | +156 | -44 |
| 2026-06-07 21:55 | ui: bootstrap account settings view | triesap | 5 | +438 | -12 |
| 2026-06-07 21:35 | ui: add farm details heading | triesap | 5 | +20 | -10 |
| 2026-06-07 21:28 | ui: soften form focus and harmonize account defaults | triesap | 3 | +27 | -5 |
| 2026-06-07 21:22 | ui: set account form controls to 28px | triesap | 1 | +1 | -1 |
| 2026-06-07 21:21 | ui: set account form controls to 34px | triesap | 1 | +1 | -1 |
| 2026-06-07 21:17 | ui: unify account form control height | triesap | 1 | +20 | -17 |
| 2026-06-07 21:12 | ui: prevent farm textarea first-paint overflow | triesap | 1 | +83 | -10 |
| 2026-06-07 21:04 | ui: keep choice button size stable | triesap | 1 | +16 | -4 |
| 2026-06-07 20:56 | fix: apply shell surface route on top nav | triesap | 1 | +32 | -1 |
| 2026-06-07 20:52 | fix: reset account route on surface selection | triesap | 1 | +59 | -5 |
| 2026-06-07 20:43 | ui: refine account form control sizing | triesap | 1 | +6 | -3 |
| 2026-06-07 20:42 | ui: align account form select styling | triesap | 1 | +16 | -1 |
| 2026-06-07 20:38 | ui: tune account form density | triesap | 1 | +45 | -13 |
| 2026-06-07 20:11 | ui: bootstrap account farm details step | triesap | 5 | +748 | -1 |
| 2026-06-07 20:04 | ui: make account profile form interactive | triesap | 6 | +369 | -143 |
| 2026-06-07 19:50 | ui: add account profile details panel | triesap | 6 | +309 | -35 |
| 2026-06-07 19:40 | ui: seat account tab indicator | triesap | 1 | +21 | -19 |
| 2026-06-07 19:36 | ui: align account tab underline color | triesap | 1 | +15 | -4 |
| 2026-06-07 19:33 | ui: tune account underline tabs | triesap | 2 | +21 | -3 |
| 2026-06-07 19:27 | app: add account tab surface | triesap | 10 | +268 | -24 |
| 2026-06-07 18:50 | app: add settings about product section | triesap | 5 | +178 | -3 |
| 2026-06-07 18:38 | ui: tune settings account card | triesap | 3 | +21 | -15 |
| 2026-06-07 18:31 | app: refine settings account selector | triesap | 5 | +149 | -18 |
| 2026-06-07 18:26 | ui: round account dropdown trigger | triesap | 1 | +4 | -14 |
| 2026-06-07 18:22 | app: refine settings account dropdown | triesap | 7 | +113 | -51 |
| 2026-06-07 18:12 | app: refine settings account footer actions | triesap | 1 | +34 | -8 |
| 2026-06-07 18:09 | app: refine settings account actions | triesap | 3 | +31 | -31 |
| 2026-06-07 17:59 | app: fix settings account window | triesap | 2 | +279 | -69 |
| 2026-06-07 05:54 | app: enforce settings width token | triesap | 3 | +26 | -10 |
| 2026-06-07 05:50 | app: read general settings from runtime | triesap | 3 | +91 | -20 |
| 2026-06-07 05:46 | app: return issue submits to order detail | triesap | 1 | +31 | -6 |
| 2026-06-07 05:44 | app: reopen focused order details | triesap | 1 | +165 | -26 |
| 2026-06-07 05:41 | app: add focused commerce views | triesap | 8 | +688 | -658 |
| 2026-06-06 22:06 | app: enlarge macos icon logomark | triesap | 1 | +0 | -0 |
| 2026-06-06 21:43 | app: update macos icon source | triesap | 1 | +0 | -0 |
| 2026-06-06 06:16 | app: add passive validation receipt evidence | triesap | 15 | +1597 | -28 |
| 2026-06-06 05:34 | app: add buyer issue receipt parity | triesap | 17 | +1364 | -98 |
| 2026-06-06 04:53 | app: add seller fulfillment authoring parity | triesap | 10 | +465 | -262 |
| 2026-06-06 04:17 | app: add passive payment display states | triesap | 11 | +588 | -8 |
| 2026-06-06 03:55 | runtime: use shared trade event kind constants | triesap | 5 | +136 | -24 |
| 2026-06-06 03:11 | app: prove relay settlement preflight | triesap | 1 | +135 | -7 |
| 2026-06-06 02:49 | app: make lifecycle preflight payment aware | triesap | 1 | +778 | -91 |
| 2026-06-05 23:55 | app: preserve reducer lifecycle parents | triesap | 1 | +242 | -46 |
| 2026-06-05 05:55 | app: align lifecycle evidence with reducer | triesap | 3 | +736 | -106 |
| 2026-06-05 04:53 | orders: align fulfillment gates with workflow evidence | triesap | 2 | +233 | -37 |
| 2026-06-05 03:28 | orders: align lifecycle action vocabulary | triesap | 7 | +182 | -71 |
| 2026-06-05 00:53 | app: harden selected buyer nostr scope | triesap | 1 | +56 | -10 |
| 2026-06-05 00:41 | app: remove stale local order mutations | triesap | 4 | +89 | -281 |
| 2026-06-05 00:13 | app: align linked buyer lifecycle actions | triesap | 5 | +708 | -95 |
| 2026-06-04 23:24 | app: show relay buyer orders for selected account | triesap | 3 | +259 | -88 |
| 2025-08-25 15:37 | Initial commit. | triesap | 0 | +0 | -0 |
| 2026-06-04 01:30 | tests: refresh workflow surface coverage | triesap | 2 | +248 | -1 |
| 2026-06-04 01:18 | guards: harden workflow copy checks | triesap | 2 | +302 | -42 |
| 2026-06-04 01:06 | orders: align farmer workflow projection | triesap | 5 | +464 | -150 |
| 2026-06-04 00:36 | buyer: align order review workflow | triesap | 13 | +921 | -354 |
| 2026-06-03 23:54 | sync: use shared fulfillment state | triesap | 3 | +78 | -69 |
| 2026-06-03 23:29 | view: derive workflow projection from trade reducer | triesap | 4 | +356 | -181 |
| 2026-06-03 18:51 | store: fail closed on workflow revision keys | triesap | 4 | +284 | -22 |
| 2026-06-03 08:27 | app: reserve payment workflow presentation | triesap | 5 | +113 | -7 |
| 2026-06-03 08:19 | app: add active trade revision workflow | triesap | 14 | +1355 | -38 |
| 2026-06-03 07:50 | app: publish active trade lifecycle events | triesap | 8 | +1401 | -56 |
| 2026-06-03 07:20 | app: harden seller order decision preflight | triesap | 1 | +72 | -12 |
| 2026-06-03 07:14 | app: show localized trade workflow badges | triesap | 9 | +410 | -114 |
| 2026-06-03 06:42 | app: show order economics payment status | triesap | 10 | +366 | -47 |
| 2026-06-03 06:07 | store: project active trade events through reducer | triesap | 4 | +1035 | -64 |
| 2026-06-03 05:50 | view: define trade workflow projection contract | triesap | 4 | +635 | -10 |
| 2026-05-26 22:52 | tests: add direct relay publish coverage | triesap | 1 | +167 | -0 |
| 2026-05-26 19:47 | store: organize app repositories | triesap | 14 | +7199 | -7188 |
| 2026-05-26 19:44 | models: split app types and views | triesap | 37 | +4505 | -4464 |
| 2026-05-26 19:36 | build: update app crate path references | triesap | 0 | +0 | -0 |
| 2026-05-26 19:34 | build: move app crate directories | triesap | 78 | +90 | -91 |
| 2026-05-26 17:58 | sqlite: make duplicate replacement atomic | triesap | 1 | +198 | -0 |
| 2026-05-26 17:54 | sqlite: preserve buyer state on listing convergence | triesap | 2 | +279 | -45 |
| 2026-05-26 17:48 | sqlite: guard listing currentness | triesap | 1 | +492 | -4 |
| 2026-05-26 17:43 | sqlite: gate network app listing projection reuse | triesap | 1 | +396 | -40 |
| 2026-05-26 11:51 | sqlite: prune superseded listing projections | triesap | 1 | +169 | -0 |
| 2026-05-26 11:33 | sqlite: converge app-origin listing projections | triesap | 1 | +148 | -1 |
| 2026-05-26 09:19 | runtime: mark relay ingest as network source | triesap | 2 | +53 | -10 |
| 2026-05-26 08:31 | runtime: align relay ingest projection tests | triesap | 1 | +27 | -19 |
| 2026-05-26 07:57 | runtime: fix relay source provenance | triesap | 2 | +32 | -50 |
| 2026-05-26 04:35 | sqlite: require usable order request evidence | triesap | 2 | +280 | -25 |
| 2026-05-26 04:21 | runtime: require fresh relay state before seller decisions | triesap | 1 | +156 | -1 |
| 2026-05-26 04:11 | sqlite: preserve app order event evidence | triesap | 1 | +287 | -16 |
| 2026-05-26 03:19 | runtime: accept relay-ingested order evidence | triesap | 5 | +292 | -27 |
| 2026-05-26 02:46 | runtime: refresh sync status after receipts | triesap | 1 | +66 | -1 |
| 2026-05-26 02:07 | orders: publish seller decisions | triesap | 1 | +194 | -13 |
| 2026-05-26 01:54 | orders: prepare seller decision payloads | triesap | 6 | +1272 | -30 |
| 2026-05-26 01:24 | checkout: require account for order placement | triesap | 3 | +275 | -125 |
| 2026-05-26 01:08 | orders: add declined order projection | triesap | 11 | +513 | -11 |
| 2026-05-25 22:27 | sync: preserve empty sync transport requests | triesap | 2 | +12 | -1 |
| 2026-05-25 21:03 | sync: persist relay ingest freshness | triesap | 6 | +902 | -81 |
| 2026-05-25 20:34 | sync: use observed relay provenance | triesap | 3 | +214 | -13 |
| 2026-05-25 20:06 | sync: run relay ingest after outbound failure | triesap | 1 | +187 | -40 |
| 2026-05-25 19:42 | sqlite: project signed order events | triesap | 4 | +860 | -7 |
| 2026-05-25 09:59 | runtime: close relay validation guards | triesap | 3 | +42 | -39 |
| 2026-05-25 09:22 | sync: preserve relay-ingested farm visibility | triesap | 1 | +273 | -2 |
| 2026-05-25 08:15 | sync: gate order provenance relay | triesap | 1 | +110 | -17 |
| 2026-05-25 08:04 | sync: add desktop relay ingest | triesap | 2 | +792 | -24 |
| 2026-05-25 07:27 | config: enforce strict relay urls | triesap | 4 | +95 | -31 |
| 2026-05-25 07:19 | sync: use canonical relay evidence | triesap | 1 | +24 | -18 |
| 2026-05-25 05:24 | runtime: use canonical relay fingerprints | triesap | 1 | +19 | -4 |
| 2026-05-25 04:49 | runtime: bind receipts to payload account | triesap | 2 | +163 | -16 |
| 2026-05-25 04:40 | runtime: validate relay urls | triesap | 3 | +95 | -2 |
| 2026-05-25 03:04 | products: block stale availability publish work | triesap | 5 | +408 | -54 |
| 2026-05-25 02:53 | sync: bind publish signing to payload account | triesap | 1 | +196 | -17 |
| 2026-05-25 02:45 | sync: keep partial publish results truthful | triesap | 3 | +242 | -34 |
| 2026-05-25 02:39 | buyer: persist listing relay provenance | triesap | 6 | +204 | -20 |
| 2026-05-25 02:29 | runtime: require configured relay set | triesap | 6 | +145 | -95 |
| 2026-05-25 01:51 | app: remove obsolete sync warnings | triesap | 4 | +12 | -95 |
| 2026-05-25 01:39 | sync: prove direct relay convergence | triesap | 4 | +612 | -180 |
| 2026-05-25 00:39 | sync: harden listing publishability | triesap | 13 | +578 | -187 |
| 2026-05-25 00:14 | sync: add direct relay app transport | triesap | 6 | +827 | -13 |
| 2026-05-24 23:59 | sync: recover order coordination on resume | triesap | 1 | +55 | -1 |
| 2026-05-24 23:54 | sync: make app outbox deterministic | triesap | 7 | +431 | -65 |
| 2026-05-24 23:42 | sync: add typed app publish work | triesap | 5 | +527 | -0 |
| 2026-05-24 22:17 | app: add buyer order retry action | triesap | 6 | +174 | -13 |
| 2026-05-24 22:00 | app: split order recovery proofs | triesap | 1 | +192 | -152 |
| 2026-05-24 21:51 | app: enqueue order sync after recovery retry | triesap | 1 | +132 | -11 |
| 2026-05-24 20:25 | app: refresh orders after coordination retry | triesap | 1 | +195 | -26 |
| 2026-05-24 20:20 | app: show saved orders after coordination failure | triesap | 6 | +104 | -39 |
| 2026-05-24 17:56 | app: preserve buyer order bin identity | triesap | 6 | +327 | -63 |
| 2026-05-24 17:40 | app: add buyer order coordination recovery | triesap | 5 | +587 | -9 |
| 2026-05-24 11:38 | app: scope reminder schedule keys | triesap | 2 | +12 | -4 |
| 2026-05-24 11:17 | app: fix buyer order economics export | triesap | 1 | +8 | -3 |
| 2026-05-24 10:28 | app: append buyer order local work | triesap | 8 | +948 | -9 |
| 2026-05-24 10:06 | app: add typed buyer notices | triesap | 5 | +178 | -63 |
| 2026-05-24 09:53 | core: use shared local events path contract | triesap | 4 | +16 | -15 |
| 2026-05-24 08:39 | core: centralize shared local events paths | triesap | 3 | +104 | -43 |
| 2026-05-24 08:26 | app: surface buyer freshness errors | triesap | 2 | +190 | -15 |
| 2026-05-24 06:26 | tests: record buyer section log literals | triesap | 1 | +2 | -0 |
| 2026-05-24 05:23 | core: add app path env reader | triesap | 1 | +39 | -8 |
| 2026-05-24 05:16 | runtime: refresh buyer Browse selection | triesap | 2 | +169 | -16 |
| 2026-05-24 05:04 | runtime: refresh same-query buyer search | triesap | 1 | +88 | -8 |
| 2026-05-24 04:41 | style: format app runtime baseline | triesap | 5 | +1088 | -720 |
| 2026-05-24 02:09 | runtime: refresh buyer local events | triesap | 1 | +173 | -0 |
| 2026-05-23 23:15 | app: add repo-local path profile | triesap | 3 | +154 | -26 |
| 2026-05-23 21:12 | sqlite: project interop listings for buyers | triesap | 1 | +746 | -2 |
| 2026-05-23 20:57 | sqlite: converge signed app listings | triesap | 1 | +230 | -10 |
| 2026-05-23 19:57 | sqlite: replay app local interop records | triesap | 1 | +345 | -21 |
| 2026-05-23 17:29 | sqlite: move local interop cursor into app state | triesap | 3 | +118 | -34 |
| 2026-05-23 10:09 | runtime: expose path-scoped desktop bootstrap | triesap | 2 | +26 | -2 |
| 2026-05-23 09:34 | runtime: mark unresolved app local records non-exportable | triesap | 1 | +141 | -22 |
| 2026-05-23 09:23 | sqlite: prefer signed local interop identity | triesap | 1 | +174 | -20 |
| 2026-05-23 09:20 | sqlite: make local interop change-cursor aware | triesap | 2 | +134 | -14 |
| 2026-05-23 07:49 | app: write app local work records | triesap | 2 | +472 | -7 |
| 2026-05-23 07:19 | app: refresh shared local events on demand | triesap | 3 | +271 | -22 |
| 2026-05-23 06:58 | sqlite: preserve confirmed listing lifecycle state | triesap | 1 | +93 | -7 |
| 2026-05-23 06:55 | sqlite: map signed listing lifecycle status | triesap | 1 | +196 | -8 |
| 2026-05-23 04:12 | local_interop: project signed listing tags | triesap | 1 | +238 | -17 |
| 2026-05-23 03:45 | local_interop: import shared CLI records into app state | triesap | 9 | +1135 | -11 |
| 2026-04-30 14:19 | macos: update app icon source | triesap | 1 | +0 | -0 |
| 2026-04-29 22:03 | macos: fix app icon and gpui sdk build | triesap | 4 | +54 | -7 |
| 2026-04-29 20:23 | tests: restore pack day validation coverage | triesap | 1 | +1 | -3 |
| 2026-04-28 19:13 | tests: prove pack day batch workflow | triesap | 4 | +110 | -6 |
| 2026-04-28 19:08 | pack-day: harden batch print requests | triesap | 2 | +208 | -33 |
| 2026-04-28 18:50 | tests: expand pack day validation | triesap | 3 | +11 | -5 |
| 2026-04-28 18:47 | macos: make host smoke deterministic | triesap | 2 | +7 | -1 |
| 2026-04-28 18:06 | app: wire pack day batch print action | triesap | 3 | +737 | -24 |
| 2026-04-28 17:46 | app: add pack day batch queue execution | triesap | 1 | +246 | -7 |
| 2026-04-28 17:41 | app: add pack day batch print preflight | triesap | 1 | +219 | -13 |
| 2026-04-28 17:33 | app: add pack day batch print contracts | triesap | 5 | +525 | -8 |
| 2026-04-28 16:39 | docs: align app readme with desktop scope | triesap | 0 | +0 | -0 |
| 2026-04-23 08:29 | build: pin mf2_i18n to the upstream git revision | triesap | 2 | +8 | -1 |
| 2026-04-22 22:15 | app: fail closed on customer-label overflow | triesap | 2 | +133 | -28 |
| 2026-04-22 22:07 | app: clean pack day prepared print assets | triesap | 2 | +1006 | -912 |
| 2026-04-22 21:54 | app: enforce letter media for customer-label print plans | triesap | 2 | +64 | -16 |
| 2026-04-22 21:47 | app: add pack day print failure contracts | triesap | 7 | +143 | -42 |
| 2026-04-22 21:00 | pack_day: wire print actions into the export card | triesap | 6 | +629 | -21 |
| 2026-04-22 20:46 | pack_day: add stock-aware customer label planning | triesap | 1 | +443 | -19 |
| 2026-04-22 20:32 | pack_day: add macos print queue planning | triesap | 3 | +755 | -14 |
| 2026-04-22 20:22 | pack_day: add print request contracts | triesap | 8 | +509 | -20 |
| 2026-04-21 21:19 | app: wire pack day artifact actions | triesap | 2 | +237 | -30 |
| 2026-04-21 21:08 | app: prove pack day artifact action planning | triesap | 2 | +152 | -29 |
| 2026-04-21 21:01 | app: widen pack day artifact action contract | triesap | 8 | +159 | -9 |
| 2026-04-21 20:04 | app: close pack day print host lane | triesap | 2 | +19 | -1 |
| 2026-04-21 19:44 | app: wire pack day host follow-on actions | triesap | 7 | +753 | -33 |
| 2026-04-21 19:23 | app: add pack day host bridge planner | triesap | 2 | +526 | -0 |
| 2026-04-21 19:16 | state: add pack day host handoff contract | triesap | 2 | +410 | -24 |
| 2026-04-21 18:45 | pack_day: harden export guards and checks | triesap | 3 | +30 | -22 |
| 2026-04-21 18:33 | pack_day: add export action and status ui | triesap | 5 | +435 | -49 |
| 2026-04-21 18:22 | pack_day: wire export through sqlite and runtime | triesap | 5 | +643 | -19 |
| 2026-04-21 18:04 | pack_day: add export writer | triesap | 4 | +450 | -0 |
| 2026-04-21 17:55 | pack_day: add export contracts | triesap | 2 | +624 | -27 |
| 2026-04-21 06:41 | app: wire macos host proof lane | triesap | 3 | +45 | -6 |
| 2026-04-21 06:25 | app: localize startup copy boundaries | triesap | 5 | +277 | -34 |
| 2026-04-21 04:50 | persist restart continuity across shipped shell | triesap | 4 | +1056 | -343 |
| 2026-04-21 04:13 | app: add deterministic keyboard autofocus contract | triesap | 1 | +771 | -26 |
| 2026-04-21 03:52 | ui: harden shared focus and control semantics | triesap | 6 | +57 | -29 |
| 2026-04-21 02:36 | buyer: close repeat-demand truth gaps | triesap | 7 | +189 | -40 |
| 2026-04-21 02:19 | buyer: add repeat-demand reorder flow | triesap | 8 | +890 | -21 |
| 2026-04-21 00:50 | orders: add seller recovery follow-up workflows | triesap | 9 | +683 | -52 |
| 2026-04-21 00:25 | runtime: add reminder log and local reminder presentation | triesap | 10 | +1024 | -50 |
| 2026-04-20 23:53 | ui: land seller reminder surfaces | triesap | 5 | +453 | -17 |
| 2026-04-20 23:37 | runtime: derive seller reminder projections | triesap | 4 | +795 | -61 |
| 2026-04-20 22:58 | app: add reminder and recovery sqlite persistence | triesap | 4 | +924 | -4 |
| 2026-04-20 22:52 | app: add reminder and recovery contracts | triesap | 7 | +374 | -16 |
| 2026-04-20 21:46 | app: add about-panel sync conflict review actions | triesap | 6 | +676 | -39 |
| 2026-04-20 21:22 | runtime: add sync triggers and pending write semantics | triesap | 6 | +903 | -15 |
| 2026-04-20 21:03 | ui: replace about placeholder with runtime sync status | triesap | 9 | +566 | -83 |
| 2026-04-20 20:44 | runtime: thread sync status through state and summary | triesap | 6 | +400 | -3 |
| 2026-04-20 20:31 | sqlite: align selected-account sync persistence | triesap | 7 | +1029 | -3 |
| 2026-04-20 19:36 | marketplace: reconcile buyer copy coverage | triesap | 3 | +24 | -2 |
| 2026-04-20 19:16 | marketplace: add buyer orders confirmation handoff | triesap | 6 | +472 | -51 |
| 2026-04-20 18:29 | marketplace: add buyer cart checkout flow | triesap | 8 | +997 | -68 |
| 2026-04-20 17:28 | marketplace: add buyer detail cart handoff | triesap | 10 | +1193 | -52 |
| 2026-04-20 17:04 | feat: add buyer browse and search surfaces | triesap | 5 | +721 | -42 |
| 2026-04-20 16:42 | feat: add buyer shell routing and mode switching | triesap | 7 | +664 | -120 |
| 2026-04-20 16:20 | feat: add buyer marketplace sqlite seams | triesap | 5 | +2226 | -6 |
| 2026-04-20 16:04 | feat: add buyer marketplace shell contracts | triesap | 4 | +575 | -34 |
| 2026-04-20 15:17 | tests: fix final validation blockers | triesap | 2 | +1 | -4 |
| 2026-04-20 15:06 | sidebar: keep active farmer destination first | triesap | 1 | +131 | -34 |
| 2026-04-20 00:10 | today: route follow-ons into shared execution screens | triesap | 6 | +464 | -268 |
| 2026-04-19 23:59 | pack_day: land contextual pack day workspace | triesap | 6 | +371 | -19 |
| 2026-04-19 23:46 | orders: land orders screen and detail entry | triesap | 6 | +1204 | -179 |
| 2026-04-19 23:25 | runtime: wire shared orders and pack day routing | triesap | 4 | +929 | -269 |
| 2026-04-19 23:01 | sqlite: add orders and pack day repository seams | triesap | 4 | +1455 | -3 |
| 2026-04-19 22:49 | add orders and pack day model contracts | triesap | 1 | +319 | -8 |
| 2026-04-19 22:25 | i18n: use facade build pipeline for app generation | triesap | 4 | +14 | -255 |
| 2026-04-19 22:21 | i18n: route runtime usage through mf2_i18n | triesap | 5 | +16 | -5 |
| 2026-04-19 22:18 | build: normalize facade migration baseline | triesap | 7 | +238 | -186 |
| 2026-04-19 21:07 | runtime: fix lazy local log root loading | triesap | 1 | +33 | -12 |
| 2026-04-19 20:58 | build: remove runtime env shell helpers | triesap | 2 | +0 | -136 |
| 2026-04-19 20:57 | build: thin launcher runtime passthrough | triesap | 1 | +8 | -7 |
| 2026-04-19 20:56 | runtime: derive app metadata inside rust | triesap | 3 | +78 | -162 |
| 2026-04-19 20:51 | runtime: load app startup config from env | triesap | 5 | +173 | -193 |
| 2026-04-19 20:45 | runtime: freeze direct runtime input tests | triesap | 1 | +82 | -1 |
| 2026-04-19 20:32 | build: rename app shell scripts | triesap | 10 | +538 | -523 |
| 2026-04-19 20:26 | ui: fix input text visibility | triesap | 1 | +2 | -0 |
| 2026-04-19 20:24 | ui: fix setup checklist label width | triesap | 1 | +1 | -0 |
| 2026-04-19 19:27 | tests: add launcher ui boundary guards | triesap | 1 | +115 | -1 |
| 2026-04-19 19:19 | ui: move utility settings and farm rules onto shared ui | triesap | 3 | +517 | -523 |
| 2026-04-19 19:08 | ui: move startup home and products controls into shared ui | triesap | 3 | +224 | -261 |
| 2026-04-19 18:58 | ui: add shared layout primitives | triesap | 3 | +232 | -242 |
| 2026-04-19 18:25 | ui: add semantic text and form primitives | triesap | 3 | +405 | -380 |
| 2026-04-19 17:58 | ui: normalize layered theme contract | triesap | 4 | +657 | -549 |
| 2026-04-19 02:20 | ui: restyle shared text inputs | triesap | 4 | +173 | -35 |
| 2026-04-19 01:50 | window: restore today sidebar shell | triesap | 2 | +51 | -238 |
| 2026-04-19 01:36 | window: prioritize inline farm setup form on home | triesap | 1 | +4 | -5 |
| 2026-04-19 01:32 | window: open farm setup form directly from home | triesap | 1 | +19 | -14 |
| 2026-04-19 01:08 | state: wire farm readiness through shell and products | triesap | 7 | +504 | -175 |
| 2026-04-19 00:48 | settings: add farm rules scheduling editors | triesap | 7 | +1538 | -120 |
| 2026-04-19 00:19 | settings: add farm profile and pickup editing | triesap | 8 | +1373 | -69 |
| 2026-04-18 23:55 | settings: add farm rules utility window structure | triesap | 9 | +512 | -97 |
| 2026-04-18 23:29 | sqlite: add farm rules persistence | triesap | 5 | +1217 | -2 |
| 2026-04-18 23:18 | models: add farm rules contracts | triesap | 1 | +306 | -8 |
| 2026-04-18 23:08 | test: fix startup signer source guard fixture | triesap | 1 | +1 | -1 |
| 2026-04-18 23:01 | test: cover startup hardening invariants | triesap | 2 | +180 | -2 |
| 2026-04-18 22:55 | startup: harden signer cancel flow | triesap | 1 | +66 | -12 |
| 2026-04-18 22:37 | runtime: make pending signer cleanup idempotent | triesap | 1 | +49 | -2 |
| 2026-04-18 21:07 | app: activate restart-safe remote signer sessions | triesap | 6 | +864 | -43 |
| 2026-04-18 20:29 | app: wire signer preview and pending onboarding | triesap | 6 | +624 | -30 |
| 2026-04-18 19:12 | app: restore the shared remote signer client seam | triesap | 7 | +1601 | -0 |
| 2026-04-18 18:55 | app: land the startup identity choice shell | triesap | 4 | +486 | -102 |
| 2026-04-18 18:38 | app: add typed startup identity choice contracts | triesap | 6 | +550 | -12 |
| 2026-04-18 17:58 | i18n: add products workflow copy coverage | triesap | 1 | +52 | -0 |
| 2026-04-18 17:54 | desktop: add product editor flow | triesap | 5 | +1273 | -80 |
| 2026-04-18 17:32 | desktop: add stock updates and today products follow-ons | triesap | 5 | +881 | -327 |
| 2026-04-18 09:18 | desktop: add truthful farmer products surface | triesap | 6 | +1403 | -28 |
| 2026-04-18 08:54 | sqlite: add products repository seam | triesap | 5 | +1189 | -3 |
| 2026-04-18 08:44 | products: add typed screen and editor contracts | triesap | 2 | +750 | -10 |
| 2026-04-18 08:33 | runtime: reconcile launcher prerequisites for products | triesap | 2 | +217 | -40 |
| 2026-04-18 07:37 | home: add saved farm shell states | triesap | 4 | +302 | -38 |
| 2026-04-18 07:27 | home: add farm setup form and local save | triesap | 9 | +933 | -42 |
| 2026-04-18 07:04 | window: add farm setup onboarding state | triesap | 6 | +516 | -55 |
| 2026-04-18 06:47 | sqlite: add farm setup repository seam | triesap | 4 | +449 | -1 |
| 2026-04-18 06:41 | app: add typed farm setup state | triesap | 2 | +479 | -16 |
| 2026-04-18 04:36 | tests: cover shell reset copy contract | triesap | 2 | +57 | -0 |
| 2026-04-18 04:34 | app: restore inert settings utility shell | triesap | 1 | +114 | -466 |
| 2026-04-18 04:22 | app: add setup create-account bootstrap | triesap | 4 | +41 | -1 |
| 2026-04-18 04:19 | app: restore home-first shell startup | triesap | 2 | +94 | -98 |
| 2026-04-18 03:58 | app: reconcile auth copy and workspace validation | triesap | 6 | +31 | -11 |
| 2026-04-18 03:51 | app: route startup through account surfaces | triesap | 5 | +651 | -193 |
| 2026-04-18 03:22 | app: add local identity runtime commands | triesap | 5 | +934 | -21 |
| 2026-04-18 03:10 | app: add host-vault accounts bootstrap | triesap | 7 | +1263 | -27 |
| 2026-04-18 02:58 | app: align runtime paths and activation persistence | triesap | 8 | +514 | -58 |
| 2026-04-18 02:45 | app: add typed identity and activation projections | triesap | 9 | +947 | -194 |
| 2026-04-18 02:26 | app: replace shell mode with active surface | triesap | 3 | +154 | -70 |
| 2026-04-18 00:53 | app: size home window to instruments frame | triesap | 2 | +14 | -5 |
| 2026-04-18 00:43 | app: add typed activity journal foundation | triesap | 9 | +713 | -31 |
| 2026-04-18 00:27 | app: harden launcher logging verification | triesap | 5 | +305 | -54 |
| 2026-04-18 00:17 | app: harden macos host run lane | triesap | 5 | +325 | -117 |
| 2026-04-18 00:02 | app: add runtime config and logging bootstrap | triesap | 13 | +1092 | -32 |
| 2026-04-17 23:38 | macos: use app-local icon source | triesap | 2 | +2 | -9 |
| 2026-04-17 23:14 | app: remove home sidebar brand label | triesap | 1 | +0 | -6 |
| 2026-04-17 23:13 | app: remove settings window edge line | triesap | 1 | +2 | -1 |
| 2026-04-17 23:10 | app: align macos desktop bootstrap | triesap | 5 | +58 | -37 |
| 2026-04-17 23:00 | app: add macos app icon | triesap | 4 | +92 | -0 |
| 2026-04-17 22:55 | app: ignore macos derived data | triesap | 1 | +1 | -0 |
| 2026-04-17 22:55 | app: add macos host bundle launcher | triesap | 5 | +168 | -1 |
| 2026-04-17 22:43 | app: route about menu to settings window | triesap | 1 | +16 | -1 |
| 2026-04-17 22:40 | app: align macos menu identity | triesap | 3 | +9 | -2 |
| 2026-04-17 21:15 | tests: cover today runtime state and source guards | triesap | 3 | +84 | -16 |
| 2026-04-17 21:11 | home: replace metadata shell with today agenda | triesap | 5 | +523 | -135 |
| 2026-04-17 20:55 | sqlite: add the today agenda query path | triesap | 6 | +757 | -1 |
| 2026-04-17 20:46 | state: share settings state and add the today projection | triesap | 3 | +325 | -71 |
| 2026-04-17 20:36 | runtime: add the desktop runtime boundary | triesap | 6 | +273 | -172 |
| 2026-04-17 20:19 | build: restore standalone buildability | triesap | 6 | +318 | -46 |
| 2026-04-17 19:42 | launcher: wire startup through the radroots_studio_app substrate | triesap | 9 | +293 | -5 |
| 2026-04-17 19:32 | sync: add the radroots_studio_app sync seam crate | triesap | 4 | +587 | -0 |
| 2026-04-17 19:25 | state: add the radroots_studio_app shell state crate | triesap | 6 | +536 | -26 |
| 2026-04-17 19:11 | sqlite: add the radroots_studio_app sqlite substrate | triesap | 7 | +510 | -0 |
| 2026-04-17 19:06 | models: add the radroots_studio_app local-first model crate | triesap | 7 | +407 | -29 |
| 2026-04-17 18:44 | tests: add the radroots_studio_app launcher source guards | triesap | 2 | +64 | -0 |
| 2026-04-17 18:41 | ui: port the radroots_studio_app placeholder panels | triesap | 2 | +459 | -54 |
| 2026-04-17 18:33 | ui: refactor the radroots_studio_app settings shell posture | triesap | 2 | +71 | -117 |
| 2026-04-17 18:31 | ui: refactor the radroots_studio_app home shell | triesap | 1 | +8 | -11 |
| 2026-04-17 18:29 | i18n: rewrite the radroots_studio_app shell copy contract | triesap | 8 | +134 | -260 |
| 2026-04-17 18:17 | ui: add reusable radroots_studio_app control primitives | triesap | 2 | +349 | -4 |
| 2026-04-17 18:14 | ui: expand the radroots_studio_app theme contract | triesap | 6 | +797 | -14 |
| 2026-04-17 17:36 | app: add placeholder settings panels | triesap | 5 | +297 | -29 |
| 2026-04-17 17:17 | app: add settings shell menu wiring | triesap | 7 | +285 | -3 |
| 2026-04-17 17:05 | app: add home shell metadata layout | triesap | 11 | +312 | -34 |
| 2026-04-17 17:00 | core: add runtime snapshot boundary | triesap | 5 | +330 | -22 |
| 2026-04-17 16:55 | i18n: add typed shell catalog | triesap | 12 | +751 | -9 |
| 2026-04-17 16:47 | ui: add shared shell theme tokens | triesap | 6 | +227 | -44 |
| 2026-04-17 16:40 | app: restructure gpui workspace skeleton | triesap | 15 | +200 | -77 |
| 2026-04-17 16:14 | app: initialize gpui app shell | triesap | 136 | +4549 | -25035 |
| 2026-04-12 16:53 | app: reconcile runtime repo fallout | triesap | 1 | +14 | -13 |
| 2026-04-12 04:57 | launchers: use shared accounts bootstrap helpers | triesap | 3 | +19 | -24 |
| 2026-04-11 00:40 | app: refactor repository structure | triesap | 98 | +3163 | -3076 |
| 2026-04-10 23:37 | app: update crate directories | triesap | 17 | +38 | -38 |
| 2026-04-10 23:24 | app: update crate metadata | triesap | 19 | +56 | -56 |
| 2026-04-10 17:27 | app: update crate metadata | triesap | 11 | +222 | -81 |
| 2026-04-09 22:08 | remote-signer: avoid nested runtime reentry | triesap | 1 | +9 | -32 |
| 2026-04-09 04:14 | app: add shared runtime path adapter | triesap | 7 | +143 | -71 |
| 2026-04-08 16:39 | security: align native host vault posture | triesap | 5 | +62 | -24 |
| 2026-04-08 00:45 | app: adopt canonical runtime paths | triesap | 16 | +364 | -118 |
| 2026-04-07 22:34 | build: refresh lockfile for shared secret store deps | triesap | 1 | +17 | -0 |
| 2026-04-07 17:57 | app: adopt shared host-vault boundary | triesap | 15 | +354 | -182 |
| 2026-04-03 05:13 | web: disable trunk wasm-opt for web build | triesap | 1 | +7 | -1 |
| 2026-04-02 19:31 | remote-signer: gate macos sessions by approved capability | triesap | 8 | +480 | -202 |
| 2026-04-02 15:24 | remote-signer: add permission-scoped note proof | triesap | 14 | +1386 | -133 |
| 2026-04-02 00:49 | remote-signer: request explicit review permissions | triesap | 7 | +85 | -14 |
| 2026-04-01 15:58 | deps: refresh cargo lockfile | triesap | 1 | +40 | -0 |
| 2026-03-29 10:04 | remote-signer: fix controller poller handoff lifecycle | triesap | 1 | +513 | -18 |
| 2026-03-29 02:43 | remote-signer: align typed pending poll app coverage | triesap | 3 | +28 | -30 |
| 2026-03-28 20:02 | app: make pending signer cleanup transactional | triesap | 1 | +44 | -4 |
| 2026-03-28 20:00 | app: keep remote signer polling single-owner | triesap | 6 | +127 | -31 |
| 2026-03-28 19:39 | app: purge empty remote signer namespace on startup | triesap | 1 | +33 | -1 |
| 2026-03-28 19:30 | app: tighten remote signer teardown ordering | triesap | 1 | +66 | -21 |
| 2026-03-28 19:27 | app: roll back remote signer activation drift | triesap | 3 | +51 | -15 |
| 2026-03-28 19:24 | app: isolate remote signer vault namespace purge | triesap | 15 | +479 | -36 |
| 2026-03-28 18:14 | app: purge remote signer state during reset | triesap | 8 | +83 | -1 |
| 2026-03-28 18:10 | app: share remote signer teardown and recovery | triesap | 8 | +506 | -136 |
| 2026-03-28 18:01 | app: use typed remote signer poll outcomes | triesap | 1 | +18 | -17 |
| 2026-03-28 17:49 | app: share remote signer lifecycle core | triesap | 6 | +571 | -513 |
| 2026-03-28 17:30 | app: tighten remote signer poll state handling | triesap | 4 | +182 | -32 |
| 2026-03-22 21:31 | android: add remote signer backend | triesap | 3 | +551 | -29 |
| 2026-03-22 21:31 | ios: add remote signer backend | triesap | 4 | +502 | -29 |
| 2026-03-22 21:17 | desktop: add remote signer backend | triesap | 4 | +569 | -29 |
| 2026-03-22 21:07 | core: add remote signer add account flow | triesap | 2 | +516 | -2 |
| 2026-03-22 21:00 | remote-signer: add app local bunker session crate | triesap | 8 | +1208 | -6 |
| 2026-03-22 17:39 | android: add encrypted local secret key flows | triesap | 2 | +236 | -22 |
| 2026-03-22 17:39 | ios: add encrypted local secret key flows | triesap | 1 | +163 | -17 |
| 2026-03-22 17:38 | desktop: add encrypted local secret key flows | triesap | 2 | +193 | -23 |
| 2026-03-22 17:38 | core: make local secret custody encrypted-first | triesap | 6 | +577 | -78 |
| 2026-03-22 16:26 | web: add browser signer account roster | triesap | 1 | +37 | -5 |
| 2026-03-22 16:26 | android: add local account roster support | triesap | 1 | +67 | -9 |
| 2026-03-22 16:26 | ios: add local account roster support | triesap | 1 | +65 | -4 |
| 2026-03-22 16:25 | desktop: add local account roster support | triesap | 1 | +66 | -6 |
| 2026-03-22 16:25 | core: add account roster and custody model | triesap | 2 | +435 | -59 |
| 2026-03-22 15:02 | tests: add approved fixture audit | triesap | 2 | +18 | -0 |
| 2026-03-22 15:01 | ios: migrate tests to approved fixtures | triesap | 2 | +7 | -2 |
| 2026-03-22 14:58 | core: migrate tests to approved fixtures | triesap | 3 | +48 | -79 |
| 2026-03-22 14:55 | tests: add app-local approved fixture crate | triesap | 3 | +101 | -0 |
| 2026-03-22 13:45 | web: add wasm offline geocoder parity | triesap | 4 | +379 | -34 |
| 2026-03-22 13:14 | web: keep async home country lookup unavailable | triesap | 1 | +27 | -3 |
| 2026-03-22 13:12 | android: add async country lookup backend | triesap | 2 | +229 | -1 |
| 2026-03-22 13:08 | ios: add async country lookup backend | triesap | 2 | +227 | -0 |
| 2026-03-22 13:07 | desktop: add async country lookup backend | triesap | 2 | +242 | -0 |
| 2026-03-22 13:03 | core: add async home country lookup | triesap | 5 | +607 | -522 |
| 2026-03-22 12:58 | core: split home location tools modules | triesap | 2 | +514 | -0 |
| 2026-03-22 12:04 | web: keep async home location lookup unavailable | triesap | 1 | +15 | -1 |
| 2026-03-22 12:04 | core: make home location lookup async | triesap | 2 | +316 | -58 |
| 2026-03-22 11:54 | android: add async reverse lookup backend | triesap | 2 | +148 | -2 |
| 2026-03-22 11:50 | ios: add async reverse lookup backend | triesap | 2 | +152 | -2 |
| 2026-03-22 11:47 | desktop: add async reverse lookup backend | triesap | 2 | +158 | -2 |
| 2026-03-22 11:43 | core: add async reverse lookup contract | triesap | 2 | +16 | -1 |
| 2026-03-22 02:23 | core: add home offline location lookup | triesap | 2 | +310 | -1 |
| 2026-03-22 02:12 | core: add home location tools module | triesap | 2 | +63 | -0 |
| 2026-03-22 01:40 | web: report unavailable location resolver boundary | triesap | 1 | +39 | -1 |
| 2026-03-22 01:36 | android: add lazy location resolver boundary | triesap | 2 | +241 | -5 |
| 2026-03-22 01:27 | ios: add lazy location resolver boundary | triesap | 2 | +236 | -5 |
| 2026-03-22 01:25 | desktop: add lazy location resolver boundary | triesap | 2 | +236 | -5 |
| 2026-03-22 01:21 | core: add location resolver boundary | triesap | 2 | +137 | -0 |
| 2026-03-22 01:14 | core: add revision-aware offline geocoder diagnostics | triesap | 12 | +289 | -81 |
| 2026-03-22 01:04 | android: use stamped offline geocoder revisions | triesap | 1 | +33 | -11 |
| 2026-03-22 00:59 | ios: use stamped offline geocoder revisions | triesap | 2 | +71 | -20 |
| 2026-03-22 00:55 | desktop: use stamped offline geocoder revisions | triesap | 2 | +102 | -32 |
| 2026-03-22 00:51 | build: define stamped geocoder asset contract | triesap | 1 | +1 | -0 |
| 2026-03-22 00:35 | core: add release-safe offline geocoder diagnostics | triesap | 2 | +83 | -3 |
| 2026-03-22 00:28 | android: prune stale offline geocoder revisions | triesap | 1 | +100 | -14 |
| 2026-03-22 00:24 | ios: prune stale offline geocoder revisions | triesap | 1 | +91 | -19 |
| 2026-03-22 00:22 | desktop: prune stale offline geocoder revisions | triesap | 1 | +89 | -16 |
| 2026-03-22 00:09 | web: add offline geocoder status coverage | triesap | 1 | +40 | -9 |
| 2026-03-22 00:07 | android: make offline geocoder staging idempotent | triesap | 5 | +26 | -8 |
| 2026-03-22 00:05 | ios: make offline geocoder staging idempotent | triesap | 3 | +67 | -12 |
| 2026-03-22 00:03 | desktop: make offline geocoder staging idempotent | triesap | 1 | +64 | -7 |
| 2026-03-22 00:01 | core: type offline geocoder unavailable states | triesap | 10 | +328 | -143 |
| 2026-03-21 22:20 | web: report offline geocoder as unavailable | triesap | 1 | +14 | -1 |
| 2026-03-21 22:19 | android: add non-blocking offline geocoder init | triesap | 8 | +317 | -3 |
| 2026-03-21 22:14 | ios: add non-blocking offline geocoder init | triesap | 7 | +243 | -5 |
| 2026-03-21 22:09 | desktop: add non-blocking offline geocoder init | triesap | 6 | +519 | -4 |
| 2026-03-21 22:04 | core: add offline geocoder runtime state | triesap | 2 | +182 | -0 |
| 2026-03-21 21:41 | build: define community app geocoder asset contract | triesap | 2 | +2 | -0 |
| 2026-03-21 20:20 | android: add secret-key import for local identities | triesap | 1 | +74 | -1 |
| 2026-03-21 20:11 | ios: add secret-key import for local identities | triesap | 4 | +253 | -2 |
| 2026-03-21 19:38 | desktop: add secret-key import for local identities | triesap | 5 | +205 | -137 |
| 2026-03-21 19:13 | core: zeroize recovery-key ui state | triesap | 3 | +23 | -10 |
| 2026-03-21 19:08 | android: require auth before revealing recovery key | triesap | 7 | +498 | -13 |
| 2026-03-21 18:53 | ios: require auth before revealing recovery key | triesap | 1 | +14 | -0 |
| 2026-03-21 18:38 | desktop: require auth before revealing recovery key | triesap | 7 | +133 | -2 |
| 2026-03-21 18:25 | android: add recovery-key backup for local identities | triesap | 1 | +52 | -2 |
| 2026-03-21 18:20 | ios: add recovery-key backup for local identities | triesap | 1 | +51 | -1 |
| 2026-03-21 18:11 | desktop: add recovery-key backup for local identities | triesap | 3 | +58 | -1 |
| 2026-03-21 18:03 | core: add backup and recovery action contract | triesap | 5 | +313 | -64 |
| 2026-03-21 17:51 | core: define local identity reset contract | triesap | 1 | +1 | -1 |
| 2026-03-21 17:41 | build: route wasm commands through with-wasm-toolchain.sh | triesap | 1 | +3 | -3 |
| 2026-03-21 17:35 | web: add browser-signer disconnect action | triesap | 1 | +34 | -1 |
| 2026-03-21 17:34 | core: add capability-driven home action model | triesap | 5 | +181 | -248 |
| 2026-03-21 16:58 | android: add device-reset action for local state | triesap | 1 | +105 | -0 |
| 2026-03-21 16:50 | ios: add device-reset action for local state | triesap | 1 | +89 | -0 |
| 2026-03-21 16:41 | desktop: add device-reset action for local state | triesap | 2 | +297 | -16 |
| 2026-03-21 16:33 | android: add remove-key action for local identities | triesap | 1 | +63 | -3 |
| 2026-03-21 12:58 | ios: add remove-key action for local identities | triesap | 5 | +51 | -5 |
| 2026-03-21 12:40 | desktop: add app icon for native runs | triesap | 5 | +30 | -3 |
| 2026-03-21 12:33 | desktop: add remove-key action for local identities | triesap | 2 | +207 | -1 |
| 2026-03-21 12:22 | android: enable local nostr key generation | triesap | 8 | +768 | -15 |
| 2026-03-21 04:39 | build: add shared android security library | triesap | 15 | +820 | -1 |
| 2026-03-21 03:50 | build: add initial android launcher shell | triesap | 21 | +939 | -1 |
| 2026-03-21 01:15 | desktop: share apple keychain vault across apple targets | triesap | 16 | +699 | -500 |
| 2026-03-21 00:27 | build: fix ios simulator keychain signing | triesap | 4 | +13 | -2 |
| 2026-03-21 00:14 | ios: enable local nostr key generation | triesap | 1 | +56 | -25 |
| 2026-03-21 00:01 | ios: add apple keychain vault adapter | triesap | 7 | +606 | -4 |
| 2026-03-20 22:52 | build: add shared apple security package | triesap | 12 | +651 | -1 |
| 2026-03-20 22:26 | build: add initial ios launcher shell | triesap | 32 | +611 | -1 |
| 2026-03-20 18:52 | desktop: harden app data directory permissions | triesap | 1 | +64 | -8 |
| 2026-03-20 18:47 | web: avoid startup panics on missing dom | triesap | 1 | +49 | -22 |
| 2026-03-20 18:34 | web: add nip-07 browser signer setup | triesap | 7 | +366 | -62 |
| 2026-03-20 17:59 | desktop: add macos key onboarding gate | triesap | 6 | +1772 | -34 |
| 2026-03-20 17:34 | build: split bootstrap workspace into core desktop and web | triesap | 18 | +173 | -150 |
| 2026-03-20 16:27 | build: bootstrap wasm target | triesap | 13 | +228 | -19 |
| 2026-03-20 15:49 | app: reinitialize workspace with native egui bootstrap | triesap | 186 | +1990 | -37901 |
| 2026-03-20 14:35 | build: upgrade icondata and getrandom | triesap | 5 | +12 | -12 |
| 2026-03-20 14:29 | core: use replica crate names directly | triesap | 4 | +18 | -18 |
| 2026-03-20 14:13 | build: refresh frontend dependency baseline | triesap | 3 | +21 | -21 |
| 2026-03-20 13:33 | build: refresh dependency baseline | triesap | 1 | +120 | -135 |
| 2026-03-20 03:36 | tangle: publish sync events to relays | triesap | 3 | +865 | -25 |
| 2026-03-20 03:26 | docs: clarify standalone repo rules | triesap | 1 | +6 | -0 |
| 2026-03-20 03:08 | build: align replica and ui primitive integrations | triesap | 6 | +46 | -82 |
| 2026-03-20 03:01 | build: repoint workspace deps to local sources | triesap | 4 | +329 | -232 |
| 2026-02-07 01:51 | ui: use list toggles in config | triesap | 4 | +248 | -111 |
| 2026-02-06 19:32 | ui: fix ios switch motion | triesap | 2 | +4 | -4 |
| 2026-02-06 19:22 | ui: refine ios switch colors | triesap | 1 | +4 | -3 |
| 2026-02-06 19:08 | app: fix notification toggles | triesap | 1 | +22 | -22 |
| 2026-02-06 18:57 | app: remove payment method from config | triesap | 2 | +1 | -21 |
| 2026-02-06 18:48 | app: add individual summary view | triesap | 2 | +141 | -23 |
| 2026-02-06 18:08 | app: update individual config step | triesap | 2 | +30 | -106 |
| 2026-02-06 17:42 | app: lock config role to setup | triesap | 1 | +43 | -36 |
| 2026-02-06 16:39 | app: persist configuration flow | triesap | 5 | +287 | -4 |
| 2026-02-06 16:28 | app: add config flow screens | triesap | 1 | +542 | -8 |
| 2026-02-06 16:18 | ui: add form field primitives | triesap | 4 | +106 | -0 |
| 2026-02-06 16:06 | app: add config flow draft and validation | triesap | 2 | +189 | -0 |
| 2026-02-06 15:54 | app: add config status gating | triesap | 5 | +263 | -3 |
| 2026-02-06 15:41 | app: add config data model and storage keys | triesap | 3 | +411 | -0 |
| 2026-02-06 14:34 | ui: migrate pages to chrome layout | triesap | 10 | +384 | -243 |
| 2026-02-06 13:56 | ui: add nav tabs component | triesap | 4 | +96 | -0 |
| 2026-02-06 13:41 | ui: wire nav header scroll modes | triesap | 3 | +181 | -22 |
| 2026-02-06 13:23 | ui: add nav header skeleton | triesap | 4 | +99 | -0 |
| 2026-02-06 13:11 | ui: add scroll context utilities | triesap | 4 | +124 | -0 |
| 2026-02-06 12:13 | ui: add nav layout vars | triesap | 1 | +15 | -0 |
| 2026-02-06 11:52 | app: adjust navigation and settings title | triesap | 3 | +61 | -13 |
| 2026-02-06 04:15 | app: add home segmented toggle | triesap | 2 | +126 | -292 |
| 2026-02-06 03:17 | app: add settings status page | triesap | 13 | +635 | -230 |
| 2026-02-05 15:59 | docs: update env setup to radroots | triesap | 2 | +8 | -8 |
| 2026-02-05 15:45 | build: add cargo env defaults | triesap | 1 | +4 | -0 |
| 2026-02-05 15:33 | app: switch config env names to radroots | triesap | 1 | +2 | -2 |
| 2026-02-05 15:31 | core: remove unused datastore import | triesap | 1 | +0 | -3 |
| 2026-02-02 21:47 | app: add recovery reset flow | triesap | 7 | +147 | -3 |
| 2026-02-02 21:33 | app: gate app shell on setup status | triesap | 8 | +151 | -78 |
| 2026-02-02 21:10 | app: wire setup flow into setup ui | triesap | 7 | +317 | -103 |
| 2026-02-02 20:40 | app: add setup flow state machine | triesap | 2 | +237 | -0 |
| 2026-02-02 20:25 | app: add setup lock primitives | triesap | 3 | +376 | -0 |
| 2026-02-02 20:06 | app: add idempotent setup commit | triesap | 2 | +154 | -5 |
| 2026-02-02 19:47 | core: add datastore batch set support | triesap | 4 | +135 | -3 |
| 2026-02-02 19:29 | app: add init setup status checks | triesap | 2 | +131 | -3 |
| 2026-02-02 19:12 | app: add eula fingerprint to setup state | triesap | 3 | +35 | -8 |
| 2026-02-02 18:59 | app: add setup status model | triesap | 2 | +120 | -0 |
| 2026-02-02 18:13 | app: extend setup roles and eula ui | triesap | 12 | +312 | -96 |
| 2026-02-02 16:48 | core: rename app storage keys | triesap | 2 | +2 | -2 |
| 2026-02-02 16:46 | app: fix wasm build helpers | triesap | 6 | +25 | -13 |
| 2026-02-02 16:19 | app: localize settings and ui demo | triesap | 8 | +350 | -29 |
| 2026-02-02 16:07 | app: localize logs page | triesap | 7 | +750 | -37 |
| 2026-02-02 15:48 | app: localize setup eula content | triesap | 7 | +424 | -31 |
| 2026-02-02 15:36 | app: localize setup flow | triesap | 7 | +279 | -28 |
| 2026-02-02 15:20 | app: localize shell and home status | triesap | 7 | +1023 | -39 |
| 2026-02-02 14:32 | build: add embedded i18n assets | triesap | 10 | +78 | -2 |
| 2026-02-02 14:16 | app: add i18n scaffolding | triesap | 5 | +77 | -0 |
| 2026-02-02 03:56 | app: migrate legacy setup keys | triesap | 1 | +195 | -0 |
| 2026-02-02 03:44 | app: seed default relays and profile data | triesap | 6 | +258 | -3 |
| 2026-02-02 03:18 | app: finalize setup on eula accept | triesap | 3 | +112 | -2 |
| 2026-02-02 03:06 | app: persist setup draft during setup | triesap | 1 | +89 | -0 |
| 2026-02-02 02:49 | app: verify nostr key integrity | triesap | 6 | +102 | -6 |
| 2026-02-02 02:30 | app: add setup draft and eula metadata | triesap | 5 | +264 | -0 |
| 2026-02-01 22:29 | app: add setup eula step and enter submit | triesap | 4 | +252 | -17 |
| 2026-01-30 14:52 | ui: remove redundant primitives modules and deps | triesap | 10 | +0 | -1138 |
| 2026-01-30 14:37 | ui: re-export ui-primitives in radroots-app-ui-primitives | triesap | 1 | +29 | -38 |
| 2026-01-28 15:16 | app: Add setup profile confirmation | triesap | 3 | +137 | -8 |
| 2026-01-28 14:55 | ui: Refresh press and input tokens | triesap | 3 | +16 | -4 |
| 2026-01-28 14:19 | ui: Disable active button effects when disabled | triesap | 1 | +7 | -5 |
| 2026-01-28 14:10 | app: Add existing keypair step | triesap | 2 | +82 | -8 |
| 2026-01-28 14:01 | app: Build setup profile ui | triesap | 1 | +59 | -4 |
| 2026-01-28 13:53 | app: Add setup profile step stub | triesap | 2 | +27 | -5 |
| 2026-01-28 13:51 | ui: Refine setup layout and button interactions | triesap | 4 | +115 | -120 |
| 2026-01-27 16:44 | ui: normalize app layout and ids | triesap | 6 | +294 | -207 |
| 2026-01-27 14:31 | ui: migrate dialog attributes to ui-primitives | triesap | 4 | +51 | -13 |
| 2026-01-27 14:18 | ui: migrate roving focus helpers | triesap | 1 | +8 | -24 |
| 2026-01-27 14:09 | build: add ui-primitives dependency wiring | triesap | 3 | +12 | -0 |
| 2026-01-27 03:01 | ui: add reusable bottom button layout with back navigation | triesap | 4 | +241 | -16 |
| 2026-01-24 19:17 | ui: fix theme colors and setup button | triesap | 3 | +46 | -38 |
| 2026-01-24 01:46 | ui: lock tailwind-only theme pipeline | triesap | 14 | +1019 | -307 |
| 2026-01-23 14:47 | app: remove daisyui plugin options | triesap | 1 | +1 | -3 |
| 2026-01-23 14:43 | app: drop daisyui theme plugin | triesap | 2 | +0 | -84 |
| 2026-01-22 23:39 | app: relocate daisyui theme blocks | triesap | 2 | +1 | -1 |
| 2026-01-22 22:54 | docs: add styles parity checklist | triesap | 0 | +0 | -0 |
| 2026-01-22 22:52 | app: restore legacy utility parity | triesap | 2 | +10 | -2 |
| 2026-01-22 22:50 | app: normalize daisyui fallbacks | triesap | 1 | +60 | -60 |
| 2026-01-22 22:49 | ui: align tokens with data-theme | triesap | 1 | +47 | -1 |
| 2026-01-22 22:45 | app: refresh setup intro view | triesap | 4 | +200 | -30 |
| 2026-01-22 17:23 | app: adjust daisyui theme wiring | triesap | 6 | +278 | -74 |
| 2026-01-22 17:04 | app: align daisyui neutral tokens | triesap | 1 | +2 | -2 |
| 2026-01-22 17:03 | app: wire theme selection | triesap | 3 | +52 | -6 |
| 2026-01-22 17:00 | app: initialize daisyui theme | triesap | 3 | +174 | -1 |
| 2026-01-22 16:58 | app: add daisyui theme bridge | triesap | 2 | +70 | -0 |
| 2026-01-22 16:56 | app: add daisyui dependency | triesap | 1 | +7 | -0 |
| 2026-01-22 16:51 | app: fix tailwind theme utilities | triesap | 3 | +157 | -102 |
| 2026-01-22 16:25 | app: harden native app shell | triesap | 3 | +40 | -12 |
| 2026-01-22 16:19 | app: add setup key choice view | triesap | 1 | +87 | -0 |
| 2026-01-22 16:18 | app: scaffold setup intro screen | triesap | 1 | +51 | -66 |
| 2026-01-22 16:15 | app: add setup step model | triesap | 2 | +60 | -2 |
| 2026-01-22 16:12 | app: harmonize imported css layers | triesap | 2 | +1 | -232 |
| 2026-01-22 16:09 | app: port legacy static stylesheets | triesap | 5 | +495 | -0 |
| 2026-01-22 16:08 | app: import radroots theme css assets | triesap | 5 | +285 | -0 |
| 2026-01-22 15:53 | app: migrate tailwind pipeline to v4 | triesap | 9 | +421 | -440 |
| 2026-01-22 15:17 | app: align list styling with trellis tokens | triesap | 7 | +436 | -232 |
| 2026-01-22 11:29 | app: add settings route | triesap | 3 | +189 | -0 |
| 2026-01-22 11:19 | app: refresh ui demo list | triesap | 1 | +165 | -14 |
| 2026-01-22 11:16 | app: refine list css hooks | triesap | 1 | +18 | -0 |
| 2026-01-22 11:13 | app: add list container view | triesap | 2 | +221 | -0 |
| 2026-01-22 11:05 | app: add list select row view | triesap | 2 | +92 | -0 |
| 2026-01-22 11:00 | app: add list input row view | triesap | 2 | +133 | -1 |
| 2026-01-22 10:59 | app: add list touch row view | triesap | 2 | +60 | -6 |
| 2026-01-22 10:55 | app: add list line component | triesap | 2 | +77 | -0 |
| 2026-01-22 04:54 | app: add list offset and end views | triesap | 2 | +170 | -0 |
| 2026-01-22 04:51 | app: add spinner component for ui states | triesap | 2 | +61 | -0 |
| 2026-01-22 04:50 | app: add list title and default label views | triesap | 2 | +190 | -0 |
| 2026-01-22 04:48 | app: add list row label and display components | triesap | 2 | +158 | -0 |
| 2026-01-22 04:39 | app: port trellis css foundation | triesap | 2 | +339 | -0 |
| 2026-01-22 04:39 | app: add list configuration types | triesap | 2 | +339 | -0 |
| 2026-01-22 04:38 | app: scaffold list component module | triesap | 2 | +157 | -0 |
| 2026-01-22 04:38 | app: add lucide icon foundation | triesap | 5 | +150 | -0 |
| 2026-01-22 00:33 | app: stabilize dialog presence lifecycle | triesap | 2 | +58 | -11 |
| 2026-01-22 00:16 | app: stabilize ui primitives and dialog lifecycle | triesap | 13 | +151 | -73 |
| 2026-01-21 20:53 | app: add ui demo settings page | triesap | 6 | +120 | -22 |
| 2026-01-21 20:47 | app: add sheet and list group styles | triesap | 1 | +76 | -0 |
| 2026-01-21 20:45 | ui: add sheet components | triesap | 3 | +239 | -24 |
| 2026-01-21 20:40 | ui: add dialog components | triesap | 4 | +360 | -1 |
| 2026-01-21 20:25 | ui: add base button label separator components | triesap | 5 | +132 | -0 |
| 2026-01-21 20:23 | ui: add modal aria hidden helper | triesap | 3 | +223 | -0 |
| 2026-01-21 20:20 | ui: add roving focus helpers | triesap | 2 | +155 | -0 |
| 2026-01-21 20:18 | ui: add scroll lock primitive | triesap | 3 | +193 | -0 |
| 2026-01-21 20:14 | ui: add focus scope primitive | triesap | 3 | +215 | -0 |
| 2026-01-21 20:09 | ui: add dismissable layer primitive | triesap | 3 | +167 | -1 |
| 2026-01-21 20:06 | ui: add presence primitive | triesap | 3 | +149 | -0 |
| 2026-01-21 20:00 | ui: add portal primitive | triesap | 3 | +39 | -0 |
| 2026-01-21 19:57 | ui: add motion and contrast preference helpers | triesap | 3 | +66 | -0 |
| 2026-01-21 19:56 | ui: add input modality tracking | triesap | 3 | +138 | -0 |
| 2026-01-21 19:54 | ui: add event composition helpers | triesap | 2 | +88 | -0 |
| 2026-01-21 19:52 | ui: add core id helper | triesap | 2 | +89 | -0 |
| 2026-01-21 19:50 | app: wire ui stylesheet layers | triesap | 3 | +67 | -0 |
| 2026-01-21 19:49 | app: add tailwind build plumbing | triesap | 5 | +26 | -0 |
| 2026-01-21 19:47 | ui: add ios design tokens css | triesap | 2 | +116 | -0 |
| 2026-01-21 19:45 | app: add ui crate scaffolds | triesap | 10 | +82 | -0 |
| 2026-01-21 18:58 | app: reset all state and logs | triesap | 2 | +25 | -4 |
| 2026-01-21 18:51 | app: add setup initializer and flow | triesap | 3 | +374 | -0 |
| 2026-01-21 18:47 | core: rename app datastore store id | triesap | 1 | +1 | -1 |
| 2026-01-21 18:15 | app: add explicit state create and update helpers | triesap | 2 | +91 | -2 |
| 2026-01-21 18:12 | app: require existing state for notification updates | triesap | 1 | +195 | -6 |
| 2026-01-21 18:03 | app: store state records with migration | triesap | 6 | +133 | -22 |
| 2026-01-21 17:55 | app: add versioned app state record | triesap | 3 | +166 | -2 |
| 2026-01-21 17:50 | app: move logs to logs store | triesap | 4 | +38 | -13 |
| 2026-01-21 17:19 | app: add splash gating before setup routing | triesap | 1 | +32 | -10 |
| 2026-01-21 17:07 | app: skip health errors when setup required | triesap | 3 | +141 | -39 |
| 2026-01-21 16:30 | app: stop auto-initializing app data | triesap | 1 | +0 | -52 |
| 2026-01-21 16:27 | app: remove cfg data bootstrap | triesap | 7 | +4 | -170 |
| 2026-01-21 16:19 | app: gate uninitialized routes to setup | triesap | 2 | +33 | -0 |
| 2026-01-21 16:16 | app: add setup requirement checker | triesap | 1 | +258 | -2 |
| 2026-01-21 16:12 | app: add app data initialization predicate | triesap | 2 | +17 | -2 |
| 2026-01-21 15:55 | app: parallelize health checks | triesap | 1 | +66 | -24 |
| 2026-01-21 15:53 | app: defer log flush off readiness | triesap | 1 | +25 | -8 |
| 2026-01-21 15:51 | app: add deferred log prune helpers | triesap | 2 | +71 | -0 |
| 2026-01-21 15:03 | app: wire typed notifications permission | triesap | 1 | +8 | -4 |
| 2026-01-21 14:56 | app: add typed notifications permission helpers | triesap | 2 | +46 | -0 |
| 2026-01-21 14:32 | app: add support bundle flow | triesap | 1 | +72 | -0 |
| 2026-01-21 14:30 | app: enrich log dump header context | triesap | 1 | +128 | -12 |
| 2026-01-21 14:16 | app: add logs pagination controls | triesap | 1 | +73 | -1 |
| 2026-01-21 14:14 | app: add logs pagination helpers | triesap | 1 | +74 | -2 |
| 2026-01-21 14:13 | app: add log date range filters | triesap | 1 | +76 | -6 |
| 2026-01-21 14:11 | app: prepend log dump header | triesap | 1 | +29 | -1 |
| 2026-01-21 14:11 | app: add log dump header metadata | triesap | 2 | +36 | -0 |
| 2026-01-21 00:09 | app: fix clipboard access in logs page | triesap | 1 | +1 | -3 |
| 2026-01-20 23:59 | app: add logs filtering and view cap | triesap | 1 | +128 | -13 |
| 2026-01-20 23:56 | app: add log dump copy and download | triesap | 2 | +128 | -1 |
| 2026-01-20 23:19 | app: speed up logs page refresh | triesap | 1 | +30 | -28 |
| 2026-01-20 23:17 | app: share datastore handle in backends | triesap | 2 | +15 | -8 |
| 2026-01-20 23:14 | app: streamline log loading and flush | triesap | 2 | +44 | -6 |
| 2026-01-20 23:13 | app: add datastore prefix entry retrieval | triesap | 4 | +59 | -2 |
| 2026-01-20 21:31 | app: align test names with state/settings | triesap | 3 | +17 | -17 |
| 2026-01-20 21:30 | app: move init context to root | triesap | 1 | +87 | -70 |
| 2026-01-20 18:36 | app: rename root components | triesap | 4 | +8 | -8 |
| 2026-01-20 18:34 | app: align bootstrap log labels | triesap | 2 | +3 | -3 |
| 2026-01-20 18:33 | app: rename key map entries to settings/state | triesap | 1 | +12 | -12 |
| 2026-01-20 18:30 | app: align health naming with state/settings | triesap | 3 | +47 | -47 |
| 2026-01-20 18:29 | app: rename state/settings bootstrap helpers | triesap | 5 | +48 | -48 |
| 2026-01-20 18:28 | app: rename state/settings key helpers | triesap | 3 | +29 | -29 |
| 2026-01-20 18:26 | app: rename logging types | triesap | 4 | +118 | -118 |
| 2026-01-20 18:25 | app: rename notifications and tangle types | triesap | 6 | +62 | -62 |
| 2026-01-20 18:24 | app: rename keystore types | triesap | 4 | +23 | -23 |
| 2026-01-20 18:23 | app: rename health types | triesap | 3 | +139 | -139 |
| 2026-01-20 18:22 | app: rename init and context types | triesap | 6 | +179 | -179 |
| 2026-01-20 18:20 | app: rename app config types | triesap | 7 | +161 | -161 |
| 2026-01-20 18:18 | app: rename persisted app data types | triesap | 5 | +39 | -39 |
| 2026-01-20 17:32 | app: add notifications permission request flow | triesap | 1 | +109 | -11 |
| 2026-01-20 17:25 | app: use stored notifications permission | triesap | 1 | +30 | -1 |
| 2026-01-20 17:23 | app: persist notifications permission | triesap | 3 | +38 | -6 |
| 2026-01-20 17:16 | app: use wasm-safe timing for init logs | triesap | 1 | +23 | -3 |
| 2026-01-20 16:51 | app: limit init log persistence to errors | triesap | 4 | +71 | -4 |
| 2026-01-20 16:49 | app: defer health checks after first paint | triesap | 1 | +22 | -1 |
| 2026-01-20 16:47 | app: treat optional health checks as skipped | triesap | 1 | +31 | -11 |
| 2026-01-20 16:44 | app: add init timing logs | triesap | 1 | +30 | -2 |
| 2026-01-20 16:22 | app: abort logs auto-refresh on unmount | triesap | 3 | +19 | -5 |
| 2026-01-20 15:52 | app: add logs auto-refresh | triesap | 3 | +30 | -0 |
| 2026-01-20 15:49 | app: add log clear action | triesap | 3 | +109 | -38 |
| 2026-01-20 15:45 | app: flush logs after health checks | triesap | 3 | +165 | -2 |
| 2026-01-20 14:36 | app: log health check errors | triesap | 1 | +25 | -5 |
| 2026-01-20 00:28 | app: flush logs buffer on refresh | triesap | 1 | +2 | -0 |
| 2026-01-20 00:23 | app: isolate log buffer for tests | triesap | 1 | +44 | -10 |
| 2026-01-19 23:54 | app: instrument keystore notifications and tangle | triesap | 3 | +49 | -7 |
| 2026-01-19 23:52 | app: instrument health checks | triesap | 1 | +45 | -8 |
| 2026-01-19 23:49 | app: instrument init and bootstrap flows | triesap | 2 | +30 | -6 |
| 2026-01-19 23:46 | app: flush buffered logs after init | triesap | 3 | +82 | -10 |
| 2026-01-19 23:42 | app: render logs list and dump panel | triesap | 1 | +131 | -1 |
| 2026-01-19 23:39 | app: add logs route shell | triesap | 6 | +73 | -1 |
| 2026-01-19 23:35 | app: add log entry load and dump helpers | triesap | 2 | +291 | -0 |
| 2026-01-19 23:32 | app: add log entry builder and buffer | triesap | 2 | +107 | -3 |
| 2026-01-19 23:30 | app: generalize log entry key mapping | triesap | 3 | +22 | -22 |
| 2026-01-19 23:17 | app: add structured logging with datastore persistence | triesap | 7 | +638 | -4 |
| 2026-01-19 21:23 | app: add tangle health check stub | triesap | 3 | +40 | -1 |
| 2026-01-19 21:21 | app: add tangle client adapter stub | triesap | 2 | +57 | -0 |
| 2026-01-19 21:20 | app: add notifications health check | triesap | 3 | +59 | -3 |
| 2026-01-19 21:18 | app: add notifications service wrapper | triesap | 2 | +140 | -0 |
| 2026-01-19 21:15 | app: wire init stages for asset bootstrap | triesap | 3 | +103 | -5 |
| 2026-01-19 21:13 | app: add init asset fetch helpers | triesap | 4 | +156 | -0 |
| 2026-01-19 21:09 | app: add config hooks for init assets | triesap | 2 | +37 | -0 |
| 2026-01-19 19:47 | app: show active nostr key in health panel | triesap | 1 | +39 | -3 |
| 2026-01-19 19:46 | app: rerun health checks after reset | triesap | 1 | +5 | -1 |
| 2026-01-19 19:45 | app: validate app data for active key | triesap | 4 | +95 | -1 |
| 2026-01-19 19:42 | app: persist nostr public key in app data | triesap | 3 | +44 | -11 |
| 2026-01-19 19:40 | app: wire reset button to keystore reset | triesap | 1 | +4 | -1 |
| 2026-01-19 19:39 | app: add keystore reset to init reset | triesap | 2 | +68 | -5 |
| 2026-01-19 19:22 | app: strengthen keystore health checks | triesap | 1 | +196 | -19 |
| 2026-01-19 19:19 | app: bootstrap nostr key on init | triesap | 1 | +27 | -0 |
| 2026-01-19 19:18 | app: add keystore bootstrap helpers | triesap | 2 | +171 | -0 |
| 2026-01-19 19:16 | app: add keystore key map schema | triesap | 2 | +67 | -3 |
| 2026-01-19 18:57 | app: update cargo lockfile | triesap | 1 | +1 | -0 |
| 2026-01-19 18:54 | app: auto-run health checks after init | triesap | 1 | +39 | -16 |
| 2026-01-19 18:50 | app: add health check panel | triesap | 1 | +105 | -0 |
| 2026-01-19 18:46 | app: add aggregate health report | triesap | 2 | +30 | -0 |
| 2026-01-19 18:43 | app: add keystore health check | triesap | 4 | +71 | -0 |
| 2026-01-19 18:38 | app: add datastore roundtrip health check | triesap | 2 | +33 | -0 |
| 2026-01-19 18:34 | app: add bootstrap health checks | triesap | 2 | +50 | -1 |
| 2026-01-19 18:31 | app: add key map health check | triesap | 2 | +28 | -1 |
| 2026-01-19 18:28 | app: add health check types | triesap | 3 | +114 | -1 |
| 2026-01-19 18:14 | app: add reset button for bootstrap data | triesap | 2 | +34 | -0 |
| 2026-01-19 18:07 | app: guard bootstrap writes when data exists | triesap | 3 | +62 | -5 |
| 2026-01-19 18:03 | app: add bootstrap reset helper | triesap | 3 | +53 | -4 |
| 2026-01-19 17:59 | app: write bootstrap data during init | triesap | 1 | +12 | -1 |
| 2026-01-19 17:56 | app: add datastore writer for app data | triesap | 2 | +31 | -3 |
| 2026-01-19 17:53 | app: add datastore writer for config data | triesap | 2 | +46 | -0 |
| 2026-01-19 17:49 | app: add datastore key accessors | triesap | 2 | +81 | -0 |
| 2026-01-19 17:46 | app: add bootstrap data types | triesap | 3 | +86 | -0 |
| 2026-01-19 17:33 | app: add AppConfig validation helper | triesap | 2 | +14 | -2 |
| 2026-01-19 17:30 | app: add keystore key map placeholder | triesap | 2 | +18 | -2 |
| 2026-01-19 17:26 | app: validate key maps during init | triesap | 1 | +9 | -1 |
| 2026-01-19 17:24 | app: add key map validation helpers | triesap | 2 | +64 | -0 |
| 2026-01-19 17:20 | app: use default key maps in config | triesap | 1 | +12 | -1 |
| 2026-01-19 17:17 | app: add datastore key map fixtures | triesap | 2 | +67 | -0 |
| 2026-01-19 17:14 | app: use datastore config during init | triesap | 1 | +1 | -1 |
| 2026-01-19 17:12 | app: add datastore config builder | triesap | 2 | +35 | -5 |
| 2026-01-19 17:08 | app: add keystore config wiring | triesap | 3 | +33 | -2 |
| 2026-01-19 17:05 | app: thread app config into init | triesap | 2 | +9 | -3 |
| 2026-01-19 17:01 | app: add app config default helpers | triesap | 2 | +38 | -1 |
| 2026-01-19 16:58 | app: add app key map types | triesap | 2 | +46 | -0 |
| 2026-01-19 16:49 | app: add app context helper for init signals | triesap | 2 | +55 | -0 |
| 2026-01-19 16:45 | app: mark init completion after setup | triesap | 1 | +2 | -0 |
| 2026-01-19 16:44 | app: track init state in app context | triesap | 1 | +40 | -4 |
| 2026-01-19 16:37 | app: add init stage and state types | triesap | 2 | +82 | -1 |
| 2026-01-19 16:28 | app: add init completion storage helpers | triesap | 3 | +59 | -0 |
| 2026-01-19 15:38 | app: wire idb init into root component | triesap | 1 | +15 | -0 |
| 2026-01-19 15:11 | app: fix app init test without Debug bound | triesap | 1 | +4 | -2 |
| 2026-01-19 15:05 | app: add idb bootstrap init for app backends | triesap | 4 | +48 | -4 |
| 2026-01-19 14:59 | app: bootstrap init types and wasm web fixes | triesap | 15 | +133 | -33 |
| 2026-01-19 08:05 | app-lib: add file helpers | triesap | 5 | +219 | -3 |
| 2026-01-19 08:01 | app-lib: add dom helpers | triesap | 3 | +95 | -0 |
| 2026-01-19 07:59 | app-lib: add theme helpers | triesap | 3 | +132 | -0 |
| 2026-01-19 07:57 | app-lib: add locale helper | triesap | 2 | +64 | -0 |
| 2026-01-19 07:56 | app-lib: add query encoding helpers | triesap | 4 | +77 | -0 |
| 2026-01-19 07:55 | app-lib: add storage key helpers | triesap | 2 | +67 | -0 |
| 2026-01-19 07:53 | app-lib: add path helpers | triesap | 2 | +52 | -0 |
| 2026-01-19 07:53 | app-lib: add symbols and sleep helpers | triesap | 5 | +87 | -0 |
| 2026-01-19 07:51 | app-lib: add fetch json helper | triesap | 4 | +174 | -0 |
| 2026-01-19 07:45 | app-lib: add geolocation helpers | triesap | 2 | +33 | -0 |
| 2026-01-19 07:37 | app-lib: add browser platform helper | triesap | 4 | +149 | -0 |
| 2026-01-19 07:33 | app-lib: scaffold shared app crate | triesap | 4 | +18 | -0 |
| 2026-01-19 07:30 | app-utils: add resolve error helper | triesap | 2 | +17 | -5 |
| 2026-01-19 07:28 | app-utils: add model query builder | triesap | 2 | +173 | -5 |
| 2026-01-19 07:26 | app-utils: add model helper types | triesap | 2 | +182 | -0 |
| 2026-01-19 07:25 | app-utils: add asset cache helpers | triesap | 5 | +235 | -0 |
| 2026-01-19 07:21 | app-utils: add media helpers | triesap | 2 | +42 | -0 |
| 2026-01-19 07:21 | app-utils: add currency helpers | triesap | 4 | +133 | -0 |
| 2026-01-19 07:19 | app-utils: add validation schema helpers | triesap | 3 | +138 | -0 |
| 2026-01-19 07:18 | app-utils: add validation regex helpers | triesap | 7 | +482 | -2 |
| 2026-01-19 07:14 | app-utils: add unit helpers | triesap | 2 | +145 | -0 |
| 2026-01-19 07:13 | app-utils: add idb config types | triesap | 2 | +26 | -5 |
| 2026-01-19 07:12 | app-utils: add file path types | triesap | 2 | +53 | -4 |
| 2026-01-19 07:11 | app-utils: add result wrapper types | triesap | 2 | +59 | -2 |
| 2026-01-19 07:10 | app-utils: add id helpers | triesap | 5 | +62 | -0 |
| 2026-01-19 07:09 | app-utils: add async iteration helper | triesap | 5 | +85 | -0 |
| 2026-01-19 07:07 | app-utils: add object helpers | triesap | 4 | +84 | -0 |
| 2026-01-19 07:06 | app-utils: add array buffer helper | triesap | 2 | +34 | -0 |
| 2026-01-19 07:05 | app-utils: add interval range helper | triesap | 4 | +75 | -2 |
| 2026-01-19 06:55 | app-utils: add path resolution helpers | triesap | 2 | +108 | -0 |
| 2026-01-19 06:53 | app-utils: add num_str helper | triesap | 2 | +11 | -2 |
| 2026-01-19 06:53 | app-utils: add parse number helpers | triesap | 2 | +36 | -0 |
| 2026-01-19 06:51 | app-utils: add time helpers | triesap | 2 | +33 | -0 |
| 2026-01-19 06:49 | app-utils: add str_cap_words helper | triesap | 2 | +34 | -2 |
| 2026-01-19 06:49 | app-utils: add str_cap helper | triesap | 2 | +25 | -2 |
| 2026-01-19 06:48 | app-utils: add text encoding helpers | triesap | 2 | +18 | -2 |
| 2026-01-19 06:46 | app-utils: add root symbol constant | triesap | 2 | +15 | -0 |
| 2026-01-19 06:44 | app-utils: add handle_err helper | triesap | 2 | +26 | -2 |
| 2026-01-19 06:42 | app-utils: add throw_err helper | triesap | 2 | +54 | -4 |
| 2026-01-19 06:42 | app-utils: add err_msg helper | triesap | 5 | +38 | -0 |
| 2026-01-19 06:40 | app-utils: add resolve result types | triesap | 2 | +52 | -0 |
| 2026-01-19 06:39 | app-utils: add utils error type | triesap | 1 | +50 | -0 |
| 2026-01-19 06:38 | app-utils: scaffold utils crate | triesap | 4 | +18 | -1 |
| 2026-01-19 04:43 | app-core: add tangle client | triesap | 6 | +1854 | -1 |
| 2026-01-19 04:21 | app-core: add radroots web client | triesap | 5 | +391 | -0 |
| 2026-01-19 04:15 | app-core: add web sql engine | triesap | 7 | +646 | -2 |
| 2026-01-19 02:46 | app-core: add web geolocation adapter | triesap | 3 | +183 | -0 |
| 2026-01-19 02:44 | app-core: add web notifications adapter | triesap | 3 | +338 | -0 |
| 2026-01-19 02:29 | app-core: add web nostr keystore | triesap | 6 | +529 | -2 |
| 2026-01-19 02:07 | app-core: add web keystore implementation | triesap | 3 | +264 | -0 |
| 2026-01-19 02:02 | app-core: add web datastore implementation | triesap | 2 | +522 | -0 |
| 2026-01-19 01:57 | app-core: add encrypted store helper | triesap | 2 | +120 | -0 |
| 2026-01-19 01:55 | app-core: add web crypto service | triesap | 2 | +631 | -0 |
| 2026-01-19 01:45 | app-core: add device key material provider | triesap | 2 | +65 | -0 |
| 2026-01-19 01:44 | app-core: add crypto registry storage | triesap | 5 | +432 | -0 |
| 2026-01-19 01:40 | app-core: add idb keyval helpers | triesap | 4 | +226 | -1 |
| 2026-01-19 01:37 | app-core: add idb store helpers | triesap | 4 | +370 | -1 |
| 2026-01-19 01:32 | app-core: add idb value helper | triesap | 4 | +38 | -0 |
| 2026-01-19 01:28 | app-core: add backup bundle builders | triesap | 4 | +453 | -0 |
| 2026-01-19 01:17 | app-core: add backup codec helpers | triesap | 7 | +235 | -18 |
| 2026-01-19 01:09 | app-core: add crypto kdf helpers | triesap | 2 | +149 | -0 |
| 2026-01-19 01:07 | app-core: add wasm crypto key helpers | triesap | 5 | +163 | -2 |
| 2026-01-19 01:03 | app-core: add crypto random utilities | triesap | 6 | +100 | -2 |
| 2026-01-19 00:59 | app-core: add crypto envelope codec | triesap | 2 | +183 | -0 |
| 2026-01-19 00:57 | app-core: add radroots client types | triesap | 2 | +84 | -0 |
| 2026-01-19 00:56 | app-core: add sql engine types | triesap | 5 | +114 | -0 |
| 2026-01-19 00:53 | app-core: add geolocation types | triesap | 2 | +49 | -0 |
| 2026-01-19 00:52 | app-core: add notifications types | triesap | 2 | +153 | -0 |
| 2026-01-19 00:50 | app-core: add filesystem types and trait | triesap | 2 | +68 | -0 |
| 2026-01-19 00:50 | app-core: add keystore traits | triesap | 2 | +53 | -0 |
| 2026-01-19 00:48 | app-core: add datastore types and trait | triesap | 5 | +94 | -0 |
| 2026-01-19 00:45 | app-core: add cipher trait and config types | triesap | 2 | +50 | -0 |
| 2026-01-19 00:41 | app-core: add backup bundle types | triesap | 2 | +228 | -0 |
| 2026-01-19 00:33 | app-core: add crypto types and traits | triesap | 4 | +197 | -0 |
| 2026-01-19 00:25 | app-core: add idb config constants | triesap | 4 | +112 | -0 |
| 2026-01-19 00:16 | app-core: add tangle error mapping | triesap | 3 | +77 | -0 |
| 2026-01-18 23:54 | app-core: add client sql error map | triesap | 3 | +42 | -0 |
| 2026-01-18 23:52 | app-core: add client radroots error map | triesap | 3 | +63 | -0 |
| 2026-01-18 23:49 | app-core: add client notifications error map | triesap | 3 | +57 | -0 |
| 2026-01-18 23:43 | app-core: add client keystore error map | triesap | 3 | +73 | -0 |
| 2026-01-18 23:40 | app-core: add client geolocation error map | triesap | 3 | +89 | -0 |
| 2026-01-18 23:38 | app-core: add client fs error map | triesap | 3 | +53 | -0 |
| 2026-01-18 23:33 | app-core: add client datastore error map | triesap | 3 | +53 | -0 |
| 2026-01-18 23:30 | app-core: add client backup error map | triesap | 3 | +71 | -0 |
| 2026-01-18 23:27 | app-core: add client cipher error map | triesap | 3 | +65 | -0 |
| 2026-01-18 23:24 | app-core: add client crypto error map | triesap | 7 | +136 | -3 |
| 2026-01-18 19:20 | build: add wasm-release cargo profile | triesap | 2 | +15 | -1 |
| 2026-01-18 18:35 | chore: initialize leptos app | triesap | 12 | +2088 | -48 |
| 2026-01-18 17:24 | chore: initialize rust workspace | triesap | 50 | +7 | -14015 |
| 2026-01-18 16:49 | setup: add farm bootstrap carousel step | triesap | 1 | +178 | -4 |
| 2026-01-13 14:08 | setup: replace role picker with farm/business prompts | triesap | 1 | +97 | -13 |
| 2026-01-13 13:48 | app: unify asset caching and update build graph | triesap | 4 | +56 | -20 |
| 2025-12-28 19:57 | settings: reset init state and sync Nostr before DB export | triesap | 4 | +126 | -37 |
| 2025-12-28 17:02 | backup: switch tangle db backup to json and add export UI | triesap | 3 | +78 | -5 |
| 2025-12-28 15:10 | cfg: add init progress UI and migrate tangle db bindings | triesap | 12 | +328 | -880 |
| 2025-12-27 20:49 | app: centralize startup flow and cache external assets | triesap | 17 | +235 | -56 |
| 2025-12-27 15:55 | build: remove static submodules and consolidate app styles | triesap | 7 | +2 | -32 |
| 2025-12-27 15:06 | app: harden startup flows and expand PWA caching | triesap | 17 | +963 | -653 |
| 2025-12-25 03:12 | nostr: migrate app from NDK to radroots nostr stack | triesap | 13 | +215 | -222 |
| 2025-12-22 21:53 | workspace: migrate to pnpm workspace layout | triesap | 25 | +9924 | -6273 |
| 2025-12-21 04:20 | Embed app name, version, and git hash into the runtime, enrich HTTP initialization, and reinstate farm location conversion. | triesap | 4 | +29 | -11 |
| 2025-12-21 01:37 | Standardized code directives, added media configuration, refreshed dependencies, optimized localization access, enabled dynamic titles, revamped profile photo uploads. | triesap | 11 | +167 | -85 |
| 2025-11-21 03:36 | Update `/settings` with new view component integrated from `@radroots/apps-lib-pwa`. | triesap | 2 | +38 | -0 |
| 2025-11-21 03:00 | Update `/profile/edit` with new view component integrated from `@radroots/apps-lib-pwa`. | triesap | 1 | +88 | -5 |
| 2025-11-21 02:33 | Update `/profile` with new view component integrated from `@radroots/apps-lib-pwa`, upgrade configuration bootstrap to use persisted active key, standardize error guards and farms view typing. | triesap | 8 | +181 | -12 |
| 2025-11-21 01:39 | Initialize database and Nostr session on layout mount, loading user keys, resolving profile relays, connecting the client, and establishing the active user context. | triesap | 1 | +42 | -0 |
| 2025-11-21 01:14 | Upgrade environment configuration, wire API and default relay settings across the app, persist the NIP-05 key into state, and disable service worker precaching. | triesap | 8 | +79 | -32 |
| 2025-11-20 16:52 | Add geolocation field mapping with farm creation and location linking, refactor app utilities and localisations, update `/farms/add` with new view component integrated from `@radroots/apps-lib-pwa`. | triesap | 20 | +372 | -172 |
| 2025-11-20 15:56 | Update `/farms` with new view component integrated from `@radroots/apps-lib-pwa`. | triesap | 5 | +102 | -1 |
| 2025-11-20 15:12 | Migrate application to consume compiled Rust WASM/JS artifacts from external crates, removing local sources. | triesap | 105 | +8361 | -14364 |
| 2025-11-04 00:27 | Add `wasm` crate with modularized `core` and `model` crates, implementing browser-based keystore persistence and WASM SQLite executor. Refactor storage abstraction to support localStorage on web targets, integrate workspace dependency management, and remove legacy modules. | triesap | 113 | +1478 | -11126 |
| 2025-04-29 05:14 | Fix locale keys, update packages. | triesap | 1 | +1 | -1 |
| 2025-04-29 04:58 | Add lib context to root layout. Add `/farms/products/add`, edit farms routes. Refactor callback utils. Add/edit styles, utils. | triesap | 14 | +202 | -136 |
| 2025-04-28 18:26 | Add `/farms/details` page, edit routes, utils. | triesap | 4 | +116 | -28 |
| 2025-04-28 04:06 | Edit `model` crate adding `farm` and `farm_location` models, edit `tangle` crate adding models handlers. Refactor `location_gcs` table fields. Edit farms routes. | triesap | 25 | +506 | -16 |
| 2025-04-27 20:48 | Update `tangle` dependencies using local paths for tauri plugins. Add `/farms/add` page, edit routes, utils, styles. | triesap | 16 | +1235 | -1219 |
| 2025-04-27 04:55 | Add `/farms`, add callback utils, add/edit routes, utils. | triesap | 10 | +275 | -238 |
| 2025-04-27 03:56 | Add `radroots-common` crate, update `tangle_core` and `tangle_model` crate names. Add/edit utils, routes, styles. | triesap | 41 | +710 | -310 |
| 2025-04-10 23:53 | Add/edit nostr sync and poll relay utils. Edit (app) layout subscribers. Edit `/init` client logic, styles. Edit `tangle` set tauri http permissions to all http/https addresses. | triesap | 7 | +142 | -28 |
| 2025-04-10 22:12 | Edit `core` keystore utils and `tangle` keys nostr commands. Edit `/init` refactor client logic, fix use existing nostr key configuration option, fix error messages. Add library config, stores. Add/edit routes, styles, utils. | triesap | 125 | +1212 | -1116 |
| 2025-04-04 14:46 | Add CONTRIBUTING.md | triesap | 1 | +119 | -0 |
| 2025-04-04 14:34 | Add radroots nostr public key to source code. | triesap | 2 | +4 | -3 |
| 2025-04-04 13:20 | Update README.md | triesap | 0 | +0 | -0 |
| 2025-04-04 13:02 | Add `docs` folder and setup screen image for iOS device. | triesap | 0 | +0 | -0 |
| 2025-04-04 11:40 | Add .gitmodules tracking branches. Update packages. | triesap | 5 | +993 | -30 |
| 2025-03-08 00:11 | Edit `model` crate adding update method result pass return types. Add app client nostr sync util. Edit profile views, layouts. | triesap | 12 | +347 | -132 |
| 2025-03-07 13:49 | Add `/profile` page basis. Add nostr sync service. Edit `/init` handlers. Edit utils, styles. | triesap | 8 | +129 | -9 |
| 2025-03-07 09:59 | Update app client to use locale messages from `@radroots/locales`, refactor library components, edit utils. | triesap | 14 | +206 | -398 |
| 2025-03-05 07:08 | Add `@radroots/locales` | triesap | 2 | +4 | -0 |
| 2025-03-04 15:56 | Edit `model` crate, add database update handlers and interfaces. | triesap | 6 | +108 | -18 |
| 2025-03-04 08:17 | Edit `/init`, fix missing config role selection, edit handlers. | triesap | 1 | +2 | -5 |
| 2025-03-04 08:15 | Edit `app` removing key_nostr store and nostr sync utils. | triesap | 4 | +19 | -148 |
| 2025-03-04 07:53 | Add `@radroots/nostr-util`, edit app layouts and utils, update imports/packages. | triesap | 10 | +84 | -28 |
| 2025-02-10 12:35 | Add `model` crate with tables/database utils. Edit `core` adding keystore and nostr key utils. Edit `tauri` refactoring commands, utils, adding nostr key handlers. Refactor app client for svelte version 5, implement `@radroots/lib-app` view based routes. | triesap | 235 | +16461 | -14203 |
| 2025-01-02 05:54 | Update working tree | triesap | 0 | +0 | -0 |
| 2024-12-09 17:16 | Edit `/settings/profile` layout, styles. | triesap | 1 | +55 | -49 |
| 2024-12-09 16:32 | Edit styles | triesap | 5 | +21 | -26 |
| 2024-12-09 16:25 | Edit `/settings/profile/edit` styles. | triesap | 1 | +4 | -4 |
| 2024-12-09 16:23 | Edit `/settings/profile/edit` add keydown submit handlers. Edit `/settings/profile` fix debugging additions. Edit `/cfg/init` styles. Edit components. | triesap | 4 | +12 | -42 |
| 2024-12-09 07:01 | Add `/notifications` page basis. Edit routes, components, utils. | triesap | 11 | +115 | -84 |
| 2024-12-09 06:46 | Edit `/search` add tabs float. | triesap | 2 | +2 | -22 |
| 2024-12-09 06:36 | Add `/search` page basis with search service. Add/edit components, conf. | triesap | 4 | +339 | -0 |
| 2024-12-09 02:06 | Add `/farm/land/edit` page basis. Edit components, routes. | triesap | 3 | +97 | -10 |
| 2024-12-09 01:51 | Edit `/farm/land` and `/farm/land/add` page handlers, styles. | triesap | 2 | +16 | -5 |
| 2024-12-09 01:42 | Edit `/farm/land/add` add submit handler, edit page handlers. Edit `/farm/land` add display column for models. Add map point display component. Add/edit utils. | triesap | 6 | +172 | -26 |
| 2024-12-08 08:51 | Edit async functions add error catch handler. Add app icons. | triesap | 69 | +264 | -269 |
| 2024-12-07 23:50 | Edit `/farm/land/add` modify local coordinates to geolocation position type, add bind values to field inputs, add label select options for area and elevation units. Edit conf, routes. | triesap | 9 | +164 | -38 |
| 2024-12-07 22:32 | Edit crate `core` update model `location_gcs` handlers, `tauri` update `location_gcs` SQL up migration. Edit `/cfg/init` localised strings, styles. | triesap | 3 | +43 | -16 |
| 2024-12-07 22:01 | Add `/farm/land` and `/farm/land/add` routes. Edit `/settings` layout. Add map point select component. Add/edit styles. | triesap | 6 | +471 | -51 |
| 2024-12-07 19:28 | Update localised string translation function. Edit `/settings/profile` layout, styles. | triesap | 25 | +537 | -519 |
| 2024-12-07 18:51 | Edit app root add tabs float. Edit `/settings/profile` add tabs float. Edit `/models/location-gcs` load page handler. | triesap | 3 | +7 | -8 |
| 2024-12-07 18:02 | Edit `/cfg/init` add logo circle, edit features, styles. Edit `/settings/profile` add profile detail layout, nostr sync metadata lifecycle. Add `/settings/profile/edit` with handlers to update nostr profile based on url param rkey, nostr sync metadata lifecycle. Edit app home adding logo circle. Edit components, conf, routes, layouts. | triesap | 13 | +586 | -217 |
| 2024-12-06 06:07 | Remove client map | triesap | 1 | +1 | -2 |
| 2024-12-06 06:02 | Add `/settings/profile`, edit `/settings/nostr`. Add image upload add photo component. Edit home page. Add/edit styles. | triesap | 6 | +305 | -4 |
| 2024-12-06 01:50 | Edit crate `core` add `log_error` model, edit `media_uploads` add file path query bind value, edit `trade_product` add category field. Edit `tauri` crate add `log_error` model handlers, add/edit SQL up migrations. Edit `/cfg/init` add button styles, move fetch methods to utils. Edit `/models/trade-product/add` add kv init, edit styles. Edit root layout add init app handler. Edit app layout add nostr ndk init to app nostr key subscriber. Add models media uploads, error utils. Add/edit fetch utils. Edit lib components. Edit routes. Add/edit conf, types, styles. | triesap | 44 | +1065 | -873 |
| 2024-11-20 12:54 | Edit config add nostr client, add/edit utils. | triesap | 3 | +44 | -55 |
| 2024-11-17 08:35 | Add nostr relay document polling subscriber and document fetch util. Add database nostr sync util for nip-99 events. Edit layout subscribers. Add/edit env, conf, types. | triesap | 11 | +336 | -23 |
| 2024-11-17 04:19 | Edit trade product list card add scroll handlers on media upload image elements. Add conf scroll into view params. | triesap | 4 | +84 | -68 |
| 2024-11-16 09:01 | Edit crates `core` add `media_upload` and `trade_product_media` models, `tauri` add models handlers, SQL up migrations. Edit `/models/trade-product/add` update submit handler to save media upload models, set trade product media relation, upload media files via hosting endpoint. Edit `/models/trade-product` update load data handler for media upload model. Add nostr event sign attest util to pass serialized \"X-Nostr-Event\" fetch request header. Edit routes. Edit lib components, types, utils. Add/edit styles. | triesap | 22 | +848 | -221 |
| 2024-11-15 09:35 | Edit `/models/trade-product/add` add photo upload utils. Edit app layout store subscriptions. Edit `/settings/nostr` select options. Add fetch utils. Edit routes styles. | triesap | 6 | +165 | -22 |
| 2024-11-15 01:31 | Edit trade product list card styles. | triesap | 1 | +23 | -17 |
| 2024-11-15 01:02 | Fix trade product list card focus position. | triesap | 1 | +17 | -7 |
| 2024-11-15 00:51 | Add `/models/trade-product/view`. Edit `models/trade-product` add list card responsive styles. Edit components, routes, styles. | triesap | 11 | +324 | -195 |
| 2024-11-14 23:37 | Edit `/models/trade-product` add list card and line entry components. Edit `/models/trade-product/add` handlers. Add/edit types, utils. | triesap | 8 | +342 | -66 |
| 2024-11-14 19:28 | Edit `core` crate add models get method queries, edit sort statements, add SQL alias, update model table relations SQL, utils. Edit `tauri` crate update model table relation handlers. Edit `/models/` routes. Add logger init/unlisten to root layout. Edit component styles. | triesap | 19 | +1438 | -1078 |
| 2024-11-13 17:26 | Edit `/models/trade-product/add` fix image upload edit envelope, allow post without photo requirement. Edit image upload control. Edit routes. | triesap | 7 | +457 | -426 |
| 2024-11-13 16:16 | Add `/settings/nostr` route with photo hosting option select basis. Edit `/settings` add trellis option select to control color mode. Edit models routes. Add/edit styles. | triesap | 6 | +252 | -60 |
| 2024-11-13 09:41 | Edit `core` add `trade_product_location` model, `tauri` add model handlers, SQL up migration. Update `core` models, `tauri` SQL up migrations. Edit `/models/trade-product/add` add trellis elements, add map envelope, update handlers, add/edit styles. Edit routes. Remove locale defaults. Add/edit components, conf, utils, styles. | triesap | 30 | +1658 | -298 |
| 2024-11-10 06:58 | Edit `models/trade-product/add` add model fields input and select elements, add map location point selection envelope. | triesap | 3 | +561 | -178 |
| 2024-11-10 05:03 | Edit `nostr_profile_relay` model fields. Edit `/models/trade-product/add` update photo upload component, add photo upload handlers. Update `/cfg/init` components. Edit map components. Add geocode uitls. Add/edit styles, utils. | triesap | 17 | +746 | -1131 |
| 2024-11-02 11:02 | Edit `nostr_profile_relay` SQL up migration | triesap | 1 | +4 | -4 |
| 2024-11-02 10:55 | Edit `core` and `tauri` crates adding model `nostr_profile_relay` lib functions, command handlers, SQL up migration. Update `/cfg/init` database client. Edit root layout load. Edit home page envelope. Edit models routes. Edit image upload components. Edit map components. Add numbers config. Edit kv utils. Add trade product utils. Edit @layer base, font css imports. Add/edit styles. | triesap | 28 | +381 | -209 |
| 2024-10-28 03:28 | Edit `models/trade-product/add` rewrite prior page adding writable stores, photo upload feature, simplified views, page param, handler functions. Add image upload display and image upload row components. Add validate fields util for `trade_product`. Add global.d.ts. Add/edit styles. | triesap | 9 | +852 | -1258 |
| 2024-10-26 19:33 | Edit `/cfg/init` update entry components, add superellipse styles. Fix `/models/nostr-profile` select menu element. Add styles. | triesap | 4 | +13 | -9 |
| 2024-10-26 19:17 | Edit `models/trade-product/add` update entry components, add rendering logic, add styles. Add superellipse css/js. Add styles. Add client file system module. | triesap | 15 | +306 | -220 |
| 2024-10-25 11:48 | Edit `/models/trade-product/add` update choose location mapping feature, edit page view handlers, edit error handling, edit styles. Update carousel increment and decrement utils. Update Glyph elements. Add styles. | triesap | 10 | +374 | -308 |
| 2024-10-24 22:22 | Edit `/cfg/init` add confirm dialog to skip profile selection. | triesap | 5 | +19 | -12 |
| 2024-10-24 21:41 | Edit `/models/nostr-profile` trellis styles. Edit reset device util. | triesap | 4 | +159 | -124 |
| 2024-10-24 21:23 | Edit `/cfg/init` add default nostr relay configuration to submit handler. Add reset device util. | triesap | 3 | +351 | -329 |
| 2024-10-24 19:40 | Edit `/models/nostr-profile/` routes, add profiles list page trellis and handler utils, edit profile view page layout and display logic, edit profile field edit page submit handler. Edit (app) home page and layout. Add keystore reset to `/cfg/init` submit handler. | triesap | 6 | +346 | -181 |
| 2024-10-24 13:09 | Edit `/cfg/init` add fetch handlers to create nip-05 profiles, add check for existing configuration keypair, add/edit page error handling, utils, add locales. Edit root, (app), (cfg) layout load functions. Edit `/models/` routes add load data logic and page error handling. Edit `/` add conditional render for app_cfg_type, add/edit styles. Edit page layouts. Add/edit conf, utils, styles, types. Update rust/js packages. | triesap | 29 | +1982 | -1933 |
| 2024-10-18 00:14 | Edit `/conf/init` handlers to check and register nip 05 profile names, update error handling, add localized strings | triesap | 3 | +107 | -51 |
| 2024-10-16 22:24 | Add `core` and `tauri` crates, refactor application adding tauri framework to compile native binaries. Edit `/conf/init` adding mutli-view options for device configuration and EULA. Edit `/models/` routes improving client logic, error handling, and adding localized text. Edit layouts for root, (conf), (app) scopes. Edit lib client, components, config, stores, types, utils. Add styles. | triesap | 174 | +10896 | -5239 |
| 2024-10-11 09:44 | Edit `/conf/init` adding views and updated device configurations options, edit root layout, edit (app) layout, edit (conf) layout, add styles | triesap | 6 | +306 | -68 |
| 2024-10-08 09:12 | Edit build script | triesap | 1 | +1 | -1 |
| 2024-10-08 05:03 | Edit `/conf/init`, edit (conf) routes, add radroots website url to .env, edit styles | triesap | 7 | +491 | -504 |
| 2024-10-07 05:22 | Edit `/models/trade-product/add`, move stores to `@radroots/svelte-lib`, edit components, utils | triesap | 16 | +109 | -126 |
| 2024-10-07 04:26 | Refactor error/response handling logic, add map components, edit conf, edit stores, add styles | triesap | 25 | +611 | -413 |
| 2024-10-06 16:17 | Add `@radroots/geocoder`, add geocoder database connect to root layout, update location gcs add utils, update types, add sql wasm file to static assets, update dependencies | triesap | 8 | +37 | -18 |
| 2024-10-06 15:17 | Add `geonames` submodule | triesap | 2 | +5 | -0 |
| 2024-10-06 15:16 | Update `stylesheets` submodule | triesap | 0 | +0 | -0 |
| 2024-10-06 10:28 | Edit `/models/trade-product/add` adding page views and input fields for updated `trade_product` model, edit root layout adding nostr sync, edit models nostr profile routes, edit models nostr relay routes, edit nostr routes, add nostr utils, edit trade product utils, edit app.css imports, add styles, update package.json dependencies | triesap | 21 | +1434 | -924 |
| 2024-10-03 14:11 | Add `/map/choose-location` route, remove (map) layout and move map routes into (app), move nostr subscribers from root layout to (app) layout, add nostr ndk configured subscriber, edit trade products add route adding choose from map option for location gcs model | triesap | 8 | +397 | -234 |
| 2024-10-03 12:23 | Add nostr relay document polling counter, edit nostr relay routes | triesap | 4 | +83 | -34 |
| 2024-10-03 08:50 | Edit nostr relay view route, edit styles | triesap | 2 | +15 | -7 |
| 2024-10-03 08:43 | Add `/models/nostr-relay/view` route, edit nostr relay routes, add styles | triesap | 4 | +322 | -2 |
| 2024-10-03 07:23 | Edit nostr relay document polling subscriber adding recursive fetch request, edit models nostr relay route, update IClient | triesap | 6 | +162 | -69 |
| 2024-09-27 19:24 | Edit `/models/nostr-relay/`, update routes using nav option swap labels, add css, edit routes, styles | triesap | 6 | +171 | -24 |
| 2024-09-27 15:11 | Update routes previously modifing tabs component stores, update root tabs component | triesap | 6 | +71 | -58 |
| 2024-09-27 14:05 | Add `nostr_relay` model, edit nostr relay connection logic, add default relays as models in (conf) `/init` configure device function, edit utils | triesap | 5 | +127 | -46 |
| 2024-09-27 08:13 | Add `models/nostr-profile/edit` and `models/nostr-profile/view`, edit (conf/app) layout functions, edit routes, edit lib components, conf, utils, styles. | triesap | 30 | +1113 | -329 |
| 2024-09-26 06:06 | Add `@radroots/models`, add `nostr_profile` model, edit (conf) `/init` logic, update package scripts, edit _conf, styles, utils | triesap | 22 | +334 | -86 |
| 2024-09-23 12:10 | Add nostr keys button on home screen, edit styles. | triesap | 2 | +7 | -6 |
| 2024-09-22 08:32 | Edit models routes | triesap | 2 | +24 | -3 |
| 2024-09-22 08:09 | Edit (conf) `/init`, edit models routes, add envelope lower component | triesap | 6 | +110 | -87 |
| 2024-09-21 12:37 | Edit (conf) `/init` route. Edit scope layout functions. Edit conf, styles, utils. Add root layout alert dialog command. | triesap | 10 | +474 | -40 |
| 2024-09-16 13:43 | Build app | triesap | 1 | +2 | -2 |
| 2024-09-16 13:09 | Edit imports | triesap | 1 | +1 | -4 |
| 2024-09-16 12:53 | Add `stylesheets` submodule, edit package.json scripts, update environment variables | triesap | 15 | +38 | -365 |
| 2024-09-15 15:26 | Add .env.example | triesap | 1 | +6 | -0 |
| 2024-09-15 14:26 | Update packages | triesap | 1 | +0 | -1 |
| 2024-09-15 12:50 | Edit root layout, add AppConfig | triesap | 1 | +29 | -50 |
| 2024-09-15 12:40 | Move lib components and stores to `svelte-lib` | triesap | 22 | +72 | -226 |
| 2024-09-13 11:40 | Update ndk packages | triesap | 1 | +2 | -2 |
| 2024-09-13 07:16 | Edit `/models/trade-product/add/preview`, edit models routes, edit trade product utils, add Magda Text font, edit/add css | triesap | 8 | +550 | -69 |
| 2024-09-11 17:23 | Edit `/models/trade-product/add`, edit components, edit utils | triesap | 3 | +172 | -50 |
| 2024-09-11 16:08 | Add `models/trade-product/add` quantity field, edit models routes, edit lib utils | triesap | 4 | +119 | -62 |
| 2024-09-11 11:46 | Edit `/models/trade-product` routes, update model routes, edit nostr routes, add `trade_product` utils, add/edit lib components and types, add/edit css | triesap | 22 | +548 | -601 |
| 2024-09-07 09:56 | Migrate nav component and stores to `svelte-lib`, update imports | triesap | 20 | +231 | -170 |
| 2024-09-07 09:17 | Add app css font-face imports, edit tailwind config | triesap | 3 | +4 | -2 |
| 2024-09-07 09:13 | Add `phosphor-icons` submodule | triesap | 2 | +4 | -0 |
| 2024-09-07 09:12 | Add `webfonts` submodule | triesap | 2 | +4 | -0 |
| 2024-09-07 09:11 | Fix app css import | triesap | 2 | +0 | -3 |
| 2024-09-07 08:58 | Edit (map) layout and add testing map controls, edit models routes, edit nostr routes, edit app css removing font-face styles, edit tailwind config, add maplibre gl css, edit lib components | triesap | 29 | +453 | -241 |
| 2024-09-01 16:45 | Build app | triesap | 1 | +2 | -2 |
| 2024-09-01 16:44 | Add `/map` using svelte maplibre-gl component | triesap | 13 | +115 | -17 |
| 2024-09-01 14:48 | Build app | triesap | 1 | +2 | -2 |
| 2024-09-01 14:47 | Update model location_gcs routes, update model trade_product routes, edit models utils, edit conf | triesap | 11 | +165 | -102 |
| 2024-09-01 12:43 | Build app | triesap | 1 | +2 | -2 |
| 2024-09-01 12:42 | Update model trade product routes, add document head metadata, add error page, add css | triesap | 9 | +226 | -137 |
| 2024-09-01 10:14 | Build app | triesap | 1 | +2 | -2 |
| 2024-09-01 10:13 | Add `models/trade-product`, edit app root page, edit models routes, edit nostr routes, add css | triesap | 19 | +671 | -173 |
| 2024-08-31 17:15 | Build app | triesap | 1 | +2 | -2 |
| 2024-08-31 17:14 | Add routing parameter to restart() util, update (conf) | triesap | 2 | +11 | -8 |
| 2024-08-31 16:34 | Build app | triesap | 1 | +2 | -2 |
| 2024-08-31 16:33 | Edit (conf) splash screen bug during initial key creation | triesap | 1 | +1 | -2 |
| 2024-08-31 16:23 | Build app | triesap | 1 | +2 | -2 |
| 2024-08-31 16:22 | Update `/models/location-gcs`, minor changes to nostr routes, add css | triesap | 8 | +61 | -37 |
| 2024-08-31 13:50 | Build app | triesap | 1 | +2 | -2 |
| 2024-08-31 13:50 | Use svelte version 4, add `/nostr/keys`, add css, update nostr routes, update dependencies | triesap | 30 | +1036 | -271 |
| 2024-08-31 09:59 | Update `/settings` reset device util, add error log, minor edits | triesap | 5 | +33 | -24 |
| 2024-08-30 21:39 | Update nav with basis params, edit `/nostr/notes`, edit `/nostr/profile`, add utils | triesap | 16 | +313 | -353 |
| 2024-08-30 14:46 | Edit nav stores separating previous and title, add test nostr features for metadata and text notes | triesap | 17 | +466 | -84 |
| 2024-08-30 10:33 | Add nostr configuration to root layout, test function for kind 0 metadata | triesap | 4 | +59 | -12 |
| 2024-08-30 09:16 | Update `/models/location-gcs`, update layour trellis | triesap | 3 | +112 | -112 |
| 2024-08-30 09:07 | Update nav component, update nav stores, edit styles | triesap | 10 | +75 | -135 |
| 2024-08-29 11:21 | Add nav, add layout view, edit layout trellis | triesap | 8 | +504 | -350 |
| 2024-08-29 10:39 | Edit tabs, use updated dynamic components | triesap | 1 | +4 | -5 |
| 2024-08-29 10:36 | Add tabs component, edit app_layout store | triesap | 7 | +115 | -11 |
| 2024-08-29 09:55 | Edit `/models/location-gcs` adding a test suite to create and list saved location_gcs models using device geolocation | triesap | 9 | +150 | -90 |
| 2024-08-28 09:46 | Add `/models` and location gcs test methods, update root layout with app_sql subscription | triesap | 5 | +120 | -2 |
| 2024-08-28 09:08 | Add browser test method, add status bar color mode control | triesap | 7 | +35 | -33 |
| 2024-08-28 08:57 | Add wifi test methods (non-functional) | triesap | 8 | +45 | -4 |
| 2024-08-28 08:09 | Build app | triesap | 9 | +31 | -51 |
| 2024-08-27 21:02 | Add InfoPlist.xcstrings strings catalog, add current geolocation test method | triesap | 9 | +90 | -1 |
| 2024-08-27 17:34 | Update `/settings` with test methods, add share, modify stores and root layout | triesap | 8 | +309 | -55 |
| 2024-08-26 15:41 | Add layout trellis component | triesap | 2 | +13 | -2 |
| 2024-08-26 15:34 | Add `/settings` with color mode toggle | triesap | 6 | +154 | -0 |
| 2024-08-26 13:48 | Update (conf) adding simple nostr key management, add splash screen control to root layout, temporarily move stores to local lib | triesap | 11 | +80 | -45 |
| 2024-08-25 12:36 | Build ios app | triesap | 1 | +2 | -2 |
| 2024-08-25 12:33 | Add keystore/preferences nostr key persistence and /conf routes | triesap | 5 | +95 | -13 |
| 2024-08-25 12:08 | Add preferences | triesap | 7 | +20 | -3 |
| 2024-08-25 11:46 | Add keystore | triesap | 6 | +23 | -2 |
| 2024-08-25 09:34 | Add sqlite database and app layout configuration | triesap | 16 | +207 | -64 |
| 2024-08-23 14:31 | Build mobile app | triesap | 80 | +1740 | -10 |
| 2024-08-23 09:32 | Add `@radroots/client` | triesap | 3 | +14 | -0 |
| 2024-08-22 01:03 | Initial commit | triesap | 16 | +1022 | -0 |