> ## Documentation Index
> Fetch the complete documentation index at: https://docs.entire.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Edit a message (repo_id addressing)



## OpenAPI

````yaml https://aws-us-east-2.api.entire.io/api/v1/openapi.json?section=trails patch /repos/{repo_id}/trails/{number}/discussions/{discussion_id}/messages/{message_id}
openapi: 3.1.0
info:
  title: Entire API
  version: 0.1.0
  description: >-
    Unified Entire API gateway. Aggregates the control plane and regional
    repository-operation services behind a single endpoint.
servers:
  - url: https://aws-us-east-2.api.entire.io/api/v1
security:
  - bearerAuth: []
tags:
  - name: search
    description: Operations under the /search surface.
  - name: semantic-search
    description: Operations under the /semantic-search surface.
  - name: brainstore
    description: Operations served by the brainstore service.
  - description: >-
      The authenticated caller's own cross-repo activity, commits, checkpoints,
      sessions, and recap.
    name: me
    x-group: Your activity
  - description: >-
      Residency-aware previews of the caller's surface, served under
      /experimental. Shapes may change without notice.
    name: experimental
  - description: >-
      Per-user settings: pinned and recent repos, diff view, and saved filter
      tabs.
    name: preferences
  - description: >-
      Repository discovery list, metadata, and headline rollups (summary,
      activity, contributors, agents).
    name: repos
  - description: >-
      Git browsing for a repo: commits, commit detail, branch compare, tree
      listings, raw file bytes, and branches.
    name: code
  - description: >-
      Checkpoint listing, resolution, LLM analysis, transcripts, and per-repo
      checkpoint status.
    name: checkpoints
    x-group: Checkpoints
  - description: >-
      Materialised sessions: listing, detail, transcripts, rename, and the
      public-share toggle.
    name: sessions
    x-group: Sessions
  - description: >-
      Repo dashboard aggregates under /overview: commit and checkpoint stats,
      contributor breakdowns, and session patterns.
    name: overview
  - description: Live ref-change stream for a repo (SSE).
    name: refs
    x-group: Ref events
  - description: >-
      Trails themselves: list, create, read, update, delete, plus per-repo
      counts, claimed branches, and the body-document ensure.
    name: trails
    x-group: Trails
  - description: >-
      What has happened on a trail: the merged timeline, the event stream, and
      who is watching (per trail, plus a repo-wide roll-up).
    name: trail-activity
    x-group: Activity
  - description: >-
      Conversation on a trail: discussions, their messages, and the live
      discussion-event stream.
    name: trail-discussions
    x-group: Discussions
  - description: >-
      Code review on a trail: review state, comments, diffs, reviewed files, and
      review re-runs.
    name: trail-reviews
    x-group: Reviews
  - description: >-
      Runner output on a trail: the latest result per configured runner, monitor
      results, and manual launches.
    name: trail-runs
  - description: >-
      Quality gates: repo gate definitions, gate settings, repo-authored monitor
      definitions, and a trail's gate evaluation.
    name: trail-gates
    x-group: Gates
  - description: >-
      Getting a trail landed: approval decisions, merge readiness, and the merge
      itself.
    name: trail-approvals
    x-group: Approvals
  - description: >-
      Trail attachment blobs: upload intent, completion, retrieval, and
      deletion.
    name: trail-attachments
  - description: Project-scoped Trails, and their owned repository Changes and discussions.
    name: projects
  - description: Agent-provenance ranking for a repo's code scopes.
    name: experts
    x-group: Experts
  - description: >-
      git-meta-compatible repo metadata read and write (git is the source of
      truth).
    name: git-meta
  - description: >-
      A project's versioned agents — what each runs (its own runner or an Entire
      preset), what it is called, the environment it runs in, the repositories
      it reviews and its trigger — and Entire's presets. Saving one runs
      nothing.
    name: agents
  - description: >-
      A project's saved, versioned Environments — where an agent runs: provider
      and sandbox lifetime — reusable across the project's repositories and
      agents. Configuration only: saving one provisions nothing.
    name: environments
  - description: >-
      Runs of a project's agents, each on one Change: starting one, the
      immutable snapshot each captured, status, output and results, retry and
      cancel.
    name: runs
  - description: >-
      Mutating repo configuration: runner, trail, public-sharing, and
      gate-enforcement settings (requires repo manage_settings for every forge).
    name: repo-settings
  - description: The caller's open pull requests across their repositories.
    name: pull-requests
  - description: 'Service-authed only: editor-document sync behind the trail body editor.'
    name: trails-internal
  - description: The runner OIDC issuer's discovery document and JWKS. Machine-consumed.
    name: runner-issuer
  - name: repositories
    x-group: Git
