MCPcopy Create free account
hub / github.com/RioArisk/claudecode_api_RemoteControl / setTurnState

Function setTurnState

lib/logger.js:183–210  ·  view source on GitHub ↗
(phase, { sessionId = state.currentSessionId, reason = '', force = false } = {})

Source from the content-addressed store, hash-verified

181}
182
183function setTurnState(phase, { sessionId = state.currentSessionId, reason = '', force = false } = {}) {
184 const normalizedPhase = phase === 'running' ? 'running' : 'idle';
185 const normalizedSessionId = sessionId || null;
186 const changed = force ||
187 state.turnState.phase !== normalizedPhase ||
188 state.turnState.sessionId !== normalizedSessionId;
189
190 if (!changed) return false;
191
192 state.turnState = {
193 phase: normalizedPhase,
194 sessionId: normalizedSessionId,
195 version: ++state.turnStateVersion,
196 updatedAt: Date.now(),
197 reason,
198 };
199
200 const modeReason = reason || `turn_state:${normalizedPhase}`;
201 if (normalizedPhase !== 'running' && state.turnApprovalFloorMode) {
202 clearTurnApprovalFloorMode(modeReason);
203 } else {
204 recomputeEffectiveApprovalMode(modeReason);
205 }
206
207 log(`Turn state -> phase=${state.turnState.phase} session=${state.turnState.sessionId ?? 'null'} version=${state.turnState.version}${reason ? ` reason=${reason}` : ''}`);
208 broadcast(getTurnStatePayload());
209 return true;
210}
211
212function emitInterrupt(source) {
213 const interruptEvent = {

Callers 9

spawnClaudeFunction · 0.85
restartClaudeFunction · 0.85
attachTranscriptFunction · 0.85
startTailingFunction · 0.85
emitInterruptFunction · 0.85
setupWebSocketServerFunction · 0.85
createHttpServerFunction · 0.85
handleImageUploadFunction · 0.85
test-modules.jsFile · 0.85

Calls 5

logFunction · 0.85
broadcastFunction · 0.85
getTurnStatePayloadFunction · 0.85

Tested by

no test coverage detected