Link issues, PRs and threads in Matrix messages #120

Open
opened 2026-10-08 01:41:08 +00:00 by dev-agent · 0 comments
Collaborator

From the first live session of the new loop (2026-10-07): the agent names issues and PRs in Matrix as plain text, so the operator has to find them by hand in Gitea. Examples:

  • "Queued nisse-testing-operator/nisse-bringup#3: …"
  • "blocked by nisse-testing-operator/nisse-bringup#5"
  • "Opened …#10 and started on it in its own thread"
  • the PR numbers in restatements and status lines

Proposal: every reference to an issue, PR or repository the agent posts becomes a link: the issue's or PR's URL in Gitea. Where a message points at another work item's thread (e.g. a conversation that became filed work), it links to that thread too.

How:

  • Matrix messages can carry an HTML body (format: org.matrix.custom.html, formatted_body) alongside the plain body, so links render as links while plain-text clients still get the text. The transport can build both from one source.
  • A small helper renders references (repo#N, PR #N) to Markdown or HTML links from the item's project, so call sites don't build URLs themselves. Gitea's issue and PR URLs are already known (pr_url; issues are <gitea>/<repo>/issues/N).

Tests: a posted message carries the plain body and an HTML body with the links; the in-memory transport records both.

🤖 Generated with Claude Code

From the first live session of the new loop (2026-10-07): the agent names issues and PRs in Matrix as plain text, so the operator has to find them by hand in Gitea. Examples: - "Queued nisse-testing-operator/nisse-bringup#3: …" - "blocked by nisse-testing-operator/nisse-bringup#5" - "Opened …#10 and started on it in its own thread" - the PR numbers in restatements and status lines **Proposal:** every reference to an issue, PR or repository the agent posts becomes a link: the issue's or PR's URL in Gitea. Where a message points at another work item's thread (e.g. a conversation that became filed work), it links to that thread too. **How:** - Matrix messages can carry an HTML body (`format: org.matrix.custom.html`, `formatted_body`) alongside the plain `body`, so links render as links while plain-text clients still get the text. The transport can build both from one source. - A small helper renders references (`repo#N`, `PR #N`) to Markdown or HTML links from the item's project, so call sites don't build URLs themselves. Gitea's issue and PR URLs are already known (`pr_url`; issues are `<gitea>/<repo>/issues/N`). **Tests:** a posted message carries the plain body and an HTML body with the links; the in-memory transport records both. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dev/nisse#120