on 4faf45f help sign in
4faf45fFix macOS app launch by setting DOTNET_ROOT and running executable directlyiko 611d819Use Dapper.FSharp DSL for outbox database operationsiko 646fbc7Implement persistent message queue with sequential background flush loopiko 2216c16Fix app icons on macOS and iOS by launching .app bundle and adding asset catalog rootiko 791e96cAdd CLAUDE.md with project overview and build instructionsiko 54111f6Don't update profile photo when picker is cancellediko 7a81a43Implement native iOS photo picker using PHPickerViewController instead of file pickeriko 177a234Fix iOS letterboxing by adding UILaunchScreen dict to support full-screen launchiko dd6d4a0Migrate persistence to Dapper.FSharp with SQLite, implement photo cropping, and enhance button animationsiko dbe902cStore photos as binary, set up platform app icons, and implement smooth button animationsiko 96a28d4Implement smooth button animation with programmatic TransformOperations and Component stateiko 550b6a9Restore button press animation with direct transform property mutationsiko 24d6091Enable iOS AOT+interpreter mode and fix storage path resolutioniko dc7cb72Add type annotations to server.knot functions and migrate iOS launch screen to storyboard formatiko e4f77ccSimplify server.knot and improve type safetyiko a14779fMigrate UI from Fabulous.MauiControls to Fabulous.Avalonia for desktopiko c2461e4Navigate to profile edit after identity generationiko 56e3e8aEnhance button component with press animations and improve UI stylingiko 1f3015eMigrate client to Fabulous 3.0: use Cmd.OfAsync APIs instead of manual asyncCmd helperiko c622597Improve server type safety and simplify relay handlersiko f1f6e11Extract button components into separate module and improve formattingiko 25ba3b8Improve type safety: use MessageDirection discriminated union, simplify pollingiko d065088Simplify and improve type safety: eliminate DeliveryStatus, add AckResult/LookupResult ADTs, restructure handlersiko b06c345Simplify client: eliminate StateLoadResult, make ServerUrl non-optional, improve CmdSendiko c59feb8Improve type safety and simplify server: add DeliveryStatus type, eliminate result ADTsiko 59b0e4bSimplify client: eliminate SendOk msg, inline truncOb, improve type safety with DateTimeOffset timestamp, fix contact name displayiko eaf1178Fix change photo button: run picker on main thread and add photo library permissioniko ab2cbb5Fix message delivery: correct timestamp units and defer acknowledgmentsiko 5df6e95Improve type safety and simplify server: add DeliveryStatus type, extract isLocalServer predicateiko 13fba34Simplify client: eliminate DecryptedEvent and PollReceived types, inline error handlingiko a348d96Improve type safety: add ValidGossipType, extract hasMessage predicateiko 6364cb2Simplify client: eliminate page-setter Msg variants, use SetPage directlyiko f4d37c2Extract gossip predicates, flatten validation, simplify event handlingiko dddd66fSimplify server code: extract magic numbers as constants, use wildcards in cases, inline variableiko c2421ebSimplify and improve type safety: thread Profile type through envelope/events, extract applyEvent helper, optimize with Set and Map.changeiko 7b4b58dSimplify and improve type safety: inline gossip predicates, deduplicate remote serversiko 26d71bfImprove type safety: add PollEventType, expand MessageStatus, convert ackedFederated to list comprehensioniko e305f3dAdd newContact and tryGetJsonString helpers, safe DeliveryStatus deserialization, simplify profile displayiko 50200f4Improve type safety and simplify code: use `data` for all union types, add wildcard patterns, inline unused helpersiko 4471c7eAdd profile support: display names, bios, and photos shared via encrypted profile messagesiko fec9263Improve client type safety and simplify async handling: add typed Envelope DU, exhaustive status mappings, extract sendDeliveryAcksiko 57cf03bImprove client type safety and simplify state management: embed page state into Page DU, add delivery status tracking, inline identity generation, make ServerUrl non-optionaliko 476d6ffImprove server type safety: add ForwardResult and PollResult variants, simplify removeForwardiko 36a884bImprove server type safety: split SendResult, add LookupResult variant, simplify bestRemote foldiko d854ebfImprove server type safety: use variant types for VerifyAuth/AckMessages, clarify LookupPresence foldiko 72c9efeSimplify client app: remove URL from ConnStatus, use PollReceived record, extract error banner, disable URL edit while connected.iko b94da82Simplify server.knot: extract helpers (min, pubkeyServer, resolveByTimestamp), use diff in capPerKey, apply De Morgan simplificationsiko b4f9f43Improve server.knot: add GossipUnknown variant, simplify with comprehensions, clarify logiciko a5a5e7cSimplify server.knot: remove single-variant PollEventType, optimize fold-based operations, clarify JSON parsingiko e3148ddImprove type safety and simplify server: consolidate SendResult variants, remove LookupPresence fold field, reuse trustedOfflineiko