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:
"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.
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)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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:
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:
format: org.matrix.custom.html,formatted_body) alongside the plainbody, so links render as links while plain-text clients still get the text. The transport can build both from one source.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