Conversation
…r aw-harness spec §8.3 Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a03d2041-2904-44b1-9652-b34592421793 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…ring concatenation Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a03d2041-2904-44b1-9652-b34592421793 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot the steering extension should be added automatically to the applied arguments. |
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/b4d9fcd0-caaf-4d2f-83d9-59b0f3a0652a Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…ensions, shell compat) Agent-Logs-Url: https://github.com/github/gh-aw/sessions/b4d9fcd0-caaf-4d2f-83d9-59b0f3a0652a Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
Create a chi.yml job that triggers on pi extensions files and runs integration tests using Claude anthropic key, pi agent and our extensions |
|
@copilot rename chi.yml to chi.yml |
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/7f09e465-6320-4aac-a7be-94ec441fdcae Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…thropic key Agent-Logs-Url: https://github.com/github/gh-aw/sessions/7f09e465-6320-4aac-a7be-94ec441fdcae Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/7f09e465-6320-4aac-a7be-94ec441fdcae Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done in 551fc17. 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 rename chi.yml to chi.yml |
The file is already named |
|
@copilot rename chi.yml to cpi.yml |
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/faf0ae2d-3c89-453a-a2c5-1c2111acfaf1 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds a built-in Pi steering extension and wires it into Pi agent execution, plus new unit/integration coverage around the extension behavior.
Changes:
- Auto-injects
pi_steering_extension.cjsinto Pi CLI invocations generated by the workflow engine. - Adds a new steering extension implementation and Vitest unit tests for config loading, event registration, and one-time warning/critical injection behavior.
- Adds a GitHub Actions workflow intended to run Pi extension integration checks, and updates the checked-in dev lock workflow to include the injected extension.
Show a summary per file
| File | Description |
|---|---|
pkg/workflow/pi_engine_test.go |
Updates Pi engine execution-step assertions to expect the built-in extension path. |
pkg/workflow/pi_engine.go |
Appends the built-in steering extension to generated pi run commands. |
actions/setup/js/pi_steering_extension.test.cjs |
Adds unit tests for config parsing and steering threshold behavior. |
actions/setup/js/pi_steering_extension.cjs |
Implements the Pi steering extension and environment-driven threshold config. |
.github/workflows/dev.lock.yml |
Regenerates locked workflow output so Pi execution includes the extension. |
.github/workflows/cpi.yml |
Adds a new Pi integration workflow to install Pi CLI, run the extension, and upload logs. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 6/6 changed files
- Comments generated: 3
| types: [opened, synchronize, reopened, ready_for_review] | ||
| paths: | ||
| - 'actions/setup/js/pi_*.cjs' | ||
| - '.github/workflows/chi.yml' |
| if grep -q "\[gh-aw/steering\]" /tmp/pi-output.log; then | ||
| echo "✅ Steering extension initialized (found [gh-aw/steering] in output)" >> $GITHUB_STEP_SUMMARY | ||
| else | ||
| echo "⚠️ [gh-aw/steering] marker not found in output — extension may not have been loaded" >> $GITHUB_STEP_SUMMARY |
| const timeoutMinutes = parseFloat(process.env.GH_AW_TIMEOUT_MINUTES || "") || DEFAULT_TIMEOUT_MINUTES; | ||
| const timeWarningMinutes = parseFloat(process.env.GH_AW_STEERING_TIME_WARNING_MINUTES || "") || DEFAULT_TIME_WARNING_MINUTES; | ||
| const timeCriticalMinutes = parseFloat(process.env.GH_AW_STEERING_TIME_CRITICAL_MINUTES || "") || DEFAULT_TIME_CRITICAL_MINUTES; |
🧪 Test Quality Sentinel ReportTest Quality Score: 63/100
Test Classification DetailsView All 17 JavaScript Test Classifications
Go test file ( Flagged Tests — Requires Review
|
Summary
Adds
actions/setup/js/pi_steering_extension.cjs, a Pi agent steering extension as described in the aw-harness specification §8.3. The extension is automatically injected into every Pi agent invocation by the gh-aw compiler — no workflow frontmatter configuration is required.The
--extensionflag is appended to everypi runcommand inpkg/workflow/pi_engine.go:A new
cpi.ymlGitHub Actions workflow runs end-to-end integration tests for Pi extensions using Pi CLI and the Anthropic API key.What the extension does
Implements Extension 3: Steering (Resource Pressure) from the aw-harness spec:
agent_startto record the session start timeturn_endto compute remaining time each turnGH_AW_STEERING_TIME_WARNING_MINUTES(default: 5 min)GH_AW_STEERING_TIME_CRITICAL_MINUTES(default: 2 min)Configuration (environment variables)
GH_AW_TIMEOUT_MINUTES30GH_AW_STEERING_TIME_WARNING_MINUTES5GH_AW_STEERING_TIME_CRITICAL_MINUTES2Set these via
engine.envin the workflow frontmatter if non-default values are needed.cpi.yml integration test workflow
.github/workflows/cpi.ymltriggers onpull_requestwhenactions/setup/js/pi_*.cjsfiles change and:@pi/cliANTHROPIC_API_KEYand the steering extension loaded via--extension[gh-aw/steering]initialization marker appears in Pi's output to confirm the extension loaded/tmp/pi-output.logand/tmp/pi-streaming.jsonlas artifacts on every runFiles changed
actions/setup/js/pi_steering_extension.cjs— steering extension implementationactions/setup/js/pi_steering_extension.test.cjs— 17 Vitest unit tests covering config loading, event registration, threshold logic, and once-only injection behaviorpkg/workflow/pi_engine.go— auto-injects--extensionflag inGetExecutionStepspkg/workflow/pi_engine_test.go— updated to assert the steering extension is present in the execution step.github/workflows/cpi.yml— integration test workflow for Pi extensions using Pi CLI and Anthropic key