agent-skillboard 0.2.13 → 0.2.15

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.2.15 — 2026-07-03
6
+
7
+ ### Fixed
8
+
9
+ - Sudo setup now restores ownership for content-identical managed guidance
10
+ files reported as `Unchanged`, repairing existing root-owned guidance on
11
+ reinstall or explicit `skillboard setup --yes`.
12
+
13
+ ## 0.2.14 — 2026-07-03
14
+
15
+ ### Fixed
16
+
17
+ - Sudo ownership restoration now only chowns managed guidance paths inside the
18
+ resolved invoking user's home, avoiding accidental ownership changes for
19
+ explicit agent roots outside that home.
20
+
5
21
  ## 0.2.13 — 2026-07-03
6
22
 
7
23
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-skillboard",
3
- "version": "0.2.13",
3
+ "version": "0.2.15",
4
4
  "description": "Let AI agents pick and use allowed skills in each workflow.",
5
5
  "keywords": [
6
6
  "ai-agent",
@@ -349,6 +349,7 @@ async function installAgentIntegration(targets, ownership = null) {
349
349
  throw error;
350
350
  });
351
351
  if (existing === content) {
352
+ await applyOwnership(target.skillPath, ownership);
352
353
  unchanged.push(`${target.agent}:${target.skillPath}`);
353
354
  continue;
354
355
  }
@@ -376,6 +377,9 @@ async function applyOwnership(path, ownership) {
376
377
  function ownershipPaths(path, home) {
377
378
  const resolvedHome = resolve(home);
378
379
  const resolvedPath = resolve(path);
380
+ if (!isInside(resolvedPath, resolvedHome)) {
381
+ return [];
382
+ }
379
383
  const directories = [];
380
384
  let current = dirname(resolvedPath);
381
385
  while (current !== resolvedHome && isInside(current, resolvedHome)) {
@@ -386,9 +390,6 @@ function ownershipPaths(path, home) {
386
390
  }
387
391
  current = parent;
388
392
  }
389
- if (directories.length === 0) {
390
- directories.push(dirname(resolvedPath));
391
- }
392
393
  return [...directories.reverse(), resolvedPath];
393
394
  }
394
395