Commit graph

579 commits

Author SHA1 Message Date
Scott Nonnenberg
ca638dd44f
Ensure that media messages are cached when loaded from convo settings 2022-11-28 14:40:22 -08:00
Alvaro
b720ed7bd5
Added story identifier when debug logging
Co-authored-by: Jamie Kyle <jamie@signal.org>
2022-11-28 14:34:49 -08:00
Alvaro
4294429bc2
Made StoryDataType sourceDevice required 2022-11-23 12:52:36 -08:00
Fedor Indutny
991580a1ed
Improve error handling during group sends 2022-11-22 10:43:43 -08:00
Fedor Indutny
f0a3735ca2
Handle new rate limiting info from CDSI 2022-11-22 10:13:55 -08:00
Fedor Indutny
b26f60d2fc
Better handling of calling messages 2022-11-19 00:31:31 -08:00
Fedor Indutny
5e1169bec3
Fine-grained session control for node-fetch 2022-11-19 00:14:20 -05:00
Fedor Indutny
98ef4c627a
Update eslint to 8.27.0 2022-11-17 16:45:19 -08:00
Josh Perez
cf43726664
Populate sender state correctly via story sync to group 2022-11-17 11:59:00 -08:00
Fedor Indutny
6be69a7ba8
Use DurationInSeconds for expireTimer 2022-11-16 13:18:02 -07:00
Fedor Indutny
e6ebfe4fca
Update typescript to 4.8.4 2022-11-14 11:35:37 -08:00
Alvaro
9de31d1b1c
Allow receiving group stories from senders with profileSharing=false 2022-11-09 14:53:19 -08:00
Fedor Indutny
d7a2669b49
Wrap eventHandlerQueue jobs with task with timeout 2022-11-09 10:59:32 -08:00
Josh Perez
19a42ed719
Onboarding story 2022-11-08 21:38:19 -05:00
Fedor Indutny
9ce8d5e68f
Fix storage service handling of contact status 2022-11-07 15:21:12 -08:00
Josh Perez
64fa3aac59
Use explicit allowlist setting for story receive 2022-11-02 16:56:17 -04:00
Fedor Indutny
8f62442822
Allow link-only stories, download previews 2022-10-31 14:28:28 -07:00
Fedor Indutny
7f0a66847b
Remove LegacyCDS 2022-10-26 16:17:14 -07:00
Fedor Indutny
3beccbfd31
Reduce timeout of some long running tasks 2022-10-25 17:03:05 -07:00
Scott Nonnenberg
5dea03f713
Include story=true when deleting your story for everyone 2022-10-20 15:10:10 -07:00
Scott Nonnenberg
1c89168301
Phased rollout by country code; starting w/ desktop.stories remote flag 2022-10-20 14:02:22 -07:00
Fedor Indutny
b82234b119
Update Intel advisories for Legacy CDS 2022-10-20 11:52:32 -07:00
Fedor Indutny
f5e94f2069
Use correct endpoint to lookup by username 2022-10-19 13:41:47 -07:00
Fedor Indutny
00f82a6d39
Discriminator in username 2022-10-18 10:12:02 -07:00
Scott Nonnenberg
4ec48df5b9
Additional work to include story=true on send 2022-10-07 10:02:08 -07:00
Josh Perez
3bfeffe502
Handle storyMessageRecipient updates before handling story messages 2022-10-07 09:30:54 -07:00
Scott Nonnenberg
5e63d8aadf
Pipe device number through for sync'd sent story messages 2022-10-05 13:49:43 -07:00
Evan Hahn
5219cdf2c9
Make 1 the minimum registration ID 2022-10-05 09:35:56 -07:00
Fedor Indutny
e20ec013f5
Provide pni registration id in createAccount 2022-10-04 17:50:07 -07:00
Fedor Indutny
ebafc933b9
Use X-Signal-Receive-Stories header 2022-10-04 17:48:25 -07:00
Fedor Indutny
8b705d3b55
Sync storiesDisabled flag on AccountRecord 2022-10-04 10:53:36 -07:00
Scott Nonnenberg
2b2594c20a
Stories: Fix sender key persistence, pipe story: true into sends 2022-09-30 09:59:36 -07:00
Fedor Indutny
373f121887
Extend cleanSignedPreKeys to support PNI 2022-09-27 09:33:56 -07:00
Fedor Indutny
59da9c7ae5
Stop using deprecated PniCredential 2022-09-21 09:18:48 -07:00
Fedor Indutny
e0ae5fc27c
Wait for contact sync in MessageReceiver 2022-09-20 16:53:38 -07:00
Jamie Kyle
eb10aafd7c
tsc:allowUnreachableCode, eslint:no-unreachable, assert->assertDev 2022-09-15 13:17:15 -06:00
Fedor Indutny
e3f418105b
Improve challenge handling 2022-09-14 17:31:37 -07:00
Jamie Kyle
0086216c9d
Add eqeqeq rule but require == for null 2022-09-14 14:40:44 -07:00
jamiebuilds-signal
64a4d2e717
Improved reliability of strictAssert 2022-09-14 09:40:50 -07:00
jamiebuilds-signal
5a8f484a03
Enable brace-style eslint rules 2022-09-13 14:48:09 -07:00
Scott Nonnenberg
8899ca9724
Improve logging in handleDataMessage and contact sync 2022-09-12 17:52:55 -07:00
Scott Nonnenberg
380833447f
Stories: Don't drop 1:1 replies, always 24-hour expireTimer 2022-09-09 18:05:07 -06:00
Evan Hahn
aa86d8bf82
Lint .d.ts files 2022-09-06 13:51:34 -07:00
Scott Nonnenberg
6dd2b73855
Storage/getItemsState: Warn if not ready, log on success as well 2022-09-01 18:05:47 -07:00
Fedor Indutny
dda21701c5
Pass proxyUrl to LegacyCDS 2022-08-31 13:45:58 -07:00
Fedor Indutny
7632f31cf2
Show internal error toast on CDS errors 2022-08-30 17:03:42 -07:00
Evan Hahn
39354b11b7
Prefer type to interface in .d.ts files 2022-08-30 16:24:04 -05:00
Fedor Indutny
c42df6312e
contactSync should depend on syncMessage.complete 2022-08-26 15:26:38 -07:00
Fedor Indutny
7ce4beb270
Refactor contact sync processing 2022-08-24 22:04:42 -07:00
Fedor Indutny
6e3ec163dc
Drop pnpChangeNumber capability 2022-08-24 09:34:00 -07:00
Fedor Indutny
c18fa35354
Remove unused CDSH code 2022-08-23 09:38:46 -07:00
Josh Perez
0fb45f045d
Handle Safety Number changes while sending a story 2022-08-19 14:05:31 -04:00
Fedor Indutny
d036803df9
Mirror CDS requests 2022-08-18 17:31:12 -07:00
Fedor Indutny
757af2cbbe
Include ACI+Access Keys pairs with CDSI requests 2022-08-18 13:44:53 -07:00
Josh Perez
5ec78374d1
Use just the timestamp for story expiration 2022-08-17 10:56:41 -07:00
Fedor Indutny
647335086d
Use ourPni when creating our own contact 2022-08-16 16:52:34 -07:00
Scott Nonnenberg
932043c58f
Make attachments more resilient, decrease websocket keepalive 2022-08-16 16:49:47 -07:00
Fedor Indutny
00cfd92dd0
Send and receive PniSignatureMessage 2022-08-15 14:53:33 -07:00
Fedor Indutny
68a0c44e19
Register pnpChangeNumber capability 2022-08-11 09:52:24 -07:00
Scott Nonnenberg
faf6c41332
Early preparations for PNP Contact Merging 2022-08-09 14:39:00 -07:00
Fedor Indutny
62962e4950
Support iasVersion 4 2022-08-08 18:09:44 -07:00
Scott Nonnenberg
fde917c983
A few fixes for the emoji bundled with stickers 2022-08-08 11:21:00 -07:00
Josh Perez
dca848389c
Sync stories sent to a group 2022-08-04 21:13:26 -04:00
Fedor Indutny
d8a7e99c81
Consistent log lines for WebAPI requests 2022-08-03 09:23:29 -07:00
Josh Perez
9eff67446f
Send text attachment stories 2022-08-02 15:31:55 -04:00
Fedor Indutny
2b0d3cab40
Remove source from Envelope 2022-08-02 09:19:21 -07:00
Scott Nonnenberg
2b648b79a4
Upgrade to libsignal-client v0.19.2 2022-08-01 18:31:24 -07:00
Josh Perez
3af478837d
Drop duplicate stories 2022-07-29 16:01:33 -07:00
Josh Perez
7d2b91368d
Normalize the distribution list and UUIDs iOS sends us 2022-07-29 13:16:36 -04:00
Scott Nonnenberg
08b2aeb237
Move back to libsignal-client v0.18.1 2022-07-29 09:17:59 -07:00
Fedor Indutny
79b48115e6 Handle PniChangeNumber 2022-07-28 14:50:10 -04:00
Josh Perez
1d5b361159
Drop incoming story messages if stories are turned off 2022-07-21 19:05:55 -04:00
Scott Nonnenberg
4cd05dc6c9
validateUnsealedEnvelope: On expire, log serverTimestamp vs. expiration 2022-07-20 17:15:26 -07:00
Fedor Indutny
5c2016ec40
Refresh PNI on startup 2022-07-18 15:32:00 -07:00
Josh Perez
5639c1adea
DOE for stories 2022-07-13 16:09:18 -07:00
Josh Perez
d7307934bc
Adjust some types 2022-07-12 17:37:21 -07:00
Scott Nonnenberg
14591358f1
Simplify expireTimer change handling, queue for contact sync 2022-07-11 17:32:26 -07:00
Fedor Indutny
a450e13a99
Fetch PNI group credentials 2022-07-08 13:46:25 -07:00
Josh Perez
3e644f45cf
Fixes story viewing behavior 2022-07-06 15:06:20 -04:00
Scott Nonnenberg
5fcf97b43b
Introduce logging for unexpected incoming urgent values 2022-07-05 15:20:30 -07:00
Scott Nonnenberg
06190b1434
Introduce new urgent property for outgoing messages 2022-07-01 09:55:13 -07:00
Josh Perez
9155784d56
Sync my stories with primary device 2022-06-30 20:52:03 -04:00
Scott Nonnenberg
101d53c4ea
getUUID: Return undefined if uuid is falsey 2022-06-27 17:37:56 -07:00
Scott Nonnenberg
4568527232
Increase backstop queue timeouts across the app 2022-06-27 09:46:43 -07:00
Scott Nonnenberg
72bb01346f
Check that size is number, not truthiness of size 2022-06-23 15:42:19 -07:00
Scott Nonnenberg
07ee7f46b7
Fix Gift Badge expiration 2022-06-21 18:17:17 -07:00
Fedor Indutny
35e5eb847a
Better logging for expiration timer updates 2022-06-20 15:43:16 -07:00
Josh Perez
d970d427f8
Create text stories 2022-06-16 17:48:57 -07:00
Fedor Indutny
973b2264fe
Add to group by username 2022-06-16 17:38:28 -07:00
Fedor Indutny
253e050262
CDSI Support 2022-06-14 18:15:33 -07:00
Scott Nonnenberg
2464e0a9c1
Convert signal.js and preload.js to Typescript 2022-06-13 14:39:35 -07:00
Evan Hahn
f50a6abe36
Remove unused eslint-disables 2022-06-03 14:07:51 -07:00
Scott Nonnenberg
e09d148c1d
On Sender Key distribution message failure, don't update send status 2022-06-02 14:25:55 -07:00
Evan Hahn
ab9a50357b
Convert libphonenumber utilities to TypeScript, removing unused ones 2022-06-01 10:48:16 -07:00
Scott Nonnenberg
68f705e6ad
Reset MessageReceiver processed count after reporting it 2022-05-25 11:15:09 -07:00
Scott Nonnenberg
a114e4e210
Gift Badges: A few tweaks 2022-05-16 12:54:38 -07:00
Scott Nonnenberg
dfd1190e8b
Groups: Show in left pane more often, proper join message 2022-05-16 07:53:54 -07:00
Scott Nonnenberg
0ba6a0926e
Support for incoming gift badges 2022-05-11 13:59:58 -07:00
Fedor Indutny
d6b58d23d6
Increment unprocessed attempts when fetching 2022-04-28 15:28:30 -07:00
Scott Nonnenberg
1d26424f22
Challenge: If no retry-after header on 428, don't start timer for retry 2022-04-25 16:05:23 -07:00
Fedor Indutny
7775f7d806
Ignore PNI key upload errors for now 2022-04-22 12:02:23 -07:00
Fedor Indutny
da45f26d37
Drop verified syncs, use storage service for event 2022-04-20 19:41:52 -04:00
Fedor Indutny
e8d268b466
Clear previous pending pni identity events 2022-04-18 16:33:17 -07:00
Josh Perez
e3d537cbd3
Render group stories 2022-04-14 20:08:46 -04:00
Chris Eager
2f5e4f1b98
Update message reporting to use sender ACI instead of E164 2022-04-12 12:54:04 -07:00
Josh Perez
9f7ee9ae79
Force set expirationStartTimestamp on story messages 2022-04-11 14:28:01 -07:00
Scott Nonnenberg
7f89f6162f
Disable forward for messages with embedded contact 2022-04-11 13:57:44 -07:00
Scott Nonnenberg
9e54f55c22
Ensure that waitForAll functions catch and log thrown errors 2022-04-11 10:53:57 -07:00
Josh Perez
0f16ef5dd6
Do not try to download text attachments 2022-04-08 10:03:10 -07:00
Josh Perez
fc9bdf9398
Process text story messages 2022-04-05 21:18:07 -04:00
Scott Nonnenberg
99687a4b5b
Remove support for legacyMessage 2022-03-30 20:07:55 -07:00
Josh Perez
7316e880e8
Changes story message receiver acceptance logic 2 2022-03-29 18:38:17 -07:00
Josh Perez
9d3f0072a5 Changes story message receiver acceptance logic 2022-03-28 17:35:56 -07:00
Fedor Indutny
a0ae7c1aa2
Request and handle PniIdentity sync message 2022-03-25 10:36:08 -07:00
Jordan Rose
5a107e1bc3
Update for @signalapp/libsignal-client rename 2022-03-24 14:47:21 -07:00
Fedor Indutny
ca3f8b7df0
Store receivedAtCounter separately for unprocessed 2022-03-24 14:28:56 -07:00
Fedor Indutny
e8651afa0b
Configure Long before requiring compiled protobuf 2022-03-24 10:05:48 -07:00
Fedor Indutny
2eaacac151
Use --force-long with pbjs 2022-03-23 13:49:27 -07:00
Scott Nonnenberg
1d268da50b
Drop stories and their replies if feature flag is disabled 2022-03-21 16:17:55 -07:00
Scott Nonnenberg
bddd55d574
Challenge: Save conversationIds and start queues 2022-03-21 14:19:37 -07:00
Fedor Indutnyy
0e31659682 Merge https://github.com/signalapp/Signal-Desktop/pull/5788 2022-03-17 09:36:51 -07:00
Fedor Indutny
36ce4f27a2
Optimize profile avatar uploads and sync urls 2022-03-15 17:14:20 -07:00
Dimitris Apostolou
718d0a7046
Fix typos 2022-03-13 11:10:17 +02:00
Josh Perez
2114c851c7
Include authorUuid when sending replies 2022-03-11 15:14:32 -08:00
Josh Perez
d0898cb0c2
Do not set conversation expire timer on incoming story msgs 2022-03-09 18:20:01 -08:00
Fedor Indutny
4a00ea46bc
Allow requesting profile without profileKey 2022-03-09 12:23:21 -08:00
Fedor Indutny
0c8c332805
Use new CDS implementation in staging 2022-03-09 11:28:40 -08:00
Scott Nonnenberg
4be2a33be5
Populate dataMessage on CallbackResultType when sending 1:1 messages 2022-03-04 17:39:37 -08:00
Josh Perez
eb91eb6fec
Process incoming story messages 2022-03-04 13:14:52 -08:00
Evan Hahn
effe5aae6f
Assume everyone is GV2-capable 2022-03-04 13:48:44 -06:00
Fedor Indutny
3b4106d9dd
Change order of syncs during linking 2022-03-02 14:53:47 -08:00
Fedor Indutny
2b0c98f943
Handle PNI keys from ProvisionMessage 2022-03-01 15:01:21 -08:00
Scott Nonnenberg
fcb96bf92a
Simplify OutgoingIdentityKeyError, use it in getKeysForIdentifier 2022-02-25 15:39:24 -08:00
Evan Hahn
052a8e65e2
Add "clean up timer if necessary" utility 2022-02-25 10:37:15 -08:00
Jon Chambers
45289f519a
Accept HTTP/429 as a "rate-limited" status code 2022-02-24 16:26:58 -08:00
Scott Nonnenberg
b33b5d2a30
profileKey: Check length of incoming values, clear on failed send/fetch 2022-02-22 14:34:57 -06:00
Scott Nonnenberg
a1639f111e
envelopeTypeToCiphertextType: Handle all envelope types 2022-02-22 14:32:25 -06:00
Scott Nonnenberg
30783c887c
Introduce new conversationJobQueue 2022-02-16 10:36:21 -08:00
Scott Nonnenberg
0bb0e6e9fc
MessageReceiver: Extract cipherTextBytes/Type from non-sealed messages 2022-02-16 11:41:28 -06:00
Scott Nonnenberg
0a18cc50bd
New queue for view once syncs, handleRetry improvements 2022-02-08 09:30:42 -08:00
Fedor Indutny
6de2710841
Use new server params for group log fetch 2022-02-04 13:42:20 -08:00
Fedor Indutny
b6287f4839
Properly propagate 204 to fetchManifest 2022-01-31 11:58:20 -08:00
Fedor Indutny
437ef2d3a7
Fetch joinedAtVersion before change log fetch for new groups 2022-01-26 16:02:23 -08:00
Scott Nonnenberg
2603d53891
Improve storage service migration to new field understanding 2022-01-26 15:39:25 -08:00
Scott Nonnenberg
5f34ece87c
TaskWithTimeout: After suspend, don't start timers for new tasks 2022-01-26 12:39:24 -08:00
Scott Nonnenberg
68a458ec4a
Honor preferContactAvatars field on AccountRecord 2022-01-25 09:44:45 -08:00
Fedor Indutny
3c836908aa
Revert "MessageReceiver: Pause processing of new messages on suspend"
This reverts commit d74424a3b8.
2022-01-24 15:50:32 -08:00
Scott Nonnenberg
fb31a02d88
MessateReceiver.maybeUpdateTimestamp: Annotate group identifier for log 2022-01-20 18:09:03 -08:00
Scott Nonnenberg
d74424a3b8
MessageReceiver: Pause processing of new messages on suspend 2022-01-20 14:47:06 -08:00
Fedor Indutny
8cd557ff91
Add extra logging for change phone number 2022-01-20 14:44:25 -08:00
Scott Nonnenberg
f1586578ff
Properly handle groupIds in incoming block sync 2022-01-19 16:39:27 -08:00
Fedor Indutny
885b4d4d2e
Trigger EnvelopeEvent for unsealed envelopes 2022-01-18 17:10:53 -08:00
Scott Nonnenberg
90356d4c0f
Move a number of sync messages to jobs for retry 2022-01-14 13:34:52 -08:00
Evan Hahn
393b740fe6
Fix crash when changing your username 2022-01-13 13:25:20 -08:00
Scott Nonnenberg
06165cb742
Include sender keys in SignalProtocolStore zones 2022-01-07 18:12:13 -08:00
Fedor Indutny
e98b281644
Use serverTimestamp for delivery receipts 2022-01-06 12:12:53 -08:00
Fedor Indutny
8070b8b14f
Block WebAPI during active registration 2021-12-17 22:26:50 +01:00
Scott Nonnenberg
a023fc1bb0
Usernames: Fetch own username from /whoami not /profile 2021-12-15 12:02:55 -08:00
Fedor Indutny
61a6f1b4cf
Reduce logging from rotateSignedPreKey 2021-12-09 11:45:21 -08:00
Evan Hahn
f9e98836b0
Retry delivery and read receipts for up to 24 hours 2021-12-07 14:41:40 -08:00
Fedor Indutny
b4b65c4f00
Add v2 implementation of CDS HSM 2021-12-06 23:54:20 +01:00
Evan Hahn
c0dcce7c82
Clean up AccountManager#registerSecondDevice 2021-12-03 18:46:44 +01:00
Fedor Indutny
ca1aef660f
Generate PNI key on standalone registration 2021-12-02 18:06:32 -08:00
Fedor Indutny
84407cb005
Use human-readable names for websockets 2021-12-01 19:55:17 +01:00
Fedor Indutny
77924918df
Don't treat TimeoutError as a decryption error 2021-11-30 20:34:05 +01:00
Fedor Indutny
348012ef4c
Add PNI endpoints to WebAPI 2021-11-30 20:33:51 +01:00
Fedor Indutny
7c1ce3366d
Move StandaloneRegistration to React 2021-11-30 09:51:53 -08:00
Evan Hahn
67b17ec317
Hide "become a sustainer" button if you're already a sustainer 2021-11-30 17:29:57 +01:00
Fedor Indutny
76a30a5196
Use throwOnTimeout option for PQueue 2021-11-23 23:01:03 +01:00
Scott Nonnenberg
3601279287
sendToGroup: Flow errors during key-fetching back up to original sender 2021-11-20 09:58:38 -06:00
Fedor Indutny
4afe1475d5
Add separator to envelope log id 2021-11-19 09:21:29 -08:00
Scott Nonnenberg
e45b3e97d0
Update protos with planned changes for stories 2021-11-15 17:20:09 -08:00
Fedor Indutny
5076972c5b
Add exhaustive UUIDKind checks to MessageReceiver 2021-11-15 16:10:18 -08:00
Fedor Indutny
c6ee6a038e
Add stream timeout for attachment downloads 2021-11-15 23:54:59 +01:00
Evan Hahn
ede34ecee3
Enable noImplicitOverride TypeScript compiler option 2021-11-12 15:44:20 -08:00
Fedor Indutny
066a23a6a9
Preliminary support for destinationUuid field 2021-11-12 13:26:52 -08:00
Fedor Indutny
bb15cfc622
Additional protocol changes for CDS v2 2021-11-12 21:45:30 +01:00
Scott Nonnenberg
cbae7f8ee9
Search for username in compose mode 2021-11-11 17:17:29 -08:00
Evan Hahn
5619eeca83
Upgrade Prettier to 2.4.1 2021-11-11 16:43:05 -06:00
Fedor Indutny
409bf1fc82
WebSocket API for CDS 2021-11-08 15:32:31 -08:00
Fedor Indutny
519ca05911
Update electron to 15.3.0 2021-11-08 22:43:37 +01:00
Evan Hahn
d6ffb08a63
Disable class-methods-use-this lint rule 2021-11-04 16:04:51 -05:00
Evan Hahn
f647c4e053
Display user badges 2021-11-02 16:01:13 -07:00
Scott Nonnenberg
3190f95fac
Usernames: Create/update/delete in profile editor 2021-11-01 12:13:35 -07:00
Fedor Indutny
63fcdbe787
Use UUIDs in group database schema 2021-10-26 15:59:08 -07:00
Evan Hahn
74fde10ff5
Prefer import type when importing types 2021-10-26 14:15:33 -05:00
Josh Perez
2e438aa876
Conversation details screen for 1:1 chats 2021-10-20 16:46:41 -07:00
Scott Nonnenberg
51af6947d4
onDecryptionError/onRetryRequest: Don't run until queue is empty 2021-10-20 14:50:00 -07:00
Scott Nonnenberg
fe49edce8a
updateGroup: Use hasMember instead of 'left' attribute for membership 2021-10-20 16:32:38 -05:00
Evan Hahn
92f7259272
Respect proxies when fetching link previews 2021-10-14 15:49:36 -07:00
Evan Hahn
c9a49ecb4b
WebAPI: Require options in getProfile 2021-10-12 14:32:38 -07:00
Fedor Indutny
27573e6dce
Use non-throttled timeouts for websockets 2021-10-07 11:18:22 -07:00
Fedor Indutny
1466f9f1b2
Update got/form-data to latest 2021-10-06 09:25:22 -07:00
Scott Nonnenberg
bd380086a4
Send related emoji along with Sticker, fix SendMessage types 2021-10-05 17:10:08 -05:00
Fedor Indutny
eec669f284
Remove unused code from WebAPI 2021-09-28 16:38:55 -07:00
Fedor Indutny
cd710bb8d2
Add jitter support to BackOff class 2021-09-28 15:12:43 -07:00
Fedor Indutny
0291830d16
Annotate WebAPI logs with request subtype 2021-09-28 13:55:50 -07:00
Fedor Indutny
af387095be
API to suspend/resume tasks with timeout 2021-09-27 11:22:46 -07:00
Scott Nonnenberg
cf4c81b11c
Clear stale sender certificates 2021-09-27 10:31:34 -07:00
Evan Hahn
9791fa43ef
Improve handling of 413 HTTP responses 2021-09-27 09:44:09 -05:00