@phren/cli 0.1.10 → 0.1.11

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.
@@ -16,7 +16,7 @@
16
16
  *
17
17
  * The actor is read from the PHREN_ACTOR env var (falls back to open if unset).
18
18
  */
19
- type RbacAction = "add_finding" | "remove_finding" | "edit_finding" | "complete_task" | "add_task" | "remove_task" | "update_task" | "manage_config";
19
+ type RbacAction = "add_finding" | "remove_finding" | "edit_finding" | "complete_task" | "add_task" | "remove_task" | "update_task" | "pin_task" | "manage_config";
20
20
  /**
21
21
  * Convenience wrapper: returns a permission-denied MCP error string,
22
22
  * or null if the action is allowed.
@@ -82,6 +82,7 @@ const CONTRIBUTOR_ACTIONS = new Set([
82
82
  "add_task",
83
83
  "remove_task",
84
84
  "update_task",
85
+ "pin_task",
85
86
  ]);
86
87
  const ADMIN_ONLY_ACTIONS = new Set([
87
88
  "manage_config",
@@ -303,8 +303,9 @@ function repairGlobalClaudeSymlink(phrenPath) {
303
303
  const target = path.resolve(path.dirname(dest), fs.readlinkSync(dest));
304
304
  if (target === path.resolve(src))
305
305
  return false; // already correct
306
- // Stale symlink pointing elsewhere — managed by phren, safe to replace
307
- if (target.includes(".phren"))
306
+ // Stale symlink pointing elsewhere — managed by phren, safe to replace.
307
+ // Match .phren dirs and phren-created links (test runs use /tmp/phren-*/global/CLAUDE.md)
308
+ if (target.includes(".phren") || target.endsWith("global/CLAUDE.md"))
308
309
  fs.unlinkSync(dest);
309
310
  else
310
311
  return false; // not ours, don't touch