@thanhthi2895/luna-ai 2.16.4 → 2.16.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -474,10 +474,31 @@ async function copyClaude_global(rootDir, claudeHome) {
474
474
  ];
475
475
  await fs.copy(srcClaude, destClaude, {
476
476
  dereference: true,
477
- filter: (file) => {
478
- if (shouldSkip(file, skipPaths)) return false;
479
- if (file.endsWith('project-memory.md')) {
480
- const relativePath = path.relative(srcClaude, file);
477
+ filter: (src, dest) => {
478
+ if (shouldSkip(src, skipPaths)) return false;
479
+
480
+ // Guard against fs-extra same-path crash when destination contains symlink
481
+ // that resolves to the same canonical file as source.
482
+ if (fs.pathExistsSync(dest)) {
483
+ try {
484
+ const srcReal = fs.realpathSync(src);
485
+ const destReal = fs.realpathSync(dest);
486
+
487
+ if (srcReal === destReal) {
488
+ const destStat = fs.lstatSync(dest);
489
+ if (destStat.isSymbolicLink()) {
490
+ fs.removeSync(dest); // remove conflicting symlink so copy can proceed
491
+ return true;
492
+ }
493
+ return false; // identical real file already in place
494
+ }
495
+ } catch {
496
+ // Ignore realpath resolution failures (e.g. broken symlink) and continue
497
+ }
498
+ }
499
+
500
+ if (src.endsWith('project-memory.md')) {
501
+ const relativePath = path.relative(srcClaude, src);
481
502
  const destPath = path.join(destClaude, relativePath);
482
503
  if (fs.pathExistsSync(destPath)) return false;
483
504
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thanhthi2895/luna-ai",
3
- "version": "2.16.4",
3
+ "version": "2.16.5",
4
4
  "description": "Agentic Workflow Framework cho Claude - Tự động hóa quy trình lập trình Vibe Coding",
5
5
  "type": "module",
6
6
  "private": false,
@@ -11,7 +11,8 @@
11
11
  "scripts": {
12
12
  "test": "node --test agentic/antigravity/.agents/skills/chrome-devtools/scripts/__tests__/*.test.js",
13
13
  "prepack": "node scripts/resolve-symlinks.js",
14
- "postpack": "git checkout -- agentic/ && git clean -fd agentic/"
14
+ "postpack": "git checkout -- agentic/ && git clean -fd agentic/",
15
+ "release": "npm publish --access public"
15
16
  },
16
17
  "keywords": [
17
18
  "claude",
@@ -41,4 +42,4 @@
41
42
  "engines": {
42
43
  "node": ">=14.18.0"
43
44
  }
44
- }
45
+ }