Persist remote-control RPC preferences in managed daemon settings (#52304)

## Why

Durable remote-control RPC changes need to update the managed daemon's launch settings so future launches use the saved preference.

## What changed

- Save non-ephemeral `remoteControl/enable` and `remoteControl/disable` requests to `remoteControlEnabled` in `app-server-daemon/settings.json` for managed daemons.
- Preserve other settings and write updates atomically. Skip persistence when `daemon.lock` is held so concurrent lifecycle operations take precedence without blocking the RPC.
- Leave daemon settings untouched for ephemeral requests and unmanaged servers.

## Testing

Add integration coverage for durable enable and disable, ephemeral requests, and lock contention. Extend the unmanaged-server test to verify that no daemon settings file is created.

GitOrigin-RevId: 2baf261ed62f7c7ad87c9779ffb91c59e923f0f8
This commit is contained in:
Eric Traut
2026-10-08 22:42:12 +00:00
committed by copyberry
parent bd274564e1
commit 99aa05341d
5 changed files with 151 additions and 6 deletions
+1 -1
View File
@@ -163,7 +163,7 @@ pub(crate) struct MessageProcessor {
mcp_processor: McpRequestProcessor,
plugin_processor: PluginRequestProcessor,
project_processor: ProjectRequestProcessor,
remote_control_processor: RemoteControlRequestProcessor,
pub(super) remote_control_processor: RemoteControlRequestProcessor,
search_processor: SearchRequestProcessor,
thread_goal_processor: ThreadGoalRequestProcessor,
thread_queue_processor: ThreadQueueRequestProcessor,