@rubytech/taskmaster 1.0.92 → 1.0.94

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.
@@ -6,7 +6,7 @@
6
6
  <title>Taskmaster Control</title>
7
7
  <meta name="color-scheme" content="dark light" />
8
8
  <link rel="icon" type="image/png" href="./favicon.png" />
9
- <script type="module" crossorigin src="./assets/index-hWMGux19.js"></script>
9
+ <script type="module" crossorigin src="./assets/index-DfQL37PU.js"></script>
10
10
  <link rel="stylesheet" crossorigin href="./assets/index-B7exVNNa.css">
11
11
  </head>
12
12
  <body>
@@ -931,6 +931,16 @@ export class MemoryIndexManager {
931
931
  path.join(this.workspaceDir, "MEMORY.md"),
932
932
  path.join(this.workspaceDir, "memory"),
933
933
  ];
934
+ // Also watch the shared canonical memory dir (workspace root memory/).
935
+ // On Linux (inotify), filesystem events do not fire through symlinks —
936
+ // the agent's memory/public (symlink) won't detect changes to the real
937
+ // ~/taskmaster/memory/public/. Watching the real target directory ensures
938
+ // file changes are detected regardless of platform symlink behaviour.
939
+ const workspaceRoot = this.workspaceDir.replace(/\/agents\/[^/]+$/, "");
940
+ if (workspaceRoot !== this.workspaceDir) {
941
+ const sharedMemoryDir = path.join(workspaceRoot, "memory");
942
+ watchPaths.push(sharedMemoryDir);
943
+ }
934
944
  this.watcher = chokidar.watch(watchPaths, {
935
945
  ignoreInitial: true,
936
946
  awaitWriteFinish: {
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/taskmaster",
3
- "version": "1.0.92",
3
+ "version": "1.0.94",
4
4
  "description": "AI-powered business assistant for small businesses",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -77,66 +77,12 @@
77
77
  "dist/filler/**",
78
78
  "dist/license/**"
79
79
  ],
80
- "scripts": {
81
- "dev": "node scripts/run-node.mjs",
82
- "postinstall": "node scripts/postinstall.js",
83
- "prepack": "pnpm build && pnpm ui:build",
84
- "docs:list": "node scripts/docs-list.js",
85
- "docs:bin": "node scripts/build-docs-list.mjs",
86
- "docs:dev": "cd docs && mint dev",
87
- "docs:build": "cd docs && pnpm dlx --reporter append-only mint broken-links",
88
- "build": "tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts",
89
- "plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts",
90
- "release:check": "node --import tsx scripts/release-check.ts",
91
- "ui:install": "node scripts/ui.js install",
92
- "ui:dev": "node scripts/ui.js dev",
93
- "ui:build": "node scripts/ui.js build",
94
- "start": "node scripts/run-node.mjs",
95
- "taskmaster": "node scripts/run-node.mjs",
96
- "gateway:watch": "node scripts/watch-node.mjs gateway --force",
97
- "logs": "npx tsx scripts/session-viewer.ts",
98
- "gateway:dev": "TASKMASTER_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway",
99
- "gateway:dev:reset": "TASKMASTER_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset",
100
- "tui": "node scripts/run-node.mjs tui",
101
- "tui:dev": "TASKMASTER_PROFILE=dev node scripts/run-node.mjs tui",
102
- "taskmaster:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
103
- "lint": "oxlint --type-aware src test",
104
- "lint:fix": "pnpm format:fix && oxlint --type-aware --fix src test",
105
- "format": "oxfmt --check src test",
106
- "format:fix": "oxfmt --write src test",
107
- "test": "node scripts/test-parallel.mjs",
108
- "test:watch": "vitest",
109
- "test:ui": "pnpm --dir ui test",
110
- "test:force": "node --import tsx scripts/test-force.ts",
111
- "test:coverage": "vitest run --coverage",
112
- "test:e2e": "vitest run --config vitest.e2e.config.ts",
113
- "test:live": "TASKMASTER_LIVE_TEST=1 vitest run --config vitest.live.config.ts",
114
- "test:docker:onboard": "bash scripts/e2e/onboard-docker.sh",
115
- "test:docker:gateway-network": "bash scripts/e2e/gateway-network-docker.sh",
116
- "test:docker:live-models": "bash scripts/test-live-models-docker.sh",
117
- "test:docker:live-gateway": "bash scripts/test-live-gateway-models-docker.sh",
118
- "test:docker:qr": "bash scripts/e2e/qr-import-docker.sh",
119
- "test:docker:doctor-switch": "bash scripts/e2e/doctor-install-switch-docker.sh",
120
- "test:docker:plugins": "bash scripts/e2e/plugins-docker.sh",
121
- "test:docker:cleanup": "bash scripts/test-cleanup-docker.sh",
122
- "test:docker:all": "pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup",
123
- "test:all": "pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all",
124
- "test:install:e2e": "bash scripts/test-install-sh-e2e-docker.sh",
125
- "test:install:smoke": "bash scripts/test-install-sh-docker.sh",
126
- "test:install:e2e:openai": "TASKMASTER_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh",
127
- "test:install:e2e:anthropic": "TASKMASTER_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh",
128
- "protocol:gen": "node --import tsx scripts/protocol-gen.ts",
129
- "protocol:check": "pnpm protocol:gen && git diff --exit-code -- dist/protocol.schema.json",
130
- "canvas:a2ui:bundle": "bash scripts/bundle-a2ui.sh",
131
- "check:loc": "node --import tsx scripts/check-ts-max-loc.ts --max 500"
132
- },
133
80
  "keywords": [],
134
81
  "author": "",
135
82
  "license": "MIT",
136
83
  "engines": {
137
84
  "node": ">=22.12.0"
138
85
  },
139
- "packageManager": "pnpm@10.23.0",
140
86
  "dependencies": {
141
87
  "@agentclientprotocol/sdk": "0.13.1",
142
88
  "@aws-sdk/client-bedrock": "^3.975.0",
@@ -226,14 +172,6 @@
226
172
  "vitest": "^4.0.18",
227
173
  "wireit": "^0.14.12"
228
174
  },
229
- "pnpm": {
230
- "minimumReleaseAge": 2880,
231
- "overrides": {
232
- "@sinclair/typebox": "0.34.47",
233
- "hono": "4.11.4",
234
- "tar": "7.5.4"
235
- }
236
- },
237
175
  "vitest": {
238
176
  "coverage": {
239
177
  "provider": "v8",
@@ -262,5 +200,57 @@
262
200
  "**/vendor/**",
263
201
  "dist/Taskmaster.app/**"
264
202
  ]
203
+ },
204
+ "scripts": {
205
+ "dev": "node scripts/run-node.mjs",
206
+ "postinstall": "node scripts/postinstall.js",
207
+ "docs:list": "node scripts/docs-list.js",
208
+ "docs:bin": "node scripts/build-docs-list.mjs",
209
+ "docs:dev": "cd docs && mint dev",
210
+ "docs:build": "cd docs && pnpm dlx --reporter append-only mint broken-links",
211
+ "build": "tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts",
212
+ "plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts",
213
+ "release:check": "node --import tsx scripts/release-check.ts",
214
+ "ui:install": "node scripts/ui.js install",
215
+ "ui:dev": "node scripts/ui.js dev",
216
+ "ui:build": "node scripts/ui.js build",
217
+ "start": "node scripts/run-node.mjs",
218
+ "taskmaster": "node scripts/run-node.mjs",
219
+ "gateway:watch": "node scripts/watch-node.mjs gateway --force",
220
+ "logs": "npx tsx scripts/session-viewer.ts",
221
+ "gateway:dev": "TASKMASTER_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway",
222
+ "gateway:dev:reset": "TASKMASTER_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset",
223
+ "tui": "node scripts/run-node.mjs tui",
224
+ "tui:dev": "TASKMASTER_PROFILE=dev node scripts/run-node.mjs tui",
225
+ "taskmaster:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
226
+ "lint": "oxlint --type-aware src test",
227
+ "lint:fix": "pnpm format:fix && oxlint --type-aware --fix src test",
228
+ "format": "oxfmt --check src test",
229
+ "format:fix": "oxfmt --write src test",
230
+ "test": "node scripts/test-parallel.mjs",
231
+ "test:watch": "vitest",
232
+ "test:ui": "pnpm --dir ui test",
233
+ "test:force": "node --import tsx scripts/test-force.ts",
234
+ "test:coverage": "vitest run --coverage",
235
+ "test:e2e": "vitest run --config vitest.e2e.config.ts",
236
+ "test:live": "TASKMASTER_LIVE_TEST=1 vitest run --config vitest.live.config.ts",
237
+ "test:docker:onboard": "bash scripts/e2e/onboard-docker.sh",
238
+ "test:docker:gateway-network": "bash scripts/e2e/gateway-network-docker.sh",
239
+ "test:docker:live-models": "bash scripts/test-live-models-docker.sh",
240
+ "test:docker:live-gateway": "bash scripts/test-live-gateway-models-docker.sh",
241
+ "test:docker:qr": "bash scripts/e2e/qr-import-docker.sh",
242
+ "test:docker:doctor-switch": "bash scripts/e2e/doctor-install-switch-docker.sh",
243
+ "test:docker:plugins": "bash scripts/e2e/plugins-docker.sh",
244
+ "test:docker:cleanup": "bash scripts/test-cleanup-docker.sh",
245
+ "test:docker:all": "pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup",
246
+ "test:all": "pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all",
247
+ "test:install:e2e": "bash scripts/test-install-sh-e2e-docker.sh",
248
+ "test:install:smoke": "bash scripts/test-install-sh-docker.sh",
249
+ "test:install:e2e:openai": "TASKMASTER_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh",
250
+ "test:install:e2e:anthropic": "TASKMASTER_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh",
251
+ "protocol:gen": "node --import tsx scripts/protocol-gen.ts",
252
+ "protocol:check": "pnpm protocol:gen && git diff --exit-code -- dist/protocol.schema.json",
253
+ "canvas:a2ui:bundle": "bash scripts/bundle-a2ui.sh",
254
+ "check:loc": "node --import tsx scripts/check-ts-max-loc.ts --max 500"
265
255
  }
266
- }
256
+ }
File without changes
@@ -122,7 +122,7 @@ WhatsApp is only needed if you want your assistant to handle customer messages o
122
122
  3. Scan the QR code on screen
