on b06c345 help sign in
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 c0cce11Simplify code and improve type safety: require normalized hex in types, inline PollResult/AckResult ADTs, make authenticateRequest read sessions internallyiko bc23d49Simplify code and improve type safety: unify page navigation and form updates into SetPage, replace Sent Result with SendFailed, simplify CopyPubKey and loadDataiko 9f1d050Simplify code and improve type safety: type timeout as Int<Ms>, factor capPerKeyAndGlobal, optimize takeN from O(n²) to O(n), remove redundant checks and filters, simplify joins and conditionalsiko d41c2bfSimplify code and improve type safety: inline Sent handling, make SendResult private, factor nowStr helperiko b1414f5Simplify code and improve type safety: add DeliveryStatus, inline result ADTs, factor retryEvictedAcks, type route params as Timestampiko 3f992e7Simplify code and improve type safety: factor deriveKey and truncate helpers, type Sent as MessageStatus, use match\! in CmdLoadStateiko 70b03edSimplify code: combine adjacent where clauses, type server lists as [ServerName], factor authenticateRequest helperiko 5889a08Simplify code and improve type safety: JsonNumberHandling, resource disposal, explicit MessageStatus patterns, use Option.ofObj, factor authenticateRequestiko 6357861Simplify code: combine where clauses, factor broadcastOfflineGossip, parameterize sendBatchedGossip hops, optimize evictioniko 5c34fabSimplify code and improve type safety: combine Identity and ConnState into AuthState, type SendResult.Status as MessageStatus, use Option.ofObj, handle message rejection, skip spurious connectiko