mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-01 15:03:57 +08:00
feat(queue): implement queue scheduler service and API routes
- Added QueueSchedulerService to manage task queue lifecycle, including state machine, dependency resolution, and session management. - Implemented HTTP API endpoints for queue scheduling: - POST /api/queue/execute: Submit items to the scheduler. - GET /api/queue/scheduler/state: Retrieve full scheduler state. - POST /api/queue/scheduler/start: Start scheduling loop with items. - POST /api/queue/scheduler/pause: Pause scheduling. - POST /api/queue/scheduler/stop: Graceful stop of the scheduler. - POST /api/queue/scheduler/config: Update scheduler configuration. - Introduced types for queue items, scheduler state, and WebSocket messages to ensure type safety and compatibility with the backend. - Added static model lists for LiteLLM as a fallback for available models.
This commit is contained in:
@@ -390,9 +390,13 @@ export function generateTransactionId(conversationId: string): TransactionId {
|
||||
* Inject transaction ID into user prompt
|
||||
* @param prompt - Original user prompt
|
||||
* @param txId - Transaction ID to inject
|
||||
* @returns Prompt with transaction ID injected at the start
|
||||
* @returns Prompt with transaction ID injected at the start, or empty string if prompt is empty
|
||||
*/
|
||||
export function injectTransactionId(prompt: string, txId: TransactionId): string {
|
||||
// Don't inject TX ID for empty prompts (e.g., review mode with target flags)
|
||||
if (!prompt || !prompt.trim()) {
|
||||
return '';
|
||||
}
|
||||
return `[CCW-TX-ID: ${txId}]\n\n${prompt}`;
|
||||
}
|
||||
|
||||
@@ -844,8 +848,15 @@ async function executeCliTool(
|
||||
|
||||
// Inject transaction ID at the start of the final prompt for session tracking
|
||||
// This enables exact session matching during parallel execution scenarios
|
||||
finalPrompt = injectTransactionId(finalPrompt, transactionId);
|
||||
debugLog('TX_ID', `Injected transaction ID into prompt`, { transactionId, promptLength: finalPrompt.length });
|
||||
// Skip injection for review mode with target flags (uncommitted/base/commit) as these
|
||||
// modes don't accept prompt arguments in codex CLI
|
||||
const isReviewWithTarget = mode === 'review' && (uncommitted || base || commit);
|
||||
if (!isReviewWithTarget) {
|
||||
finalPrompt = injectTransactionId(finalPrompt, transactionId);
|
||||
debugLog('TX_ID', `Injected transaction ID into prompt`, { transactionId, promptLength: finalPrompt.length });
|
||||
} else {
|
||||
debugLog('TX_ID', `Skipped transaction ID injection for review mode with target flag`);
|
||||
}
|
||||
|
||||
// Check tool availability
|
||||
const toolStatus = await checkToolAvailability(tool);
|
||||
|
||||
Reference in New Issue
Block a user