Commit 2521db8
authored
Landing: Pharos engraving hero; snapshot revert hardening (#9)
* fix(snapshot): survive transient git failures instead of deleting files
The 'unicode filenames modification and restore' test failed CI on push
43b5e18 with ENOENT after revert: every file in the sandbox was deleted.
That happens when the 'git add' inside track() fails transiently and
.nothrow() swallows it — write-tree then snapshots an empty index, and
revert() against that tree treats every file as 'not in snapshot' and
unlinks it.
- stage via a shared stageAll() that retries once on failure and reports
it; track() returns no snapshot instead of a wrong one when staging or
write-tree fails
- revert() no longer deletes a file when the ls-tree verification itself
errors; deletion now requires a successful ls-tree that confirms the
file was absent from the snapshot
* Landing: Pharos engraving hero; drop og.png
The Lighthouse of Alexandria plate becomes the hero backdrop — the beam
sweeps from the tower down to the small ship steering by its light at
bottom-left. The wordmark moves to the top-left over the dark sky and
the headline block to the bottom-right, so both sit on quiet areas of
the plate. A light uniform scrim plus two corner shields keep the type
crisp while the beam and the ship stay in view; the plate is monochrome
warm sepia already, so it ships unfiltered.
Replaces the constellation canvas. og.png and its meta tags go — the
twitter card drops to summary.
* fix(snapshot): verify revert deletions against a full tree listing
The per-file 'ls-tree <hash> -- <pathspec>' check behaved differently
across platforms for unusual filenames, so revert either kept files it
should delete or vice versa depending on OS. List the snapshot tree once
per patch with core.quotepath=false (the same mechanism patch() uses)
and check membership in code: deterministic on every platform, one git
call per snapshot instead of per file, and still fails safe — if the
listing errors, files are kept rather than deleted on an unverified
miss.1 parent caf283d commit 2521db8
5 files changed
Lines changed: 99 additions & 133 deletions
File tree
- backend/cli/src/snapshot
- frontend/landing
- public
- src
- assets
- pages
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
50 | 73 | | |
51 | 74 | | |
52 | 75 | | |
| |||
65 | 88 | | |
66 | 89 | | |
67 | 90 | | |
68 | | - | |
69 | | - | |
| 91 | + | |
| 92 | + | |
70 | 93 | | |
71 | 94 | | |
72 | 95 | | |
73 | | - | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
74 | 101 | | |
75 | | - | |
| 102 | + | |
76 | 103 | | |
77 | 104 | | |
78 | 105 | | |
| |||
83 | 110 | | |
84 | 111 | | |
85 | 112 | | |
86 | | - | |
| 113 | + | |
87 | 114 | | |
88 | 115 | | |
89 | 116 | | |
| |||
131 | 158 | | |
132 | 159 | | |
133 | 160 | | |
| 161 | + | |
| 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 | + | |
134 | 188 | | |
135 | 189 | | |
136 | 190 | | |
| |||
139 | 193 | | |
140 | 194 | | |
141 | 195 | | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | | - | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
149 | 199 | | |
150 | 200 | | |
151 | 201 | | |
| |||
161 | 211 | | |
162 | 212 | | |
163 | 213 | | |
164 | | - | |
| 214 | + | |
165 | 215 | | |
166 | 216 | | |
167 | 217 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
| 17 | + | |
24 | 18 | | |
25 | 19 | | |
26 | | - | |
27 | | - | |
28 | 20 | | |
29 | 21 | | |
30 | 22 | | |
| |||
Binary file not shown.
Loading
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
259 | 260 | | |
260 | 261 | | |
261 | 262 | | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
283 | | - | |
284 | | - | |
285 | | - | |
286 | | - | |
287 | | - | |
288 | | - | |
289 | | - | |
290 | | - | |
291 | | - | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
321 | | - | |
322 | | - | |
323 | | - | |
324 | | - | |
325 | | - | |
326 | | - | |
327 | | - | |
328 | | - | |
329 | | - | |
330 | | - | |
331 | | - | |
332 | | - | |
333 | | - | |
334 | | - | |
335 | | - | |
336 | | - | |
337 | | - | |
338 | | - | |
339 | | - | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | | - | |
345 | | - | |
346 | | - | |
347 | | - | |
348 | | - | |
349 | | - | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
354 | | - | |
355 | | - | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
356 | 282 | | |
357 | 283 | | |
358 | 284 | | |
| |||
389 | 315 | | |
390 | 316 | | |
391 | 317 | | |
392 | | - | |
393 | 318 | | |
394 | | - | |
395 | | - | |
396 | | - | |
397 | | - | |
398 | | - | |
399 | | - | |
400 | | - | |
401 | | - | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
402 | 327 | | |
403 | 328 | | |
404 | 329 | | |
405 | 330 | | |
406 | 331 | | |
407 | | - | |
408 | | - | |
409 | | - | |
| 332 | + | |
| 333 | + | |
410 | 334 | | |
411 | 335 | | |
412 | 336 | | |
413 | 337 | | |
414 | | - | |
| 338 | + | |
415 | 339 | | |
416 | | - | |
| 340 | + | |
417 | 341 | | |
418 | 342 | | |
419 | | - | |
| 343 | + | |
420 | 344 | | |
421 | 345 | | |
422 | 346 | | |
423 | 347 | | |
424 | 348 | | |
425 | 349 | | |
426 | | - | |
| 350 | + | |
427 | 351 | | |
428 | 352 | | |
429 | 353 | | |
430 | 354 | | |
431 | | - | |
| 355 | + | |
432 | 356 | | |
433 | 357 | | |
434 | 358 | | |
| |||
0 commit comments