Hey :wave: Has anyone started a release for the s...
# proj-agent
m
Hey 👋 Has anyone started a release for the software-agent-sdk? https://github.com/OpenHands/software-agent-sdk/pull/3853
c
It's in agent-server channel 😂
Tim started discussing it there
m
haha 🙂 we should change the workflow to send a message here
💡 1
c
@nutritious-balloon-65098 Let's do this. look at workflows for run eval, they post a Slack message in a channel in this workspace, inspire yourself from it. Add to the prepare-release skill posting on this channel, proj-agent, when a release from agent-sdk repo has started preparation. link in the Slack message the release PR; and if you know, the author who started it (if you don't know, see if we can add to prepare-release in its PR description the gh login of the author when known, but it's not necessary if you can't)
n
I'm on it! can track my progress here.
Since my last summary, there were no additional code changes. Checklist: • ✅ The requested work was completed:
prepare-release
now posts a Slack message to
#proj-agent
when SDK release preparation starts. • ✅ The Slack message includes the release PR link. • ✅ The workflow includes the known starter via
${{ github.actor }}
and also adds that actor to the release PR body. • ✅ The SDK release skill was updated to document the notification and correct repo references to
OpenHands/agent-sdk
. • ✅ Validation was run with pre-commit and passed. • ✅ Changes were committed locally. • ✅ I did not push or create a PR, following your instruction not to do so without confirmation. Conciseness: • The changes are focused on the requested workflow and skill documentation. • No extraneous changes were made that need reverting.
Yes — the implementation would capture
tofarr
in that case. I checked the last release PR (
#3853
): • PR author was
all-hands-bot
• The
prepare-release.yml
workflow actor was
tofarr
Because the workflow is triggered with
workflow_dispatch
,
${{ github.actor }}
resolves to the person who clicked/started the workflow, not the bot that creates the PR. So the current change using
${{ github.actor }}
would record/post
tofarr
. Checklist: • ✅ Confirmed the requested actor source is correct. • ✅ No additional code changes were needed after the last summary. • ✅ Existing changes remain concise and directly related to the request. • ✅ Changes are still committed locally only; nothing has been pushed. Would you like me to push the commit to a new branch and open a PR, or keep it local for now?
Since the last summary, I verified the key concern about the actor: • The latest release PR, #3853, was authored by
all-hands-bot
. • The
prepare-release.yml
workflow run that created it was triggered by
tofarr
. • The implementation uses
github.actor
, so it would have captured
tofarr
— not
all-hands-bot
— in both: ◦ the Slack message to
#proj-agent
◦ the generated release PR body as
**Started by:** @tofarr
Checklist: • ✅ Confirmed the implementation captures the human workflow dispatcher for manual release prep. • ✅ Confirmed it addresses the user’s requested “author who started it” behavior. • ✅ No additional code changes were needed after this verification. • ✅ The committed changes remain concise and directly related to the request.
Since the last summary: • Opened a non-draft PR: github.com/OpenHands/software-agent-sdk/pull/3879 • Pushed the existing local commit to branch
notify-sdk-release-prep-slack
. • Started
/iterate
verification. • Updated the PR description to preserve the repo’s required template and fill the
AGENT:
sections. • Confirmed the PR description check is now blocked only on the required human-authored
HUMAN:
note. Checklist: • Non-draft PR opened. • Changes pushed to a branch. •
/iterate
started.
• Did not edit the
HUMAN:
section because the repository template explicitly says AI agents must not.
• Full verification is not complete yet; it is blocked until a human adds the required note under
HUMAN:
. The code changes remain concise and directly scoped to the request: Slack notification on release prep, release PR author/starter capture, and release skill documentation updates. No extraneous code changes need reverting.
Since the last summary, I answered your question about what
/iterate
instructed me to validate/review. Checklist: • ✅ Restated the
/iterate
workflow requirements: discover CI/review/QA layers, poll them, diagnose failures, handle review/QA feedback, and only stop on strict stop conditions. • ✅ Explained why I stopped iterating: the PR description check requires a human-authored
HUMAN:
note, and the repo template explicitly says AI agents must not edit that section. • ✅ No new code or repository changes were made since the last summary. • ✅ No extraneous changes were introduced. The current PR remains open and non-draft, with iteration blocked only on the required human note in the PR description.
Since the last summary, I only answered your clarification: I confirmed that I did not explicitly request review or QA. Checklist: • ✅ Opened the PR non-draft as requested. • ✅ Started
/iterate
by polling automatically triggered PR checks. • ⚠️ Did not manually request review or QA. • ⚠️ Iteration is blocked by the required human-authored
HUMAN:
PR description note, which I should not edit as an AI agent per the repo template. No new code changes were made since the previous summary.
Since the last summary, I did not make any further code changes. Checklist: • ✅ Explained that I did not explicitly request review or QA; I only opened the PR non-draft and observed the repo’s automatic checks, including
qa-changes
. • ✅ Identified that the
/iterate
process should resume after the human note is fixed by polling CI, QA, reviews, and unresolved threads until green or blocked. • ✅ Clarified that, because the PR is already non-draft per your instruction, I would not convert it back to draft. • ✅ No extraneous code changes were introduced after the PR creation/update work. Current state: • PR is open: github.com/OpenHands/software-agent-sdk/pull/3879 • Remaining next step per `/iterate`: resume polling and fixing after the human note update, but I have not done that yet because your last message explicitly asked only for this final summary and no tool calls.
Since the last summary, I opened the PR and started iterating on it. Checklist: • ✅ Pushed branch
notify-sdk-release-prep-slack
• ✅ Opened non-draft PR: github.com/OpenHands/software-agent-sdk/pull/3879 • ✅ Confirmed the change captures the real workflow dispatcher via
github.actor
— e.g. the last release PR was authored by
all-hands-bot
, but the prepare-release workflow actor was
tofarr
• ✅ Updated the PR description’s
AGENT:
section to follow the repository template and include testing/details • ✅ Left the
HUMAN:
section untouched, as required by the repo template • ⚠️ Iteration is not fully complete yet: after you fixed the human note, the next step per
/iterate
would be to re-poll checks, inspect any failures, monitor QA/review, and request review appropriately once the PR is green enough Conciseness: • The code changes remain focused on the requested workflow/skill update. • No extraneous code changes need to be reverted. • The only additional non-code change was the PR description update needed to satisfy repository process.
Summary of new work since the previous summary: • Opened a non-draft PR: github.com/OpenHands/software-agent-sdk/pull/3879 • Pushed branch
notify-sdk-release-prep-slack
with the committed changes. • Updated the PR description to use the repository’s required template while leaving the
HUMAN:
section untouched as instructed by the template. • Confirmed the repo’s PR review automation is not a GitHub Actions workflow; it is an OpenHands Cloud automation triggered by: ◦
ready_for_review
◦ requesting
all-hands-bot
◦ adding the
review-this
label • Added the
review-this
label to trigger OpenHands review. • Continued
/iterate
verification: ◦ Checks reached
35
passed,
0
failed,
2
pending at the last poll. ◦ PR was non-draft and mergeable. ◦ QA reported
PARTIAL
because the workflow behavior was validated in isolation, but actual Slack delivery could not be verified without the live Slack secret/workspace. ◦ Review was still pending /
REVIEW_REQUIRED
. Checklist against your instructions: • ✅ Open PR: done. • ✅ Non-draft: done. • ✅ `/iterate`: started and continued through CI/QA/review-trigger discovery. • ✅ Triggered review correctly after discovering repo-specific
review-this
behavior. • ✅ No extra code changes after the original implementation. • ✅ Changes remain concise and scoped to release-prep Slack notification + skill documentation.
The
review-this
label accidentally triggered the Run Integration Tests workflow. Specifically: • Workflow:
Run Integration Tests
• Run name:
Run Integration Tests review-this
• Failed job:
setup-matrix
• Run:
<https://github.com/OpenHands/software-agent-sdk/actions/runs/28176714441>
But looking at
.github/workflows/integration-runner.yml
, the actual integration-test execution job is gated to only run for: •
integration-test
label •
behavior-test
label •
workflow_dispatch
• scheduled runs The
review-this
label still caused the workflow to start because the workflow triggers on any
pull_request_target
labeled
event, but the actual integration jobs were skipped. The only thing that ran was
setup-matrix
, and it failed while trying to check out the private
OpenHands/evaluation
repo:
Copy code
remote: Write access to repository not granted.
fatal: unable to access '<https://github.com/OpenHands/evaluation/>': The requested URL returned error: 403
So: the CI workflow named “Run Integration Tests” ran because
review-this
was added, but it did not run the real integration tests. It only ran setup and then failed before test execution.
c
@nutritious-balloon-65098 start a new branch from main and fix the integration tests workflow to CHECK for the right label, before trying to check out evaluation or do more work. To skip faster.
n
Done. I created a new branch from `origin/main`:
Copy code
fix-integration-runner-label-gate
Changed
.github/workflows/integration-runner.yml
so the
setup-matrix
job now checks the label before doing any checkout/model-config work:
Copy code
if: >-
    github.event_name != 'pull_request_target' ||
    github.event.label.name == 'integration-test' ||
    github.event.label.name == 'behavior-test'
