@kendoo.agentdesk/agentdesk 0.8.1 → 0.8.2

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.
@@ -10,7 +10,12 @@ const PHASE_INSTRUCTIONS = {
10
10
  3. Check for existing PRs: \`gh pr list --search <task-id> --json number,title,state\`
11
11
  4. Explore the codebase briefly to understand what we're working with.
12
12
  5. Summarize: what needs to be done, what already exists, and what the starting point is.
13
- 6. Recommend which phase to start from (BRAINSTORM for new work, EXECUTION if branch exists).`,
13
+ 6. Recommend which phase to start from (BRAINSTORM for new work, EXECUTION if branch exists).
14
+
15
+ IMPORTANT: At the end of your intake summary, you MUST provide a short title for this session on its own line in this exact format:
16
+ SESSION_TITLE: <4-8 word title>
17
+ Example: SESSION_TITLE: Fix checkout total calculation
18
+ This title will be displayed in the dashboard navbar, so keep it short and descriptive.`,
14
19
  },
15
20
 
16
21
  brainstorm: {
@@ -146,6 +146,13 @@ export async function runOrchestrator({
146
146
  const intakeResult = await spawnAgent("Jane", jane, "intake");
147
147
  state.phaseSummaries.intake = summarizeResults([intakeResult]);
148
148
 
149
+ // Extract short title from Jane's intake (SESSION_TITLE: ...)
150
+ const titleMatch = intakeResult.rawOutput.match(/SESSION_TITLE:\s*(.+)/);
151
+ if (titleMatch) {
152
+ const shortTitle = titleMatch[1].trim().slice(0, 60);
153
+ emit({ type: "session:update", title: shortTitle });
154
+ }
155
+
149
156
  // ===========================
150
157
  // PHASE 2: BRAINSTORM (parallel, 3-5 rounds)
151
158
  // ===========================
@@ -84,6 +84,12 @@ export function createStreamParser({ teamNames, callbacks }) {
84
84
  callbacks.onSessionUpdate?.({ taskId: taskIdMatch[1] });
85
85
  }
86
86
 
87
+ // Detect short title from Jane
88
+ const titleMatch = text.match(/SESSION_TITLE:\s*(.+)/);
89
+ if (titleMatch) {
90
+ callbacks.onSessionUpdate?.({ title: titleMatch[1].trim().slice(0, 60) });
91
+ }
92
+
87
93
  const textLines = text.split("\n");
88
94
  let i = 0;
89
95
  while (i < textLines.length) {
package/cli/team.mjs CHANGED
@@ -239,8 +239,11 @@ export async function runTeam(taskId, opts = {}) {
239
239
  console.log(` ${success ? "✓" : "✗"} ${summary}`);
240
240
  vizSend({ type: "tool:result", success, summary });
241
241
  },
242
- onSessionUpdate({ taskId: newTaskId }) {
243
- if (createTask) {
242
+ onSessionUpdate({ taskId: newTaskId, title: newTitle }) {
243
+ if (newTitle) {
244
+ vizSend({ type: "session:update", title: newTitle });
245
+ }
246
+ if (newTaskId && createTask) {
244
247
  taskId = newTaskId;
245
248
  if (tracker === "linear" && config.linear?.workspace) {
246
249
  taskLink = `https://linear.app/${config.linear.workspace}/issue/${newTaskId}`;
@@ -251,7 +254,7 @@ export async function runTeam(taskId, opts = {}) {
251
254
  if (repo) taskLink = `https://github.com/${repo}/issues/${newTaskId}`;
252
255
  }
253
256
  console.log(`\n # Task: ${newTaskId}${taskLink ? ` (${taskLink})` : ""}\n`);
254
- vizSend({ type: "session:update", taskId: newTaskId, taskLink, title: description || newTaskId });
257
+ vizSend({ type: "session:update", taskId: newTaskId, taskLink, title: newTitle || description || newTaskId });
255
258
  }
256
259
  },
257
260
  onSessionEnd({ duration, steps, inputTokens, outputTokens }) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kendoo.agentdesk/agentdesk",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "description": "AI team orchestrator for Claude Code — run collaborative agent sessions from your terminal",
5
5
  "type": "module",
6
6
  "bin": {
package/prompts/team.md CHANGED
@@ -359,6 +359,11 @@ Based on what you find, Jane determines the starting point:
359
359
  - Branch exists but no PR: Review what's implemented, continue from EXECUTION.
360
360
  - PR exists: Review the PR status, continue accordingly.
361
361
 
362
+ IMPORTANT: At the end of the intake, Jane MUST provide a short title for this session on its own line in this exact format:
363
+ SESSION_TITLE: <4-8 word title>
364
+ Example: SESSION_TITLE: Fix checkout total calculation
365
+ This title is displayed in the dashboard navbar, so keep it short and descriptive.
366
+
362
367
  ---
363
368
 
364
369
  ## BRAINSTORM (3-5 rounds)