Commit c81fa97
committed
Add color synchronization with collision avoidance for active looms. Fixes #277
- Reduce color palette to 16 visually distinct colors (min distance ≥ 10)
- Implement collision detection algorithm to avoid assigning same colors to active looms
- Store hex color in metadata for robust color persistence across palette changes
- Add `selectDistinctColor` function with fallback to hash-based color selection
- Add `colorDistance` utility for euclidean RGB color distance calculation
- Add `hexToRgb` converter to support pre-calculated hex colors in launcher
- Update `LaunchLoomOptions` to accept pre-calculated `colorHex` parameter
- Pass pre-computed color data through to avoid recalculation
- Add null-check for worktree list when reading metadata for reused looms1 parent 4d8de6d commit c81fa97
File tree
6 files changed
+326
-147
lines changed- src
- lib
- utils
6 files changed
+326
-147
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
| |||
155 | 156 | | |
156 | 157 | | |
157 | 158 | | |
158 | | - | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
159 | 162 | | |
160 | 163 | | |
161 | 164 | | |
| |||
175 | 178 | | |
176 | 179 | | |
177 | 180 | | |
178 | | - | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
179 | 184 | | |
180 | 185 | | |
181 | 186 | | |
| |||
210 | 215 | | |
211 | 216 | | |
212 | 217 | | |
213 | | - | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
214 | 221 | | |
215 | 222 | | |
216 | 223 | | |
| |||
239 | 246 | | |
240 | 247 | | |
241 | 248 | | |
242 | | - | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
243 | 252 | | |
244 | 253 | | |
245 | 254 | | |
| |||
264 | 273 | | |
265 | 274 | | |
266 | 275 | | |
267 | | - | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
268 | 279 | | |
269 | 280 | | |
270 | 281 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
185 | 185 | | |
186 | 186 | | |
187 | 187 | | |
188 | | - | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
189 | 206 | | |
190 | | - | |
| 207 | + | |
191 | 208 | | |
192 | 209 | | |
193 | 210 | | |
| |||
213 | 230 | | |
214 | 231 | | |
215 | 232 | | |
216 | | - | |
| 233 | + | |
217 | 234 | | |
218 | 235 | | |
219 | 236 | | |
| |||
248 | 265 | | |
249 | 266 | | |
250 | 267 | | |
| 268 | + | |
251 | 269 | | |
252 | 270 | | |
253 | 271 | | |
| |||
267 | 285 | | |
268 | 286 | | |
269 | 287 | | |
| 288 | + | |
270 | 289 | | |
271 | 290 | | |
272 | 291 | | |
| |||
313 | 332 | | |
314 | 333 | | |
315 | 334 | | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
316 | 338 | | |
317 | 339 | | |
318 | 340 | | |
| |||
741 | 763 | | |
742 | 764 | | |
743 | 765 | | |
| 766 | + | |
| 767 | + | |
744 | 768 | | |
745 | 769 | | |
746 | 770 | | |
747 | 771 | | |
| 772 | + | |
748 | 773 | | |
749 | 774 | | |
750 | 775 | | |
| |||
758 | 783 | | |
759 | 784 | | |
760 | 785 | | |
761 | | - | |
762 | | - | |
763 | 786 | | |
764 | 787 | | |
765 | 788 | | |
| |||
869 | 892 | | |
870 | 893 | | |
871 | 894 | | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
872 | 911 | | |
873 | 912 | | |
874 | 913 | | |
| |||
920 | 959 | | |
921 | 960 | | |
922 | 961 | | |
| 962 | + | |
923 | 963 | | |
924 | 964 | | |
925 | 965 | | |
926 | 966 | | |
927 | 967 | | |
928 | | - | |
929 | 968 | | |
930 | 969 | | |
931 | 970 | | |
| |||
940 | 979 | | |
941 | 980 | | |
942 | 981 | | |
| 982 | + | |
943 | 983 | | |
944 | 984 | | |
945 | 985 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
| 85 | + | |
85 | 86 | | |
86 | 87 | | |
87 | 88 | | |
| |||
121 | 122 | | |
122 | 123 | | |
123 | 124 | | |
| 125 | + | |
124 | 126 | | |
125 | 127 | | |
126 | 128 | | |
| |||
164 | 166 | | |
165 | 167 | | |
166 | 168 | | |
| 169 | + | |
167 | 170 | | |
168 | 171 | | |
169 | 172 | | |
| |||
179 | 182 | | |
180 | 183 | | |
181 | 184 | | |
| 185 | + | |
182 | 186 | | |
183 | 187 | | |
184 | 188 | | |
| |||
202 | 206 | | |
203 | 207 | | |
204 | 208 | | |
| 209 | + | |
205 | 210 | | |
206 | 211 | | |
207 | 212 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
| |||
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| 37 | + | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| |||
47 | 49 | | |
48 | 50 | | |
49 | 51 | | |
| 52 | + | |
50 | 53 | | |
51 | 54 | | |
52 | 55 | | |
| |||
124 | 127 | | |
125 | 128 | | |
126 | 129 | | |
| 130 | + | |
127 | 131 | | |
128 | 132 | | |
129 | 133 | | |
| |||
171 | 175 | | |
172 | 176 | | |
173 | 177 | | |
| 178 | + | |
174 | 179 | | |
175 | 180 | | |
176 | 181 | | |
| |||
0 commit comments