Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
The prompt generation only happens in activation, so it can only see needs job from activation job. |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot The prompt generation only happens in activation, so it can only see needs job from activation job. |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Fixed in c6cfb39. The implementation now only generates Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot we only need this feature for the "Substitute placeholders" step |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Fixed in 8ab0275. Known needs.* expressions are now added only to the "Substitute placeholders" step, not to the "Create prompt with built-in context" step. The prompt creation step now only has expressions extracted from markdown, while the substitution step has both markdown expressions and known needs expressions. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot add tests |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Added in 239d94a. Comprehensive test suite includes:
Total: 10 test functions with 34 test cases covering expression generation, filtering, normalization, and integration scenarios. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot The step that computes the clean needs.activation.output.text need to be placed before the steps that generate the prompt. And the expression "needs.activation.outputs.text" need to be replaced by the local step name.outputs.text (same for title, body). |
|
📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing... |
|
@copilot instructions and documentation about needs.agent.outputs.text becoming steps.sanitized.text |
Agent Container Tool Check ✅
Result: 12/12 tools available ✅
|
|
✅ Smoke Temporary ID completed successfully. Temporary ID validation passed. |
|
✅ Smoke Project completed successfully. All project operations validated. |
|
PR titles: Fix Go linting errors in known_needs_expressions_test.go; Document agentic engine architecture and extensibility patterns
|
|
🧪 Smoke Test Results: §22088201180 PRs Reviewed:
Results:
Status: PARTIAL PASS (1/8 failed)
|
There was a problem hiding this comment.
✅ Reviewed as part of smoke test §22088201180
This PR systematically adds GH_AW_NEEDS_PRE_ACTIVATION_OUTPUTS_* environment variables across all workflow lock files, making pre-activation outputs accessible in setup_globals context. The changes are consistent and follow the established pattern.
📰 BREAKING: Report filed by Smoke Copilot for issue #16277
| GH_AW_GITHUB_REPOSITORY: ${{ github.repository }} | ||
| GH_AW_GITHUB_RUN_ID: ${{ github.run_id }} | ||
| GH_AW_GITHUB_WORKSPACE: ${{ github.workspace }} | ||
| GH_AW_NEEDS_PRE_ACTIVATION_OUTPUTS_ACTIVATED: ${{ needs.pre_activation.outputs.activated }} |
There was a problem hiding this comment.
Consistent pattern - these env vars are now available across all workflow files. Nice systematic change!
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Added in e082f19. Documentation includes: User-facing (
Developer (
Technical deep-dive (
Code comments (
Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
There was a problem hiding this comment.
💥 Automated smoke test review - all systems nominal!
💥 [THE END] — Illustrated by Smoke Claude for issue #16277
|
@copilot add a codemod that converts the old expressions to the new expression |
…tputs Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Added in d5322e1. Created List available codemods: gh aw fix --list-codemodsDry-run (see what would change): gh aw fix my-workflowApply transformation: gh aw fix my-workflow --writeThe codemod uses regex with word boundary checking to transform |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Pregenerate accessible needs.* expressions and transform activation outputs ✅
Successfully implemented generation of accessible
needs.*expressions for the "Substitute placeholders" step with automatic transformation of activation outputs to sanitized step references, plus a codemod for migrating existing workflows.Key Insights
needs: activationadded automatically - so they run AFTER activationImplementation
The compiler now:
needs.*expressions to the "Substitute placeholders" step onlyneeds.activation.outputs.{text|title|body}tosteps.sanitized.outputs.{text|title|body}during compilationCodemod Transformation
Automatic (during compilation):
transformActivationOutputs()function inexpression_extraction.goManual (via CLI command):
gh aw fixcommand now includesactivation-outputs-to-sanitized-stepcodemodgh aw fix --writeto update existing workflow markdown filesgh aw fixshows what would be changedTransformations:
needs.activation.outputs.text→steps.sanitized.outputs.textneeds.activation.outputs.title→steps.sanitized.outputs.titleneeds.activation.outputs.body→steps.sanitized.outputs.bodyFeatures:
text_customis not transformed)Codemod CLI Usage
List available codemods:
Dry-run (see what would change):
Apply fixes:
Example output:
Documentation Added
User-Facing Documentation (
docs/src/content/docs/reference/templating.md):Developer Documentation (
AGENTS.md):Technical Deep-Dive (
scratchpad/activation-output-transformations.md):Code Comments (
compiler_activation_jobs.go):Code Review Fixes
Fixed transformation loop (comment 2815031311):
"text_custom || needs.activation.outputs.text"correctly transforms the second occurrenceFixed dependency logic (comment 2815031321):
getCustomJobsBeforeActivation()now only includes jobs explicitly depending on pre_activationcompiler_jobs.go:383-388which auto-addsneeds: activationto jobs without explicit needsAdded negative assertions (comment 2815031295):
Test Coverage Summary
Expression Extraction Tests:
TestTransformActivationOutputs- 12 test cases for transformation logicTestExpressionExtractor_ActivationOutputTransformation- integration testKnown Needs Expression Tests:
Codemod Tests:
TestActivationOutputsCodemod- 10 test cases for CLI codemodTestActivationOutputsCodemodMetadata- metadata validationCodemod Registry Tests:
Total: 14 test functions with 56+ test cases
Verification Results ✅
needs.activation.outputs.{text|title|body}in compiled workflowssteps.sanitized.outputs.*needs: activation💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.
Changeset
needs.*expression mappings and automatically rewriteneeds.activation.outputs.{text,title,body}tosteps.sanitized.outputs.*, keeping prompts referencing sanitized activation outputs working even when the markdown is updated at runtime.✨ PR Review Safe Output Test - Run 22088201181