Commit 161cb40
committed
fix: strict marker-only on resolve path, no legacy adoption
Round-5 review fix:
is_install_complete() is now strict marker-only. No more legacy
heuristic fallback on the resolve/install path.
Rationale: from directory layout alone we cannot distinguish a
legacy-complete install (bin/ exists, full) from a half-extracted
residue (bin/ exists, partial). Adopting the latter silently
corrupts the user's toolchain. Strict semantics close this gap.
Cost: upgrade users do a one-time reinstall per toolchain. In
practice this hits the fast copy_xpkg_from_global() fallback that
reuses ~/.xlings/, so it's rarely a real download.
clean_all_incomplete() (mcpp self init) still preserves legacy
packages (no marker + legacy layout) as user-visible assets —
that's a separate concern from the resolve path's strictness.
looks_complete_legacy() is now exported for explicit legacy-aware
call sites (currently only clean_all_incomplete uses it).1 parent d8ff4ca commit 161cb40
2 files changed
Lines changed: 39 additions & 21 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
| 36 | + | |
| 37 | + | |
40 | 38 | | |
41 | 39 | | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
42 | 49 | | |
43 | 50 | | |
44 | 51 | | |
| |||
60 | 67 | | |
61 | 68 | | |
62 | 69 | | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | 70 | | |
| 71 | + | |
68 | 72 | | |
69 | 73 | | |
70 | 74 | | |
| |||
87 | 91 | | |
88 | 92 | | |
89 | 93 | | |
90 | | - | |
91 | | - | |
92 | 94 | | |
93 | 95 | | |
94 | 96 | | |
| |||
97 | 99 | | |
98 | 100 | | |
99 | 101 | | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
108 | 113 | | |
109 | 114 | | |
110 | 115 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
647 | 647 | | |
648 | 648 | | |
649 | 649 | | |
650 | | - | |
| 650 | + | |
651 | 651 | | |
652 | | - | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
653 | 662 | | |
654 | 663 | | |
655 | 664 | | |
656 | 665 | | |
657 | 666 | | |
658 | | - | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
659 | 672 | | |
660 | 673 | | |
661 | 674 | | |
| |||
0 commit comments