paths:
  /repos/{repo_id}/trails/{number}/discussions/{discussion_id}/messages/{message_id}:
    patch:
      tags:
        - trail-discussions
      summary: Edit a message (repo_id addressing)
      operationId: trailDiscussionMessageUpdateByRepoID
      parameters:
        - name: repo_id
          in: path
          required: true
          schema:
            type: string
        - in: path
          name: number
          required: true
          schema:
            type: string
        - in: path
          name: discussion_id
          required: true
          schema:
            type: string
        - in: path
          name: message_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrailDiscussionMessageUpdateRequestJSON'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrailDiscussionMessageResponseBody'
          description: OK
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
          description: Bad Request
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
          description: Unauthorized
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
          description: Forbidden
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
          description: Not Found
        '409':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
          description: Conflict
        '412':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
          description: Precondition Failed
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
          description: Unprocessable Entity
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
          description: Too Many Requests
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
          description: Internal Server Error
        '503':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
          description: Service Unavailable
      security:
        - oauth2: []
        - oidc: []
        - bearerAuth: []
components:
  schemas:
    TrailDiscussionMessageUpdateRequestJSON:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - /api/v1/schemas/TrailDiscussionMessageUpdateRequestJSON.json
          format: uri
          readOnly: true
          type: string
        body:
          maxLength: 65536
          minLength: 1
          type: string
      type: object
    TrailDiscussionMessageResponseBody:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - /api/v1/schemas/TrailDiscussionMessageResponseBody.json
          format: uri
          readOnly: true
          type: string
        message:
          $ref: '#/components/schemas/TrailDiscussionMessageJSON'
      required:
        - message
      type: object
    ProblemDocument:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - /api/v1/schemas/ProblemDocument.json
          format: uri
          readOnly: true
          type: string
        code:
          description: Stable error code; see https://entire.com/errors/.
          type: string
        detail:
          description: Human-readable explanation; server errors omit internal details.
          type: string
        request_id:
          description: Request identifier correlated with server logs.
          minLength: 1
          type: string
        status:
          description: HTTP response status.
          format: int64
          maximum: 599
          minimum: 400
          type: integer
        title:
          description: Short description of the HTTP error.
          type: string
        type:
          description: Documentation URL for this error code.
          format: uri
          type: string
      required:
        - type
        - title
        - status
        - detail
        - code
        - request_id
      type: object
    TrailDiscussionMessageJSON:
      additionalProperties: false
      properties:
        author:
          type: string
        body:
          type: string
        created_at:
          format: date-time
          type: string
        etag:
          type: string
        id:
          type: string
        identity:
          $ref: '#/components/schemas/ContributorIdentity'
        replies:
          items:
            $ref: '#/components/schemas/TrailDiscussionMessageReplyJSON'
          type:
            - array
            - 'null'
      required:
        - id
        - author
        - identity
        - created_at
        - body
        - replies
      type: object
    ContributorIdentity:
      additionalProperties: false
      properties:
        account_id:
          type:
            - string
            - 'null'
        automation:
          $ref: '#/components/schemas/AutomationIdentity'
        avatar_url:
          type:
            - string
            - 'null'
        display_name:
          type:
            - string
            - 'null'
        handles:
          items:
            $ref: '#/components/schemas/IdentityHandle'
          type:
            - array
            - 'null'
        kind:
          type: string
        username:
          type: string
      required:
        - kind
        - account_id
        - display_name
        - avatar_url
        - handles
      type: object
    TrailDiscussionMessageReplyJSON:
      additionalProperties: false
      properties:
        author:
          type: string
        body:
          type: string
        created_at:
          format: date-time
          type: string
        id:
          type: string
        identity:
          $ref: '#/components/schemas/ContributorIdentity'
      required:
        - id
        - author
        - identity
        - created_at
        - body
      type: object
    AutomationIdentity:
      additionalProperties: false
      properties:
        automation_id:
          description: >-
            The automation's aut_<ULID> subject, for an automation that is not a
            plugin installation.
          type: string
        installation_id:
          description: The plugin installation's ins_<ULID> id.
          type: string
        plugin:
          description: The plugin's slug.
          type: string
      type: object
    IdentityHandle:
      additionalProperties: false
      properties:
        handle:
          type: string
        is_primary:
          type: boolean
        provider:
          type: string
      required:
        - provider
        - handle
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      description: >-
        Bearer token authorizing this operation's repository action. Each
        operation's security requirement names the resource action the token
        must be authorized for (pull or push).
      scheme: bearer
      type: http
    oauth2:
      description: OAuth 2.0 authorization code flow.
      flows:
        authorizationCode:
          authorizationUrl: https://us.auth.entire.io/authorize
          scopes:
            offline_access: Stay signed in and receive a refresh token.
            openid: Verify your identity.
          tokenUrl: https://us.auth.entire.io/oauth/token
      type: oauth2
    oidc:
      description: >-
        OpenID Connect discovery document:
        https://us.auth.entire.io/.well-known/openid-configuration
      openIdConnectUrl: https://us.auth.entire.io/.well-known/openid-configuration
      type: openIdConnect

````