feat: move agent status comments into fullsend run - #1871
Conversation
Site previewPreview: https://adb98c87-site.fullsend-ai.workers.dev Commit: |
ReviewFindingsMedium
Low
Info
Previous runReviewFindingsMedium
Low
Info
Previous run (2)ReviewFindingsMedium
Low
Info
Previous run (3)ReviewFindingsMedium
Low
Info
Previous run (4)ReviewFindingsMedium
Low
Info
Previous run (5)ReviewFindingsHigh
Medium
Low
Info
Previous run (6)ReviewFindingsMedium
Low
Previous run (7)ReviewFindingsMedium
Low
Previous run (8)ReviewFindingsMedium
Low
Previous run (9)ReviewFindingsMedium
Low
Previous run (10)ReviewFindingsMedium
Low
Previous run (11)ReviewFindingsMedium
Low
Previous run (12)ReviewFindingsHigh
Medium
Low
|
2704700 to
cdd19b3
Compare
cdd19b3 to
0a1fc6f
Compare
ralphbean
left a comment
There was a problem hiding this comment.
Review
I think this needs one change before we can merge. See inline.
0a1fc6f to
4ad97fe
Compare
ralphbean
left a comment
There was a problem hiding this comment.
LGTM. Token masking and cancellation wiring both look good. Reaction removal is clean.
4ad97fe to
c8bdf39
Compare
ralphbean
left a comment
There was a problem hiding this comment.
LGTM. One minor note inline.
|
Addressing the latest review findings: [protected-path] — Acknowledged. These are mechanical changes passing status notification inputs to the composite action, authorized by #1859 and #1873. [error-message-consistency] — Fixed. Changed to [input-validation] SHA hex validation — Fixed. Added [test-adequacy] empty
Also addressed the inline review comment: |
c8bdf39 to
c6f1c63
Compare
Findings addressed; protected-path requires human approval.
ralphbean
left a comment
There was a problem hiding this comment.
LGTM. One minor note inline.
- Add DeleteIssueComment to FakeClient error-injection and thread-safety tests - Fix stale ADR 0011 doc reference to point at installation guide - Add warnf when start comment is missing from timeline during analyzeTimeline Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Greg Allen <gallen@redhat.com>
c35aee0 to
543a87d
Compare
- Add DeleteIssueComment to FakeClient error-injection and thread-safety tests - Fix stale ADR 0011 doc reference to point at installation guide - Add warnf when start comment is missing from timeline during analyzeTimeline Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Greg Allen <gallen@redhat.com>
543a87d to
af6872d
Compare
ifireball
left a comment
There was a problem hiding this comment.
Approving functionality as clarified by the comment discussion
Signed-off-by: Greg Allen <gallen@redhat.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Greg Allen <gallen@redhat.com>
- Add DeleteIssueComment to FakeClient error-injection and thread-safety tests - Fix stale ADR 0011 doc reference to point at installation guide - Add warnf when start comment is missing from timeline during analyzeTimeline Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Greg Allen <gallen@redhat.com>
af6872d to
8defe0e
Compare
Closes #1859, #1873. Supersedes #1860. Related: #837, #957.
Summary
Adds forge-portable agent status comments to
fullsend run. When agents start and complete, the CLI posts status comments on the originating issue/PR — all driven byconfig.yamlsettings and passed via CLI flags from the CI dispatcher.status_notificationssection inconfig.yamlcontrols comment start/completion (enabled/disabled)forge.Clientinterface methods, notghCLI or GitHub-specific shell commands — works for any forge implementationComment format
Start:
Completion (edited in place when possible):
Cancellation: Deletes the start comment, leaving no trace on the timeline.
Config example
When
status_notificationsis omitted from config, comments default to enabled.Changes
Config layer (
internal/config/)StatusNotificationConfig,CommentNotificationConfigstruct typesStatusNotifications *StatusNotificationConfigfield onRepoDefaults(omitempty — existing configs unaffected)"","enabled", or"disabled"Forge layer (
internal/forge/)Clientinterface:DeleteIssueCommentFakeClientstub with recorder slice (DeletedComments)Status comment package (
internal/statuscomment/)Notifierstruct managing the full lifecyclePostStart: creates comment with HTML marker for identificationPostCompletion: finds start comment via timeline analysis, edits in place if still last or if agent posted output, otherwise posts new completion commentCLI wiring (
internal/cli/run.go)--run-url,--status-repo,--status-number,--status-tokensetupStatusNotifier()readsStatusNotificationsfromconfig.yaml, creates aforge/githubclient, and returns aNotifierrunErrGH_TOKENenv var when--status-tokenis not providedGITHUB_SHAandGITHUB_RUN_IDenv vars for commit and run identificationComposite action + workflows
action.yml: 4 new optional inputs (run-url,status-repo,status-number,status-token); conditional flag construction in the "Run fullsend" stepreusable-{code,fix,retro,review,triage}.yml) passrun-url,status-repo,status-number,status-tokento the actionTest plan
go test ./internal/config/...— notification config parse/validate/marshalgo test ./internal/forge/github/...— DeleteIssueComment API testgo test ./internal/statuscomment/...— full lifecycle with FakeClientgo test ./...— all tests passgo vet ./...— cleanmake lint— all checks passstatus_notificationsis omitted from config🤖 Generated with Claude Code