Skip to content

feat(app-server): add turn/start parity API#573

Open
cbusillo wants to merge 4 commits intojust-every:mainfrom
cbusillo:feat/app-server-turn-start-parity
Open

feat(app-server): add turn/start parity API#573
cbusillo wants to merge 4 commits intojust-every:mainfrom
cbusillo:feat/app-server-turn-start-parity

Conversation

@cbusillo
Copy link
Copy Markdown

Summary

  • add native app-server handling for turn/start
  • translate v2 user input payloads into core turn submissions and return an in-progress user turn
  • shape plan-mode prompts so plan requests stay read-only and avoid spawning subagents

Dependency

Testing

  • cargo test -p code-app-server --quiet
  • ./build-fast.sh

cbusillo added 3 commits April 3, 2026 11:22
Finish the thread/resume compatibility shim and add native model/list and review/start handlers to the local app-server compatibility layer.
Copy link
Copy Markdown

@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: 20797cb6c0

ℹ️ 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".

Comment on lines +1025 to +1029
let catalog_entry = match catalog.find_by_id(&thread_id).await {
Ok(entry) => entry,
Err(err) => {
let error = JSONRPCErrorError {
code: INTERNAL_ERROR_CODE,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Bypass catalog lookup when thread/resume uses path

ThreadResumeParams specifies that path takes precedence over thread_id, but this branch always calls catalog.find_by_id(&thread_id) first and fails immediately on lookup errors. If the session catalog is unreadable/corrupt, a valid explicit path resume request is rejected before the path is even tried, even though thread_id should be ignored in that mode.

Useful? React with 👍 / 👎.

Comment on lines +1130 to +1134
if let Ok(requested_conversation_id) = ConversationId::from_string(&thread_id)
&& requested_conversation_id != conversation_id
{
self.resumed_conversation_aliases
.lock()
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Skip alias remap when resuming from explicit path

This alias insertion runs even when thread/resume was driven by an explicit path, where thread_id is supposed to be ignored. If the request carries a different valid thread id, that id is remapped to the newly resumed conversation and later operations (turn/start, review/start, interrupts, etc.) on the original thread id will be routed to the wrong thread via resolve_conversation_id_alias.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant