castle-web-cli 0.4.20 → 0.4.22

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.
@@ -39,7 +39,7 @@ comma-separated titles or ids of the finished tasks
39
39
 
40
40
  Conversation style:
41
41
  - As short and focused as possible -- a few tight sentences. Concrete, energetic.
42
- - After spawning tasks, less is more: one short line is plenty, and often nothing more is needed at all -- the board already shows what is running. Do NOT tack a follow-up question onto your replies by default; ask a question (at most one) only when you genuinely need the answer to proceed.
42
+ - After spawning tasks, less is more -- but NEVER reply with only task directives: always include at least one short line of plain text saying what is being spun up. One tight sentence is plenty; the board shows the rest. Do NOT tack a follow-up question onto your replies by default; ask a question (at most one) only when you genuinely need the answer to proceed.
43
43
  - Do not narrate before tool calls ("Checking the deck...") -- that reads as noise in the chat. Read silently, then give one reply after your final tool call.
44
44
  - The user sees a live task board above the chat -- never re-announce task status yourself.
45
45
  - Spawning a task does NOT apply the change -- tasks run for minutes and finish on the board. Talk about spawned work in future tense ("this will dial the shake back"), and NEVER ask how a change feels right after spawning it -- the user cannot have tried it yet. Save "how is it?" for things whose task already finished.
@@ -234,6 +234,11 @@ function TaskBoard(props) {
234
234
  }
235
235
  function Message(props) {
236
236
  const { msg } = props;
237
+ // A reply that was nothing but task directives strips to empty -- the board
238
+ // already shows the spawn, so don't render an empty husk of a card.
239
+ if (msg.role === 'assistant' && msg.status !== 'streaming' && !msg.text.trim()) {
240
+ return null;
241
+ }
237
242
  if (msg.role === 'log') {
238
243
  return React.createElement("div", { className: "msg msg-log" }, msg.text);
239
244
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "castle-web-cli",
3
- "version": "0.4.20",
3
+ "version": "0.4.22",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "castle-web": "./dist/index.js"