feat: return session ID from thread/fork (#21332)

## Why

`thread/start` and `thread/resume` already return `sessionId`, but
`thread/fork` only returned the new thread. That left clients to infer
the forked thread's session identity from `thread.id`, which kept the
new `session_id` / `thread_id` split implicit at one lifecycle boundary.
Follow-up to #20437.

## What changed

- Add `sessionId` to `ThreadForkResponse`.
- Populate it from the forked session configuration.
- Regenerate the v2 JSON/TypeScript schema fixtures and update the
app-server docs/example.
- Extend the fork integration test to assert the returned `sessionId`.

## Verification

- Added coverage in `thread_fork_creates_new_thread_and_emits_started`
for the new response field.
This commit is contained in:
jif-oai
2026-05-06 12:04:27 +02:00
committed by GitHub
Unverified
parent fe24a180ab
commit 06e5dfa4dd
9 changed files with 30 additions and 4 deletions
@@ -3116,6 +3116,7 @@ impl ThreadRequestProcessor {
thread_response_active_permission_profile(config_snapshot.active_permission_profile);
let response = ThreadForkResponse {
session_id: session_configured.session_id.to_string(),
thread: thread.clone(),
model: session_configured.model,
model_provider: session_configured.model_provider_id,