crewly 1.20.154 → 1.20.155
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/config/skills/team-leader/delegate-task/execute.sh +17 -4
- package/dist/backend/backend/src/constants.d.ts +38 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +38 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts +32 -0
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +122 -8
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +13 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +15 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +36 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts +153 -1
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js +371 -22
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js +6 -0
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +2 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +47 -0
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +118 -3
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.d.ts +5 -0
- package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +38 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +38 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +15 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +36 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts +409 -0
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js +961 -0
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -0
- package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js +6 -0
- package/dist/cli/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +2 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/types/event-bus.types.d.ts +5 -0
- package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/event-bus.types.js.map +1 -1
- package/package.json +1 -1
|
@@ -26,6 +26,15 @@
|
|
|
26
26
|
* idle and nobody else just wrote to it; any failure falls back to plain
|
|
27
27
|
* delivery — nothing here throws into dispatch.
|
|
28
28
|
*
|
|
29
|
+
* Idle-boundary context cap: one task can run for 1000+ turns, so a new root
|
|
30
|
+
* alone does not bound the context. A periodic sweep
|
|
31
|
+
* ({@link FreshTaskConversationService.startContextCapSweep}) saves and
|
|
32
|
+
* clears an idle Claude Code member whose last turn carried more than
|
|
33
|
+
* `CREWLY_MEMBER_CONTEXT_CAP_TOKENS` (300k by default, `0` disables), then
|
|
34
|
+
* writes one line naming its active WorkItem and the handover. Same safety
|
|
35
|
+
* rules — never the orchestrator, never mid-turn, never while a message is
|
|
36
|
+
* queued for or being delivered to it — plus at most one cap per 20 minutes.
|
|
37
|
+
*
|
|
29
38
|
* @module services/agent/fresh-task-conversation.service
|
|
30
39
|
*/
|
|
31
40
|
import * as fs from 'fs';
|
|
@@ -37,6 +46,7 @@ import { buildHandoverSummary, claudeTranscriptPath, lastTurnContextTokens } fro
|
|
|
37
46
|
import { getSessionStatePersistence } from '../session/session-state-persistence.js';
|
|
38
47
|
import { getSessionBackendSync } from '../session/session-backend.factory.js';
|
|
39
48
|
import { PtyActivityTrackerService } from './pty-activity-tracker.service.js';
|
|
49
|
+
import { SubAgentMessageQueue } from '../messaging/sub-agent-message-queue.service.js';
|
|
40
50
|
import { STANDING_ANSWERS_CONSTANTS } from '../../constants.js';
|
|
41
51
|
// ---------------------------------------------------------------------------
|
|
42
52
|
// Pure helpers
|
|
@@ -113,6 +123,71 @@ export function decideFreshConversation(input) {
|
|
|
113
123
|
export function freshConversationNote(handoverPath) {
|
|
114
124
|
return `Fresh conversation for this task — your earlier work is in ${handoverPath} and your wiki; read them only if this task needs it.`;
|
|
115
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* The context cap for members, from the environment.
|
|
128
|
+
*
|
|
129
|
+
* @param env - Environment (tests)
|
|
130
|
+
* @returns Tokens; 0 means the cap is off. Unset or invalid → the default.
|
|
131
|
+
*/
|
|
132
|
+
export function memberContextCapTokens(env = process.env) {
|
|
133
|
+
const raw = env[FRESH_TASK_CONVERSATION_CONSTANTS.MEMBER_CONTEXT_CAP_ENV];
|
|
134
|
+
if (raw === undefined || raw.trim() === '')
|
|
135
|
+
return FRESH_TASK_CONVERSATION_CONSTANTS.MEMBER_CONTEXT_CAP_TOKENS;
|
|
136
|
+
const n = Number(raw);
|
|
137
|
+
if (!Number.isFinite(n) || n < 0)
|
|
138
|
+
return FRESH_TASK_CONVERSATION_CONSTANTS.MEMBER_CONTEXT_CAP_TOKENS;
|
|
139
|
+
return Math.floor(n);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Decide whether to cap (save + clear + re-orient) a member's conversation.
|
|
143
|
+
* Pure; the order of checks is also the order of the logged reasons.
|
|
144
|
+
*
|
|
145
|
+
* @param input - Decision inputs
|
|
146
|
+
* @returns The decision
|
|
147
|
+
*/
|
|
148
|
+
export function decideContextCap(input) {
|
|
149
|
+
if (input.sessionName === ORCHESTRATOR_SESSION_NAME)
|
|
150
|
+
return { clear: false, reason: 'orchestrator' };
|
|
151
|
+
if (input.runtimeType !== RUNTIME_TYPES.CLAUDE_CODE)
|
|
152
|
+
return { clear: false, reason: 'not claude-code' };
|
|
153
|
+
if (input.capTokens <= 0)
|
|
154
|
+
return { clear: false, reason: 'cap off' };
|
|
155
|
+
if (!input.enabled)
|
|
156
|
+
return { clear: false, reason: 'disabled' };
|
|
157
|
+
if (input.contextTokens === null || input.contextTokens <= input.capTokens)
|
|
158
|
+
return { clear: false, reason: 'under cap' };
|
|
159
|
+
if (input.lastCapAt !== null &&
|
|
160
|
+
input.now - input.lastCapAt < FRESH_TASK_CONVERSATION_CONSTANTS.CONTEXT_CAP_MIN_INTERVAL_MS) {
|
|
161
|
+
return { clear: false, reason: 'rate limited' };
|
|
162
|
+
}
|
|
163
|
+
if (input.busy)
|
|
164
|
+
return { clear: false, reason: 'busy' };
|
|
165
|
+
if (input.quietMs === null || input.quietMs < FRESH_TASK_CONVERSATION_CONSTANTS.CONTEXT_CAP_MIN_QUIET_MS) {
|
|
166
|
+
return { clear: false, reason: 'not quiet long enough' };
|
|
167
|
+
}
|
|
168
|
+
if (input.deliveryActive)
|
|
169
|
+
return { clear: false, reason: 'delivery in progress' };
|
|
170
|
+
if (input.queuedMessages)
|
|
171
|
+
return { clear: false, reason: 'messages queued' };
|
|
172
|
+
// The new conversation is found by the WorkItem id in the re-orientation
|
|
173
|
+
// line; with no WorkItem there is nothing safe to track it by, and the
|
|
174
|
+
// next task's own prepare will start a fresh conversation anyway.
|
|
175
|
+
if (!input.activeWorkItemId)
|
|
176
|
+
return { clear: false, reason: 'no active work item' };
|
|
177
|
+
return { clear: true, reason: 'context over cap' };
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* The one line written after a context-cap clear. It must carry the WorkItem
|
|
181
|
+
* id: the new conversation id is found by it.
|
|
182
|
+
*
|
|
183
|
+
* @param args - WorkItem, handover file and the old context size
|
|
184
|
+
* @returns One line
|
|
185
|
+
*/
|
|
186
|
+
export function contextCapReorientation(args) {
|
|
187
|
+
const title = args.workItem.title.length > 80 ? `${args.workItem.title.slice(0, 77)}...` : args.workItem.title;
|
|
188
|
+
return (`${FRESH_TASK_CONVERSATION_CONSTANTS.CONTEXT_CAP_TAG} Your conversation reached ${args.contextTokens.toLocaleString('en-US')} tokens, so it was saved and restarted. ` +
|
|
189
|
+
`You are on WorkItem ${args.workItem.id} ("${title}"). Your handover is in ${args.handoverPath} (also in your wiki) — read it, then continue that WorkItem where you left off.`);
|
|
190
|
+
}
|
|
116
191
|
/** Statuses that mean the agent is actively on a work item. */
|
|
117
192
|
const ACTIVE_STATUSES = new Set(['running', 'accepted', 'proposed']);
|
|
118
193
|
/**
|
|
@@ -195,10 +270,35 @@ function defaultDeps() {
|
|
|
195
270
|
now: () => Date.now(),
|
|
196
271
|
sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)),
|
|
197
272
|
env: process.env,
|
|
273
|
+
listSessions: () => getPersistence()?.getRegisteredSessions() ?? [],
|
|
274
|
+
hasQueuedMessages: (sessionName) => {
|
|
275
|
+
try {
|
|
276
|
+
return SubAgentMessageQueue.getInstance().hasPending(sessionName);
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
return true;
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
getQuietMs: (sessionName) => {
|
|
283
|
+
const tracker = PtyActivityTrackerService.getInstance();
|
|
284
|
+
return tracker.hasActivity(sessionName) ? tracker.getIdleTimeMs(sessionName) : null;
|
|
285
|
+
},
|
|
286
|
+
sendMessage: async (sessionName, text) => {
|
|
287
|
+
const session = getSessionBackendSync()?.getSession(sessionName);
|
|
288
|
+
if (!session)
|
|
289
|
+
return false;
|
|
290
|
+
// Same two-step write as the terminal controller's message mode:
|
|
291
|
+
// pasted text first, Enter separately so paste mode cannot swallow it.
|
|
292
|
+
session.write(`\x1b[200~${text}\x1b[201~`);
|
|
293
|
+
await new Promise((resolve) => setTimeout(resolve, Math.min(1000 + Math.ceil(text.length / 10), 5000)));
|
|
294
|
+
session.write('\r');
|
|
295
|
+
return true;
|
|
296
|
+
},
|
|
198
297
|
};
|
|
199
298
|
}
|
|
200
299
|
/**
|
|
201
|
-
* Singleton that starts a fresh Claude Code conversation per new task
|
|
300
|
+
* Singleton that starts a fresh Claude Code conversation per new task, and
|
|
301
|
+
* caps a long task's conversation at idle boundaries.
|
|
202
302
|
*/
|
|
203
303
|
export class FreshTaskConversationService {
|
|
204
304
|
static instance = null;
|
|
@@ -209,6 +309,14 @@ export class FreshTaskConversationService {
|
|
|
209
309
|
inFlight = new Map();
|
|
210
310
|
/** Last time a message was written to a session (terminal write / deliver) */
|
|
211
311
|
lastDelivery = new Map();
|
|
312
|
+
/** Deliveries currently being written to a session (see {@link beginDelivery}) */
|
|
313
|
+
deliveriesInFlight = new Map();
|
|
314
|
+
/** Last context-cap clear per session (rate limit) */
|
|
315
|
+
lastCapAt = new Map();
|
|
316
|
+
/** Context-cap sweep timer */
|
|
317
|
+
capSweepTimer = null;
|
|
318
|
+
/** A sweep is running (sweeps never overlap) */
|
|
319
|
+
capSweepRunning = false;
|
|
212
320
|
constructor(deps) {
|
|
213
321
|
this.logger = LoggerService.getInstance().createComponentLogger('FreshTaskConversation');
|
|
214
322
|
this.deps = { ...defaultDeps(), ...(deps ?? {}) };
|
|
@@ -234,8 +342,41 @@ export class FreshTaskConversationService {
|
|
|
234
342
|
}
|
|
235
343
|
/** Drop the singleton (tests). */
|
|
236
344
|
static resetInstance() {
|
|
345
|
+
FreshTaskConversationService.instance?.stopContextCapSweep();
|
|
237
346
|
FreshTaskConversationService.instance = null;
|
|
238
347
|
}
|
|
348
|
+
/**
|
|
349
|
+
* Mark a delivery to a session as in progress until the returned function
|
|
350
|
+
* is called. Neither a new-task clear nor a context-cap clear starts while
|
|
351
|
+
* one is running: it would wipe the message before the agent reads it.
|
|
352
|
+
*
|
|
353
|
+
* @param sessionName - Session being written to
|
|
354
|
+
* @returns Call when the delivery has finished (idempotent)
|
|
355
|
+
*/
|
|
356
|
+
beginDelivery(sessionName) {
|
|
357
|
+
this.deliveriesInFlight.set(sessionName, (this.deliveriesInFlight.get(sessionName) ?? 0) + 1);
|
|
358
|
+
let done = false;
|
|
359
|
+
return () => {
|
|
360
|
+
if (done)
|
|
361
|
+
return;
|
|
362
|
+
done = true;
|
|
363
|
+
const left = (this.deliveriesInFlight.get(sessionName) ?? 1) - 1;
|
|
364
|
+
if (left > 0)
|
|
365
|
+
this.deliveriesInFlight.set(sessionName, left);
|
|
366
|
+
else
|
|
367
|
+
this.deliveriesInFlight.delete(sessionName);
|
|
368
|
+
this.lastDelivery.set(sessionName, this.deps.now());
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Whether a delivery is being written to the session right now.
|
|
373
|
+
*
|
|
374
|
+
* @param sessionName - Session
|
|
375
|
+
* @returns True while a {@link beginDelivery} is open
|
|
376
|
+
*/
|
|
377
|
+
isDelivering(sessionName) {
|
|
378
|
+
return (this.deliveriesInFlight.get(sessionName) ?? 0) > 0;
|
|
379
|
+
}
|
|
239
380
|
/**
|
|
240
381
|
* Record that a message is being written to a session. A clear right after
|
|
241
382
|
* would wipe it before the agent reads it, so {@link prepareForTask} skips
|
|
@@ -322,6 +463,193 @@ export class FreshTaskConversationService {
|
|
|
322
463
|
}
|
|
323
464
|
}
|
|
324
465
|
// -------------------------------------------------------------------------
|
|
466
|
+
// Idle-boundary context cap
|
|
467
|
+
// -------------------------------------------------------------------------
|
|
468
|
+
/**
|
|
469
|
+
* Start the periodic context-cap sweep (idempotent). The timer is unref'd
|
|
470
|
+
* so it never keeps the process alive.
|
|
471
|
+
*
|
|
472
|
+
* @param intervalMs - Sweep interval
|
|
473
|
+
*/
|
|
474
|
+
startContextCapSweep(intervalMs = FRESH_TASK_CONVERSATION_CONSTANTS.CONTEXT_CAP_SWEEP_MS) {
|
|
475
|
+
if (this.capSweepTimer)
|
|
476
|
+
return;
|
|
477
|
+
this.capSweepTimer = setInterval(() => {
|
|
478
|
+
void this.runContextCapSweep();
|
|
479
|
+
}, intervalMs);
|
|
480
|
+
this.capSweepTimer.unref?.();
|
|
481
|
+
this.logger.info('Member context-cap sweep started', {
|
|
482
|
+
intervalMs,
|
|
483
|
+
capTokens: memberContextCapTokens(this.deps.env),
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
/** Stop the periodic context-cap sweep. */
|
|
487
|
+
stopContextCapSweep() {
|
|
488
|
+
if (this.capSweepTimer)
|
|
489
|
+
clearInterval(this.capSweepTimer);
|
|
490
|
+
this.capSweepTimer = null;
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* Check every registered session once. Sessions are handled one after
|
|
494
|
+
* another and sweeps never overlap. Never throws.
|
|
495
|
+
*
|
|
496
|
+
* @returns Per-session results (sessions skipped cheaply are omitted)
|
|
497
|
+
*/
|
|
498
|
+
async runContextCapSweep() {
|
|
499
|
+
const results = {};
|
|
500
|
+
if (this.capSweepRunning)
|
|
501
|
+
return results;
|
|
502
|
+
if (memberContextCapTokens(this.deps.env) <= 0)
|
|
503
|
+
return results;
|
|
504
|
+
this.capSweepRunning = true;
|
|
505
|
+
try {
|
|
506
|
+
let sessions = [];
|
|
507
|
+
try {
|
|
508
|
+
sessions = this.deps.listSessions();
|
|
509
|
+
}
|
|
510
|
+
catch {
|
|
511
|
+
sessions = [];
|
|
512
|
+
}
|
|
513
|
+
for (const sessionName of sessions) {
|
|
514
|
+
if (sessionName === ORCHESTRATOR_SESSION_NAME)
|
|
515
|
+
continue;
|
|
516
|
+
results[sessionName] = await this.capContextIfNeeded(sessionName);
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
finally {
|
|
520
|
+
this.capSweepRunning = false;
|
|
521
|
+
}
|
|
522
|
+
return results;
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* If the member is idle between turns and its last turn carried more than
|
|
526
|
+
* the cap, save the conversation (handover file + wiki), `/clear` it and
|
|
527
|
+
* write one line naming its WorkItem and the handover. Runs in the same
|
|
528
|
+
* per-session chain as {@link prepareForTask}, so terminal writes wait for
|
|
529
|
+
* it. Never throws.
|
|
530
|
+
*
|
|
531
|
+
* @param sessionName - Member session
|
|
532
|
+
* @returns What happened
|
|
533
|
+
*/
|
|
534
|
+
async capContextIfNeeded(sessionName) {
|
|
535
|
+
// Never queue behind (or start during) a prepare / another cap.
|
|
536
|
+
if (this.inFlight.has(sessionName))
|
|
537
|
+
return { capped: false, reason: 'clear in progress' };
|
|
538
|
+
const run = (async () => {
|
|
539
|
+
try {
|
|
540
|
+
const cap = await this.doCapContext(sessionName);
|
|
541
|
+
return { cleared: cap.capped, handoverPath: cap.handoverPath, cap };
|
|
542
|
+
}
|
|
543
|
+
catch (err) {
|
|
544
|
+
this.logger.warn('Context-cap check failed (non-fatal)', {
|
|
545
|
+
sessionName,
|
|
546
|
+
error: err instanceof Error ? err.message : String(err),
|
|
547
|
+
});
|
|
548
|
+
return { cleared: false, cap: { capped: false, reason: 'error' } };
|
|
549
|
+
}
|
|
550
|
+
})();
|
|
551
|
+
this.inFlight.set(sessionName, run);
|
|
552
|
+
try {
|
|
553
|
+
return (await run).cap;
|
|
554
|
+
}
|
|
555
|
+
finally {
|
|
556
|
+
if (this.inFlight.get(sessionName) === run)
|
|
557
|
+
this.inFlight.delete(sessionName);
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
async doCapContext(sessionName) {
|
|
561
|
+
const info = this.deps.getSessionInfo(sessionName);
|
|
562
|
+
const capTokens = memberContextCapTokens(this.deps.env);
|
|
563
|
+
const base = {
|
|
564
|
+
sessionName,
|
|
565
|
+
runtimeType: info?.runtimeType,
|
|
566
|
+
capTokens,
|
|
567
|
+
enabled: true,
|
|
568
|
+
contextTokens: Number.MAX_SAFE_INTEGER,
|
|
569
|
+
busy: false,
|
|
570
|
+
quietMs: Number.MAX_SAFE_INTEGER,
|
|
571
|
+
deliveryActive: false,
|
|
572
|
+
queuedMessages: false,
|
|
573
|
+
lastCapAt: null,
|
|
574
|
+
now: this.deps.now(),
|
|
575
|
+
activeWorkItemId: 'pending',
|
|
576
|
+
};
|
|
577
|
+
// Cheap checks first (orchestrator, runtime, cap off).
|
|
578
|
+
let decision = decideContextCap(base);
|
|
579
|
+
if (!decision.clear)
|
|
580
|
+
return { capped: false, reason: decision.reason };
|
|
581
|
+
if (!info?.cwd || !info.sessionId)
|
|
582
|
+
return { capped: false, reason: 'conversation id unknown' };
|
|
583
|
+
const transcript = claudeTranscriptPath({ sessionId: info.sessionId, cwd: info.cwd, claudeHome: this.deps.claudeHome });
|
|
584
|
+
const contextTokens = fs.existsSync(transcript) ? lastTurnContextTokens(transcript) : null;
|
|
585
|
+
const last = this.lastDelivery.get(sessionName);
|
|
586
|
+
const lastCapAt = this.lastCapAt.get(sessionName) ?? null;
|
|
587
|
+
decision = decideContextCap({ ...base, contextTokens, lastCapAt, now: this.deps.now() });
|
|
588
|
+
if (!decision.clear)
|
|
589
|
+
return { capped: false, reason: decision.reason };
|
|
590
|
+
const enabled = freshTaskConversationEnvEnabled(this.deps.env) && (await this.deps.settingEnabled());
|
|
591
|
+
const busy = enabled ? await this.deps.isBusy(sessionName).catch(() => true) : false;
|
|
592
|
+
const active = enabled && !busy ? await this.deps.getActiveItems(sessionName).catch(() => null) : [];
|
|
593
|
+
const current = this.pickCurrentItem(active ?? []);
|
|
594
|
+
decision = decideContextCap({
|
|
595
|
+
...base,
|
|
596
|
+
contextTokens,
|
|
597
|
+
lastCapAt,
|
|
598
|
+
now: this.deps.now(),
|
|
599
|
+
enabled,
|
|
600
|
+
busy: busy || active === null,
|
|
601
|
+
quietMs: this.deps.getQuietMs(sessionName),
|
|
602
|
+
deliveryActive: this.isDelivering(sessionName) ||
|
|
603
|
+
(last !== undefined && this.deps.now() - last < FRESH_TASK_CONVERSATION_CONSTANTS.RECENT_DELIVERY_MS),
|
|
604
|
+
queuedMessages: this.deps.hasQueuedMessages(sessionName),
|
|
605
|
+
activeWorkItemId: current?.id ?? null,
|
|
606
|
+
});
|
|
607
|
+
if (!decision.clear || !current)
|
|
608
|
+
return { capped: false, reason: decision.reason };
|
|
609
|
+
// Last look right before the clear: anything written since the checks
|
|
610
|
+
// above means the agent is (about to be) working.
|
|
611
|
+
if (this.isDelivering(sessionName) || (await this.deps.isBusy(sessionName).catch(() => true))) {
|
|
612
|
+
return { capped: false, reason: 'busy' };
|
|
613
|
+
}
|
|
614
|
+
const saved = await this.saveAndClear(sessionName, { cwd: info.cwd, sessionId: info.sessionId }, {
|
|
615
|
+
lastTask: current.id,
|
|
616
|
+
why: `because it had grown past ${capTokens.toLocaleString('en-US')} tokens per turn (you are still on the same WorkItem)`,
|
|
617
|
+
});
|
|
618
|
+
if (!saved)
|
|
619
|
+
return { capped: false, reason: 'not cleared' };
|
|
620
|
+
this.lastCapAt.set(sessionName, this.deps.now());
|
|
621
|
+
const line = contextCapReorientation({ workItem: current, handoverPath: saved.handoverPath, contextTokens: contextTokens });
|
|
622
|
+
// Tracking matches on the WorkItem id in the first message, which the
|
|
623
|
+
// re-orientation line carries.
|
|
624
|
+
void this.trackNewConversation(sessionName, info.cwd, info.sessionId, saved.clearAt, current.id);
|
|
625
|
+
const sent = await this.deps.sendMessage(sessionName, line).catch(() => false);
|
|
626
|
+
this.lastDelivery.set(sessionName, this.deps.now());
|
|
627
|
+
this.logger.info('Capped a member conversation at an idle boundary', {
|
|
628
|
+
sessionName,
|
|
629
|
+
workItemId: current.id,
|
|
630
|
+
contextTokens,
|
|
631
|
+
capTokens,
|
|
632
|
+
oldSessionId: info.sessionId,
|
|
633
|
+
handover: saved.handoverPath,
|
|
634
|
+
reoriented: sent,
|
|
635
|
+
});
|
|
636
|
+
return { capped: true, reason: decision.reason, handoverPath: saved.handoverPath, workItemId: current.id };
|
|
637
|
+
}
|
|
638
|
+
/**
|
|
639
|
+
* The WorkItem a member is on: running before accepted before proposed,
|
|
640
|
+
* then the most recently started.
|
|
641
|
+
*/
|
|
642
|
+
pickCurrentItem(items) {
|
|
643
|
+
const rank = { running: 0, accepted: 1, proposed: 2 };
|
|
644
|
+
const sorted = [...items].sort((a, b) => {
|
|
645
|
+
const r = (rank[a.status] ?? 9) - (rank[b.status] ?? 9);
|
|
646
|
+
if (r !== 0)
|
|
647
|
+
return r;
|
|
648
|
+
return (Date.parse(b.startedAt ?? '') || 0) - (Date.parse(a.startedAt ?? '') || 0);
|
|
649
|
+
});
|
|
650
|
+
return sorted[0] ?? null;
|
|
651
|
+
}
|
|
652
|
+
// -------------------------------------------------------------------------
|
|
325
653
|
// Internals
|
|
326
654
|
// -------------------------------------------------------------------------
|
|
327
655
|
async doPrepare(sessionName, workItem) {
|
|
@@ -343,7 +671,8 @@ export class FreshTaskConversationService {
|
|
|
343
671
|
const enabled = freshTaskConversationEnvEnabled(this.deps.env) && (await this.deps.settingEnabled());
|
|
344
672
|
const busy = enabled ? await this.deps.isBusy(sessionName).catch(() => true) : false;
|
|
345
673
|
const last = this.lastDelivery.get(sessionName);
|
|
346
|
-
const recentDelivery =
|
|
674
|
+
const recentDelivery = this.isDelivering(sessionName) ||
|
|
675
|
+
(last !== undefined && this.deps.now() - last < FRESH_TASK_CONVERSATION_CONSTANTS.RECENT_DELIVERY_MS);
|
|
347
676
|
const active = enabled && !busy ? await this.deps.getActiveItems(sessionName).catch(() => null) : [];
|
|
348
677
|
decision = decideFreshConversation({
|
|
349
678
|
sessionName,
|
|
@@ -370,21 +699,50 @@ export class FreshTaskConversationService {
|
|
|
370
699
|
this.logger.info('New task but the conversation id is unknown — not clearing', { sessionName, newRoot });
|
|
371
700
|
return { cleared: false };
|
|
372
701
|
}
|
|
373
|
-
const
|
|
374
|
-
|
|
375
|
-
|
|
702
|
+
const saved = await this.saveAndClear(sessionName, { cwd: info.cwd, sessionId: info.sessionId }, {
|
|
703
|
+
lastTask: previousRoot,
|
|
704
|
+
why: 'when you were given a new task',
|
|
705
|
+
});
|
|
706
|
+
if (!saved)
|
|
376
707
|
return { cleared: false };
|
|
708
|
+
this.logger.info('Started a fresh conversation for a new task', {
|
|
709
|
+
sessionName,
|
|
710
|
+
previousRoot,
|
|
711
|
+
newRoot,
|
|
712
|
+
oldSessionId: info.sessionId,
|
|
713
|
+
handover: saved.handoverPath,
|
|
714
|
+
});
|
|
715
|
+
// 3. Learn the new conversation id in the background.
|
|
716
|
+
void this.trackNewConversation(sessionName, info.cwd, info.sessionId, saved.clearAt, workItem.id);
|
|
717
|
+
return { cleared: true, handoverPath: saved.handoverPath };
|
|
718
|
+
}
|
|
719
|
+
/**
|
|
720
|
+
* Save the current conversation (handover file + memory/wiki copy, no
|
|
721
|
+
* agent turn) and write `/clear`. Shared by the new-task and the
|
|
722
|
+
* context-cap paths.
|
|
723
|
+
*
|
|
724
|
+
* @param sessionName - Agent session
|
|
725
|
+
* @param conv - Its cwd and current conversation id
|
|
726
|
+
* @param handover - Task the old conversation was on, and why it closed
|
|
727
|
+
* @returns The handover file and the time `/clear` was written, or null
|
|
728
|
+
* when nothing was cleared (transcript missing, session gone)
|
|
729
|
+
*/
|
|
730
|
+
async saveAndClear(sessionName, conv, handover) {
|
|
731
|
+
const transcript = claudeTranscriptPath({ sessionId: conv.sessionId, cwd: conv.cwd, claudeHome: this.deps.claudeHome });
|
|
732
|
+
if (!fs.existsSync(transcript)) {
|
|
733
|
+
this.logger.info('Transcript missing — not clearing', { sessionName, transcript });
|
|
734
|
+
return null;
|
|
377
735
|
}
|
|
378
736
|
// 1. Save the conversation (server-side, no agent turn).
|
|
379
737
|
const summary = buildHandoverSummary(transcript);
|
|
380
|
-
const handoverPath = this.writeHandover(sessionName,
|
|
381
|
-
const memoryText = this.conciseHandover(sessionName,
|
|
738
|
+
const handoverPath = this.writeHandover(sessionName, conv.sessionId, transcript, handover.lastTask, summary, handover.why);
|
|
739
|
+
const memoryText = this.conciseHandover(sessionName, handover.lastTask, handoverPath, summary);
|
|
382
740
|
void this.deps
|
|
383
741
|
.remember({
|
|
384
742
|
agentId: sessionName,
|
|
385
|
-
projectPath:
|
|
743
|
+
projectPath: conv.cwd,
|
|
386
744
|
content: memoryText,
|
|
387
|
-
title: `Conversation handover — ${sessionName} — task ${
|
|
745
|
+
title: `Conversation handover — ${sessionName} — task ${handover.lastTask}`,
|
|
388
746
|
})
|
|
389
747
|
.catch((err) => {
|
|
390
748
|
this.logger.debug('Handover memory write failed (non-fatal; the file is on disk)', {
|
|
@@ -396,28 +754,19 @@ export class FreshTaskConversationService {
|
|
|
396
754
|
const clearAt = this.deps.now();
|
|
397
755
|
if (!this.deps.writeToSession(sessionName, '\x1b')) {
|
|
398
756
|
this.logger.info('Session not found — not clearing', { sessionName });
|
|
399
|
-
return
|
|
757
|
+
return null;
|
|
400
758
|
}
|
|
401
759
|
await this.deps.sleep(FRESH_TASK_CONVERSATION_CONSTANTS.ESCAPE_DELAY_MS);
|
|
402
760
|
this.deps.writeToSession(sessionName, `${FRESH_TASK_CONVERSATION_CONSTANTS.CLEAR_COMMAND}\r`);
|
|
403
761
|
await this.deps.sleep(FRESH_TASK_CONVERSATION_CONSTANTS.POST_CLEAR_READY_MS);
|
|
404
|
-
|
|
405
|
-
sessionName,
|
|
406
|
-
previousRoot,
|
|
407
|
-
newRoot,
|
|
408
|
-
oldSessionId: info.sessionId,
|
|
409
|
-
handover: handoverPath,
|
|
410
|
-
});
|
|
411
|
-
// 3. Learn the new conversation id in the background.
|
|
412
|
-
void this.trackNewConversation(sessionName, info.cwd, info.sessionId, clearAt, workItem.id);
|
|
413
|
-
return { cleared: true, handoverPath };
|
|
762
|
+
return { handoverPath, clearAt };
|
|
414
763
|
}
|
|
415
764
|
/**
|
|
416
765
|
* Write the handover file (same shape as the orchestrator's restart handover).
|
|
417
766
|
*
|
|
418
767
|
* @returns Its path
|
|
419
768
|
*/
|
|
420
|
-
writeHandover(sessionName, oldSessionId, transcript, previousRoot, body) {
|
|
769
|
+
writeHandover(sessionName, oldSessionId, transcript, previousRoot, body, why = 'when you were given a new task') {
|
|
421
770
|
const dir = path.join(this.deps.crewlyHome(), ORC_CONVERSATION_CONSTANTS.HANDOVER_DIR);
|
|
422
771
|
fs.mkdirSync(dir, { recursive: true });
|
|
423
772
|
const stamp = new Date(this.deps.now()).toISOString().replace(/[:.]/g, '-');
|
|
@@ -426,7 +775,7 @@ export class FreshTaskConversationService {
|
|
|
426
775
|
fs.writeFileSync(file, [
|
|
427
776
|
`# Handover from your previous conversation`,
|
|
428
777
|
``,
|
|
429
|
-
`Your previous conversation (${oldSessionId}) was closed
|
|
778
|
+
`Your previous conversation (${oldSessionId}) was closed ${why}; its last task was ${previousRoot}.` +
|
|
430
779
|
(tokens !== null ? ` It had grown to ${tokens.toLocaleString('en-US')} tokens per turn.` : ''),
|
|
431
780
|
`Everything Crewly tracks — tasks, teams, OKRs, wiki — is still there; this file keeps only the end of what was said.`,
|
|
432
781
|
`The full transcript: ${transcript}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fresh-task-conversation.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/fresh-task-conversation.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fresh-task-conversation.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/fresh-task-conversation.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/event-bus/event-bus.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,SAAS,EACV,MAAM,gCAAgC,CAAC;AAGxC;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC;AAc9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,aAAa,CAA6C;IAClE,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,aAAa,CAAK;IAE1B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB,CAAgD;IAE5E,sDAAsD;IACtD,OAAO,CAAC,UAAU,CAA8C;IAEhE,+EAA+E;IAC/E,OAAO,CAAC,YAAY,CAA8C;IAElE;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAAkC;IAE1D;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB,CAAyD;;IAQlF;;;;OAIG;IACH,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAI1D;;;;OAIG;IACH,mBAAmB,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI;IAIzD;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,EAAE,uBAAuB,GAAG,iBAAiB;IAoD5D;;;;;OAKG;IACH,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAQ5C;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"event-bus.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/event-bus/event-bus.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,SAAS,EACV,MAAM,gCAAgC,CAAC;AAGxC;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC;AAc9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,aAAa,CAA6C;IAClE,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,aAAa,CAAK;IAE1B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB,CAAgD;IAE5E,sDAAsD;IACtD,OAAO,CAAC,UAAU,CAA8C;IAEhE,+EAA+E;IAC/E,OAAO,CAAC,YAAY,CAA8C;IAElE;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAAkC;IAE1D;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB,CAAyD;;IAQlF;;;;OAIG;IACH,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAI1D;;;;OAIG;IACH,mBAAmB,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI;IAIzD;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,EAAE,uBAAuB,GAAG,iBAAiB;IAoD5D;;;;;OAKG;IACH,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAQ5C;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IA8GhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,WAAW,CACT,UAAU,EAAE,SAAS,GAAG,SAAS,EAAE,EACnC,OAAO,EAAE,qBAAqB,GAC7B,oBAAoB;IAiCvB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;;;;OAKG;IACH,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAQlE;;;;;OAKG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAItE;;;;OAIG;IACH,QAAQ,IAAI;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE;IAOhE;;OAEG;IACH,OAAO,IAAI,IAAI;IAyBf;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAwC1B;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA6D1B;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAuC3B;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;;;;OAKG;IACH,OAAO,CAAC,8BAA8B;IAUtC;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACH,OAAO,CAAC,cAAc;CAuBvB"}
|
|
@@ -198,10 +198,16 @@ export class EventBusService extends EventEmitter {
|
|
|
198
198
|
});
|
|
199
199
|
// Emit event_published for any listener that needs to react to ALL events
|
|
200
200
|
// regardless of subscriptions (e.g., auditor monitoring agent:inactive)
|
|
201
|
+
// WorkItem correlation rides along when the event has it: the
|
|
202
|
+
// WorkItemDispatchSubscriber reacts to `workitem:queued` through this
|
|
203
|
+
// signal and needs the WI id (and target) to push the task. Without them
|
|
204
|
+
// it silently did nothing on every queued WorkItem (2026-09-28).
|
|
201
205
|
this.emit('event_published', {
|
|
202
206
|
eventId: event.id,
|
|
203
207
|
eventType: event.type,
|
|
204
208
|
sessionName: event.sessionName,
|
|
209
|
+
...(event.workItemId ? { workItemId: event.workItemId } : {}),
|
|
210
|
+
...(event.target ? { target: event.target } : {}),
|
|
205
211
|
});
|
|
206
212
|
// The full event, under the name index.ts and InFlightTurnTracker
|
|
207
213
|
// subscribe to. Nothing ever emitted it, so those listeners never ran:
|