Skip to content

Conversation

@apanasenko-oai
Copy link
Collaborator

Summary

  • add thread/conversation fork endpoints to the protocol (v1 + v2)
  • implement fork handling in app-server using thread manager and config overrides
  • add fork coverage in app-server tests and document thread/fork usage

Copy link
Contributor

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b19cc16f33

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link
Collaborator

@jif-oai jif-oai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would definitely drop v1
Could you also pipe this in the CLI?


#[derive(Serialize, Deserialize, Debug, Clone, JsonSchema, TS)]
#[serde(rename_all = "camelCase")]
pub struct ForkConversationResponse {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think it is necessary to add it to v1 tbh

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

agreed, we plan to delete v1 as soon as cloud is migrated to v2


/// [UNSTABLE] Specify the rollout path to fork from.
/// If specified, the thread_id param will be ignored.
pub path: Option<PathBuf>,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be cleaner to have something like:

pub thread_reference: ThreadReference
...
enum ThreadReference {
  ThreadId(String),
  ThreadPath(PathBuf)
}

Then you can just make the thread_reference as untagged and you should have something clean

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did it this way originally for thread/resume because I wanted to be able to deprecate the path option and have the client work solely using IDs

}
}

async fn handle_fork_conversation(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 to drop v1. It does not make sense to duplicate all this code

Copy link
Collaborator

@owenlin0 owenlin0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approving for v2 api changes. thanks for updating the readme too!

@apanasenko-oai
Copy link
Collaborator Author

I would definitely drop v1

we still using v1 in web, until we drop it from web, I would like to keep them on par.

Could you also pipe this in the CLI?

will follow up in separate review with tui changes

@apanasenko-oai apanasenko-oai merged commit 41a3173 into main Jan 8, 2026
26 checks passed
@apanasenko-oai apanasenko-oai deleted the anton_panasenko_fork branch January 8, 2026 20:54
@github-actions github-actions bot locked and limited conversation to collaborators Jan 8, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants