@kendoo.agentdesk/agentdesk 0.29.0 → 0.29.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.
- package/CHANGELOG.md +9 -0
- package/cli/daemon.mjs +1 -1
- package/cli/engine/session.mjs +1 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,15 @@ All user-facing changes to AgentDesk. Each entry is tagged:
|
|
|
8
8
|
|
|
9
9
|
Internal refactors, infrastructure changes, and architectural notes are not listed here.
|
|
10
10
|
|
|
11
|
+
## [0.29.1] — 2026-09-20
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
- `[Both]` Session token totals now update after each completed phase and survive cancellation, reconnects, and server restarts instead of displaying zero.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- `[UI]` The session feed now stays put while you're reading history: auto-scroll only follows new messages when you're already at the bottom. A "New messages" button appears otherwise, and jumps you down on click. Scroll position is preserved across session switches.
|
|
18
|
+
- `[UI]` The compact team bar's avatar hover now shows each agent's role, not just their name.
|
|
19
|
+
|
|
11
20
|
## [0.29.0] — 2026-09-20
|
|
12
21
|
|
|
13
22
|
### Fixed
|
package/cli/daemon.mjs
CHANGED
|
@@ -557,7 +557,7 @@ async function confirmIncomingSession({ project, taskId, prompt, signal }) {
|
|
|
557
557
|
return (event) => {
|
|
558
558
|
// Confirmed accomplishments may arrive during cancellation teardown.
|
|
559
559
|
// They do not revive the session or emit a second terminal event.
|
|
560
|
-
if (["session:outcome", "session:workspace"].includes(event.type)) { sendBuffered(sessionId, event); return; }
|
|
560
|
+
if (["session:outcome", "session:workspace", "session:usage"].includes(event.type)) { sendBuffered(sessionId, event); return; }
|
|
561
561
|
if (activeSessions.get(sessionId) !== activeSession) return;
|
|
562
562
|
// A cancelled session already sent its terminal event; the
|
|
563
563
|
// orchestrator's own unwind must not send a second one.
|
package/cli/engine/session.mjs
CHANGED
|
@@ -305,6 +305,7 @@ async function executeSession({
|
|
|
305
305
|
totals.inputTokens += summary.inputTokens;
|
|
306
306
|
totals.outputTokens += summary.outputTokens;
|
|
307
307
|
totals.costUsd += summary.costUsd;
|
|
308
|
+
emit({ type: "session:usage", inputTokens: totals.inputTokens, outputTokens: totals.outputTokens });
|
|
308
309
|
|
|
309
310
|
if (abortController.signal.aborted) { aborted = true; break; }
|
|
310
311
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kendoo.agentdesk/agentdesk",
|
|
3
|
-
"version": "0.29.
|
|
3
|
+
"version": "0.29.1",
|
|
4
4
|
"description": "AI team orchestrator for Claude Code — run collaborative agent sessions from your terminal",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"server": "node server/index.mjs",
|
|
23
23
|
"build": "vite build",
|
|
24
24
|
"preview": "vite preview",
|
|
25
|
-
"test": "node --test tests/server.test.mjs tests/agents.test.mjs tests/homepage.test.mjs tests/sessionUtils.test.mjs tests/tracker-url.test.mjs tests/session-preflight.test.mjs tests/access.test.mjs tests/project-ownership.test.mjs tests/random-hex.test.mjs tests/projects-registry.test.mjs tests/phase-loop.test.mjs tests/proc.test.mjs tests/crypto.test.mjs tests/dotenv.test.mjs tests/update-check.test.mjs tests/setup-helpers.test.mjs tests/project-key.test.mjs tests/tracker-project.test.mjs tests/tracker-check.test.mjs tests/config.test.mjs tests/engine-env.test.mjs tests/engine-events.test.mjs tests/engine-verdict.test.mjs tests/engine-hooks.test.mjs tests/engine-agents.test.mjs tests/session-isolation.test.mjs tests/engine-session.test.mjs tests/engine-prompts.test.mjs tests/engine-schemas.test.mjs tests/engine-claude-auth.test.mjs tests/worktrees.test.mjs tests/workspaces-api.test.mjs tests/engine-outcome.test.mjs tests/session-outcomes.test.mjs tests/outcome-hydration.test.mjs tests/mobile-outcomes.test.mjs tests/session-queue.test.mjs tests/useFollowScroll.test.mjs",
|
|
25
|
+
"test": "node --test tests/server.test.mjs tests/agents.test.mjs tests/homepage.test.mjs tests/sessionUtils.test.mjs tests/tracker-url.test.mjs tests/session-preflight.test.mjs tests/access.test.mjs tests/project-ownership.test.mjs tests/random-hex.test.mjs tests/projects-registry.test.mjs tests/phase-loop.test.mjs tests/proc.test.mjs tests/crypto.test.mjs tests/dotenv.test.mjs tests/update-check.test.mjs tests/setup-helpers.test.mjs tests/project-key.test.mjs tests/tracker-project.test.mjs tests/tracker-check.test.mjs tests/config.test.mjs tests/engine-env.test.mjs tests/engine-events.test.mjs tests/engine-verdict.test.mjs tests/engine-hooks.test.mjs tests/engine-agents.test.mjs tests/session-isolation.test.mjs tests/engine-session.test.mjs tests/engine-prompts.test.mjs tests/engine-schemas.test.mjs tests/engine-claude-auth.test.mjs tests/worktrees.test.mjs tests/workspaces-api.test.mjs tests/engine-outcome.test.mjs tests/session-outcomes.test.mjs tests/outcome-hydration.test.mjs tests/mobile-outcomes.test.mjs tests/session-queue.test.mjs tests/useFollowScroll.test.mjs tests/session-usage.test.mjs",
|
|
26
26
|
"test:coverage": "node --test --experimental-test-coverage --test-coverage-include='cli/**' --test-coverage-include='server/**' --test-coverage-lines=60 --test-coverage-branches=62 tests/*.test.mjs",
|
|
27
27
|
"lint": "eslint .",
|
|
28
28
|
"lint:fix": "eslint . --fix",
|