on d41c2bf help sign in
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 01f5f20Simplify code and improve type safety: use wildcard patterns, factor broadcastOfflineGossip, bind token once, combine where clauses, type LookupResult.foundServer as OptionalServerNameiko f4311e3Simplify code and improve type safety: dedup capPerKey, refactor authenticateSession with headOf, nest when conditions, use any instead of single, type SendResult.status as MessageStatusiko e692eb5Simplify code and improve type safety: make capPerKey filter expired items, extract shouldForward condition, use explicit pattern matches, merge ForwardMessage guard into atomic blockiko 2f625d9Replace JSON file persistence with LiteDB: use embedded database for contacts, messages, and settingsiko 64e0fdcSimplify code and improve type safety: declare handler result sum types, replace -1 sentinel with Maybe, combine double case match, move dedup inside guardiko 41f34f7Simplify code and improve type safety: eliminate MessageDto, move ChatMessage to Store, single JSON parse, remove type aliases, make TextEnvelope privateiko 7683837Simplify code and improve type safety: replace -1 sentinel with Maybe, flatten pr nesting, extract guard conditions, simplify forward removaliko 84ef369Simplify code and improve type safety: use sum types for poll/verify/send/ack/lookup handlers, eliminate dummy values and pr duplication, flatten guard conditioniko 6bfbd45Simplify code and improve type safety: combine auth flow, make response types private, normalize TextEnvelope naming, remove no-op messageiko 13e9b38Simplify server code and improve type safety: use sum types for auth/result handlers, nest prune results, eliminate dummy values and shouldInsert flagiko 61c0ab0Simplify code and improve type safety: replace manual JSON parsing with typed deserialization, use JsonPropertyNameiko f11ecd2Simplify client code and improve type safety: remove unused AuthResult, eliminate dead getJson, replace LoadedState with discriminated unioniko 7816ce8Simplify code and improve type safety: eliminate IncomingMessage, type-safe Connecting state, reuse postJson in polliko 79a607dSimplify code and improve type safety: sum type AuthResult, validate gossip once, consolidate over-capacity logic, extract forEachBatchiko e6337c8Simplify code and reduce redundant computation: remove empty-string validations, compute values once, replace fold with mergeByPubkeyServer, consistent filteringiko 3dd6eedSimplify code and improve type safety: replace manual JSON with JsonSerializer, type EventPayload, remove Identity from Connectingiko b86f18aSimplify code and improve type safety: add eventType to ValidGossipEntry, eliminate redundant filtering and scansiko ab639f4Simplify code and improve type safety: remove ForwardInfo, inline computed properties, add ValidGossipEntry, short-circuit validGossipEventsiko ecdd432Improve type safety and simplify code: named API types, filter events at boundary, record types for Msg cases, eliminate redundant encrypt parameteriko 53111fdSimplify code and improve type safety: introduce ForwardInfo type, optimize any helper, remove no-ops, merge conditionsiko f880fd2Simplify code and improve type safety: remove no-op fetch matches, merge checks, simplify boolean logic, narrow PollEventTypeiko 573acd2Improve client type safety: move Identity to Crypto, introduce PollEvent, eliminate tuple passing and fragile key slicingiko 06f6fccSimplify code and improve type safety: introduce AuthResult/PruneResult types, replace helper functions with cleaner patternsiko 82cb0cdSimplify server code and improve type safety: introduce named types for persisted state, recursive genToken, remove dead code; add client persistence layeriko 064c373Introduce derived relations &pendingAcks and &knownMessageKeys for cleaner federation and dedup logiciko 4e71ddeSimplify code and improve type safety: embed Session in ConnState, fix message ID consistency, replace mutable arrays with foldiko 9520409Simplify code and improve type safety: extract mergeByKey helper, eliminate post-hoc status corrections, and inline redundant validAck aliasiko de34c51Introduce Identity and Session types to reduce duplication and improve type safety in clientiko 3964fd8Extract helpers (firstOf, sessionPubkey, forkBroadcastOffline, removeForward) and add MessageStatus type for improved clarity and type safetyiko 6f5e820Extract helpers and refine type safety in server handlersiko 82fcdc7Extract helper functions to reduce code duplication in state management and gossip handlingiko 77e2bb1Simplify code and improve type safety with helper functions and refined typesiko 4c8ee60Extract helpers and refine types to reduce code duplication and improve type safetyiko c040476Simplify code and improve type safety with helper functions and refined typesiko 9d5373aFix timeout handling with custom task awaiter and standardize timestamps to millisecondsiko ac8c87fBatch federation ack message IDs to respect maxMessageIds limitiko d7ac423Move validation into refined types to simplify handlersiko b018bb7Fix poll request: change from GET with query params to POST with JSON body, fix timeout from 30ms to 30000msiko a2e3a5eFix gossip event suppression: restrict offline suppression to authoritative serveriko cba8c2eFix formatting in sendAcksAndClean (move closing paren to new line)iko 55073b2Fix 4 bugs: remove dead code, handle long strings in safeCompare, parallelize federation I/O, prevent overlapping prune cyclesiko 40ea04cFix 3 bugs: ack cleanup should match toKey, add warning for lost acks under capacity, restrict offline gossip to authoritative server onlyiko 478c21aFix 3 bugs: block bare local/internal in SSRF checks, correct sendBatchedGossip effect type, cap forwards storageiko