Repository navigation
Commit 98a8ddd
committed
fix(mothership): keep held and busy-refused sends exactly once across remounts
- A first message held offline on the new-chat page sat under that mount's
queue key, which dies with the mount, so a reload or remount before the
network returned stranded it. Held sends on a chatless surface now carry the
surface they belong to, and the next chatless mount of that surface adopts
them.
- Held sends are released for every chat when the browser comes back online,
and on mount when it already is, so a send held in a chat the user is not
viewing (or one whose `online` event fired with no surface mounted) still
goes out.
- A send refused because the chat is busy is handed back only after the chat's
running turn has been read, so the queue cannot redispatch it before that
turn ends. A busy refusal that does not name the running turn no longer reads
as a deduplicated send, which reconnected to a stream that never existed and
lost the message.1 parent e130725 commit 98a8ddd
4 files changed
Lines changed: 231 additions & 57 deletions
File tree
- apps/sim
- app/workspace/[workspaceId]/home/hooks
- stores/mothership-queue
Lines changed: 125 additions & 21 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1935 | 1935 | | |
1936 | 1936 | | |
1937 | 1937 | | |
1938 | | - | |
| 1938 | + | |
1939 | 1939 | | |
1940 | 1940 | | |
| 1941 | + | |
1941 | 1942 | | |
1942 | 1943 | | |
1943 | 1944 | | |
1944 | 1945 | | |
1945 | | - | |
| 1946 | + | |
| 1947 | + | |
| 1948 | + | |
| 1949 | + | |
1946 | 1950 | | |
1947 | 1951 | | |
1948 | 1952 | | |
| |||
2002 | 2006 | | |
2003 | 2007 | | |
2004 | 2008 | | |
2005 | | - | |
2006 | | - | |
| 2009 | + | |
| 2010 | + | |
| 2011 | + | |
| 2012 | + | |
2007 | 2013 | | |
2008 | | - | |
2009 | | - | |
2010 | | - | |
2011 | | - | |
2012 | | - | |
2013 | | - | |
2014 | | - | |
2015 | | - | |
2016 | | - | |
2017 | | - | |
2018 | | - | |
| 2014 | + | |
| 2015 | + | |
| 2016 | + | |
| 2017 | + | |
| 2018 | + | |
| 2019 | + | |
| 2020 | + | |
| 2021 | + | |
| 2022 | + | |
| 2023 | + | |
| 2024 | + | |
| 2025 | + | |
| 2026 | + | |
| 2027 | + | |
| 2028 | + | |
| 2029 | + | |
| 2030 | + | |
| 2031 | + | |
| 2032 | + | |
| 2033 | + | |
| 2034 | + | |
| 2035 | + | |
| 2036 | + | |
| 2037 | + | |
| 2038 | + | |
| 2039 | + | |
| 2040 | + | |
| 2041 | + | |
| 2042 | + | |
| 2043 | + | |
2019 | 2044 | | |
2020 | | - | |
2021 | | - | |
2022 | | - | |
| 2045 | + | |
| 2046 | + | |
| 2047 | + | |
| 2048 | + | |
| 2049 | + | |
| 2050 | + | |
| 2051 | + | |
| 2052 | + | |
| 2053 | + | |
| 2054 | + | |
| 2055 | + | |
| 2056 | + | |
| 2057 | + | |
| 2058 | + | |
| 2059 | + | |
| 2060 | + | |
| 2061 | + | |
| 2062 | + | |
| 2063 | + | |
| 2064 | + | |
| 2065 | + | |
| 2066 | + | |
| 2067 | + | |
| 2068 | + | |
| 2069 | + | |
| 2070 | + | |
| 2071 | + | |
| 2072 | + | |
| 2073 | + | |
| 2074 | + | |
| 2075 | + | |
| 2076 | + | |
| 2077 | + | |
| 2078 | + | |
| 2079 | + | |
| 2080 | + | |
| 2081 | + | |
| 2082 | + | |
| 2083 | + | |
| 2084 | + | |
| 2085 | + | |
| 2086 | + | |
| 2087 | + | |
| 2088 | + | |
| 2089 | + | |
| 2090 | + | |
| 2091 | + | |
2023 | 2092 | | |
2024 | | - | |
| 2093 | + | |
| 2094 | + | |
| 2095 | + | |
| 2096 | + | |
| 2097 | + | |
| 2098 | + | |
| 2099 | + | |
| 2100 | + | |
| 2101 | + | |
2025 | 2102 | | |
| 2103 | + | |
2026 | 2104 | | |
2027 | | - | |
| 2105 | + | |
2028 | 2106 | | |
| 2107 | + | |
| 2108 | + | |
| 2109 | + | |
| 2110 | + | |
| 2111 | + | |
| 2112 | + | |
| 2113 | + | |
| 2114 | + | |
| 2115 | + | |
| 2116 | + | |
| 2117 | + | |
| 2118 | + | |
| 2119 | + | |
| 2120 | + | |
| 2121 | + | |
| 2122 | + | |
| 2123 | + | |
| 2124 | + | |
| 2125 | + | |
| 2126 | + | |
| 2127 | + | |
| 2128 | + | |
| 2129 | + | |
| 2130 | + | |
| 2131 | + | |
| 2132 | + | |
2029 | 2133 | | |
2030 | 2134 | | |
2031 | | - | |
| 2135 | + | |
2032 | 2136 | | |
2033 | 2137 | | |
2034 | 2138 | | |
| |||
Lines changed: 55 additions & 22 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
729 | 729 | | |
730 | 730 | | |
731 | 731 | | |
| 732 | + | |
| 733 | + | |
732 | 734 | | |
733 | 735 | | |
734 | 736 | | |
| |||
3828 | 3830 | | |
3829 | 3831 | | |
3830 | 3832 | | |
| 3833 | + | |
| 3834 | + | |
3831 | 3835 | | |
3832 | | - | |
3833 | | - | |
3834 | | - | |
| 3836 | + | |
3835 | 3837 | | |
3836 | 3838 | | |
3837 | 3839 | | |
| |||
3847 | 3849 | | |
3848 | 3850 | | |
3849 | 3851 | | |
3850 | | - | |
3851 | | - | |
| 3852 | + | |
| 3853 | + | |
| 3854 | + | |
| 3855 | + | |
| 3856 | + | |
3852 | 3857 | | |
3853 | 3858 | | |
3854 | 3859 | | |
| |||
3859 | 3864 | | |
3860 | 3865 | | |
3861 | 3866 | | |
3862 | | - | |
3863 | | - | |
3864 | | - | |
3865 | | - | |
3866 | | - | |
3867 | | - | |
3868 | | - | |
| 3867 | + | |
| 3868 | + | |
| 3869 | + | |
| 3870 | + | |
| 3871 | + | |
| 3872 | + | |
| 3873 | + | |
| 3874 | + | |
| 3875 | + | |
3869 | 3876 | | |
3870 | 3877 | | |
3871 | 3878 | | |
| |||
4197 | 4204 | | |
4198 | 4205 | | |
4199 | 4206 | | |
4200 | | - | |
| 4207 | + | |
| 4208 | + | |
| 4209 | + | |
| 4210 | + | |
| 4211 | + | |
| 4212 | + | |
| 4213 | + | |
| 4214 | + | |
| 4215 | + | |
4201 | 4216 | | |
4202 | 4217 | | |
4203 | 4218 | | |
4204 | 4219 | | |
4205 | 4220 | | |
4206 | 4221 | | |
4207 | 4222 | | |
| 4223 | + | |
4208 | 4224 | | |
4209 | 4225 | | |
4210 | 4226 | | |
| |||
4804 | 4820 | | |
4805 | 4821 | | |
4806 | 4822 | | |
4807 | | - | |
| 4823 | + | |
| 4824 | + | |
| 4825 | + | |
| 4826 | + | |
| 4827 | + | |
| 4828 | + | |
| 4829 | + | |
| 4830 | + | |
4808 | 4831 | | |
4809 | 4832 | | |
4810 | 4833 | | |
| |||
4859 | 4882 | | |
4860 | 4883 | | |
4861 | 4884 | | |
4862 | | - | |
| 4885 | + | |
4863 | 4886 | | |
4864 | 4887 | | |
4865 | 4888 | | |
| |||
5013 | 5036 | | |
5014 | 5037 | | |
5015 | 5038 | | |
5016 | | - | |
| 5039 | + | |
| 5040 | + | |
| 5041 | + | |
| 5042 | + | |
| 5043 | + | |
| 5044 | + | |
5017 | 5045 | | |
5018 | 5046 | | |
5019 | 5047 | | |
5020 | | - | |
5021 | | - | |
5022 | | - | |
5023 | | - | |
5024 | | - | |
| 5048 | + | |
| 5049 | + | |
| 5050 | + | |
| 5051 | + | |
| 5052 | + | |
| 5053 | + | |
5025 | 5054 | | |
5026 | 5055 | | |
5027 | 5056 | | |
| 5057 | + | |
| 5058 | + | |
| 5059 | + | |
| 5060 | + | |
5028 | 5061 | | |
5029 | 5062 | | |
5030 | | - | |
| 5063 | + | |
5031 | 5064 | | |
5032 | 5065 | | |
5033 | 5066 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
| 97 | + | |
97 | 98 | | |
98 | 99 | | |
99 | 100 | | |
| |||
143 | 144 | | |
144 | 145 | | |
145 | 146 | | |
146 | | - | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
147 | 152 | | |
148 | 153 | | |
149 | 154 | | |
| |||
152 | 157 | | |
153 | 158 | | |
154 | 159 | | |
155 | | - | |
| 160 | + | |
156 | 161 | | |
157 | | - | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
165 | 194 | | |
166 | 195 | | |
167 | 196 | | |
| |||
0 commit comments