on dc7cb72 help sign in
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 e6d5254Simplify code: merge LookupPresence fold, restrict offlineOnlyKeys to fromServer, remove let alias; refactor Client ConnStatus to use Session typeiko 0c01684Simplify server code: reuse removeOffline result for appliedOffline, remove unused PruneResult typeiko a6088f1Simplify code and improve robustness: ack all poll events, render messages individually, simplify Phonemic.toOb, trim pubkey inputiko 6b1d74aImprove type safety and simplify server.knot: convert PollEvent.eventType to DU, remove redundant isGossipOffline helper, simplify LookupPresence server selection and trustedOffline derivationiko 32ef8d2Improve type safety: convert MessageStatus to DU with custom JSON serialization, eliminate DeliveryStatusiko 8dcf190Simplify code and improve type safety: replace nested option in StateLoaded with dedicated DU, remove pubKeyHex helper, restructure viewSettings to single auth matchiko b466ddfImprove type safety and simplify server code: use DUs with custom JSON serialization, optimize string handling with contains(), tighten response typesiko e7abeeaSimplify code and improve type safety: separate form input state from Page DU, add dedicated input messages for compose and contact form fieldsiko 5a91ff1Simplify code and improve type safety: use EventType and EnvelopeType DUs, simplify array/option patterns, validate pubkey formatiko c0ca8aaSimplify code and improve type safety: use ServerName for GossipEvent.server, generalize mergeByKey, remove redundant normalization in isBadServerName, remove dead containsColon helperiko 54d081aTruncate @ob key display to first and last pairsiko 78fb9efUse Urbit @ob-style syllable encoding for public keys in UIiko f4f8a00Simplify code and improve type safety: use stdlib for string operations, require normalized ServerName, type config durations with units, use PubkeyHex in GossipEventiko