---
title: "The developer's conversation: what runs now, its threads and how far it reached"
method: GET
path: "/workspaces/{workspaceSlug}/mentor/conversation"
tags: ["Mentor"]
---

# The developer's conversation: what runs now, its threads and how far it reached

`GET /workspaces/{workspaceSlug}/mentor/conversation`

## Request

- Base URL: `/` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/workspaces/{workspaceSlug}/mentor/conversation`
- Auth: HTTP bearer

## Path parameters

- `workspaceSlug` string, required

## Response `200`

OK

- MentorConversation: The developer's Heph conversation in a workspace at one moment
  - `activeTurns` MentorTurn[], required: Queued and running turns in the conversation and its threads, oldest first
    - `attempt` integer, required: Attempts started so far; 0 while the turn waits for its first start. A lost lease queues the turn again with the same attempt, and the next start counts up. Thus, with the same attempt, RUNNING comes before QUEUED or an end.
    - `conversationId` string, uuid, required
    - `createdAt` string, date-time, required
    - `error` string: Why the turn failed, worded for the developer; only on a failed turn
    - `finishedAt` string, date-time
    - `id` string, uuid, required
    - `parentEntryId` string, uuid: Set when the turn runs in a thread: the top-level message the thread replies to
    - `partial` MentorTurnPartial: What Heph is doing in a running turn
      - `activity` 'THINKING' | 'WRITING' | 'TOOL', required
      - `stage` string, required: What Heph is doing, in the developer's words, for example "Reading your practice feedback…"
      - `text` string, required: The text Heph has written in this turn so far
      - `tool` string: The tool Heph runs, while the activity is TOOL
    - `requestId` string, required: The submission that asked; the question's entry carries the same value
    - `status` 'QUEUED' | 'RUNNING' | 'DONE' | 'FAILED' | 'STOPPED', required
    - `surface` 'APP' | 'SLACK', required
  - `id` string, uuid: The main conversation; absent until the developer writes to Heph or gets a weekly digest
  - `lastAnswerAt` string, date-time: When Heph's newest shown answer in the conversation or any of its threads was written; absent before the first. Compare it with the newest answer the client has seen.
  - `lastReadAt` string, date-time: How far the developer read the conversation on any device; absent before the first read. Heph has an unread answer when lastAnswerAt is later.
  - `latestSeq` integer, required: Sequence number of the newest top-level message shown; 0 when there is none
  - `threads` MentorThreadSummary[], required: The newest threads, latest activity first
    - `conversationId` string, uuid, required: The thread's own conversation
    - `lastReplyAt` string, date-time
    - `latestSeq` integer, required: Sequence number of the thread's newest shown message; 0 when it has none
    - `parentEntryId` string, uuid, required: The message the thread replies to
    - `replyCount` integer, required: Messages in the thread; can count a Heph message without text whose feedback is no longer shown

## Changes

- **2026-10-21** `29ab13db0a39`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hephaestus-build/apis/hephaestus-api/changes/workspaces/:workspaceSlug/mentor/conversation/get.md)

---

[API](https://skmtc.dev/hephaestus-build/apis/hephaestus-api.md) · [All operations](https://skmtc.dev/hephaestus-build/apis/hephaestus-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hephaestus-build/apis/hephaestus-api/revisions/3592ab716973?raw)
