feat: otto conversation list/get#54
Merged
lostmygithubaccount merged 1 commit intomainfrom Mar 25, 2026
Merged
Conversation
Adds conversation management commands that go through the public /api/v1/otto/threads endpoints. CLI: - `otto conversation list` with --limit/--offset pagination - `otto conversation get <TITLE>` with interactive picker on ambiguity - `otto conversation get <ID> --id` for direct ID lookup - `--conversation` and `--resume` flags on `otto run` and `otto tui` Core SDK: - list_conversations() with offset/limit/title filters - get_conversation(), get_conversation_by_title(), resolve_conversation_id() - Server-side title filter (no more client-side 200-thread scan) - skip_serializing_if on messages/context_window_stats (clean list JSON) Bindings: - Python: list_conversations()/get_conversation() with keyword-only args - JavaScript: listConversations()/getConversation() returning Promises - MCP: list_conversations/get_conversation tools - All otto/otto_streaming methods accept conversation param TUI: - --conversation/--resume flags load history in background - conversation_to_messages() converts thread messages to TUI Messages - stop_pending changed from bool to Option<u64> for correct generation tracking Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
Author
|
merging...shouldn't release until backend PR is in production |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #53
Depends on https://github.com/ascend-io/ascend-backend/pull/1355
Problem
There was no way to list or retrieve Otto conversations programmatically. The CLI, SDKs, MCP server, and TUI all lacked conversation management, and the
--threadflag required knowing raw thread IDs.Summary
Adds
otto conversation list/getcommands and conversation support across all interfaces, using the public/api/v1/otto/threadsendpoints.CLI examples
Key Changes
otto conversation list(paginated),otto conversation get(by title with interactive picker on ambiguity, or by ID with--id),--conversation/--resumeflags onotto runandotto tuilist_conversations()with offset/limit/title filters,get_conversation(),resolve_conversation_id()using server-side title filter instead of client-side 200-thread scan,skip_serializing_ifon messages/context_window_stats for clean list JSONlist_conversations(limit=N),get_conversation(title=..., id=...)listConversations(),getConversation()list_conversations,get_conversationtools;conversationparam onottotool--conversation/--resumeflags load thread history in background;stop_pendingchanged frombooltoOption<u64>for correct generation tracking during cancellation🤖 Generated with Claude Code