openapi.json is incomplete: query parameter directory present, session missing #4106

Open
opened 2026-02-16 17:42:38 -05:00 by yindo · 0 comments
Owner

Originally created by @vlcinsky on GitHub (Jan 2, 2026).

Description

http://127.0.0.1:4096/doc returns openapi.json

Here is (yaml version) snippet:

  /event:
    get:
      operationId: event.subscribe
      parameters:
        - in: query
          name: directory
          schema:
            type: string
      summary: Subscribe to events
      description: Get events
      responses:
        "200":
          description: Event stream
          content:
            text/event-stream:
              schema:
                $ref: '#/components/schemas/Event'

For event endpoint it declares query parameter directory, no more parameters specified. But it apparently works with session query parameter as follows:

http://127.0.0.1:4096/event?session=ses_480e6a355ffen1k9EXzZLX4Ofk

It would be great to have the openapi.json complete

OpenCode version

v1.0.220

Steps to reproduce

  1. check the openapi.json spec: http://127.0.0.1:4096/doc
  2. read the spec for event endpoint, see only directory is mentioned as query parameter
  3. list sessions http://127.0.0.1:4096/session , pick session id of one of them
  4. use the session id in http://127.0.0.1:4096/event?session=ses_480e6a355ffen1k9EXzZLX4Ofk
  5. do something in opencode terminal in given session
  6. you shall notice, the query to http://127.0.0.1:4096/event?session=ses_480e6a355ffen1k9EXzZLX4Ofk provides new event
$ http GET http://127.0.0.1:4096/doc | yq -P -oy '.paths["/event"].get'

operationId: event.subscribe
parameters:
  - in: query
    name: directory
    schema:
      type: string
summary: Subscribe to events
description: Get events
responses:
  "200":
    description: Event stream
    content:
      text/event-stream:
        schema:
          $ref: '#/components/schemas/Event'

$ http GET http://127.0.0.1:4096/session | jq '.'
[
  {
    "id": "ses_47faebea1ffebgG5b21vgx0Fw1",
    "version": "1.0.220",
    "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14",
    "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse",
    "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2",
    "title": "Research practical Neovim workflow examples (@explore subagent)",
    "time": {
      "created": 1767384367454,
      "updated": 1767384452040
    },
    "summary": {
      "additions": 0,
      "deletions": 0,
      "files": 0
    }
  },
  {
    "id": "ses_47fb1c28effeF3wIAMEiMuRF3B",
    "version": "1.0.220",
    "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14",
    "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse",
    "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2",
    "title": "Research workflow automation patterns (@explore subagent)",
    "time": {
      "created": 1767384169841,
      "updated": 1767384183703
    },
    "summary": {
      "additions": 0,
      "deletions": 0,
      "files": 0
    }
  },
  {
    "id": "ses_47fb1d036ffe7CH1EQvqftCn3Z",
    "version": "1.0.220",
    "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14",
    "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse",
    "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2",
    "title": "Research terminal UI architecture patterns (@explore subagent)",
    "time": {
      "created": 1767384166345,
      "updated": 1767384193412
    },
    "summary": {
      "additions": 0,
      "deletions": 0,
      "files": 0
    }
  },
  {
    "id": "ses_47fb63573ffeMMB1rt3ow1F8y7",
    "version": "1.0.220",
    "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14",
    "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse",
    "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2",
    "title": "Research Neovim RPC and automation patterns (@explore subagent)",
    "time": {
      "created": 1767383878284,
      "updated": 1767383900029
    },
    "summary": {
      "additions": 0,
      "deletions": 0,
      "files": 0
    }
  },
  {
    "id": "ses_47fb64448ffe00OM69KiqcDltt",
    "version": "1.0.220",
    "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14",
    "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse",
    "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2",
    "title": "Research file-based IPC patterns (@explore subagent)",
    "time": {
      "created": 1767383874487,
      "updated": 1767383970104
    },
    "summary": {
      "additions": 0,
      "deletions": 0,
      "files": 0
    }
  },
  {
    "id": "ses_47fb65083ffey9jup7R6Pezhk7",
    "version": "1.0.220",
    "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14",
    "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse",
    "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2",
    "title": "Research OpenCode API patterns (@explore subagent)",
    "time": {
      "created": 1767383871356,
      "updated": 1767383971786
    },
    "summary": {
      "additions": 0,
      "deletions": 0,
      "files": 0
    }
  },
  {
    "id": "ses_47fba14a2ffeFJ6pTr2UYbDXii",
    "version": "1.0.220",
    "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14",
    "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse",
    "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2",
    "title": "Research terminal multiplexers and file watchers (@explore subagent)",
    "time": {
      "created": 1767383624541,
      "updated": 1767383699911
    },
    "summary": {
      "additions": 0,
      "deletions": 0,
      "files": 0
    }
  },
  {
    "id": "ses_47fba1ffdffeuiVo77eeIK1zIZ",
    "version": "1.0.220",
    "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14",
    "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse",
    "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2",
    "title": "Research Neovim plugin ecosystem (@explore subagent)",
    "time": {
      "created": 1767383621634,
      "updated": 1767383691290
    },
    "summary": {
      "additions": 0,
      "deletions": 0,
      "files": 0
    }
  },
  {
    "id": "ses_47fc1b5c1ffeznq1dcr9fJHUY2",
    "version": "1.0.220",
    "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14",
    "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse",
    "title": "Research workflow setup guide",
    "time": {
      "created": 1767383124542,
      "updated": 1767385202245
    },
    "summary": {
      "additions": 2151,
      "deletions": 0,
      "files": 1
    }
  },
  {
    "id": "ses_480dc889effeOMPLge4iiKR3qL",
    "version": "1.0.220",
    "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14",
    "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse",
    "title": "Workflow-init setup",
    "time": {
      "created": 1767364589409,
      "updated": 1767365852250
    },
    "summary": {
      "additions": 0,
      "deletions": 0,
      "files": 0
    }
  },
  {
    "id": "ses_480e6a355ffen1k9EXzZLX4Ofk",
    "version": "1.0.220",
    "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14",
    "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse",
    "title": "OpenCode Server-Sent Events API",
    "time": {
      "created": 1767363927210,
      "updated": 1767382518526
    },
    "summary": {
      "additions": 0,
      "deletions": 0,
      "files": 0
    }
  }
]

