anomalyco / anomalyco/opencode
[FEATURE]: Add server-side transcript search to the V2 message API
@kitlangton is already working on this.
Since Aug 28, 2026.
- Dominant language
- TypeScript
- Stars
- 209k
- Forks
- 27.5k
- PR merge metrics
- PR metrics pending
Description
Feature hasn't been suggested before
- I searched open and closed issues. Existing requests cover TUI/Desktop search UI or cross-session discovery, but not a public V2 transcript-search contract for bounded clients.
Describe the enhancement you want to request
The V2 message-list operation (v2.message.list) accepts only sessionID, limit, order, and cursor. The search parameter on v2.session.list filters session titles, not message content.
Clients that keep only a bounded transcript window must therefore traverse every message page to find text outside the resident window. CodeNomad currently keeps 200 messages resident and performs this exhaustive traversal for full-session search. Search cost grows with the complete transcript, and a result cannot identify a directly navigable target or prove that all searched pages belong to one transcript revision.
Please add server-side text search scoped to one session. A minimal contract should:
- search the complete projected user and assistant text for that session;
- paginate matches;
- return the matching
messageID,partIDwhen applicable, and a compact excerpt; - return a target that can be opened without walking every preceding message cursor;
- identify the transcript revision used for the results.
A case-insensitive literal search is sufficient initially. Fuzzy or semantic search and a new indexing subsystem are not required.
This is an API request rather than another UI request. Existing related UI issues include #4714, #19143, #38973, and #41354. The navigation target should compose with #44660, and result consistency should compose with #43766.
Acceptance criteria
- A client can search the full projected transcript without downloading every message page.
- Results are paginated in a documented stable order while the transcript revision is unchanged.
- Each result identifies the exact message/part and includes an excerpt.
- A client can navigate directly to the matching transcript area.
- Results expose the revision needed to detect compaction, revert, append, or content-update races.
- Existing session-title search and message cursor pagination remain backward compatible.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.