Skip to content

Conversation

@enyst
Copy link
Collaborator

@enyst enyst commented Dec 9, 2025

This PR adds a weekly workflow that refreshes the SDK architecture documentation using the OpenHands Cloud API, adapted from the ideas in OpenHands/OpenHands#10566.

What’s included

  • .github/workflows/weekly-architecture-refresh.yml
    • Runs weekly (Mon 07:00 UTC) and via manual dispatch
    • Calls a minimal helper to start an OpenHands conversation with a focused prompt
    • The remote agent opens a PR itself if updates are needed
  • scripts/openhands_api.py
    • Minimal Python client for the OpenHands API (POST /api/conversations)
    • Reads OPENHANDS_API_KEY from repo/org secrets
  • scripts/prompts/architecture_refresh.j2
    • Clear instructions for auditing and updating sdk/arch pages in the docs repo
    • Includes style and factuality requirements:
      • Do not invent behavior; verify every statement against repository code or existing docs.
      • Cite sources inline with file paths and short context (e.g., (source: openhands/agent_server/conversation.py)).
      • Prefer Mermaid diagrams; keep tone clear and neutral.
      • Include Last updated timestamp and Source commit at the bottom of each page.
    • Pull Request requirements:
      • If proposing changes vs previous week, open a PR titled: "docs: weekly architecture docs refresh"
      • Follow .github/pull_request_template.md; run pre-commit; ensure CI passes
    • Event Stream special note: requires a section "Event Stream Subscription Mechanism" with a real-world example

Credentials

  • The workflow expects OPENHANDS_API_KEY to be set as an Actions secret. If a different secret name is preferred (e.g., ALL_HANDS_BOT), we can adjust the workflow environment variable.

Notes

  • This PR intentionally does not re-add an OpenAPI sync job (already present in this repo).
  • The helper defaults to https://app.all-hands.dev and simply prints the conversation URL for traceability.

Co-authored-by: openhands openhands@all-hands.dev

@enyst can click here to continue refining the PR

… helper

- Add scripts/openhands_api.py minimal client for OpenHands Cloud API
- Add scripts/prompts/architecture_refresh.j2 prompt with style/citation/PR requirements
- Add .github/workflows/weekly-architecture-refresh.yml to trigger weekly refresh

Co-authored-by: openhands <openhands@all-hands.dev>
…n 3.12

Co-authored-by: openhands <openhands@all-hands.dev>
…lpers

- Replace urllib with requests
- Keep simple _http_json wrapper for consistency, but leverage response.json()

Co-authored-by: openhands <openhands@all-hands.dev>
- Use astral-sh/setup-uv and uv run with Python 3.12
- Inline requests Session calls; remove urllib/json glue

Co-authored-by: openhands <openhands@all-hands.dev>
…re-agent-sdk under openhands-agent-server/)

Co-authored-by: openhands <openhands@all-hands.dev>
…n\nCo-authored-by: openhands <openhands@all-hands.dev>
…oftware-agent-sdk HEAD for audit\n\nCo-authored-by: openhands <openhands@all-hands.dev>
…\n\nCo-authored-by: openhands <openhands@all-hands.dev>
…with correct agent-server path)\n\nCo-authored-by: openhands <openhands@all-hands.dev>
Copy link
Contributor

@neubig neubig left a comment

Choose a reason for hiding this comment

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

Thanks for this @enyst ! But is there a reason why we need openhands_api.py and couldn't just use the more standard workflow here? https://github.com/OpenHands/software-agent-sdk/tree/main/examples/03_github_workflows/01_basic_action

If there's a reason why you particularly want to run this on the cloud, it might be nice to have a standard "dispatch to cloud" github workflow in the examples directory, and then re-use that here.

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

Labels

None yet

3 participants