fix: report untracked legacy symlinks

This commit is contained in:
2026-07-11 23:37:25 +08:00
parent 530fcdd2b7
commit 53d372e29b
4 changed files with 12 additions and 7 deletions
+4 -1
View File
@@ -49,7 +49,10 @@ async function findProjectFiles(directory) {
for (const entry of entries) {
if (entry.name === ".trash") continue;
const path = resolve(directory, entry.name);
if (entry.isSymbolicLink()) throw new Error(`legacy manifest rejects symbolic link: ${path}`);
if (entry.isSymbolicLink()) {
process.stderr.write(`[legacy-manifest] skip untracked symbolic link: ${path}\n`);
continue;
}
if (entry.isDirectory()) found.push(...await findProjectFiles(path));
}
return found;
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "@paradigm/hub",
"version": "0.0.21",
"version": "0.0.22",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@paradigm/hub",
"version": "0.0.21",
"version": "0.0.22",
"dependencies": {
"@anthropic-ai/claude-agent-sdk": "^0.3.202",
"@fastify/cookie": "^11.0.2",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@paradigm/hub",
"version": "0.0.21",
"version": "0.0.22",
"private": true,
"type": "module",
"engines": {
@@ -48,14 +48,16 @@ describe("legacy project manifest builder", () => {
}]);
});
it("rejects symlinked entries instead of silently omitting them", async () => {
it("reports untracked symlinked entries instead of silently omitting them", async () => {
const root = await mkdtemp(join(tmpdir(), "cph-legacy-manifest-link-"));
temporaryRoots.push(root);
await symlink("/tmp", join(root, "linked-project"));
await expect(execute(process.execPath, [
const result = await execute(process.execPath, [
resolve("deploy/build_legacy_project_manifest.mjs"),
root,
])).rejects.toMatchObject({ stderr: expect.stringContaining("rejects symbolic link") });
]);
expect(result.stderr).toContain("skip untracked symbolic link");
expect(JSON.parse(result.stdout)).toEqual([]);
});
});