$ http --stream GET 'http://127.0.0.1:4096/event?session=ses_480e6a355ffen1k9EXzZLX4Ofk'
HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: keep-alive
Content-Type: text/event-stream
Date: Fri, 02 Jan 2026 20:44:15 GMT
Transfer-Encoding: chunked
Vary: Origin

data: {
    "properties": {},
    "type": "server.connected"
}

^C

$ http GET http://127.0.0.1:4096/doc | yq -P -oy '.paths["/event"].get.parameters'
- in: query
  name: directory
  schema:
    type: string

Screenshot and/or share link

No response

Operating System

macOS 25.1.0

Terminal

Ghostty

Originally created by @vlcinsky on GitHub (Jan 2, 2026). ### Description http://127.0.0.1:4096/doc returns openapi.json Here is (yaml version) snippet: ```yaml /event: get: operationId: event.subscribe parameters: - in: query name: directory schema: type: string summary: Subscribe to events description: Get events responses: "200": description: Event stream content: text/event-stream: schema: $ref: '#/components/schemas/Event' ``` For `event` endpoint it declares query parameter `directory`, no more parameters specified. But it apparently works with `session` query parameter as follows: http://127.0.0.1:4096/event?session=ses_480e6a355ffen1k9EXzZLX4Ofk It would be great to have the openapi.json complete ### OpenCode version v1.0.220 ### Steps to reproduce 1. check the openapi.json spec: http://127.0.0.1:4096/doc 2. read the spec for `event` endpoint, see only `directory` is mentioned as query parameter 3. list sessions `http://127.0.0.1:4096/session` , pick session id of one of them 4. use the session id in `http://127.0.0.1:4096/event?session=ses_480e6a355ffen1k9EXzZLX4Ofk` 5. do something in `opencode` terminal in given session 6. you shall notice, the query to http://127.0.0.1:4096/event?session=ses_480e6a355ffen1k9EXzZLX4Ofk provides new event ```bash $ http GET http://127.0.0.1:4096/doc | yq -P -oy '.paths["/event"].get' operationId: event.subscribe parameters: - in: query name: directory schema: type: string summary: Subscribe to events description: Get events responses: "200": description: Event stream content: text/event-stream: schema: $ref: '#/components/schemas/Event' $ http GET http://127.0.0.1:4096/session | jq '.' [ { "id": "ses_47faebea1ffebgG5b21vgx0Fw1", "version": "1.0.220", "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14", "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse", "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2", "title": "Research practical Neovim workflow examples (@explore subagent)", "time": { "created": 1767384367454, "updated": 1767384452040 }, "summary": { "additions": 0, "deletions": 0, "files": 0 } }, { "id": "ses_47fb1c28effeF3wIAMEiMuRF3B", "version": "1.0.220", "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14", "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse", "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2", "title": "Research workflow automation patterns (@explore subagent)", "time": { "created": 1767384169841, "updated": 1767384183703 }, "summary": { "additions": 0, "deletions": 0, "files": 0 } }, { "id": "ses_47fb1d036ffe7CH1EQvqftCn3Z", "version": "1.0.220", "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14", "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse", "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2", "title": "Research terminal UI architecture patterns (@explore subagent)", "time": { "created": 1767384166345, "updated": 1767384193412 }, "summary": { "additions": 0, "deletions": 0, "files": 0 } }, { "id": "ses_47fb63573ffeMMB1rt3ow1F8y7", "version": "1.0.220", "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14", "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse", "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2", "title": "Research Neovim RPC and automation patterns (@explore subagent)", "time": { "created": 1767383878284, "updated": 1767383900029 }, "summary": { "additions": 0, "deletions": 0, "files": 0 } }, { "id": "ses_47fb64448ffe00OM69KiqcDltt", "version": "1.0.220", "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14", "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse", "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2", "title": "Research file-based IPC patterns (@explore subagent)", "time": { "created": 1767383874487, "updated": 1767383970104 }, "summary": { "additions": 0, "deletions": 0, "files": 0 } }, { "id": "ses_47fb65083ffey9jup7R6Pezhk7", "version": "1.0.220", "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14", "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse", "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2", "title": "Research OpenCode API patterns (@explore subagent)", "time": { "created": 1767383871356, "updated": 1767383971786 }, "summary": { "additions": 0, "deletions": 0, "files": 0 } }, { "id": "ses_47fba14a2ffeFJ6pTr2UYbDXii", "version": "1.0.220", "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14", "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse", "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2", "title": "Research terminal multiplexers and file watchers (@explore subagent)", "time": { "created": 1767383624541, "updated": 1767383699911 }, "summary": { "additions": 0, "deletions": 0, "files": 0 } }, { "id": "ses_47fba1ffdffeuiVo77eeIK1zIZ", "version": "1.0.220", "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14", "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse", "parentID": "ses_47fc1b5c1ffeznq1dcr9fJHUY2", "title": "Research Neovim plugin ecosystem (@explore subagent)", "time": { "created": 1767383621634, "updated": 1767383691290 }, "summary": { "additions": 0, "deletions": 0, "files": 0 } }, { "id": "ses_47fc1b5c1ffeznq1dcr9fJHUY2", "version": "1.0.220", "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14", "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse", "title": "Research workflow setup guide", "time": { "created": 1767383124542, "updated": 1767385202245 }, "summary": { "additions": 2151, "deletions": 0, "files": 1 } }, { "id": "ses_480dc889effeOMPLge4iiKR3qL", "version": "1.0.220", "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14", "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse", "title": "Workflow-init setup", "time": { "created": 1767364589409, "updated": 1767365852250 }, "summary": { "additions": 0, "deletions": 0, "files": 0 } }, { "id": "ses_480e6a355ffen1k9EXzZLX4Ofk", "version": "1.0.220", "projectID": "7f065c289c7ea2c062b0cc377bbb7c714d2e8e14", "directory": "/Users/javl/devel/ttr/gitlab/personal/honza/try-bmad-v6/sse", "title": "OpenCode Server-Sent Events API", "time": { "created": 1767363927210, "updated": 1767382518526 }, "summary": { "additions": 0, "deletions": 0, "files": 0 } } ] $ http --stream GET 'http://127.0.0.1:4096/event?session=ses_480e6a355ffen1k9EXzZLX4Ofk' HTTP/1.1 200 OK Cache-Control: no-cache Connection: keep-alive Content-Type: text/event-stream Date: Fri, 02 Jan 2026 20:44:15 GMT Transfer-Encoding: chunked Vary: Origin data: { "properties": {}, "type": "server.connected" } ^C $ http GET http://127.0.0.1:4096/doc | yq -P -oy '.paths["/event"].get.parameters' - in: query name: directory schema: type: string ``` ### Screenshot and/or share link _No response_ ### Operating System macOS 25.1.0 ### Terminal Ghostty
yindo added the bug label 2026-02-16 17:42:38 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#4106