fleet: split-home-safe mosaic launcher (T110, P5-RM-009 stack side) (#1480)
ci/woodpecker/push/publish Pipeline was successful

This commit was merged in pull request #1480.
This commit is contained in:
2026-08-30 10:05:40 +00:00
parent 60bc5d2022
commit e18d13d36f
4 changed files with 368 additions and 0 deletions
@@ -148,6 +148,26 @@ describe.skipIf(!hasBash)('bash ↔ TS manifest parity (§6.1)', () => {
const manifest = loadManifest(FRAMEWORK_ROOT);
expect(bashSubtreeRoots().sort()).toEqual(frameworkSubtreeRoots(manifest).sort());
});
it('fleet/bin ownership is exact and does not prune existing executables (T110 B1)', () => {
// fleet/bin carries estate executables this package does not ship. A
// subtree glob here would classify them framework-owned and keep-mode
// update would prune them. The manifest must own EXACTLY the two shipped
// launcher files and nothing else in fleet/bin, on BOTH resolvers.
const manifest = loadManifest(FRAMEWORK_ROOT);
const expected: Array<[string, string]> = [
['fleet/bin/mosaic', 'framework'],
['fleet/bin/test-mosaic-launcher.sh', 'framework'],
['fleet/bin/seat-up.sh', 'operator'], // shipped-by-estate, unshipped here
['fleet/bin/launch-seat.sh', 'operator'],
['fleet/bin', 'operator'], // the directory itself is unlisted
];
for (const [path, want] of expected) {
const ts = resolveOwnership(manifest, path);
expect(ts).toBe(want);
expect(bashResolve(path)).toBe(want);
}
});
});
/**