Skip to content

Decouple ai-reaction emoji from status comments [BREAKING]#15856

Merged
pelikhan merged 15 commits intomainfrom
copilot/decouple-ai-reaction-status-comment
Feb 15, 2026
Merged

Decouple ai-reaction emoji from status comments [BREAKING]#15856
pelikhan merged 15 commits intomainfrom
copilot/decouple-ai-reaction-status-comment

Conversation

Copy link
Contributor

Copilot AI commented Feb 15, 2026

✅ BREAKING CHANGE: Reaction and Status Comments Now Independent

Fully decoupled reaction and status-comment - both must be explicitly enabled.

Breaking Change

New behavior:

on:
  reaction: eyes           # Only adds 👀 reaction
  # No status comments unless explicitly enabled

To get both:

on:
  reaction: eyes
  status-comment: true     # Must be explicit

Implementation

Core Changes (4 Go files, simplified):

  • compiler_types.go: Added StatusComment *bool field
  • compiler_safe_outputs.go: Parse status-comment from on section
  • compiler_activation_jobs.go: Direct pointer check if data.StatusComment != nil && *data.StatusComment
  • notify_comment.go: Direct pointer check, removed unused variables, updated doc comment

Schema: Added status-comment field validation

Testing (simplified):

  • 6 focused test cases covering all combinations
  • 3 compilation tests for end-to-end validation
  • Updated existing tests to reflect breaking change
  • All tests passing ✅

Files Changed

Source code (8 files):

  • pkg/workflow/compiler_types.go
  • pkg/workflow/compiler_safe_outputs.go
  • pkg/workflow/compiler_activation_jobs.go
  • pkg/workflow/notify_comment.go
  • pkg/workflow/notify_comment_test.go
  • pkg/workflow/status_comment_decoupling_test.go (new)
  • pkg/workflow/test_data/test-status-comment-decoupling.md (new)
  • pkg/parser/schemas/main_workflow_schema.json

Workflows migrated (7 files):

  • .github/workflows/smoke-copilot.md - Added status-comment: true
  • .github/workflows/smoke-claude.md - Added status-comment: true
  • .github/workflows/smoke-codex.md - Added status-comment: true
  • .github/workflows/smoke-copilot-sdk.md - Added status-comment: true
  • .github/workflows/smoke-opencode.md - Added status-comment: true
  • .github/workflows/smoke-project.md - Added status-comment: true
  • .github/workflows/smoke-temporary-id.md - Added status-comment: true

Lock files: Automatically recompiled (all 154 workflows)

Validation

✅ All checks passing:

  • Tests: 6/6 unit + 3/3 integration
  • Formatting: make fmt
  • Linting: make lint
  • Code simplified and cleaned per review
  • All smoke workflows migrated successfully

Migration Required

⚠️ Workflows using reaction: eyes must add status-comment: true to preserve status comments.

Example: All 7 smoke workflows have been updated in this PR to demonstrate the migration.

Original prompt

This section details on the original issue you should resolve

<issue_title>Decouple ai-reaction emoji from status comment</issue_title>
<issue_description>When ai-reaction: eyes is set, the workflow both adds a reaction emoji to the trigger and posts a "started/completed" status comment.

It might be nice to separate the reaction from the status comment, perhaps adding a status-comment field to independently control the comment:

ai-reaction: eyes          # Adds 👀 reaction
status-comment: false       # No "started/completed" comment

or maybe adding an ai-reaction of eyes-only or something similar.

Alternatively, it might be nice to have a setting on add-comment where it will update the "ai-reaction" tracking comment instead of posting a new one.</issue_description>

Comments on the Issue (you are @copilot in this section)

@pelikhan Copilot decouple both as described in the issue.

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.


Changeset

  • Type: minor
  • Description: Decouple the ai-reaction emoji from status comments so each must be enabled explicitly (e.g., add status-comment: true when you still want the started/completed comment).

Generated by Changeset Generator



✨ PR Review Safe Output Test - Run 22029968048

💥 [THE END] — Illustrated by Smoke Claude

Copilot AI and others added 6 commits February 15, 2026 03:19
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Decouple ai-reaction emoji from status comment Decouple ai-reaction emoji from status comments Feb 15, 2026
Copilot AI requested a review from pelikhan February 15, 2026 03:34
@pelikhan
Copy link
Contributor

@copilot remove legacy bundling of reaction and status comment. Both have to be enabled separately.

@@ -0,0 +1,112 @@
---
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot delete file

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deleted in commit 97854be.

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 15, 2026

@copilot remove legacy bundling of reaction and status comment. Both have to be enabled separately.

Done! Removed the legacy bundling in commit 74837ae. Both reaction and status-comment must now be enabled separately:

on:
  reaction: eyes           # Only adds reaction
  status-comment: true     # Must be explicit for status comments

Breaking change: Existing workflows with only reaction: eyes will no longer create status comments.

Copilot AI changed the title Decouple ai-reaction emoji from status comments Decouple ai-reaction emoji from status comments [BREAKING] Feb 15, 2026
Copilot AI requested a review from pelikhan February 15, 2026 03:47
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
@pelikhan
Copy link
Contributor

@copilot review and clean, simplify, tidy changes

Copilot AI and others added 2 commits February 15, 2026 03:59
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 15, 2026

@copilot review and clean, simplify, tidy changes

Reviewed and cleaned up in commits 59e7eaf and 1e38c60:

Simplified:

  • Direct pointer checks instead of intermediate variables
  • Removed unused local variables
  • Merged redundant test cases (6 focused tests instead of duplicates)
  • Updated outdated doc comments

Changes: 4 Go files, 1 schema file, 2 test files (8 total source files + auto-recompiled lock files)

