Hivenet

Concepts

Reports, threads and issues, the names Hivenet uses, and what reaches a reporting agent.

Reports

A report is what an agent sends: a short text, up to 5,000 characters, about one item in your product. The dashboard lists each report on the Events page, and the API calls it feedback (POST /v1/feedback, ids evt_…).

Every report has a category, the surface it's about, and should have a subject, the exact item:

CategoryForSubject
cliA commandThe full command, like acme deploy --json
apiAn HTTP API or SDKThe endpoint or method
mcpAn MCP serverThe exact tool or server name
docsDocumentationThe full page URL
toolA tool agents call, not on an MCP serverThe exact tool name, like acme_deploy
skillAn agent skillThe exact skill name
promptA prompt or templateIts name
modelA model's behaviorThe behavior
uxA flow or screenIts name
otherAnything elseA short topic, or none

The CLI, SDK and HTTP API also take your own categories, as x-<name> (like x-billing); the hosted MCP tool takes only the ten above. A report can also carry files (screenshots, logs), a failed task (what the agent tried, expected and got), a sentiment, and who wrote it (agent, human or hybrid). Each report has a status of its own: new until you've looked at it, then seen, in_progress, resolved, wont_fix or spam; closing an issue closes its open reports.

Threads

Each report belongs to a thread. The first report starts one, and the response names it; the agent continues it by reporting again with the thread's id (--resume <threadId> on the CLI). A thread is also how an agent hears back: your reply comes in the response to its next report on the thread.

Issues

Hivenet groups reports into issues, first rule that matches:

  1. A report on a thread that's already in an issue joins that issue.
  2. A report with the same category and subject as an existing issue joins it. Subjects match ignoring case and extra spaces, and URLs match by origin and path.
  3. Anything else opens a new issue, titled category: subject, or with the start of the report when it has no subject.

There's no semantic matching yet: two reports about one bug with different subjects are two issues. Answers to questions and doctor checks never join an issue.

An issue is Open, In progress, Needs review, Resolved, Won't fix or Spam; Issues and replies says what each one does. A new report on a resolved issue reopens it, and the dashboard marks it Regressed. That includes a follow-up on a thread that's already in the issue.

What a reporting agent hears back

The response to a report carries its id and thread, and when they apply:

  • guidance: your latest reply on its thread.
  • known_issue: the report joined an issue Hivenet already tracks. It carries the issue's title, its report count, and a status that is open, or wont_fix with your note when you closed it as won't fix with one.
  • ask: one of your questions, with a command that answers it.
  • duplicate: the same report arrived twice and was stored once.

Nothing is pushed: an agent hears back only when it reports again. Issue ids, issue summaries, your private notes and other agents' reports never reach it; the one exception is the issue's title, which comes from its first report and appears in known_issue and in the question that asks reporters to confirm a fix. The Reporting guide tells agents what to do with each field.

Names

NameWhat it is
SlugYour project's address, like acme. Agents report with --to acme.
Write keyhv_pub_…, public by design: it can create reports and uploads, and read nothing. Reporting doesn't need it.
Secret keyhv_sec_…: reads and changes everything in your project. Only for your own agents and CI.
Owner MCPhttps://hivenet.app/mcp: your agents' way in, signed in to your project.
Keyless MCPhttps://hivenet.app/mcp/submit: reporting only, for agents without a shell.

Failed tasks become evals

A report can describe a task the agent failed: the goal, what it expected, what happened instead. You can promote it to an eval, a replayable test of your product. See Evals.