modern-fireman-99755
08/06/2026, 12:26 PMcalm-artist-7206
08/06/2026, 12:33 PMcalm-artist-7206
08/06/2026, 12:33 PMcalm-artist-7206
08/06/2026, 12:33 PMcalm-artist-7206
08/06/2026, 12:33 PMACPConversationInfo, as it seems that maybe we can kill some moremodern-fireman-99755
08/06/2026, 12:35 PMKilling code is coolthese are the best PRs 🙂
modern-fireman-99755
08/06/2026, 12:36 PMcalm-artist-7206
08/06/2026, 12:36 PMmodern-fireman-99755
08/06/2026, 12:37 PMfresh-machine-37269
08/06/2026, 12:37 PMfresh-machine-37269
08/06/2026, 12:51 PMLGTM! Love to see it!
Nit: isAnswer: Yes,still in use? If not, could we remove that too? I see this code removes usage of it.ACPConversationInfo
ACPConversationInfo (and its sibling ACPConversationPage) can be fully removed — they're no longer in use anywhere in the codebase.
The PR already removed the actual definitions from openhands-agent-server/openhands/agent_server/models.py (the deprecated compatibility aliases that pointed to `ConversationInfo`/`ConversationPage`), and the only remaining reference is a negative assertion in the OpenAPI discriminator test:
# tests/agent_server/test_openapi_discriminator.py:196
assert "ACPConversationInfo" not in schemas
That line isn't a usage — it's a guard confirming the alias no longer leaks into the generated schema. The old deprecated __getattr__ shim (which warned "deprecated as of 1.36.0, removed in 1.41.0") was deleted by this PR, along with the test test_acp_conversation_response_names_are_type_aliases that exercised it.
So there's nothing left to remove — the PR already did the full cleanup Engel suggested. The code is clean. ✅modern-fireman-99755
08/06/2026, 12:56 PMcalm-artist-7206
08/06/2026, 1:00 PMcalm-artist-7206
08/06/2026, 1:00 PMmodern-fireman-99755
08/06/2026, 1:01 PMmodern-fireman-99755
08/06/2026, 1:02 PMcalm-artist-7206
08/06/2026, 1:02 PMcalm-artist-7206
08/06/2026, 1:05 PMcalm-artist-7206
08/06/2026, 1:13 PMcalm-artist-7206
08/06/2026, 1:14 PMcalm-artist-7206
08/06/2026, 1:14 PMfresh-machine-37269
08/06/2026, 1:33 PMcalm-artist-7206
08/06/2026, 1:34 PMcalm-artist-7206
08/06/2026, 1:35 PMfresh-machine-37269
08/06/2026, 1:39 PMmain (commit 199618a, the merged PR #4394), not on the release PR. The PR is up:
PR #4397: github.com/OpenHands/software-agent-sdk/pull/4397
Here's what I changed in the security-scan workflow (3 files):
1. "blocking findings" → "findings" — Report.render() in security_scan_common.py now shows ❌ N finding(s) instead of ❌ N blocking finding(s).
2. Linked the diff — in check_approval_drift.py, the merged-head SHA in approval-drift rows is now a markdown link to the GitHub compare page between the last reviewed commit and the merged head, e.g.:
merged head was ae46a1d53
3. *Excluded openhands-* from count, still displayed* — in check_dependency_diff.py, internal openhands-* bumps are now:
◦ Excluded from the bumped: N count (only external deps counted)
◦ Noted in a separate line: _(plus N internal openhands-* bump(s))_
◦ Listed in their own collapsible section at the bottom
◦ Still scanned by OSV and the non-PyPI source check (security coverage unchanged)modern-fireman-99755
08/06/2026, 1:50 PMcalm-artist-7206
08/06/2026, 1:55 PMfresh-machine-37269
08/06/2026, 1:55 PMcalm-artist-7206
08/06/2026, 2:02 PMmodern-fireman-99755
08/06/2026, 2:03 PMmodern-fireman-99755
08/06/2026, 2:04 PMmodern-fireman-99755
08/06/2026, 2:04 PMmodern-fireman-99755
08/06/2026, 2:04 PMcalm-artist-7206
08/06/2026, 2:04 PMmodern-fireman-99755
08/06/2026, 2:06 PMmodern-fireman-99755
08/06/2026, 2:06 PMcalm-artist-7206
08/06/2026, 2:07 PMcalm-artist-7206
08/06/2026, 2:07 PMmodern-fireman-99755
08/06/2026, 2:07 PMfresh-machine-37269
08/06/2026, 2:14 PMorigin/main into fix/postinstall-message-show-run-command (clean merge, only package.json auto-merged) and pushed to PR #16338.
CI: all green ✅ — 15 passed, 2 skipped, 0 failing.
Notably mock-llm-docker-e2e (the last one running) finished successfully. No flaky failures this time.calm-artist-7206
08/06/2026, 2:16 PMfresh-machine-37269
08/06/2026, 2:16 PMfix/postinstall-message-show-run-command branch adds a postinstall message that prints guidance after a global install (npm install -g @openhands/agent-canvas) telling users to run agent-canvas to start the canvas — including the default URL, useful CLI options, and a docs link.
Key details:
• It uses an inline node -e command (not an external script file) so it works safely in Docker builds where only package.json is present during npm ci.
• The command checks npm_config_global, so it only prints for global installs — library, local, and Docker builds stay silent.
• Includes ANSI color codes for readability.
PR: github.com/OpenHands/OpenHands/pull/16338calm-artist-7206
08/06/2026, 2:16 PMcalm-artist-7206
08/06/2026, 2:17 PMcalm-artist-7206
08/06/2026, 2:20 PMfresh-machine-37269
08/06/2026, 2:20 PMcalm-artist-7206
08/06/2026, 2:23 PMmodern-fireman-99755
08/06/2026, 2:25 PMcalm-artist-7206
08/06/2026, 2:25 PMcalm-artist-7206
08/06/2026, 2:26 PMcalm-artist-7206
08/06/2026, 2:26 PMsecurity-scan-comment-improvementscalm-artist-7206
08/06/2026, 2:28 PMcalm-artist-7206
08/06/2026, 2:31 PMmodern-fireman-99755
08/06/2026, 2:55 PMRoot cause in main.py: THREAD_WATCH_SECONDS = 900 (15 min) is measured from when the previous run finishes posting, not from the user's last message, and it's only refreshed once at the very end of a run — never while a run is still blocking/working. Since a single run can legitimately take up to RUN_BUDGET_SECONDS = 1740 (29 min), a normal human follow-up cadence can easily outrun the 15-minute window, especially right after a slow run.calm-artist-7206
08/06/2026, 3:00 PMcalm-artist-7206
08/06/2026, 3:14 PMmodern-fireman-99755
08/06/2026, 3:15 PM