All tests passing ✅

@pelikhan pelikhan added the smoke label Feb 15, 2026
@github-actions
Copy link
Contributor

🧪 Smoke Project is now testing project operations...

@github-actions
Copy link
Contributor

github-actions bot commented Feb 15, 2026

✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟

@github-actions
Copy link
Contributor

📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing...

@github-actions
Copy link
Contributor

github-actions bot commented Feb 15, 2026

🎬 THE ENDSmoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨

@github-actions
Copy link
Contributor

🧪 Smoke Temporary ID is now testing temporary ID functionality...

@github-actions
Copy link
Contributor

github-actions bot commented Feb 15, 2026

Smoke Copilot SDK failed. Please review the logs for details.

@pelikhan pelikhan marked this pull request as ready for review February 15, 2026 14:38
Copilot AI review requested due to automatic review settings February 15, 2026 14:38
@pelikhan pelikhan merged commit 6e7636e into main Feb 15, 2026
41 of 42 checks passed
@pelikhan pelikhan deleted the copilot/decouple-ai-reaction-status-comment branch February 15, 2026 14:38
@github-actions
Copy link
Contributor

Smoke Temporary ID completed successfully. Temporary ID validation passed.

@github-actions
Copy link
Contributor

Agent Container Tool Check ✅

Tool Status Version
bash 5.2.21
sh available
git 2.52.0
jq 1.7
yq 4.52.2
curl 8.5.0
gh 2.86.0
node 20.20.0
python3 3.12.3
go 1.24.13
java 21.0.10 (OpenJDK Temurin)
dotnet 10.0.102

Result: 12/12 tools available ✅

All required development tools are accessible in the agent container environment.

AI generated by Agent Container Smoke Test

@github-actions
Copy link
Contributor

Smoke Project completed successfully. All project operations validated.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements a breaking change that decouples the ai-reaction emoji from status comments. Previously, setting reaction: eyes automatically created status comments (started/completed). Now, both features must be explicitly enabled independently.

Changes:

  • Added StatusComment *bool field to enable/disable status comments independently of reactions
  • Updated compiler logic to check StatusComment field instead of AIReaction for comment generation
  • Migrated 7 smoke test workflows to explicitly enable status-comment: true
  • Added comprehensive test coverage with 6 unit tests and 3 integration tests

Reviewed changes

Copilot reviewed 163 out of 163 changed files in this pull request and generated no comments.

Show a summary per file
File Description
pkg/workflow/compiler_types.go Added StatusComment *bool field to WorkflowData
pkg/workflow/compiler_safe_outputs.go Parse status-comment from on section with boolean validation
pkg/workflow/compiler_activation_jobs.go Changed condition from AIReaction check to StatusComment pointer check
pkg/workflow/notify_comment.go Guard conclusion update step with StatusComment check, updated docs
pkg/workflow/notify_comment_test.go Updated 8 tests to reflect breaking change, added expectUpdateStep flag
pkg/workflow/status_comment_decoupling_test.go New file with 6 test cases covering all combinations
pkg/workflow/test_data/test-status-comment-decoupling.md Test workflow data file
pkg/parser/schemas/main_workflow_schema.json Added status-comment boolean field to schema
7 smoke workflow files All migrated with status-comment: true
154 lock files Automatically regenerated, removed status comment steps where appropriate
.changeset/minor-decouple-status-comment.md Changeset describing the breaking change

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link
Contributor

🎪 The Copilot circus is in town! 🎪

Just swung by to say the smoke test agent is performing its digital gymnastics in run §22037471608.

Testing all the bells and whistles - from MCP servers to Playwright acrobatics!

Back flips away

AI generated by Smoke Copilot

@github-actions
Copy link
Contributor

Smoke Test Results

PRs Reviewed:

Tests:

  • ✅ GitHub MCP
  • ✅ Safe Inputs GH CLI
  • ❌ Serena MCP (not available)
  • ✅ Playwright
  • ✅ File Writing
  • ✅ Bash Tool
  • ✅ Discussion Query
  • ✅ Build gh-aw
  • ✅ Discussion Creation
  • ✅ Workflow Dispatch
  • ✅ PR Review

Overall: PASS (10/11)

cc @pelikhan @Copilot

AI generated by Smoke Copilot

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the decoupling of ai-reaction and status-comment. The changes cleanly separate these concerns while maintaining backward compatibility where possible. Good work on the breaking change documentation!

📰 BREAKING: Report filed by Smoke Copilot for issue #15856

if statusCommentBool, ok := statusCommentValue.(bool); ok {
workflowData.StatusComment = &statusCommentBool
compilerSafeOutputsLog.Printf("status-comment set to: %v", statusCommentBool)
} else {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice separation of concerns! Breaking status-comment into its own flag gives users more control.

"gh-aw": minor
---

Decouple the status comment from the ordinary ai-reaction emoji so they must each be enabled explicitly (e.g., add `status-comment: true` if you still need the started/completed comment). This fixes github/gh-aw#15831.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clear changeset - this BREAKING change is well documented with migration path.

@github-actions
Copy link
Contributor

Smoke test results:
PRs: [docs] Update sandbox documentation to reflect SRT removal; [jsweep] Clean is_truthy.test.cjs
GitHub MCP: ✅
Serena MCP: ✅
Playwright: ✅
File write+cat: ✅
Build (make build): ✅
Overall: PASS

AI generated by Smoke Codex

@github-actions
Copy link
Contributor

📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💥 Automated smoke test review - all systems nominal!

💥 [THE END] — Illustrated by Smoke Claude for issue #15856

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Decouple ai-reaction emoji from status comment

2 participants