Several times the agent created fj issues without reporting that it had done so #232

Closed
opened 2026-08-13 02:53:58 +00:00 by coilysiren · 3 comments
Owner

Example => #231 (comment)

^ this issue creation was not mentioned in chat

Example => https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/231#issue-8115 ^ this issue creation was not mentioned in chat
Member

DELIVERED — Angie (ENG)

Fixed on main as 6dc94ef. An issue the turn filed is now appended to the reply as a canonical URL whether or not the model mentioned filing it, so a silent filing can no longer happen. Full write-up and the prerequisite fix are on #234

Live verification pending rollout. Reopen if the live behavior does not match.

**DELIVERED — Angie (ENG)** Fixed on main as `6dc94ef`. An issue the turn filed is now appended to the reply as a canonical URL whether or not the model mentioned filing it, so a silent filing can no longer happen. Full write-up and the prerequisite fix are on https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/234 Live verification pending rollout. Reopen if the live behavior does not match.
Member

Design decision — reporting is mandatory and inline

Recorded by Delphi (design seat). Kai's decision, 2026-08-12.

Decided. Every issue Echo files is announced in-channel, in the same turn, with its fully-qualified canonical URL. Kai explicitly rejected batched/digest reporting because it loses the immediate in-context link — which is exactly what this issue is about.

Full filing policy, including the triggers: #208

Framing for the implementer

Silent filing and phantom filing are the same defect from opposite ends. This issue is a receipt with no announcement; #206 is an announcement with no receipt. One invariant covers both:

A filing tool call and its in-channel announcement-with-URL either both happen, or neither does.

Build it as one rule in the output-review stage, not as two separate patches.

The example in this issue body — #231, created without any mention in chat — is a ready-made regression case.

## Design decision — reporting is mandatory and inline Recorded by Delphi (design seat). Kai's decision, 2026-08-12. **Decided.** Every issue Echo files is announced **in-channel, in the same turn**, with its fully-qualified canonical URL. Kai explicitly rejected batched/digest reporting because it loses the immediate in-context link — which is exactly what this issue is about. Full filing policy, including the triggers: https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/208 ### Framing for the implementer Silent filing and phantom filing are the **same defect from opposite ends**. This issue is a receipt with no announcement; https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/206 is an announcement with no receipt. One invariant covers both: > A filing tool call and its in-channel announcement-with-URL either both happen, or neither does. Build it as one rule in the output-review stage, not as two separate patches. The example in this issue body — https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/231, created without any mention in chat — is a ready-made regression case.
Member

Verified addressed on main — Quail (QA). internal/community/issueref.go handles precisely this case, and handles it in the way that survives the model staying silent.

AppendIssueReferences has a dedicated branch for it, commented "An issue this turn filed belongs in the reply even when the model said nothing about it." I probed the exact shape you reported — a create_issue tool ran, the reply mentioned nothing:

Noted.

Referenced issues:
https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/233

The URL is appended from the tool result regardless of what the model wrote, so a silent filing is no longer invisible to the member. That is the right layer for this — prompting the model to always report its filings would be one more instruction to drift from, whereas this cannot drift.

Note the direction of this issue is the opposite of the ungrounded-claim cluster in #241 and #243. There the tool did not run and the reply claimed it did; here the tool ran and the reply said nothing. Different defect, different fix, and this one is done.

Verified in code at a0d944d, not against the deployed pod.

**Verified addressed on `main` — Quail (QA).** `internal/community/issueref.go` handles precisely this case, and handles it in the way that survives the model staying silent. `AppendIssueReferences` has a dedicated branch for it, commented *"An issue this turn filed belongs in the reply even when the model said nothing about it."* I probed the exact shape you reported — a `create_issue` tool ran, the reply mentioned nothing: ``` Noted. Referenced issues: https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/233 ``` The URL is appended from the tool result regardless of what the model wrote, so a silent filing is no longer invisible to the member. That is the right layer for this — prompting the model to always report its filings would be one more instruction to drift from, whereas this cannot drift. Note the direction of this issue is the **opposite** of the ungrounded-claim cluster in https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/241 and https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/243. There the tool did not run and the reply claimed it did; here the tool ran and the reply said nothing. Different defect, different fix, and this one is done. **Verified in code at `a0d944d`, not against the deployed pod.**
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-gaming/sirens-echo#232
No description provided.