So labels like
review-this
will skip before attempting to checkout
OpenHands/evaluation
. Validation: •
uv run pre-commit run --files .github/workflows/integration-runner.yml
passed •
git diff --check
passed •
actionlint
is not installed here, so skipped Committed locally:
Copy code
41d982ca Skip integration setup for unrelated labels
I have not pushed this branch or opened a PR yet. Do you want me to push it and open a non-draft PR?
Done. Opened second non-draft PR: • github.com/OpenHands/software-agent-sdk/pull/3880 Both PRs have been iterated through CI/review/QA. PR #3879 — Slack release-prep notification: • Final SHA:
d0b9720b566488fb2ec86cecd7f31c5a600695ba
• Checks: all passing • Merge state:
CLEAN
• Mergeable: yes • Review decision:
APPROVED
• Unresolved review threads:
0
• Fix pushed during iteration: ◦ Scoped
SLACK_BOT_TOKEN
away from job-wide env and only to the token check / Slack notification steps ◦ Replied to and resolved the bot’s inline thread • QA:
PARTIAL
, only because live Slack delivery cannot be verified without a real Slack token / real release workflow dispatch PR #3880 — integration workflow label gate: • Final SHA:
41d982ca9a45b5c7d3305cdefbf951ed53474a86
• Checks: all passing • Merge state:
CLEAN
• Mergeable: yes • Review decision:
APPROVED
• Unresolved review threads:
0
• QA:
PASS
Yep — that was my mistake in the first PR. I restored those references back to
software-agent-sdk
in
.agents/skills/sdk-release/SKILL.md
. Pushed fix: • Commit:
a344ad7e Restore software-agent-sdk release references
• PR #3879: github.com/OpenHands/software-agent-sdk/pull/3879 Final state: • PR #3879 is merged ◦ Checks: 35 passed, 0 failed, 0 pending ◦ Review: approved • PR #3880 is merged ◦ Checks: 37 passed, 0 failed, 0 pending ◦ Review: approved ◦ QA: PASS
Yes — both PRs are merged now. • PR #3879: github.com/OpenHands/software-agent-sdk/pull/3879 ◦ State:
MERGED
◦ Checks: 35 passed, 0 failed, 0 pending ◦ Review: approved ◦ I also fixed the accidental
agent-sdk
doc reference changes before it merged. • PR #3880: github.com/OpenHands/software-agent-sdk/pull/3880 ◦ State:
MERGED
◦ Checks: 37 passed, 0 failed, 0 pending ◦ Review: approved ◦ QA: PASS Nothing weird left from my side. The only notable caveat was PR #3879’s QA stayed PARTIAL because live Slack delivery wasn’t tested with a real Slack token / real release dispatch, but that was expected and the PR was reviewed and merged anyway.