Repository navigation
Commit 9d3a096
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 e7e28ba commit 9d3a096
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 | | |
| |||
3834 | 3836 | | |
3835 | 3837 | | |
3836 | 3838 | | |
| 3839 | + | |
| 3840 | + | |
3837 | 3841 | | |
3838 | | - | |
3839 | | - | |
3840 | | - | |
| 3842 | + | |
3841 | 3843 | | |
3842 | 3844 | | |
3843 | 3845 | | |
| |||
3853 | 3855 | | |
3854 | 3856 | | |
3855 | 3857 | | |
3856 | | - | |
3857 | | - | |
| 3858 | + | |
| 3859 | + | |
| 3860 | + | |
| 3861 | + | |
| 3862 | + | |
3858 | 3863 | | |
3859 | 3864 | | |
3860 | 3865 | | |
| |||
3865 | 3870 | | |
3866 | 3871 | | |
3867 | 3872 | | |
3868 | | - | |
3869 | | - | |
3870 | | - | |
3871 | | - | |
3872 | | - | |
3873 | | - | |
3874 | | - | |
| 3873 | + | |
| 3874 | + | |
| 3875 | + | |
| 3876 | + | |
| 3877 | + | |
| 3878 | + | |
| 3879 | + | |
| 3880 | + | |
| 3881 | + | |
3875 | 3882 | | |
3876 | 3883 | | |
3877 | 3884 | | |
| |||
4203 | 4210 | | |
4204 | 4211 | | |
4205 | 4212 | | |
4206 | | - | |
| 4213 | + | |
| 4214 | + | |
| 4215 | + | |
| 4216 | + | |
| 4217 | + | |
| 4218 | + | |
| 4219 | + | |
| 4220 | + | |
| 4221 | + | |
4207 | 4222 | | |
4208 | 4223 | | |
4209 | 4224 | | |
4210 | 4225 | | |
4211 | 4226 | | |
4212 | 4227 | | |
4213 | 4228 | | |
| 4229 | + | |
4214 | 4230 | | |
4215 | 4231 | | |
4216 | 4232 | | |
| |||
4810 | 4826 | | |
4811 | 4827 | | |
4812 | 4828 | | |
4813 | | - | |
| 4829 | + | |
| 4830 | + | |
| 4831 | + | |
| 4832 | + | |
| 4833 | + | |
| 4834 | + | |
| 4835 | + | |
| 4836 | + | |
4814 | 4837 | | |
4815 | 4838 | | |
4816 | 4839 | | |
| |||
4865 | 4888 | | |
4866 | 4889 | | |
4867 | 4890 | | |
4868 | | - | |
| 4891 | + | |
4869 | 4892 | | |
4870 | 4893 | | |
4871 | 4894 | | |
| |||
5019 | 5042 | | |
5020 | 5043 | | |
5021 | 5044 | | |
5022 | | - | |
| 5045 | + | |
| 5046 | + | |
| 5047 | + | |
| 5048 | + | |
| 5049 | + | |
| 5050 | + | |
5023 | 5051 | | |
5024 | 5052 | | |
5025 | 5053 | | |
5026 | | - | |
5027 | | - | |
5028 | | - | |
5029 | | - | |
5030 | | - | |
| 5054 | + | |
| 5055 | + | |
| 5056 | + | |
| 5057 | + | |
| 5058 | + | |
| 5059 | + | |
5031 | 5060 | | |
5032 | 5061 | | |
5033 | 5062 | | |
| 5063 | + | |
| 5064 | + | |
| 5065 | + | |
| 5066 | + | |
5034 | 5067 | | |
5035 | 5068 | | |
5036 | | - | |
| 5069 | + | |
5037 | 5070 | | |
5038 | 5071 | | |
5039 | 5072 | | |
| |||
| 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