@rubytech/taskmaster 1.26.2 → 1.27.0

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.
@@ -33,6 +33,7 @@ import { createFileListTool } from "./tools/file-list-tool.js";
33
33
  import { createContactLookupTool } from "./tools/contact-lookup-tool.js";
34
34
  import { createContactUpdateTool } from "./tools/contact-update-tool.js";
35
35
  import { createRelayMessageTool } from "./tools/relay-message-tool.js";
36
+ import path from "node:path";
36
37
  import { createSkillDraftSaveTool } from "./tools/skill-draft-save-tool.js";
37
38
  import { createSkillReadTool } from "./tools/skill-read-tool.js";
38
39
  import { createApiKeysTool } from "./tools/apikeys-tool.js";
@@ -189,8 +190,16 @@ export function createTaskmasterTools(options) {
189
190
  agentSessionKey: options?.agentSessionKey,
190
191
  }),
191
192
  ];
192
- // Add scoped skill_read tool when skill directories are provided
193
+ // Add scoped skill_read tool. Always include the workspace skills directory
194
+ // so skill_read is registered even when the skills snapshot is empty or stale
195
+ // (e.g. cron sessions with serialised snapshots that lost resolvedSkills).
193
196
  const skillDirs = (options?.skillBaseDirs ?? []).filter(Boolean);
197
+ if (options?.workspaceDir) {
198
+ const wsSkillsDir = path.join(options.workspaceDir, "skills");
199
+ if (!skillDirs.includes(wsSkillsDir)) {
200
+ skillDirs.push(wsSkillsDir);
201
+ }
202
+ }
194
203
  if (skillDirs.length > 0) {
195
204
  tools.push(createSkillReadTool({ allowedSkillDirs: skillDirs }));
196
205
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.26.2",
3
- "commit": "83d0624d6ee401df6817cd51b41f16150ab2bf98",
4
- "builtAt": "2026-03-07T14:53:03.682Z"
2
+ "version": "1.27.0",
3
+ "commit": "07e9531d843f749bc1df39360a8b323d5d5d5dce",
4
+ "builtAt": "2026-03-07T18:25:31.989Z"
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/taskmaster",
3
- "version": "1.26.2",
3
+ "version": "1.27.0",
4
4
  "description": "AI-powered business assistant for small businesses",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -150,6 +150,10 @@ if [ "$PLATFORM" = "linux" ]; then
150
150
  echo ""
151
151
  echo "Platform setup..."
152
152
 
153
+ # SSH — enable so the device is reachable for remote administration
154
+ as_root systemctl enable --now ssh 2>/dev/null || true
155
+ echo " SSH enabled"
156
+
153
157
  # ffmpeg (PTT voice note normalization)
154
158
  as_root apt-get install -y ffmpeg >/dev/null 2>&1 \
155
159
  && echo " ffmpeg installed" \