123
123
  4. Wait for all status lights to turn green
124
124
 
125
- > **Important:** If you see "Taskmaster" already in your Linked Devices, remove it first before scanning.
125
+ > **Important:** If you see "macOS" or "Taskmaster" already in your Linked Devices for Taskmaster's connection, remove it first before scanning. (Taskmaster appears as "macOS" in the Linked Devices list.)
126
126
 
127
127
  > **Private use only?** If you want to use WhatsApp to chat with your assistant yourself but don't want customers to receive automated replies, make sure the **Public facing** toggle on the Setup page is turned off. This keeps WhatsApp connected for your own admin chat while the public assistant stays silent. See "Public-Facing Messages" below for details.
128
128
 
@@ -845,7 +845,7 @@ On a Raspberry Pi, you can also just unplug the device, wait 10 seconds, and plu
845
845
  1. Select the **affected account** from the account dropdown at the top
846
846
  2. Tap **"Reset WhatsApp"** (red button) for that account
847
847
  3. **On your phone:** WhatsApp → Settings → Linked Devices
848
- 4. **Remove** "Taskmaster" from the list for that number (if present)
848
+ 4. **Remove** "macOS" (Taskmaster's connection) from the list for that number (if present)
849
849
  5. **Scan** the new QR code
850
850
 
851
851
  ### WhatsApp linking keeps failing?
@@ -855,7 +855,7 @@ The old connection data may be corrupted. To start fresh:
855
855
  1. Go to **http://taskmaster.local:18789/setup**
856
856
  2. Tap **"Reset WhatsApp"** (red button)
857
857
  3. **On your phone:** WhatsApp → Settings → Linked Devices
858
- 4. **Remove** "Taskmaster" from the list if present
858
+ 4. **Remove** "macOS" (Taskmaster's connection) from the list if present
859
859
  5. **Scan** the new QR code
860
860
 
861
861
  ### WhatsApp shows "linked" on phone but status is red?
@@ -863,7 +863,7 @@ The old connection data may be corrupted. To start fresh:
863
863
  The phone and Taskmaster are out of sync. To fix:
864
864
 
865
865
  1. **On your phone:** WhatsApp → Settings → Linked Devices
866
- 2. **Remove** "Taskmaster" from the list
866
+ 2. **Remove** "macOS" (Taskmaster's connection) from the list
867
867
  3. On the setup page, tap the circular arrow next to WhatsApp
868
868
  4. **Scan** the new QR code
869
869
 
Binary file
Binary file
@@ -0,0 +1 @@
1
+ .DS_Store