taskchef 9.0.0 → 9.0.1

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taskchef",
3
- "version": "9.0.0",
3
+ "version": "9.0.1",
4
4
  "description": "Native Codex dashboard with lightweight project delegation.",
5
5
  "author": {
6
6
  "name": "Favo Yang",
package/README.md CHANGED
@@ -39,8 +39,12 @@ npm run check:mcp-app
39
39
  npm run build:mcp-app
40
40
  ```
41
41
 
42
- Keep the release plugin named **TaskChef** and the separately packaged
43
- `taskchef-next` plugin named **TaskChef Dev**. See
42
+ Develop on a topic branch and update **TaskChef Dev** first. Keep **TaskChef**
43
+ on the published release. After validation, independent review, merge, and a
44
+ successful release workflow, update TaskChef from the released package when
45
+ the merge publishes a release. Otherwise keep its existing published version.
46
+ The Dev copy uses the separate `taskchef-next` plugin ID and **TaskChef Dev**
47
+ name; apply that identity only to its local staging package. See
44
48
  [development packaging](docs/mcp-app.md#development-plugin-identity).
45
49
 
46
50
  [Native app guide](docs/mcp-app.md) · [GitHub setup](docs/taskchef-next-github.md)
package/docs/mcp-app.md CHANGED
@@ -181,8 +181,25 @@ visibly and is preserved for repair.
181
181
  ## Development plugin identity
182
182
 
183
183
  Keep the released **TaskChef** plugin and a separate **TaskChef Dev** plugin.
184
- The development copy must already use the plugin ID `taskchef-next`.
185
- Before installing it through a local marketplace, run:
184
+ Use this order for every development change:
185
+
186
+ 1. Work in a topic branch/worktree. Build and validate the current source.
187
+ 2. Copy the current runtime, built UI, skill, and production dependencies into
188
+ a separate local staging package. Update **TaskChef Dev** from that package
189
+ and test it before merging. Never copy development changes into TaskChef's
190
+ released installation.
191
+ 3. Pass independent review and the pull request checks, then merge when authorized.
192
+ 4. If the merge publishes a release, wait for the complete release workflow,
193
+ including its marketplace update. Update **TaskChef** from the published
194
+ package and verify its version. If no release is published, leave TaskChef
195
+ on its existing published version.
196
+
197
+ For a full Dev update, give the staging package a unique development version
198
+ in both `package.json` and `.codex-plugin/plugin.json` (and package-lock metadata
199
+ if present), such as `9.0.0-dev.1`. Set only the staging manifest's plugin name
200
+ to `taskchef-next`; keep the source release manifest named `taskchef`.
201
+ Before installing the staging package through the local development marketplace,
202
+ run:
186
203
 
187
204
  ```sh
188
205
  node scripts/prepare-mcp-app-preview.js /path/to/staging/plugin
@@ -209,7 +226,7 @@ From the source checkout, run:
209
226
  npm run update:mcp-app-preview -- /path/to/the/running/taskchef-next/version
210
227
  ```
211
228
 
212
- The helper builds the UI, checks the target is TaskChef, and replaces only
229
+ The helper builds the UI, checks the development plugin ID is `taskchef-next`, and replaces only
213
230
  `src/mcp-app/dist/index.html` atomically. It preserves the plugin version, server
214
231
  code, dependencies, and local data. It refuses missing or redirected HTML paths.
215
232
  Then right-click **TaskChef Dev** in the Codex sidebar and choose **Refresh**.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taskchef",
3
- "version": "9.0.0",
3
+ "version": "9.0.1",
4
4
  "description": "A native Codex dashboard for chats, usage, pull requests, and schedules.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Favo Yang",
@@ -3,6 +3,17 @@ import { normalizeUri } from "micromark-util-sanitize-uri";
3
3
  // Convert Codex's supplied prompt context to readable Markdown. Unknown or
4
4
  // malformed context stays visible; this does not change the recorded input.
5
5
  export function displayUserPrompt(text) {
6
+ const questionReply = /^\s*<send_user_message_question_reply>([\s\S]*)<\/send_user_message_question_reply>\s*$/.exec(text);
7
+ if (questionReply) {
8
+ try {
9
+ const value = JSON.parse(questionReply[1]);
10
+ const replies = Array.isArray(value) ? value : [value];
11
+ if (replies.length && replies.every(reply => reply && typeof reply.question === "string" && typeof reply.answer === "string")) {
12
+ return replies.map(reply => `${reply.question.split('\n').map(line => `> ${line}`).join('\n')}\n\n${reply.answer}`).join('\n\n');
13
+ }
14
+ } catch { /* Preserve unrecognized input rather than losing the user's prompt. */ }
15
+ return text;
16
+ }
6
17
  const requestHeading = /^##? My request:[ \t]*(?:\r?\n|$)/m.exec(text);
7
18
  if (!requestHeading || !/^(?:[ \t]*\r?\n)*(?:# Response annotations:|# Files mentioned by the user:|<in-app-browser-context source="ambient-ui-state">)\r?\n/.test(text)) return text;
8
19
  const context = text.slice(0, requestHeading.index);