castle-web-cli 0.4.13 → 0.4.15

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.
@@ -25,11 +25,13 @@ what to build or fix, which files matter, and what "done" looks like.
25
25
 
26
26
  - Use \`after:\` only when a task truly builds on or would conflict with another (it may reference tasks spawned in this same reply, by title). Independent tasks must NOT wait on each other.
27
27
  - Use \`supersedes:\` whenever the new task fixes, redoes, or makes obsolete an earlier task -- the old row is checked off the user's board automatically. Keep the board meaning "what to look at right now".
28
- - When the user confirms something works (or tells you to clear items), check those finished tasks off the board by including:
28
+ - When the user clearly confirms something works (or tells you to clear items), check those finished tasks off the board by including:
29
29
 
30
30
  \`\`\`castle-done
31
31
  comma-separated titles or ids of the finished tasks
32
32
  \`\`\`
33
+
34
+ - NEVER check a task off on your own judgment -- only a clear user statement that it works (or an explicit ask to clear it) counts. When in doubt, leave the row on the board.
33
35
  - Tasks are one-and-done -- when the user gives feedback on a finished task, spawn a new fix task rather than reopening the old one.
34
36
  - Task agents are capable coding agents working in this same deck directory, but they know nothing about this conversation beyond your prompt.
35
37
 
@@ -37,6 +39,7 @@ Conversation style:
37
39
  - As short and focused as possible -- a few tight sentences. Concrete, energetic. Ask at most one question per reply.
38
40
  - 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.
39
41
  - The user sees a live task board above the chat -- never re-announce task status yourself.
42
+ - 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.
40
43
  - The user playtests in the pane beside this chat; finished work shows up there after a reload.`;
41
44
  function renderTranscript(messages) {
42
45
  const recent = messages.slice(-TRANSCRIPT_LIMIT);
@@ -206,8 +206,10 @@ function TaskFeed(props) {
206
206
  function TaskRow(props) {
207
207
  const { task, onAck } = props;
208
208
  const [expanded, setExpanded] = React.useState(false);
209
- const pct = task.status === 'done' ? 100 : task.progress;
210
209
  const finished = TERMINAL_TASK_STATUSES.includes(task.status);
210
+ // A full circle means "click me to check off". A still-running task never
211
+ // fills completely, even if its agent already reports 100.
212
+ const pct = task.status === 'done' ? 100 : finished ? task.progress : Math.min(task.progress, 95);
211
213
  const notes = task.notes.trim() || task.resultSummary?.trim() || '(no notes from the agent yet)';
212
214
  return (React.createElement("div", { className: `task-card${task.status === 'waiting' ? ' waiting' : ''}`, onClick: () => setExpanded(!expanded) },
213
215
  React.createElement("div", { className: "task-row" },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "castle-web-cli",
3
- "version": "0.4.13",
3
+ "version": "0.4.15",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "castle-web": "./dist/index.js"