{
  "checked_at": "2026-10-11T04:24:19Z",
  "source": "https://github.com/OpenHands/OpenHands/pull/17961",
  "scope": "The original 68 findings, 21 findings from follow-up verification and fixes, and 31 Agent Server API findings from feature map PR #5621. Umbrella and feature-request issues are not counted as bugs.",
  "checks_method": "Newest check per exact app, workflow ID and job on current PR head. Original GitHub rollup retained; superseded failures do not count as current failures.",
  "evidence_method": "Original PR and issue images and recordings copied without alteration, with source URLs and SHA-256 digests. Text reproduction cards condense cited reports and do not represent a new test run.",
  "theme_order": [
    {
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer"
    },
    {
      "theme": "Accessibility & keyboard controls",
      "theme_slug": "accessibility-keyboard"
    },
    {
      "theme": "Models, profiles & settings",
      "theme_slug": "models-profiles-settings"
    },
    {
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills"
    },
    {
      "theme": "Automations & Git Sync",
      "theme_slug": "automations-git-sync"
    },
    {
      "theme": "Files & workspaces",
      "theme_slug": "files-workspaces"
    },
    {
      "theme": "Backends & launcher",
      "theme_slug": "backends-launcher"
    },
    {
      "theme": "Navigation, layout & copy",
      "theme_slug": "navigation-layout-copy"
    },
    {
      "theme": "Privacy & telemetry",
      "theme_slug": "privacy-telemetry"
    },
    {
      "theme": "Canvas extensions",
      "theme_slug": "canvas-extensions"
    },
    {
      "theme": "Conversation files & downloads",
      "theme_slug": "conversation-files-downloads"
    },
    {
      "theme": "Settings, profiles and credentials",
      "theme_slug": "settings-profiles-credentials"
    },
    {
      "theme": "Conversation lifecycle and persistence",
      "theme_slug": "conversation-lifecycle-persistence"
    },
    {
      "theme": "Skills, plugins and MCP",
      "theme_slug": "skills-plugins-mcp"
    },
    {
      "theme": "Events and streaming",
      "theme_slug": "events-streaming"
    },
    {
      "theme": "Server responsiveness",
      "theme_slug": "server-responsiveness"
    },
    {
      "theme": "Canvas backends and bridges",
      "theme_slug": "canvas-backends-bridges"
    },
    {
      "theme": "Model switching and usage",
      "theme_slug": "model-switching-usage"
    },
    {
      "theme": "Commands, files and Git",
      "theme_slug": "commands-files-git"
    },
    {
      "theme": "Python and TypeScript clients",
      "theme_slug": "python-typescript-clients"
    }
  ],
  "cohorts": [
    {
      "id": "initial",
      "label": "First 68",
      "source_urls": [
        "https://github.com/OpenHands/OpenHands/pull/17961"
      ]
    },
    {
      "id": "canvas-followups",
      "label": "Follow-up runs & fixes",
      "source_urls": [
        "https://github.com/OpenHands/OpenHands/pull/18085",
        "https://github.com/OpenHands/OpenHands/pull/18162",
        "https://github.com/OpenHands/OpenHands/pull/18183",
        "https://github.com/OpenHands/OpenHands/pull/18207",
        "https://github.com/OpenHands/OpenHands/pull/18213"
      ]
    },
    {
      "id": "agent-server",
      "label": "Agent Server API · draft map",
      "source_urls": [
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ]
    }
  ],
  "feature_map_snapshot": {
    "sha": "8793c111c68db4b24e4ec3e882612229368ee426",
    "committed_at": "2026-10-09T04:25:22Z",
    "source": "https://github.com/OpenHands/OpenHands/commit/8793c111c68db4b24e4ec3e882612229368ee426",
    "families": 27,
    "mapped_ids": 743,
    "routes": 30,
    "accepted_baseline": "ed815e141409c7b52991ab8d13c553b595da9165",
    "baseline_date": "2026-10-06",
    "index": "https://github.com/OpenHands/OpenHands/blob/8793c111c68db4b24e4ec3e882612229368ee426/.agents/skills/verify-openhands/references/feature-map/README.md",
    "family_counts": [
      {
        "family": "F01",
        "count": 22
      },
      {
        "family": "F02",
        "count": 26
      },
      {
        "family": "F03",
        "count": 39
      },
      {
        "family": "F04",
        "count": 40
      },
      {
        "family": "F05",
        "count": 25
      },
      {
        "family": "F06",
        "count": 35
      },
      {
        "family": "F07",
        "count": 25
      },
      {
        "family": "F08",
        "count": 33
      },
      {
        "family": "F09",
        "count": 25
      },
      {
        "family": "F10",
        "count": 34
      },
      {
        "family": "F11",
        "count": 21
      },
      {
        "family": "F12",
        "count": 25
      },
      {
        "family": "F13",
        "count": 20
      },
      {
        "family": "F14",
        "count": 11
      },
      {
        "family": "F15",
        "count": 23
      },
      {
        "family": "F16",
        "count": 19
      },
      {
        "family": "F17",
        "count": 30
      },
      {
        "family": "F18",
        "count": 22
      },
      {
        "family": "F19",
        "count": 25
      },
      {
        "family": "F20",
        "count": 24
      },
      {
        "family": "F21",
        "count": 34
      },
      {
        "family": "F22",
        "count": 29
      },
      {
        "family": "F23",
        "count": 39
      },
      {
        "family": "F24",
        "count": 26
      },
      {
        "family": "F25",
        "count": 29
      },
      {
        "family": "F26",
        "count": 32
      },
      {
        "family": "F27",
        "count": 30
      }
    ],
    "presentation_groups": {
      "starting_work": 127,
      "conversation_workspace": 148,
      "settings_configuration": 178,
      "customization": 101,
      "automations": 128,
      "backends_runtimes": 61
    }
  },
  "agent_server_map": {
    "repo": "OpenHands/software-agent-sdk",
    "number": 5621,
    "title": "Add verify-agent-server: an executable feature map and control CLI for the Agent Server API",
    "url": "https://github.com/OpenHands/software-agent-sdk/pull/5621",
    "state": "OPEN",
    "is_draft": false,
    "merged_at": null,
    "relation": "fix",
    "ci": {
      "state": "SUCCESS",
      "github_rollup": "SUCCESS",
      "head_sha": "cee9a8bb8a392bd382a8d742b76d5b1c856fb2b4",
      "failed": [],
      "checked_at": "2026-10-11T04:24:19Z",
      "metadata_only": false,
      "latest_checks": [
        {
          "name": "cleanup-on-approval",
          "state": "SKIPPED",
          "status": "COMPLETED",
          "time": "2026-10-09T22:12:34Z",
          "workflow_id": 225305825,
          "app": "github-actions"
        },
        {
          "name": "Validate PR description",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T21:25:00Z",
          "workflow_id": 289793341,
          "app": "github-actions"
        },
        {
          "name": "build-binary-and-test (ubuntu-latest)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:57Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "check-docstrings",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 246558633,
          "app": "github-actions"
        },
        {
          "name": "check",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 207010770,
          "app": "github-actions"
        },
        {
          "name": "Persisted settings",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:57Z",
          "workflow_id": 279158508,
          "app": "github-actions"
        },
        {
          "name": "pre-commit",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:57Z",
          "workflow_id": 183604467,
          "app": "github-actions"
        },
        {
          "name": "REST API (OpenAPI)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 239283049,
          "app": "github-actions"
        },
        {
          "name": "unresolved-review-threads",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T21:25:00Z",
          "workflow_id": 231618827,
          "app": "github-actions"
        },
        {
          "name": "Test directory allowlist",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 183665439,
          "app": "github-actions"
        },
        {
          "name": "agent-server-api",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 344966555,
          "app": "github-actions"
        },
        {
          "name": "endpoint-audit",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 344966557,
          "app": "github-actions"
        },
        {
          "name": "integration-test",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 344966554,
          "app": "github-actions"
        },
        {
          "name": "Check package versions",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:57Z",
          "workflow_id": 236831996,
          "app": "github-actions"
        },
        {
          "name": "build-binary-and-test (macos-latest)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:31:00Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "build-binary-and-test (windows-latest)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "check-pr-artifacts",
          "state": "SKIPPED",
          "status": "COMPLETED",
          "time": "2026-10-09T22:12:28Z",
          "workflow_id": 225305825,
          "app": "github-actions"
        },
        {
          "name": "Check OpenAPI Schema",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "sdk-tests",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:31:01Z",
          "workflow_id": 183665439,
          "app": "github-actions"
        },
        {
          "name": "public-type-budget",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 344966555,
          "app": "github-actions"
        },
        {
          "name": "smoke-test",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 344966554,
          "app": "github-actions"
        },
        {
          "name": "cleanup-after-merge",
          "state": "SKIPPED",
          "status": "COMPLETED",
          "time": "2026-10-09T22:12:28Z",
          "workflow_id": 225305825,
          "app": "github-actions"
        },
        {
          "name": "Build & Push (python-amd64)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:59Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "acp-live-tests",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:31:01Z",
          "workflow_id": 183665439,
          "app": "github-actions"
        },
        {
          "name": "test (24.x)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 344966555,
          "app": "github-actions"
        },
        {
          "name": "Build & Push (python-arm64)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:58Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "Build & Push (python-slim-amd64)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "Build & Push (python-slim-arm64)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:58Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "Build & Push (python-minimal-amd64)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:58Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "Build & Push (python-minimal-arm64)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:31:07Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "Build & Push (java-amd64)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:31:06Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "Build & Push (java-arm64)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:31:06Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "Build & Push (golang-amd64)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:31:02Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "Build & Push (golang-arm64)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:59Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "Merge Multi-Arch Manifests (python)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:42:26Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "tools-tests",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:31:02Z",
          "workflow_id": 183665439,
          "app": "github-actions"
        },
        {
          "name": "security",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 344966555,
          "app": "github-actions"
        },
        {
          "name": "Merge Multi-Arch Manifests (python-slim)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:42:26Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "Merge Multi-Arch Manifests (python-minimal)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:42:25Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "Merge Multi-Arch Manifests (java)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:42:26Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "Merge Multi-Arch Manifests (golang)",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:42:25Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "Consolidate Build Information",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:42:59Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "windows-tests",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:56Z",
          "workflow_id": 183665439,
          "app": "github-actions"
        },
        {
          "name": "validate-acp-providers",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:30:58Z",
          "workflow_id": 344966555,
          "app": "github-actions"
        },
        {
          "name": "Update PR description with agent server image",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:43:08Z",
          "workflow_id": 188210064,
          "app": "github-actions"
        },
        {
          "name": "agent-server-tests",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:31:02Z",
          "workflow_id": 183665439,
          "app": "github-actions"
        },
        {
          "name": "build",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:31:35Z",
          "workflow_id": 344966555,
          "app": "github-actions"
        },
        {
          "name": "agent-server-stress-tests",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:31:02Z",
          "workflow_id": 183665439,
          "app": "github-actions"
        },
        {
          "name": "workspace-tests",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:31:02Z",
          "workflow_id": 183665439,
          "app": "github-actions"
        },
        {
          "name": "cross-tests",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:31:03Z",
          "workflow_id": 183665439,
          "app": "github-actions"
        },
        {
          "name": "coverage-report",
          "state": "SUCCESS",
          "status": "COMPLETED",
          "time": "2026-10-09T06:35:50Z",
          "workflow_id": 183665439,
          "app": "github-actions"
        }
      ]
    }
  },
  "issues": [
    {
      "repo": "OpenHands/OpenHands",
      "number": 17898,
      "title": "[Bug]: VITE_DO_NOT_TRACK=1 still initializes PostHog and loads remote scripts from the telemetry host",
      "url": "https://github.com/OpenHands/OpenHands/issues/17898",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 17962,
          "title": "fix: honor Do Not Track before telemetry initialization",
          "url": "https://github.com/OpenHands/OpenHands/pull/17962",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "0cf65d442003f7ecd52971d266903bc746f99130",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:11Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:09Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:10Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:11Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:11Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:09Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:10Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:12Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:53Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:10Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:10Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:17Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:18Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:10Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18086,
          "title": "fix(telemetry): never initialize PostHog under Do Not Track",
          "url": "https://github.com/OpenHands/OpenHands/pull/18086",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-08T03:13:50Z",
          "relation": "related",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "88478392ff3182332f7b17b7a7e19bb16aa877c3",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T03:13:54Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T00:19:31Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T00:19:30Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T00:19:29Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T00:19:30Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T00:19:33Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T00:19:29Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T03:13:54Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T00:23:16Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T00:19:37Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T03:13:56Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T00:19:35Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T00:23:40Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T00:19:35Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T00:23:49Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "Related fix #18086 merged through later report #18081; this original issue and draft #17962 remain open.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17898",
        "https://github.com/OpenHands/OpenHands/pull/18086"
      ],
      "theme": "Privacy & telemetry",
      "theme_slug": "privacy-telemetry",
      "visual": {
        "summary": "Do Not Track still let the browser attempt requests to the analytics host. Related fix #18086 has merged and stops PostHog from initializing under Do Not Track; this original report and an alternative draft remain open.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18086,
          "title": "fix(telemetry): never initialize PostHog under Do Not Track",
          "url": "https://github.com/OpenHands/OpenHands/pull/18086",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/aaa319dbfab8cc91ff019b42d05060cf3eab516c/.pr/dnt-before-main.png",
            "alt": "With Do Not Track enabled, the original main build attempts three analytics requests.",
            "caption": "With Do Not Track enabled, the original main build attempts three analytics requests.",
            "source_kind": "pr",
            "source_pr": "https://github.com/OpenHands/OpenHands/pull/18086",
            "width": 1280,
            "height": 720,
            "sha256": "07f6e2a9044a052573d005c16e233d48284df0fbe200fe8995572f3bc65305cf",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17898-before-07f6e2a9.png"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/aaa319dbfab8cc91ff019b42d05060cf3eab516c/.pr/dnt-after.png",
            "alt": "The same check on the merged fix attempts no analytics requests.",
            "caption": "The same check on the merged fix attempts no analytics requests.",
            "source_kind": "pr",
            "source_pr": "https://github.com/OpenHands/OpenHands/pull/18086",
            "width": 1280,
            "height": 720,
            "sha256": "a4288e93f43f4c5190b73ea1408cfff4599c79dab5a03636db85b17512ccd2bd",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17898-after-a4288e93.png"
          }
        ],
        "evidence_note": "Original before/after captures from merged PR #18086. The verification script added the request-count overlay and blocked the recorded analytics requests; the overlay is not part of Canvas. The original issue #17898 remains open."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17899,
      "title": "[Bug]: Git user name and email from Settings > Application are never applied to agent commits",
      "url": "https://github.com/OpenHands/OpenHands/issues/17899",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [],
      "note": "Fix awaits a decision on Git-identity ownership and precedence.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17899"
      ],
      "theme": "Models, profiles & settings",
      "theme_slug": "models-profiles-settings",
      "visual": {
        "summary": "Saving a Git name and email did not pass that identity to agent conversations. On a clean host, commits failed with “Author identity unknown”; the issue remains open with no confirmed fix PR.",
        "primary_pr": null,
        "images": [
          {
            "role": "evidence",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/9161353d1c14b79ca4f27dbc2c166251787205a3/.pr/bugs/f16-1-author-unknown.png",
            "alt": "Original issue evidence: the agent cannot commit because Git has no author identity.",
            "caption": "Original issue evidence: the agent cannot commit because Git has no author identity.",
            "width": 1440,
            "height": 1000,
            "source_kind": "issue",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17899-evidence-6b95f788.png",
            "sha256": "6b95f788d40fdea4f2f6a7b7ec7046ce2d449d804e7b0fc87a8fe40ce9548229"
          }
        ],
        "evidence_note": "Original screenshot from the issue; no confirmed fix PR or after capture was found."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17900,
      "title": "[Bug]: Settings switches are skipped by Tab and invisible to screen readers (SettingsSwitch renders <input hidden>)",
      "url": "https://github.com/OpenHands/OpenHands/issues/17900",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 17963,
          "title": "fix: restore keyboard access to settings switches",
          "url": "https://github.com/OpenHands/OpenHands/pull/17963",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "cb43883c4a0aec10958ae37c3847ffbc5cbb4357",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:18Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:16Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:17Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:18Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:19Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:16Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:18Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:26Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:17Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:23Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:23Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T02:57:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18154,
          "title": "fix: make settings switches keyboard accessible",
          "url": "https://github.com/OpenHands/OpenHands/pull/18154",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "f160a34f47742198db31cb9a059c89fca370fd4c",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-08T12:41:56Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:41:54Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:41:54Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:41:56Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:41:56Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:41:54Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:42:00Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:41:56Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:42:02Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:41:54Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:41:54Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:42:01Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:42:02Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:41:54Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          }
        }
      ],
      "note": "Two alternative draft fix PRs are open; the displayed evidence is from #17963.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17900"
      ],
      "theme": "Accessibility & keyboard controls",
      "theme_slug": "accessibility-keyboard",
      "visual": {
        "summary": "Settings switches disappeared from keyboard navigation and the accessibility tree. PR #17963 restores their native checkbox behavior and makes keyboard focus visible.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 17963,
          "title": "fix: restore keyboard access to settings switches",
          "url": "https://github.com/OpenHands/OpenHands/pull/17963",
          "state": "OPEN",
          "is_draft": true
        },
        "images": [
          {
            "role": "after",
            "source_url": "https://github.com/Minghan2005/OpenHands/blob/cb43883c4a0aec10958ae37c3847ffbc5cbb4357/.pr/17900-verification/after-focus.png",
            "alt": "Proposed fix: a visible focus ring surrounds Sound Notifications.",
            "caption": "Proposed fix: a visible focus ring surrounds Sound Notifications.",
            "width": 1280,
            "height": 950,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17900-after-329c9661.png",
            "sha256": "329c96617981f4491b0d99bd8f3db5375699053d8c45f08a367ad72919e06c16",
            "source_pr": "https://github.com/OpenHands/OpenHands/pull/17963"
          }
        ],
        "evidence_note": "This after screenshot and the recordings come from draft #17963. Alternative draft #18154 is also open but supplies no screenshots; no before still is available for this comparison."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17901,
      "title": "[Bug]: First-run onboarding and the API-key screen show a \"No backend is configured.\" error toast",
      "url": "https://github.com/OpenHands/OpenHands/issues/17901",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18010,
          "title": "fix(onboarding): stop the \"No backend is configured.\" toast before a backend exists",
          "url": "https://github.com/OpenHands/OpenHands/pull/18010",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T01:21:24Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "fac966c31391e129221fabff95e7f53400e12f33",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:21:37Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:34:12Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:34:12Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:34:11Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:34:10Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:34:15Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T22:34:11Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:21:28Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:37:57Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:34:17Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:21:30Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:34:18Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:38:25Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:34:19Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:38:32Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17901"
      ],
      "theme": "Backends & launcher",
      "theme_slug": "backends-launcher",
      "visual": {
        "summary": "First-time setup showed “No backend is configured” while asking the user to add a backend. The merged fix waits until a backend exists before loading its model metadata.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18010,
          "title": "fix(onboarding): stop the \"No backend is configured.\" toast before a backend exists",
          "url": "https://github.com/OpenHands/OpenHands/pull/18010",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/2542d51c8387196d5c05e6a22ad0bd4fa26067a2/.pr/17901-before-onboarding-step0-toast.png",
            "alt": "First-run setup incorrectly raises a missing-backend error.",
            "caption": "First-run setup incorrectly raises a missing-backend error.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17901-before-1aab3b3a.png",
            "sha256": "1aab3b3ab3c79d5e21a16ff32adc4df249a3f1578bdceb662d8e1498e282cb6a"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/2542d51c8387196d5c05e6a22ad0bd4fa26067a2/.pr/17901-after-onboarding-step0-no-toast.png",
            "alt": "The same setup step opens without the misleading error.",
            "caption": "The same setup step opens without the misleading error.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17901-after-616cc5c2.png",
            "sha256": "616cc5c213596c3d41ccac70977b2c03b208e496a3e944256bf01b4066ad8511"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T01:21:25Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17902,
      "title": "[Bug]: Automations Filters popover closes after every option click, so filters cannot be combined",
      "url": "https://github.com/OpenHands/OpenHands/issues/17902",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18026,
          "title": "fix(automations): keep the filters popover open between choices",
          "url": "https://github.com/OpenHands/OpenHands/pull/18026",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T03:35:36Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "ca64942aa4900c7fddc67c2f0dc00dfd3556ac64",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T03:35:41Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:21:03Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:21:03Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:21:05Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:21:06Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:21:06Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T03:21:02Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T03:35:41Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:24:42Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:21:14Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:35:42Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:21:09Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:25:04Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:21:13Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:25:11Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17902"
      ],
      "theme": "Automations & Git Sync",
      "theme_slug": "automations-git-sync",
      "visual": {
        "summary": "Choosing one automation filter closed the whole popover, making combinations awkward. The merged fix keeps it open so the next filter can be selected immediately.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18026,
          "title": "fix(automations): keep the filters popover open between choices",
          "url": "https://github.com/OpenHands/OpenHands/pull/18026",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/226ec2c0db2219abe90408a9d3029de951969376/.pr/before-filters-popover-closes-after-status-choice.png",
            "alt": "After choosing Disabled, the Filters popover has closed.",
            "caption": "After choosing Disabled, the Filters popover has closed.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17902-before-757fe116.png",
            "sha256": "757fe1166eae06415b7cfed670a3b29c12d1d8f02a682f4ea1ba40b973059372"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/226ec2c0db2219abe90408a9d3029de951969376/.pr/after-filters-popover-stays-open-after-status-choice.png",
            "alt": "After the same choice, the popover stays open for another filter.",
            "caption": "After the same choice, the popover stays open for another filter.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17902-after-172c48db.png",
            "sha256": "172c48db58450c09f8d7d38836586f74e9d1ea7f84b46d7b584a300c5241434a"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T03:35:38Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17903,
      "title": "[Bug]: Agent Canvas update dialog overflows a 390px viewport and its Close button is off-screen",
      "url": "https://github.com/OpenHands/OpenHands/issues/17903",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18008,
          "title": "fix(settings): keep the Agent Canvas update dialog inside phone viewports",
          "url": "https://github.com/OpenHands/OpenHands/pull/18008",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-05T21:36:04Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "27486956582f4a3d2743dd1b37d6b3f5728bbe66",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T21:36:09Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T21:20:39Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T21:09:41Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T21:10:42Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T21:12:35Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T21:07:28Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T21:05:41Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T21:36:17Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T21:29:21Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T21:18:35Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T21:38:33Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T21:22:35Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T21:29:53Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T21:21:16Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T21:30:01Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17903"
      ],
      "theme": "Navigation, layout & copy",
      "theme_slug": "navigation-layout-copy",
      "visual": {
        "summary": "On a phone, the update dialog extended beyond both screen edges and hid its Close button. The merged fix limits its width to the viewport.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18008,
          "title": "fix(settings): keep the Agent Canvas update dialog inside phone viewports",
          "url": "https://github.com/OpenHands/OpenHands/pull/18008",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/3d4b0cbf2cff6cba2d9a6fbf23a52bfba5f4bf8e/.pr/before-update-dialog-390.png",
            "alt": "At 390px, the dialog title is clipped and Close is off-screen.",
            "caption": "At 390px, the dialog title is clipped and Close is off-screen.",
            "width": 390,
            "height": 844,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17903-before-965dc36f.png",
            "sha256": "965dc36f0d02eee697b4a945abd2850114615ce7ccc5ad4d329a5e090cb0375e"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/3d4b0cbf2cff6cba2d9a6fbf23a52bfba5f4bf8e/.pr/after-update-dialog-390.png",
            "alt": "At 390px, the full dialog and Close button fit within the screen.",
            "caption": "At 390px, the full dialog and Close button fit within the screen.",
            "width": 390,
            "height": 844,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17903-after-52576dba.png",
            "sha256": "52576dba5003367d937ca7d31ffb25fd00a368bcb6f747a4085191b21467568b"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-05T21:36:06Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17904,
      "title": "[Bug]: Unknown URLs show a bare \"404 Not Found\" with no way back and log a hydration error",
      "url": "https://github.com/OpenHands/OpenHands/issues/17904",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18023,
          "title": "fix(routes): render unknown URLs as an in-app not-found page",
          "url": "https://github.com/OpenHands/OpenHands/pull/18023",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T01:13:33Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "f9c9667e6b3bf10e62361615f43b079048723b18",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:13:38Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:46Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:45Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:45Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:44Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:46Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:43Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:13:38Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:05:45Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:52Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:13:39Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:52Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:06:10Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:52Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:06:19Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17904"
      ],
      "theme": "Navigation, layout & copy",
      "theme_slug": "navigation-layout-copy",
      "visual": {
        "summary": "An unknown address led to a bare 404 with no navigation. The merged fix keeps the app shell and provides a clear way home.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18023,
          "title": "fix(routes): render unknown URLs as an in-app not-found page",
          "url": "https://github.com/OpenHands/OpenHands/pull/18023",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/016546e6f9ec1d422e0b4ceb7f2e2d783d25e1e3/.pr/before-unknown-route-bare-404.png",
            "alt": "The unknown URL leaves only a bare “404 Not Found” page.",
            "caption": "The unknown URL leaves only a bare “404 Not Found” page.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17904-before-6ec99678.png",
            "sha256": "6ec99678f3ecacdb9128693371e47836aa7d0bab71459dbbacb7d4b8fabe28d5"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/016546e6f9ec1d422e0b4ceb7f2e2d783d25e1e3/.pr/after-unknown-route-in-shell.png",
            "alt": "The unknown URL opens an in-app message with a Home button.",
            "caption": "The unknown URL opens an in-app message with a Home button.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17904-after-f227755a.png",
            "sha256": "f227755aec6fbeb121a39ec70c10f8f5b5a838f03d61a2b89bd3282d659a1b86"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T01:13:35Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17905,
      "title": "[Bug]: Opening an unknown conversation id also shows a misleading \"data this UI does not understand\" toast",
      "url": "https://github.com/OpenHands/OpenHands/issues/17905",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18009,
          "title": "fix(conversations): treat a null batch entry as not found, not an invalid response",
          "url": "https://github.com/OpenHands/OpenHands/pull/18009",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-05T23:50:57Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "594191ae36d32a1bdb91afcc38745d9cbc4d451b",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:51:02Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:11:14Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:11:14Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:11:12Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:11:13Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:11:16Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T22:11:12Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:51:02Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:15:21Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:11:21Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:51:03Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:11:21Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:15:49Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:11:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:15:57Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17905"
      ],
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer",
      "visual": {
        "summary": "Opening a missing conversation produced two errors, including an incorrect warning about incompatible server data. The merged fix recognizes the missing conversation and shows only the relevant message.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18009,
          "title": "fix(conversations): treat a null batch entry as not found, not an invalid response",
          "url": "https://github.com/OpenHands/OpenHands/pull/18009",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/1bb03a954d331d1423c9121c6aecca4320e3aee8/.pr/before-unknown-conversation-two-toasts.png",
            "alt": "A missing conversation triggers two different error messages.",
            "caption": "A missing conversation triggers two different error messages.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17905-before-16b18682.png",
            "sha256": "16b1868297124fc4a4f07191aa2a62fb9919a01a6c64d72367649119bbb2c0fe"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/1bb03a954d331d1423c9121c6aecca4320e3aee8/.pr/after-unknown-conversation-one-toast.png",
            "alt": "Only the accurate missing-conversation message remains.",
            "caption": "Only the accurate missing-conversation message remains.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17905-after-ef177e96.png",
            "sha256": "ef177e96f2b1737b5d1cd26e1260b9f0fdd7b3fd66ecc7fa9701ee101447a0b1"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-05T23:50:58Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17906,
      "title": "[Bug]: A failed automation \"Run now\" shows two error toasts",
      "url": "https://github.com/OpenHands/OpenHands/issues/17906",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18043,
          "title": "fix(automations): show one error toast when an automation action fails",
          "url": "https://github.com/OpenHands/OpenHands/pull/18043",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T02:43:31Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "d817df59fdb47675c165572398dcf11955f7d249",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T02:43:35Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:27Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:27Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:26Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:26Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:29Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:25Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T02:43:35Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:26:12Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:23:09Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:43:37Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:32Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:26:41Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:32Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:26:48Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17906"
      ],
      "theme": "Automations & Git Sync",
      "theme_slug": "automations-git-sync",
      "visual": {
        "summary": "A failed automation action displayed both a useful error and a generic duplicate. The merged fix gives the action one error message.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18043,
          "title": "fix(automations): show one error toast when an automation action fails",
          "url": "https://github.com/OpenHands/OpenHands/pull/18043",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/4aab06547699ba2643ecaffd3b9357e5d7422aa3/.pr/before-list-run-now-two-toasts.png",
            "alt": "Run now fails with both “Automation not found” and a generic 404 toast.",
            "caption": "Run now fails with both “Automation not found” and a generic 404 toast.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17906-before-af9dfa2a.png",
            "sha256": "af9dfa2a843c8c5ffb3e526904fa5bad3b8fa2226d32cb6af2ed1aff061a540a"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/4aab06547699ba2643ecaffd3b9357e5d7422aa3/.pr/after-list-run-now-one-toast.png",
            "alt": "Run now fails with only “Automation not found.”",
            "caption": "Run now fails with only “Automation not found.”",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17906-after-45e1931e.png",
            "sha256": "45e1931e6b468cff42bd90928142f7868d0b7b2466924530aca64544844c34d5"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T02:43:32Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17907,
      "title": "[Bug]: Automation delete confirmation ignores Escape and is not exposed as a dialog",
      "url": "https://github.com/OpenHands/OpenHands/issues/17907",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18011,
          "title": "fix(automations): make the delete confirmation a modal dialog that closes on Escape",
          "url": "https://github.com/OpenHands/OpenHands/pull/18011",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-05T23:55:54Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "941ee1ec81bb36f47d38867bd8791cea8b93af84",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:56:00Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:32Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:33Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:32Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:32Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:35Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:30Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:56:00Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:44:40Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:39Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:56:02Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:38Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:45:09Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:38Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:45:20Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17907"
      ],
      "theme": "Accessibility & keyboard controls",
      "theme_slug": "accessibility-keyboard",
      "visual": {
        "summary": "The automation delete confirmation ignored Escape and lacked dialog semantics. The merged fix makes it an accessible modal and lets Escape dismiss it without deleting the automation.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18011,
          "title": "fix(automations): make the delete confirmation a modal dialog that closes on Escape",
          "url": "https://github.com/OpenHands/OpenHands/pull/18011",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/c300b39dbc64887a540a30a371e056254d2ff9a4/.pr/before-list-delete-confirmation-after-escape.png",
            "alt": "After pressing Escape, the delete confirmation remains open.",
            "caption": "After pressing Escape, the delete confirmation remains open.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17907-before-801991dd.png",
            "sha256": "801991dd09a6307959a513527efbb5251849e6ce1320ca814a0e43ade5421583"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/c300b39dbc64887a540a30a371e056254d2ff9a4/.pr/after-list-escape-closes-without-deleting.png",
            "alt": "After pressing Escape, the dialog closes and the automation remains.",
            "caption": "After pressing Escape, the dialog closes and the automation remains.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17907-after-ce4341da.png",
            "sha256": "ce4341daa4a8c97c3555b5164e815074d93db9517996f678aa3b41e3c51e4de9"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-05T23:55:56Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17908,
      "title": "[Bug]: Command menu misses Model Router and Agent Context, and always shows ⌘K",
      "url": "https://github.com/OpenHands/OpenHands/issues/17908",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18027,
          "title": "fix(command-menu): list Model Router and Agent Context; show Ctrl+K off Apple",
          "url": "https://github.com/OpenHands/OpenHands/pull/18027",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T01:15:41Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "f017c040916afcd356477ab45ee926b608b917ea",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:15:46Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:59Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:59Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:05Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:57Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:00Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:53Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:15:46Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:06:49Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:37Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:15:48Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:03Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:07:14Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:09Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:07:23Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17908"
      ],
      "theme": "Navigation, layout & copy",
      "theme_slug": "navigation-layout-copy",
      "visual": {
        "summary": "The command menu could not find Model Router or Agent Context, and showed the Mac shortcut on every platform. The merged fix adds the missing destinations and shows Ctrl+K on Linux and Windows.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18027,
          "title": "fix(command-menu): list Model Router and Agent Context; show Ctrl+K off Apple",
          "url": "https://github.com/OpenHands/OpenHands/pull/18027",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/b5c40688620c7dbab516696f8ba5cc0a39f95663/.pr/before-model-router-search.png",
            "alt": "Searching for Model Router returns “No commands found.”",
            "caption": "Searching for Model Router returns “No commands found.”",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17908-before-b7e3b768.png",
            "sha256": "b7e3b7685d78d212b4ab8ed476d5a83b59df11a8932daf59c8c977febe9c5130"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/b5c40688620c7dbab516696f8ba5cc0a39f95663/.pr/after-model-router-search.png",
            "alt": "The same search finds Model Router and shows the Ctrl+K shortcut.",
            "caption": "The same search finds Model Router and shows the Ctrl+K shortcut.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17908-after-42613e4f.png",
            "sha256": "42613e4f42285f749edcd497496bafb0592818cc4be7e5d09a120e869c95d9f0"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T01:15:42Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17909,
      "title": "[Bug]: Screen-reader semantics: nested <main> in Settings, no aria-current on Customize, <html lang> never updated",
      "url": "https://github.com/OpenHands/OpenHands/issues/17909",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18012,
          "title": "fix(a11y): one Settings main landmark, Customize aria-current, synced html lang",
          "url": "https://github.com/OpenHands/OpenHands/pull/18012",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-05T23:02:25Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "06e18e2276a745b781ccdc73fe1619ad8d5be503",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:02:30Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:47:30Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:47:30Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:47:29Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:47:28Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:47:32Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T22:47:28Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:02:30Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:51:02Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:47:34Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:02:32Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:47:35Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:51:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:47:34Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T22:51:23Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17909"
      ],
      "theme": "Accessibility & keyboard controls",
      "theme_slug": "accessibility-keyboard",
      "visual": {
        "summary": "Screen readers received duplicate Settings landmarks, no current-page marker for Customize, and the wrong page language. The merged fix supplies one main landmark and synchronizes navigation, language, and direction semantics.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18012,
          "title": "fix(a11y): one Settings main landmark, Customize aria-current, synced html lang",
          "url": "https://github.com/OpenHands/OpenHands/pull/18012",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/a5b592c8a0f16c5170cb8c86de0b2b97bb729345/.pr/before-semantics-capture-17909.png",
            "alt": "Original probe capture: two main landmarks, missing aria-current, and English language metadata.",
            "caption": "Original probe capture: two main landmarks, missing aria-current, and English language metadata.",
            "width": 1440,
            "height": 1037,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17909-before-9ef35eee.png",
            "sha256": "9ef35eeea949281d09bb80b71a43ae87c296542d8d411bf5ac1a8abbc17947a2"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/a5b592c8a0f16c5170cb8c86de0b2b97bb729345/.pr/after-semantics-capture-17909.png",
            "alt": "Original probe capture: one main landmark, current-page markers, and the selected language and direction.",
            "caption": "Original probe capture: one main landmark, current-page markers, and the selected language and direction.",
            "width": 1440,
            "height": 1504,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17909-after-5abc49f6.png",
            "sha256": "5abc49f673541971bb755d93c1d3cbc36a3ea57a633cd57147f952de2ce8233f"
          }
        ],
        "evidence_note": "These are the PR’s rendered captures of browser accessibility/DOM probes, not recordings of screen-reader speech."
      },
      "cohort": "initial",
      "closed_at": "2026-10-05T23:02:27Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17913,
      "title": "[Bug]: Conversation header \"⋯\" menu overflows the screen at phone width and does not close on Escape",
      "url": "https://github.com/OpenHands/OpenHands/issues/17913",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18028,
          "title": "fix(conversation): keep the header \"⋯\" menu on screen and close it on Escape",
          "url": "https://github.com/OpenHands/OpenHands/pull/18028",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T01:16:32Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "c373b0d18400644f12c10b2bb9474e6d9cd5199d",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:16:37Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:00Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:00Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:54Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:53Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:03Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:52Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:16:37Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:05:52Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:29Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:16:38Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:15Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:06:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:12Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:06:28Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17913"
      ],
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer",
      "visual": {
        "summary": "The conversation menu ran off the edge of a phone screen and ignored Escape. The merged fix keeps every item on screen and returns focus when Escape closes the menu.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18028,
          "title": "fix(conversation): keep the header \"⋯\" menu on screen and close it on Escape",
          "url": "https://github.com/OpenHands/OpenHands/pull/18028",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/a8cadc0020798dc660fd6823fea9a9fa2538e75b/.pr/before-phone-390-menu-overflows-right-edge.png",
            "alt": "At 390px, the menu extends past the right edge and clips its labels.",
            "caption": "At 390px, the menu extends past the right edge and clips its labels.",
            "width": 390,
            "height": 844,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17913-before-b00db627.png",
            "sha256": "b00db62774cfb10d81af1ccfbdd66ea933e44928ac0b46d292a429117f8cb176"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/a8cadc0020798dc660fd6823fea9a9fa2538e75b/.pr/after-phone-390-menu-inside-viewport.png",
            "alt": "At the same width, every menu item fits within the viewport.",
            "caption": "At the same width, every menu item fits within the viewport.",
            "width": 390,
            "height": 844,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17913-after-247c1c0d.png",
            "sha256": "247c1c0d33aae867d7368fd7e9420866460c981c6efd961d00b21e90ce272ef7"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T01:16:34Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17914,
      "title": "[Bug]: \"Branch from here\" on a user message drops the message but leaves the new conversation's composer empty",
      "url": "https://github.com/OpenHands/OpenHands/issues/17914",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18014,
          "title": "fix(chat): keep the message text in the composer after \"Branch from here\"",
          "url": "https://github.com/OpenHands/OpenHands/pull/18014",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T00:05:54Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "33a4ed5a09073167a955dccf4048fcb358cff602",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:05:59Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:15Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:13Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:11Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:11Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:14Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:12Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:05:59Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:53:44Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:18Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:06:01Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:25Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:54:12Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:28Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:54:20Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17914"
      ],
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer",
      "visual": {
        "summary": "“Branch from here” removed the chosen user message but left the new conversation’s composer empty. The merged fix restores that message as a draft ready to edit.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18014,
          "title": "fix(chat): keep the message text in the composer after \"Branch from here\"",
          "url": "https://github.com/OpenHands/OpenHands/pull/18014",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/795e1c14184b2b085186960b183dc358fdfaebf7/.pr/before-branch-user-message-empty-composer.png",
            "alt": "The new branch opens with an empty composer.",
            "caption": "The new branch opens with an empty composer.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17914-before-18bafb0e.png",
            "sha256": "18bafb0e490bca68a74b2b569036d0eb3369e2c971b4b44ae1642113a9ced686"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/795e1c14184b2b085186960b183dc358fdfaebf7/.pr/after-branch-user-message-prefilled.png",
            "alt": "The new branch keeps “Reply with the single word: pong” in the composer.",
            "caption": "The new branch keeps “Reply with the single word: pong” in the composer.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17914-after-a2217e62.png",
            "sha256": "a2217e623376cec7aefec70ba0085ea3638b57022b39da088974a1a62eb945e9"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T00:05:55Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17915,
      "title": "[Bug]: Stop/Delete conversation confirmation buttons render without their data-testid (BrandButton expects testId)",
      "url": "https://github.com/OpenHands/OpenHands/issues/17915",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 17983,
          "title": "fix(frontend): pass testId to Stop and Delete confirm buttons",
          "url": "https://github.com/OpenHands/OpenHands/pull/17983",
          "state": "CLOSED",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "bc6565b3e33ead4e541c20259a444b7080352e08",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-05T10:59:41Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:36:47Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T10:59:39Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:36:40Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T10:59:47Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:36:40Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18151,
          "title": "fix(conversation-panel): pass testId to BrandButton in confirm modals",
          "url": "https://github.com/OpenHands/OpenHands/pull/18151",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-11T02:42:59Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "2cf8cbd891cd9f7939ffbaa462f7e5a804dfa6e0",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:26:08Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T02:43:03Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:26:11Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:26:09Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:26:10Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:26:08Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:26:08Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T02:43:03Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:26:17Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:26:08Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T02:43:05Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:26:17Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:26:17Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:26:08Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18140,
          "title": "fix: expose conversation confirmation test ids",
          "url": "https://github.com/OpenHands/OpenHands/pull/18140",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "d9d3823bf1213411959877c7757183d6fa606569",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-08T06:40:02Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T06:40:01Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T06:40:01Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T06:40:02Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T06:40:02Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T06:40:01Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T06:40:01Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T06:40:02Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T06:40:10Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T06:40:01Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T06:40:01Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T06:40:09Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T06:40:07Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T06:40:01Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          }
        }
      ],
      "note": "PR #18151 is the selected fix. Earlier PR #17983 closed without merging; #18140 is an alternative fix.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17915",
        "https://github.com/OpenHands/OpenHands/pull/18151"
      ],
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer",
      "visual": {
        "summary": "The Stop and Delete confirmation buttons passed the wrong prop name, so their intended test IDs never reached the DOM. PR #18151 restores those selectors.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18151,
          "title": "fix(conversation-panel): pass testId to BrandButton in confirm modals",
          "url": "https://github.com/OpenHands/OpenHands/pull/18151",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [],
        "evidence_note": "This is a nonvisual DOM-attribute fix. PR #18151 reports five passing component tests; its image attachment returned 404 when the original evidence was collected. Alternative PR #18140 supplied no screenshots. Earlier PR #17983 closed without merging."
      },
      "cohort": "initial",
      "closed_at": "2026-10-11T02:43:01Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17917,
      "title": "[Bug]: Model Router: choosing \"Don't create profiles\" snaps back to a provider connection, and Save creates 11 LLM profiles",
      "url": "https://github.com/OpenHands/OpenHands/issues/17917",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18020,
          "title": "fix(settings): keep \"Don't create profiles\" for router templates",
          "url": "https://github.com/OpenHands/OpenHands/pull/18020",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-05T23:26:53Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "607d81faa6ea78788923b414824139f3737956e6",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:14:35Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:27:08Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:14:37Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T21:16:40Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T20:58:52Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:26:59Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:14:35Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:14:35Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T21:14:14Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:14:43Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:27:01Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:14:44Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:14:43Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:14:35Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17917"
      ],
      "theme": "Models, profiles & settings",
      "theme_slug": "models-profiles-settings",
      "visual": {
        "summary": "“Don’t create profiles” immediately reverted to a provider connection, and saving created eleven unwanted profiles. The merged PR preserves the explicit choice; the verified flow creates none.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18020,
          "title": "fix(settings): keep \"Don't create profiles\" for router templates",
          "url": "https://github.com/OpenHands/OpenHands/pull/18020",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://github.com/user-attachments/assets/2a8a1f5e-a364-4b40-942d-ab233b881659",
            "alt": "After choosing “Don’t create profiles,” the picker has reverted to QA_deepseek.",
            "caption": "After choosing “Don’t create profiles,” the picker has reverted to QA_deepseek.",
            "width": 1280,
            "height": 800,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17917-before-d1de43bb.png",
            "sha256": "d1de43bb5b02846c0e467f35acc3a2bff162fbaaaf37b1c60a30542d84f7d667"
          },
          {
            "role": "after",
            "source_url": "https://github.com/user-attachments/assets/5a35b405-c8d4-4267-abaf-2bc00d78c13f",
            "alt": "The picker preserves “Don’t create profiles.”",
            "caption": "The picker preserves “Don’t create profiles.”",
            "width": 1280,
            "height": 800,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17917-after-ef5a130b.png",
            "sha256": "ef5a130bb31718485a49d877a75b1f3b0fb865021e563b7b507f313de122a1d3"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-05T23:26:55Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17918,
      "title": "[Bug]: Model Router list heading and router names are invisible in light color themes",
      "url": "https://github.com/OpenHands/OpenHands/issues/17918",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18013,
          "title": "fix(settings): use theme contrast ink for Model Router list text",
          "url": "https://github.com/OpenHands/OpenHands/pull/18013",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-05T23:54:16Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "d59aaad10760850037eef18f0baf61101e081481",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:54:22Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:30Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:34Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:28Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:29Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:33Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:29Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:54:22Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:45:27Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:36Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:54:23Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:35Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:45:56Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:35Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:46:04Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17918"
      ],
      "theme": "Models, profiles & settings",
      "theme_slug": "models-profiles-settings",
      "visual": {
        "summary": "The Model Router list used white text on a white background in light themes. The merged fix makes the list heading and router names readable with the selected theme.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18013,
          "title": "fix(settings): use theme contrast ink for Model Router list text",
          "url": "https://github.com/OpenHands/OpenHands/pull/18013",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/e7937919240a43ef3c009d9e005dcf10689f1350/.pr/before-light-plus-model-router-list.png",
            "alt": "In Light+, the list heading and router names disappear into the background.",
            "caption": "In Light+, the list heading and router names disappear into the background.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17918-before-627626d9.png",
            "sha256": "627626d923aa8493b2e806d7f6ac9c7c62ffdf97d1f9c6756435488fac1d2411"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/e7937919240a43ef3c009d9e005dcf10689f1350/.pr/after-light-plus-model-router-list.png",
            "alt": "The heading and the qa-router names are readable in the same theme.",
            "caption": "The heading and the qa-router names are readable in the same theme.",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17918-after-cb43e14f.png",
            "sha256": "cb43e14f885e29dcd42b4f2882e320842e8e35eaaf8e9f86ecd1c291a963fc2d"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-05T23:54:17Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17919,
      "title": "[Bug]: \"Delete all\" conversations deletes only the loaded first page and states a smaller count",
      "url": "https://github.com/OpenHands/OpenHands/issues/17919",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [],
      "note": "Triage asks whether “Delete all” includes every backend conversation.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17919"
      ],
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer",
      "visual": {
        "summary": "“Delete all” only removed the first loaded page: twenty of twenty-three conversations in the reproduction. Its confirmation also understated the total; the issue remains open with no confirmed fix PR.",
        "primary_pr": null,
        "images": [
          {
            "role": "evidence",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/9115964fa4b9d905a9b2da81ead69f7ea19e94bb/.pr/bugs/f04-2-confirm.png",
            "alt": "Original issue evidence: “Delete all” confirms twenty conversations although twenty-three exist.",
            "caption": "Original issue evidence: “Delete all” confirms twenty conversations although twenty-three exist.",
            "width": 1440,
            "height": 1000,
            "source_kind": "issue",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17919-evidence-a74b6707.png",
            "sha256": "a74b6707e6311cc838c1e5b3341da2d4dcf271461ed68aab25dbf333cf0c72ae"
          }
        ],
        "evidence_note": "Original screenshot from the issue; no confirmed fix PR or after capture was found."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17920,
      "title": "[Bug]: A rejected (Cancel) action leaves its event group spinning as \"k/N actions completed\" after the conversation is idle",
      "url": "https://github.com/OpenHands/OpenHands/issues/17920",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 17995,
          "title": "fix: resolve rejected and errored actions in event groups",
          "url": "https://github.com/OpenHands/OpenHands/pull/17995",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "e501b48c5bb489c624e52798f91dcc78d74f805b",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T15:36:16Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T02:43:02Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T15:36:15Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T15:36:18Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T15:36:16Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T15:36:13Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T15:36:13Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T02:43:01Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T15:36:21Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T15:36:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T02:43:01Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T15:36:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T15:36:22Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T15:36:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18247,
          "title": "fix(chat): resolve event group status for rejected and errored actions",
          "url": "https://github.com/OpenHands/OpenHands/pull/18247",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "545da063406da7e90a41a360149f7f31430b9f93",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T17:32:22Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T17:32:22Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T17:32:24Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T17:32:23Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T17:32:24Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T17:32:22Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T17:32:22Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T17:32:23Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T17:32:32Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T17:32:22Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T17:32:22Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T17:32:30Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T17:32:31Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T17:32:22Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17920"
      ],
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer",
      "visual": {
        "summary": "Cancelling an action could leave its group spinning after the conversation was idle. PR #17995 adds a Rejected marker and aims to count rejected actions as resolved.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 17995,
          "title": "fix: resolve rejected and errored actions in event groups",
          "url": "https://github.com/OpenHands/OpenHands/pull/17995",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/errmakov/OpenHands/e501b48c5bb489c624e52798f91dcc78d74f805b/.pr/issue-17920/before.png",
            "alt": "The rejected action still appears to be running, with “1/2 actions completed.”",
            "caption": "The rejected action still appears to be running, with “1/2 actions completed.”",
            "width": 1280,
            "height": 720,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17920-before-4263dd70.png",
            "sha256": "4263dd7073b86f1b302a7171f04518bc000340e1da5e15eeb4aeccd99368b533"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/errmakov/OpenHands/e501b48c5bb489c624e52798f91dcc78d74f805b/.pr/issue-17920/after.png",
            "alt": "The row gains a Rejected marker; the captured header still says “1/2 actions completed.”",
            "caption": "The row gains a Rejected marker; the captured header still says “1/2 actions completed.”",
            "width": 1280,
            "height": 720,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17920-after-2e98ae22.png",
            "sha256": "2e98ae2229a2f8058d2e4c481b8f75c48027bace54b6c62b5555be6f6de6f181"
          }
        ],
        "evidence_note": "Both images are the PR’s original captures. The after image shows the new Rejected label but still contains the old progress count/spinner, so it does not visually establish the settled-group result claimed in the PR text. The run used a scripted mock LLM with the real app and Agent Server."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17921,
      "title": "[Bug]: Files tab keeps showing stale file content after Refresh (and even after a reload)",
      "url": "https://github.com/OpenHands/OpenHands/issues/17921",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18032,
          "title": "fix(files): show the current file body after Refresh and reload",
          "url": "https://github.com/OpenHands/OpenHands/pull/18032",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T05:26:15Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "8b9ffd52b9b9a5b6fbcb29252d92f102f49a6960",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T05:26:19Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:11:16Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:11:16Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:11:13Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:11:14Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:11:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T05:11:14Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T05:26:19Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:15:10Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:11:21Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:26:21Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:11:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:15:28Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:11:21Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:15:36Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17921"
      ],
      "theme": "Files & workspaces",
      "theme_slug": "files-workspaces",
      "visual": {
        "summary": "The Files tab kept showing old content even after Refresh or a page reload. The merged fix revalidates text requests and refreshes preview URLs so the visible file matches the current file on disk.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18032,
          "title": "fix(files): show the current file body after Refresh and reload",
          "url": "https://github.com/OpenHands/OpenHands/pull/18032",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/55650c1b8db945e23d3f264a4bb4f394aa047ea2/.pr/before-rich-stale-after-refresh.png",
            "alt": "After an edit and Refresh, the HTML preview is still stuck on “QA page v1.”",
            "caption": "After an edit and Refresh, the HTML preview is still stuck on “QA page v1.”",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17921-before-fcefe349.png",
            "sha256": "fcefe34908897a23ba5639d26cfa4035aee71da3aac72057fc2413223605d039"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/55650c1b8db945e23d3f264a4bb4f394aa047ea2/.pr/after-rich-fresh-after-refresh.png",
            "alt": "After a further edit and Refresh, the preview shows the current “QA page v3 AGAIN.”",
            "caption": "After a further edit and Refresh, the preview shows the current “QA page v3 AGAIN.”",
            "width": 1440,
            "height": 1000,
            "source_kind": "pr",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17921-after-ecb08ba2.png",
            "sha256": "ecb08ba2ea8a4809b1f0fd510b832b532be8e3ded5a6d1dd1a3bd396fcb6384a"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T05:26:17Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17922,
      "title": "[Bug]: MCP library lists entries that cannot be installed on a local backend; their install dialog is empty and Install does nothing",
      "url": "https://github.com/OpenHands/OpenHands/issues/17922",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [],
      "note": "Triage asks how unavailable catalog entries should appear.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17922"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "visual": {
        "summary": "The local MCP library offered servers it could not install. The Sentry dialog had no configuration fields and Install did nothing; the issue remains open with no confirmed fix PR.",
        "primary_pr": null,
        "images": [
          {
            "role": "evidence",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/9115964fa4b9d905a9b2da81ead69f7ea19e94bb/.pr/bugs/f17-1-sentry-after-install.png",
            "alt": "Original issue evidence: Sentry’s empty install dialog remains after clicking Install.",
            "caption": "Original issue evidence: Sentry’s empty install dialog remains after clicking Install.",
            "width": 1440,
            "height": 1000,
            "source_kind": "issue",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17922-evidence-1bd76a38.png",
            "sha256": "1bd76a3859730f930c14ed6e919d26ffa8b7723bc5b11b30069f89035809ad1f"
          }
        ],
        "evidence_note": "Original screenshot from the issue; no confirmed fix PR or after capture was found."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17923,
      "title": "[Bug]: Skills \"Use skill\" opens Home with an empty composer instead of pre-filling the skill command",
      "url": "https://github.com/OpenHands/OpenHands/issues/17923",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18016,
          "title": "fix(skills): pre-fill the Home composer from Use skill and Create Automation",
          "url": "https://github.com/OpenHands/OpenHands/pull/18016",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T00:00:14Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "2ed80f32de0673aa0f62f7bb419a8a432c1f911c",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:00:19Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:22Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:23Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:18Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:19Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:25Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:00:19Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:54:27Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:26Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:00:47Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:28Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:54:54Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:28Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:55:02Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17923"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "visual": {
        "summary": "“Use skill” opened Home but left its composer empty. The merged fix carries the chosen command into Home and focuses the composer; Create Automation uses the same repaired path.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18016,
          "title": "fix(skills): pre-fill the Home composer from Use skill and Create Automation",
          "url": "https://github.com/OpenHands/OpenHands/pull/18016",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/f0b294737251be3067eb46020fbfef3ea971b02c/.pr/before-use-skill-empty-composer.png",
            "alt": "After “Use skill”, Home had an empty composer.",
            "caption": "After “Use skill”, Home had an empty composer.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17923-before-5cf06fd5.png",
            "sha256": "5cf06fd5d54a73d3daac141d698e5cce7c79cb98cf6fa4de400ba3660202cadd"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/f0b294737251be3067eb46020fbfef3ea971b02c/.pr/after-use-skill-prefilled-composer.png",
            "alt": "The selected /docker command is ready in Home.",
            "caption": "The selected /docker command is ready in Home.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17923-after-c2bed80d.png",
            "sha256": "c2bed80deaa3f0ecbb1e75d1428a6322ff21afb0a2968ff61071358f8d61fe2d"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T00:00:15Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17924,
      "title": "[Bug]: \"Show Available Hooks\" always says \"No hooks configured\" on local backends, even when workspace hooks are active",
      "url": "https://github.com/OpenHands/OpenHands/issues/17924",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18031,
          "title": "fix(hooks): list workspace hooks in the Available Hooks dialog on local backends",
          "url": "https://github.com/OpenHands/OpenHands/pull/18031",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T20:32:41Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "9f1fb381f2b16672e762c78974656f49e1779824",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T20:32:46Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:37:18Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:37:19Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:37:16Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:37:16Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:37:20Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T03:12:03Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T20:32:46Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:41:51Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:37:22Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T20:33:05Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:11:56Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:42:07Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:37:23Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:42:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17924"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "visual": {
        "summary": "The Available Hooks dialog said “No hooks configured” even when workspace hooks were active. It now loads and displays the workspace hooks, and Refresh fetches changes.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18031,
          "title": "fix(hooks): list workspace hooks in the Available Hooks dialog on local backends",
          "url": "https://github.com/OpenHands/OpenHands/pull/18031",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/4e66a541b890e20212c95ed4b8e43bdfed895852/.pr/17924-before-workspace-hooks-show-empty.png",
            "alt": "The dialog showed no hooks for a workspace that had one.",
            "caption": "The dialog showed no hooks for a workspace that had one.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17924-before-c3e330b3.png",
            "sha256": "c3e330b386938b84ef1e9e83c1921d272bffa5cdb2662dd193d5b07213cd5e21"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/4e66a541b890e20212c95ed4b8e43bdfed895852/.pr/17924-after-workspace-hooks-listed.png",
            "alt": "The workspace’s Pre Tool Use hook is listed.",
            "caption": "The workspace’s Pre Tool Use hook is listed.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17924-after-3a100776.png",
            "sha256": "3a100776e40381403c9310d8a9f7dc4c091c47c7ef04c11da0aa0d7b075891f9"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T20:32:43Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17925,
      "title": "[Bug]: Composer \"More input actions\" menu closes as soon as it opens at narrow widths, so the model cannot be switched",
      "url": "https://github.com/OpenHands/OpenHands/issues/17925",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18015,
          "title": "fix(chat): keep the composer overflow menu open at narrow widths",
          "url": "https://github.com/OpenHands/OpenHands/pull/18015",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-05T23:55:07Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "fecbbb18e24df4b238e2e2bec4b9b3ce0d5bc138",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:55:14Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:34Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:34Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:32Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:33Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:36Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:32Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:55:14Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:44:51Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:39Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:55:16Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:41Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:45:11Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:40:40Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:45:19Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "Menu opening fixed; submenu overflow is tracked separately in #18063.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17925"
      ],
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer",
      "visual": {
        "summary": "At narrow phone widths, “More input actions” closed immediately after opening, blocking model selection. The merged fix keeps the overflow menu open and usable by pointer or keyboard.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18015,
          "title": "fix(chat): keep the composer overflow menu open at narrow widths",
          "url": "https://github.com/OpenHands/OpenHands/pull/18015",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/57c997e61e07d1f125e75fecfe9050bbd7635faa/.pr/17925-before-320px-menu-closed-after-click.png",
            "alt": "At 320 px wide, the menu disappeared after the click.",
            "caption": "At 320 px wide, the menu disappeared after the click.",
            "width": 320,
            "height": 700,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17925-before-f06e269f.png",
            "sha256": "f06e269fa42bc8a0f3afd75749c95d96ffdf0f514a15ee4099ed5af1172aea40"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/57c997e61e07d1f125e75fecfe9050bbd7635faa/.pr/17925-after-320px-menu-stays-open.png",
            "alt": "The same overflow menu stays open.",
            "caption": "The same overflow menu stays open.",
            "width": 320,
            "height": 700,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17925-after-88c5cc9d.png",
            "sha256": "88c5cc9d0faefa3b777e43a360f5d99e17897239977ac1d096e03bae48310cf5"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-05T23:55:08Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17926,
      "title": "[Bug]: Conversation draft typed within 500 ms of navigating away is lost; the older draft comes back",
      "url": "https://github.com/OpenHands/OpenHands/issues/17926",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18096,
          "title": "fix(chat): flush pending conversation draft on unmount",
          "url": "https://github.com/OpenHands/OpenHands/pull/18096",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "027972203b67280f9395306518486142e6285ae4",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T01:32:34Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:13:08Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T01:32:36Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T01:32:36Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T01:32:37Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T01:32:34Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T01:32:35Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:13:08Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T01:32:43Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T01:32:35Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:13:18Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T01:32:41Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T01:32:41Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T01:32:35Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 17968,
          "title": "fix(chat): flush conversation drafts before navigation",
          "url": "https://github.com/OpenHands/OpenHands/pull/17968",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-11T04:23:36Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "9b2ebe2e962f5aa35e89952dd98abc4a9e9c2eaf",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:26:10Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:24:36Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T04:23:41Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:24:31Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:26:12Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:24:29Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:24:29Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T04:23:49Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:26:29Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:24:36Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T04:23:42Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:24:37Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:24:37Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:24:29Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "PR #17968 is the selected fix; #18096 is an alternative fix.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17926"
      ],
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer",
      "visual": {
        "summary": "Typing and leaving a conversation within 500 ms could restore an older draft and lose the latest text. PR #17968 flushes the pending draft before navigation while keeping conversations’ drafts separate.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 17968,
          "title": "fix(chat): flush conversation drafts before navigation",
          "url": "https://github.com/OpenHands/OpenHands/pull/17968",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "evidence",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/9115964fa4b9d905a9b2da81ead69f7ea19e94bb/.pr/bugs/f05-5-restored-old-draft.png",
            "alt": "Original issue capture: the old “QA draft text” returns instead of the newly typed draft.",
            "caption": "Original issue capture: the old “QA draft text” returns instead of the newly typed draft.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17926-evidence-01fa0b14.png",
            "sha256": "01fa0b1469253bd76dd1b5bf77710729ae1c41befe2ef63bdb7a7ac60880b78a"
          }
        ],
        "evidence_note": "The selected PR provides before/after recordings rather than a usable pair of still screenshots. This is the original issue’s reproduction capture."
      },
      "cohort": "initial",
      "closed_at": "2026-10-11T04:23:38Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17927,
      "title": "[Bug]: A failed Save on Settings > Application discards the user's unsaved edits",
      "url": "https://github.com/OpenHands/OpenHands/issues/17927",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 17945,
          "title": "fix(settings): preserve unsaved edits and keep save enabled on failed save",
          "url": "https://github.com/OpenHands/OpenHands/pull/17945",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "3226edb27dc052c133697c17eeb6cc2c29fdafa4",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T01:23:12Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T08:11:31Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T01:23:06Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T01:23:07Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T01:23:07Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T01:23:04Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T01:23:05Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T08:11:37Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T01:23:16Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T01:23:05Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T08:11:31Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T01:23:13Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T01:23:13Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T01:23:05Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18201,
          "title": "fix: preserve App Settings edits after save errors",
          "url": "https://github.com/OpenHands/OpenHands/pull/18201",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "317e6e12b1a5172b343c195e059166c21e33a0ec",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-08T23:39:18Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:39:23Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:39:17Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T23:39:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T23:39:20Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:39:17Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:39:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T23:39:19Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T23:39:27Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:39:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:39:17Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T23:39:26Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T23:39:26Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:39:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          }
        }
      ],
      "note": "Two alternative fixes are open; #18201 is a draft and explicitly has no runtime screenshots.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17927"
      ],
      "theme": "Models, profiles & settings",
      "theme_slug": "models-profiles-settings",
      "visual": {
        "summary": "A failed Application Settings save reset the form and discarded the user’s edits. PR #17945 keeps the inputs mounted and preserves changes so Save can be retried.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 17945,
          "title": "fix(settings): preserve unsaved edits and keep save enabled on failed save",
          "url": "https://github.com/OpenHands/OpenHands/pull/17945",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [
          {
            "role": "evidence",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/9115964fa4b9d905a9b2da81ead69f7ea19e94bb/.pr/bugs/cf16-1-after-failed-save.png",
            "alt": "Original issue capture: the save fails and Sound Notifications reverts to off.",
            "caption": "Original issue capture: the save fails and Sound Notifications reverts to off.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17927-evidence-e9069e35.png",
            "sha256": "e9069e35fee0f706557316bde831537be7bac7757559dee912f80e70a62cd056",
            "source_kind": "issue"
          }
        ],
        "evidence_note": "Original issue reproduction capture. PR #17945 and alternative draft #18201 are both open; neither supplies a relevant before/after screenshot pair."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17928,
      "title": "[Bug]: Confirmation Continue/Cancel shortcuts are ⌘-only; Ctrl+Enter does nothing on Linux and Windows",
      "url": "https://github.com/OpenHands/OpenHands/issues/17928",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18152,
          "title": "fix(confirmation): support Ctrl shortcuts and platform-aware hints",
          "url": "https://github.com/OpenHands/OpenHands/pull/18152",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "e4d8dffddbeebd44c50ace113765a983af1b9711",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:47:10Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:47:00Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:47:02Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:47:03Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:47:03Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:47:00Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:47:00Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:47:03Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:47:10Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:47:01Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:47:00Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:47:08Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:47:07Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:47:01Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18127,
          "title": "fix: accept Ctrl for confirmation shortcuts off macOS",
          "url": "https://github.com/OpenHands/OpenHands/pull/18127",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "8032aa21bcb0418a8be7eb3b7c6af9330a147aba",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T16:28:15Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T16:28:22Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T16:28:17Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T16:28:17Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T16:28:18Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T16:28:15Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T16:28:15Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T16:28:18Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T16:28:26Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T16:28:15Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T16:28:15Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T16:28:23Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T16:28:25Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T16:28:15Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "Two alternative fixes are open. #18127 includes the reviewed shortcut guard and before/after recordings from a working backend.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17928",
        "https://github.com/OpenHands/OpenHands/pull/18127"
      ],
      "theme": "Accessibility & keyboard controls",
      "theme_slug": "accessibility-keyboard",
      "visual": {
        "summary": "Continue and Cancel accepted only Command-key shortcuts, leaving Linux and Windows users without working equivalents. Open PR #18127 accepts Ctrl, shows platform-specific hints, and prevents repeat responses after an action has been submitted.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18127,
          "title": "fix: accept Ctrl for confirmation shortcuts off macOS",
          "url": "https://github.com/OpenHands/OpenHands/pull/18127",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [
          {
            "role": "evidence",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/9115964fa4b9d905a9b2da81ead69f7ea19e94bb/.pr/bugs/f06-4-after-ctrl-enter.png",
            "alt": "Original issue capture: after Ctrl+Enter on Linux, the action is still waiting and the hints show Command.",
            "caption": "Original issue capture: after Ctrl+Enter on Linux, the action is still waiting and the hints show Command.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17928-evidence-7840fdcf.png",
            "sha256": "7840fdcf0307c331f502b46148ce852e5fd178ed85f01a4d5524e61e067a59a9",
            "source_kind": "issue"
          }
        ],
        "evidence_note": "Original issue still, captured before the fix. Open PR #18127 provides before/after recordings from a real Linux stack, with a capture annotation showing each keypress; it supplies no static screenshot pair. macOS behavior is covered by unit tests only.",
        "recordings": [
          {
            "url": "https://raw.githubusercontent.com/errmakov/OpenHands/64c0d463f1082708c8d1cb6f8265e526ff055e20/before.mp4",
            "label": "Before: Ctrl shortcuts ignored on Linux"
          },
          {
            "url": "https://raw.githubusercontent.com/errmakov/OpenHands/64c0d463f1082708c8d1cb6f8265e526ff055e20/after.mp4",
            "label": "After: Ctrl shortcuts accept and reject actions"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17929,
      "title": "[Bug]: Add LLM Profile keeps the name derived from the initial model after the user picks a different model",
      "url": "https://github.com/OpenHands/OpenHands/issues/17929",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18017,
          "title": "fix(llm-profiles): keep the auto-filled profile name following the model",
          "url": "https://github.com/OpenHands/OpenHands/pull/18017",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T00:00:08Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "96244c06dceea5af44a5c15636058156b2934404",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:00:14Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:13Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:13Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:11Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:11Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:15Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:10Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:00:14Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:54:10Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:18Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:00:18Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:19Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:54:30Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:50:19Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:54:40Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17929"
      ],
      "theme": "Models, profiles & settings",
      "theme_slug": "models-profiles-settings",
      "visual": {
        "summary": "A new profile kept its original model’s suggested name after a different model was selected. The name now follows the model until the user enters a custom name.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18017,
          "title": "fix(llm-profiles): keep the auto-filled profile name following the model",
          "url": "https://github.com/OpenHands/OpenHands/pull/18017",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/6e40cffb7295621b46aef4f9c0bba2076bed67fc/.pr/17929/before-name-stays-gpt-5.6-sol-after-picking-deepseek-chat.png",
            "alt": "The chosen model is deepseek-chat, but the suggested name still says gpt-5.6-sol.",
            "caption": "The chosen model is deepseek-chat, but the suggested name still says gpt-5.6-sol.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17929-before-12d55cf9.png",
            "sha256": "12d55cf9e672adf62c12348b729f69a9d3e58827ce872389d7993f9f3a4d7127"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/6e40cffb7295621b46aef4f9c0bba2076bed67fc/.pr/17929/after-name-follows-deepseek-chat.png",
            "alt": "The suggested profile name follows deepseek-chat.",
            "caption": "The suggested profile name follows deepseek-chat.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17929-after-232465e1.png",
            "sha256": "232465e1ec8c29fab4b7bfef089458e8a17b0606ae91ded83bf0f47be925caac"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T00:00:10Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17930,
      "title": "[Bug]: Installing a catalog STDIO MCP server twice leaves the second copy without its catalog identity",
      "url": "https://github.com/OpenHands/OpenHands/issues/17930",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18034,
          "title": "fix(mcp): keep catalog identity for repeated STDIO installs",
          "url": "https://github.com/OpenHands/OpenHands/pull/18034",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T05:19:11Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "cb6fe2905138af7aa2218101db895c285ad4cb85",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T05:19:15Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:30:10Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:30:10Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:30:09Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:30:11Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:30:13Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T02:30:09Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T05:19:15Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:34:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:30:17Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:19:16Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:30:16Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:34:47Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:30:16Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:34:56Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17930"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "visual": {
        "summary": "Installing a catalog STDIO MCP server twice stripped the second copy’s description and badge. Repeated installs now retain their catalog identity, including in search.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18034,
          "title": "fix(mcp): keep catalog identity for repeated STDIO installs",
          "url": "https://github.com/OpenHands/OpenHands/pull/18034",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/5c90812b24d16ec685aa9740fc20045355dbc075/.pr/before-stdio-installed-twice.png",
            "alt": "Second copies time_1 and memory_1 lose their catalog descriptions and badges.",
            "caption": "Second copies time_1 and memory_1 lose their catalog descriptions and badges.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17930-before-5d951e92.png",
            "sha256": "5d951e925928f5f92aadc7205471c7ed2208b584c94f273f7227a3a118477fad"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/5c90812b24d16ec685aa9740fc20045355dbc075/.pr/after-stdio-installed-twice.png",
            "alt": "Both copies retain their catalog descriptions and badges.",
            "caption": "Both copies retain their catalog descriptions and badges.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17930-after-94a5c82e.png",
            "sha256": "94a5c82e940bfdd5d7deacf8737370353cefac95e7e3e5326f727ad4cdaf9ee0"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T05:19:12Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17931,
      "title": "[Bug]: A failed STDIO MCP connection test says \"Check the URL and server type\" and hides the real error",
      "url": "https://github.com/OpenHands/OpenHands/issues/17931",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18018,
          "title": "fix(mcp): explain failed stdio connection tests without the URL hint",
          "url": "https://github.com/OpenHands/OpenHands/pull/18018",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T01:01:21Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "63d5e970dfbce639a525602d7fa370104c44a42e",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:25Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:18Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:16Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:36Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:19Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:16Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:25Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:52:01Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:45Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:26Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:23Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:54:36Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:24Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:55:00Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17931"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "visual": {
        "summary": "A failed STDIO server test told users to check a URL, even though these servers run commands. The fix shows command-specific guidance and the underlying error.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18018,
          "title": "fix(mcp): explain failed stdio connection tests without the URL hint",
          "url": "https://github.com/OpenHands/OpenHands/pull/18018",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/f9df0b48e1082323c7e090f53e383947e598856e/.pr/before-stdio-health-card-url-hint.png",
            "alt": "A failed command incorrectly gets “Check the URL and server type.”",
            "caption": "A failed command incorrectly gets “Check the URL and server type.”",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17931-before-ee4c0576.png",
            "sha256": "ee4c0576be3bc1baabbc5b3b6d5c9d6df32b97ac5b0b8160767313ba6fca3994"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/f9df0b48e1082323c7e090f53e383947e598856e/.pr/after-stdio-health-card-command-error.png",
            "alt": "The card identifies a server-command failure and shows the command error.",
            "caption": "The card identifies a server-command failure and shows the command error.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17931-after-38d453aa.png",
            "sha256": "38d453aaae4c3cd492a17b348afde5fa63879d52177c24bbbb861db59171312d"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T01:01:22Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17932,
      "title": "[Bug]: Settings save retries a 422 validation error three times before showing it",
      "url": "https://github.com/OpenHands/OpenHands/issues/17932",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17932"
      ],
      "theme": "Models, profiles & settings",
      "theme_slug": "models-profiles-settings",
      "visual": {
        "summary": "One settings Save sent the same invalid request three times before showing its validation error. The issue asks for permanent validation failures to surface immediately.",
        "primary_pr": null,
        "images": [
          {
            "role": "evidence",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/1197db544a349f895dcb0789bea3645da27b814b/.pr/bugs/settings-422-three-patch-requests.png",
            "alt": "Recorded request log: one Save sends three PATCH requests, each rejected with 422.",
            "caption": "Recorded request log: one Save sends three PATCH requests, each rejected with 422.",
            "width": 928,
            "height": 620,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17932-evidence-406ebc9f.png",
            "sha256": "406ebc9f4db9d18fac9fb46238cc9293d896db4a6fa5237364e932e3f39985d6"
          }
        ],
        "evidence_note": "This is the issue’s rendered request log, recorded by Playwright—not a browser DevTools screenshot. No associated fix PR was found in the checked links."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17933,
      "title": "[Bug]: Escape does not close several menus and popovers (sidebar card ⋮ menu, context-window popover, Overview ⋯ menu, command menu with an option focused)",
      "url": "https://github.com/OpenHands/OpenHands/issues/17933",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18044,
          "title": "fix(a11y): close menus and popovers on Escape and return focus",
          "url": "https://github.com/OpenHands/OpenHands/pull/18044",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T04:31:34Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "8cf4cb5d7c7c052263e1a28b131463895a2f8086",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T04:31:38Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:43:27Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:43:28Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:43:28Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:43:28Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:43:30Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T02:43:26Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T04:31:38Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:47:59Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:43:36Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:31:39Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:43:32Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:48:37Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:43:33Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:48:45Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17933"
      ],
      "theme": "Accessibility & keyboard controls",
      "theme_slug": "accessibility-keyboard",
      "visual": {
        "summary": "Escape left several menus and popovers open. The merged fix closes the topmost relevant popup and returns keyboard focus to its trigger.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18044,
          "title": "fix(a11y): close menus and popovers on Escape and return focus",
          "url": "https://github.com/OpenHands/OpenHands/pull/18044",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/98fcce37490725bd182c1662393bd17ec8333a4e/.pr/17933-before-card-menu-escape.png",
            "alt": "After Escape, the conversation card’s menu is still open.",
            "caption": "After Escape, the conversation card’s menu is still open.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17933-before-e1865262.png",
            "sha256": "e1865262d8c279da8be538e279ef3cba331cb17e939c803fb78eacbbc263f7e3"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/98fcce37490725bd182c1662393bd17ec8333a4e/.pr/17933-after-card-menu-escape.png",
            "alt": "Escape closes the menu and returns focus to its trigger.",
            "caption": "Escape closes the menu and returns focus to its trigger.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17933-after-8f55b21f.png",
            "sha256": "8f55b21f8e7f2e499bce2cc90e727abb7551aa026aa51da2c64cb5b60a7340b1"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T04:31:35Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17934,
      "title": "[Bug]: LLM profile row menu is not keyboard-operable: focus stays on the trigger, and arrow keys stop at a disabled item",
      "url": "https://github.com/OpenHands/OpenHands/issues/17934",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18019,
          "title": "fix(settings): make the LLM profile row menu keyboard-operable",
          "url": "https://github.com/OpenHands/OpenHands/pull/18019",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T00:56:13Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "58b3930d580807c7e801ad9cef774f50e5a1d23e",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:56:26Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:24Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:23Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:21Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:22Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:26Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:22Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:56:18Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:51:16Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:30Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:56:20Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:30Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:52:23Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:30Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:52:34Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17934"
      ],
      "theme": "Accessibility & keyboard controls",
      "theme_slug": "accessibility-keyboard",
      "visual": {
        "summary": "Opening an LLM profile menu by keyboard left focus on its trigger, and arrow navigation could get stuck at a disabled action. Focus now enters the menu and moves across available actions.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18019,
          "title": "fix(settings): make the LLM profile row menu keyboard-operable",
          "url": "https://github.com/OpenHands/OpenHands/pull/18019",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/17a1822afa7ce0400f0126b921d896c6b6d8d28b/.pr/17934-llm-profile-menu-before-keyboard-open-focus-on-trigger.png",
            "alt": "Keyboard-opened menu: the focus ring stays on the ⋮ trigger.",
            "caption": "Keyboard-opened menu: the focus ring stays on the ⋮ trigger.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17934-before-b4d6e79e.png",
            "sha256": "b4d6e79ea3fc9353680d2e3ead2c496406c1e474b5fa4d3145842a1852ff68ca"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/17a1822afa7ce0400f0126b921d896c6b6d8d28b/.pr/17934-llm-profile-menu-after-keyboard-open-focus-on-edit.png",
            "alt": "Keyboard-opened menu: focus moves to Edit.",
            "caption": "Keyboard-opened menu: focus moves to Edit.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17934-after-c1e6fcfa.png",
            "sha256": "c1e6fcfa4ba8ce5e179428c4cdbae0af81ac96336256c405b2af5911073ec71a"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T00:56:15Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17935,
      "title": "[Bug]: Icon-only buttons in the composer and conversation drawer have no accessible name",
      "url": "https://github.com/OpenHands/OpenHands/issues/17935",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18033,
          "title": "fix(a11y): name the icon-only composer and diff viewer buttons",
          "url": "https://github.com/OpenHands/OpenHands/pull/18033",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T05:17:12Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "682a6830b738fd70d6858c47d77c26aad295ae7b",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T05:17:17Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:31:16Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:31:16Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:31:14Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:31:15Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:31:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T02:31:14Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T05:17:17Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:35:50Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:31:21Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:17:19Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:31:21Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:36:21Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:31:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:36:28Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 17612,
          "title": "feat(conversation): give the drawer tab strip real tab semantics",
          "url": "https://github.com/OpenHands/OpenHands/pull/17612",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-05T07:01:56Z",
          "relation": "partial",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "a674dd6ffdbeed6924b2fcaf4b1331c25ca58d4c",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-05T06:52:09Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:52:07Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T07:02:01Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:52:09Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:52:11Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:52:07Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:52:15Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T07:02:01Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:52:18Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:52:07Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T07:02:02Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:52:15Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:52:15Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:52:08Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          }
        }
      ],
      "note": "Two fixes cover composer/diff controls and drawer-tab labels.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17935"
      ],
      "theme": "Accessibility & keyboard controls",
      "theme_slug": "accessibility-keyboard",
      "visual": {
        "summary": "Composer and diff-viewer icon buttons lacked accessible names, so assistive technology could not identify their actions. The fix names those controls; the captured accessibility output makes the change visible.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18033,
          "title": "fix(a11y): name the icon-only composer and diff viewer buttons",
          "url": "https://github.com/OpenHands/OpenHands/pull/18033",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/1f133cf280c6276910c4a6310c07a7c198410a79/.pr/before-aria-snapshots-unnamed-buttons.png",
            "alt": "Accessibility output before: unnamed buttons are highlighted in red.",
            "caption": "Accessibility output before: unnamed buttons are highlighted in red.",
            "width": 1440,
            "height": 1176,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17935-before-6796b2e7.png",
            "sha256": "6796b2e78167c3fe3477038b11ffed6f1dd54e08022998a56c103d30882ddfbc"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/1f133cf280c6276910c4a6310c07a7c198410a79/.pr/after-aria-snapshots-named-buttons.png",
            "alt": "Accessibility output after: Stop, Send, Remove, and diff controls have names.",
            "caption": "Accessibility output after: Stop, Send, Remove, and diff controls have names.",
            "width": 1440,
            "height": 1127,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17935-after-94bb4b44.png",
            "sha256": "94bb4b44833734fe58e0609c7e0091ae6b6aa04e301a11217f8037970f43cf6c"
          }
        ],
        "evidence_note": "These original PR images render the browser’s accessibility snapshots. The visual button appearance is largely unchanged; the accessible names are the evidence."
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T05:17:14Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17936,
      "title": "[Bug]: A failed conversation launch from Home shows duplicated error toasts and clears the typed prompt",
      "url": "https://github.com/OpenHands/OpenHands/issues/17936",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 17985,
          "title": "fix(home): show one error toast and keep the prompt when a launch fails",
          "url": "https://github.com/OpenHands/OpenHands/pull/17985",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-08T10:57:34Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "abcc5717c574e5ac961d571b5b28201594d2cd3a",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T10:42:22Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T10:57:38Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T10:42:18Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T10:42:16Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T10:42:17Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T10:42:16Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T10:42:16Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T10:57:38Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T10:42:24Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T10:42:16Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T10:57:40Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T10:42:24Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T10:42:24Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T10:42:16Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17936"
      ],
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer",
      "visual": {
        "summary": "A failed Home launch cleared the prompt and showed duplicate error toasts. The merged community fix retains the prompt and, for a refused launch, presents one readable error.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 17985,
          "title": "fix(home): show one error toast and keep the prompt when a launch fails",
          "url": "https://github.com/OpenHands/OpenHands/pull/17985",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/errmakov/OpenHands/aa85f45216cf205d9b2874ffd4b73ae5ae586f4d/.pr/issue-17936/before-refused.png",
            "alt": "Rejected launch: two raw error toasts and the typed prompt is gone.",
            "caption": "Rejected launch: two raw error toasts and the typed prompt is gone.",
            "width": 1280,
            "height": 720,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17936-before-7aa39ee7.png",
            "sha256": "7aa39ee7e8da2fbc225685a9f1049f80996e83463bf84069b873fad0035acce9",
            "source_kind": "pr",
            "source_pr": "https://github.com/OpenHands/OpenHands/pull/17985"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/errmakov/OpenHands/aa85f45216cf205d9b2874ffd4b73ae5ae586f4d/.pr/issue-17936/after-refused.png",
            "alt": "On the PR branch: one readable error and the prompt is preserved.",
            "caption": "On the PR branch: one readable error and the prompt is preserved.",
            "width": 1280,
            "height": 720,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17936-after-b2787ffd.png",
            "sha256": "b2787ffdda2d6758f988900e5529b6b0ff43f38350d4e0ecde504ff3631e5f73",
            "source_kind": "pr",
            "source_pr": "https://github.com/OpenHands/OpenHands/pull/17985"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-08T10:57:36Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17937,
      "title": "[Bug]: Error toasts show raw \"HTTP request failed (4xx): {json}\" text for /model and profile rename",
      "url": "https://github.com/OpenHands/OpenHands/issues/17937",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18030,
          "title": "fix(settings): show the server's message instead of raw HttpError text in profile error toasts",
          "url": "https://github.com/OpenHands/OpenHands/pull/18030",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T01:01:27Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "72ee3e483084dd368d04c26179a6dae08a7b0f76",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:33Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:46:36Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:46:35Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:46:32Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:46:32Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:46:37Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:46:32Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:33Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:50:33Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:46:38Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:55Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:46:42Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:50:47Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:46:41Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:50:55Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17937"
      ],
      "theme": "Models, profiles & settings",
      "theme_slug": "models-profiles-settings",
      "visual": {
        "summary": "Profile errors exposed transport status and raw JSON instead of explaining the problem. The merged fix extracts the server’s useful message for model selection, rename, and validation failures.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18030,
          "title": "fix(settings): show the server's message instead of raw HttpError text in profile error toasts",
          "url": "https://github.com/OpenHands/OpenHands/pull/18030",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/282c69a73a9a4a87c3666826cb99a0bbd3fd8612/.pr/before-model-unknown-profile-raw-404-toast.png",
            "alt": "Unknown profile: the toast exposes HTTP status and raw JSON.",
            "caption": "Unknown profile: the toast exposes HTTP status and raw JSON.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17937-before-2c4086ec.png",
            "sha256": "2c4086ecf4e7431e7f47e4caac65765f9d8b1cefc7842041e93553a4ebfdb3c0"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/282c69a73a9a4a87c3666826cb99a0bbd3fd8612/.pr/after-model-unknown-profile-readable-toast.png",
            "alt": "The toast says simply “Profile ‘qa-nope’ not found”.",
            "caption": "The toast says simply “Profile ‘qa-nope’ not found”.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17937-after-1e56588a.png",
            "sha256": "1e56588a222f09688c76703a23b1cbe4349fa6a9c0f7f4891cc725348552fc94"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T01:01:29Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17938,
      "title": "[Bug]: LLM and agent profile editors silently disable Save for a duplicate name, with no message",
      "url": "https://github.com/OpenHands/OpenHands/issues/17938",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18144,
          "title": "fix(settings): flag taken names in the LLM and agent profile editors",
          "url": "https://github.com/OpenHands/OpenHands/pull/18144",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-11T03:01:46Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "cd9b0044458b8164c5ba038d3e3d0e37bf27cd37",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T08:16:52Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T03:01:50Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T08:16:53Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T08:16:52Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T08:16:52Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T08:16:51Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T08:16:52Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T03:01:50Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T08:16:59Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T08:17:00Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:01:52Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T08:16:59Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T08:16:59Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T08:16:52Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18245,
          "title": "fix(settings): surface duplicate name error in profile editors",
          "url": "https://github.com/OpenHands/OpenHands/pull/18245",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "e74028337aa994657d44ae9de6e761ed0b872a9a",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T15:33:33Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T15:33:30Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T15:33:50Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T15:33:32Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T15:33:33Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T15:33:48Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T15:33:33Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T15:33:32Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T15:33:42Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T15:33:33Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T15:33:30Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T15:33:56Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T15:33:56Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T15:33:33Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17938",
        "https://github.com/OpenHands/OpenHands/pull/18144"
      ],
      "theme": "Models, profiles & settings",
      "theme_slug": "models-profiles-settings",
      "visual": {
        "summary": "Entering an existing LLM or agent profile name silently disabled Save with no explanation. PR #18144 shows a duplicate-name message and marks the field invalid while keeping Save disabled.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18144,
          "title": "fix(settings): flag taken names in the LLM and agent profile editors",
          "url": "https://github.com/OpenHands/OpenHands/pull/18144",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://github.com/user-attachments/assets/a68bd22f-3d65-4ddf-8480-b503bf87bdd7",
            "alt": "The duplicate profile name disables Save without explaining why.",
            "caption": "The duplicate profile name disables Save without explaining why.",
            "source_kind": "pr",
            "source_pr": "https://github.com/OpenHands/OpenHands/pull/18144",
            "width": 1440,
            "height": 1000,
            "sha256": "6ede5feda410c94df9a4d34d7157e77ba73982555a44691c8063c03e58972907",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17938-before-6ede5fed.png"
          },
          {
            "role": "after",
            "source_url": "https://github.com/user-attachments/assets/2042114c-25ed-4c72-a666-ca8b42175bc5",
            "alt": "On the PR branch, a visible message explains that the name is already taken.",
            "caption": "On the PR branch, a visible message explains that the name is already taken.",
            "source_kind": "pr",
            "source_pr": "https://github.com/OpenHands/OpenHands/pull/18144",
            "width": 1440,
            "height": 1000,
            "sha256": "73af04eb7f798f2c2ae09cb83ef3c43aaa8cd42ea92267f577570f2236813761",
            "src": "../assets/verify-openhands/issue-evidence/canvas-17938-after-73af04eb.png"
          }
        ],
        "evidence_note": "Original PR captures from a production-built local stack with a real Agent Server. The current message reuses the existing “meta-profile” wording."
      },
      "cohort": "initial",
      "closed_at": "2026-10-11T03:01:47Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17939,
      "title": "[Bug]: UI copy errors: raw schema text and reStructuredText, untranslated labels, a literal \\n, wrong labels and a dead example link",
      "url": "https://github.com/OpenHands/OpenHands/issues/17939",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18035,
          "title": "fix(settings): correct UI copy on settings, MCP and skills pages",
          "url": "https://github.com/OpenHands/OpenHands/pull/18035",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T05:23:07Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "cde254eb4cc87f0b89faf7706e922224cce68e5a",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T05:23:12Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:36Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:35Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:33Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:35Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:38Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:34Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T05:23:11Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:26:27Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:42Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:23:13Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:42Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:26:58Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:42Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:06Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17939"
      ],
      "theme": "Navigation, layout & copy",
      "theme_slug": "navigation-layout-copy",
      "visual": {
        "summary": "Settings and customization screens exposed schema jargon, wrong labels, untranslated text, and a broken example link. The merged cleanup replaces these with readable UI copy; the condenser settings illustrate the change.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18035,
          "title": "fix(settings): correct UI copy on settings, MCP and skills pages",
          "url": "https://github.com/OpenHands/OpenHands/pull/18035",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/6bce4d1f79ae49d3cc461c8622d2748c4d35cb6b/.pr/17939-4-before-condenser-all-raw-schema-text.png",
            "alt": "Condenser settings show internal names and raw schema descriptions.",
            "caption": "Condenser settings show internal names and raw schema descriptions.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17939-before-3a707722.png",
            "sha256": "3a707722dd0336eaebe06a37574303fc04da1c549162e52c70a8121f40bf4c4d"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/6bce4d1f79ae49d3cc461c8622d2748c4d35cb6b/.pr/17939-4-after-condenser-all-translated.png",
            "alt": "The same settings use readable names and explanations.",
            "caption": "The same settings use readable names and explanations.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17939-after-16f6b292.png",
            "sha256": "16f6b2926d6bbff2164845bbd1d3310eb35439cf2675fe3783d3cdf2881f738a"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T05:23:09Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17940,
      "title": "[Bug]: Conversation drawer at phone width: agent and file-link tab opens do nothing, Planner hides the tab row, and agent-chosen tabs are not persisted",
      "url": "https://github.com/OpenHands/OpenHands/issues/17940",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18045,
          "title": "fix(conversation): open the drawer at phone width for agent and file-link tab requests",
          "url": "https://github.com/OpenHands/OpenHands/pull/18045",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T04:29:57Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "f55e2f9d4333e93e73137b82429f5965d135394b",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T04:30:01Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:14:42Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:14:42Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:14:41Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:14:41Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:14:44Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T04:14:40Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T04:30:01Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:18:20Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:14:46Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:30:03Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:14:46Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:18:49Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:14:46Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:18:57Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17940"
      ],
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer",
      "visual": {
        "summary": "At phone width, clicking a file link or an agent’s request to open a tab could do nothing. These actions now open the correct drawer panel; the fix also keeps Planner tabs visible and remembers the selected tab.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18045,
          "title": "fix(conversation): open the drawer at phone width for agent and file-link tab requests",
          "url": "https://github.com/OpenHands/OpenHands/pull/18045",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/524d9f63385f358c1ea89cad24fa8ec5e1018c4a/.pr/before-phone-file-link-click-no-effect.png",
            "alt": "On a phone, clicking src/calc.py leaves the conversation on screen.",
            "caption": "On a phone, clicking src/calc.py leaves the conversation on screen.",
            "width": 390,
            "height": 844,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17940-before-2752344a.png",
            "sha256": "2752344a435c25cdb8665590b3482a7fc88ee8c04b5effbdb313c4c70e942cff"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/524d9f63385f358c1ea89cad24fa8ec5e1018c4a/.pr/after-phone-file-link-opens-panel-with-file.png",
            "alt": "The same file link opens the Files panel and the requested file.",
            "caption": "The same file link opens the Files panel and the requested file.",
            "width": 390,
            "height": 844,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17940-after-0c1f3ccd.png",
            "sha256": "0c1f3ccd95730bf46d6bb5c2a71a7cf964bbf1c80827eda35b5c0f39a6157a35"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T04:29:58Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17941,
      "title": "[Bug]: Skill and MCP card toggles can swallow the first click, and keep the new state after a failed save",
      "url": "https://github.com/OpenHands/OpenHands/issues/17941",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 17970,
          "title": "fix: preserve toggle click targets and roll back failed skill saves",
          "url": "https://github.com/OpenHands/OpenHands/pull/17970",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "8a13bda59017f0bf8bd1c4509e2191336e65de3a",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T01:41:24Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T01:41:24Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T01:41:26Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T01:41:26Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T01:41:26Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T01:41:24Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T01:41:24Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T01:41:26Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T01:41:33Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T01:41:24Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T01:41:24Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T01:41:31Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T01:41:31Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T01:41:25Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17941"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "visual": {
        "summary": "Skill and MCP toggles could lose the first click, while failed skill saves left an unsaved state looking enabled. PR #17970 stabilizes the click target and rolls failed changes back to the saved state.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 17970,
          "title": "fix: preserve toggle click targets and roll back failed skill saves",
          "url": "https://github.com/OpenHands/OpenHands/pull/17970",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/LittleMIKUya/OpenHands/19780786a2acb6f391701530967c5c75c7dbb0a8/.pr/evidence/before-failed-save.png",
            "alt": "Before: after the click and failed-save scenarios, both skills remain shown as enabled.",
            "caption": "Before: after the click and failed-save scenarios, both skills remain shown as enabled.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17941-before-c180505a.png",
            "sha256": "c180505ac1d9371d814633b735904797c347ebedebc1cbb6e01476b7f1b5220c"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/LittleMIKUya/OpenHands/19780786a2acb6f391701530967c5c75c7dbb0a8/.pr/evidence/after-failed-save.png",
            "alt": "On the PR branch: the successful disable is retained and the failed enable is rolled back.",
            "caption": "On the PR branch: the successful disable is retained and the failed enable is rolled back.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17941-after-7597004b.png",
            "sha256": "7597004b7e301785b17e3fd1a758cad95f46e0f3a1b80c1c9841a4386a15fae2"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17942,
      "title": "[Bug]: Slash command feedback: bare /btw is silently discarded, and superseded /goal rows keep offering Resume",
      "url": "https://github.com/OpenHands/OpenHands/issues/17942",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18036,
          "title": "fix(chat): toast on bare /btw and offer Resume only on the latest goal status",
          "url": "https://github.com/OpenHands/OpenHands/pull/18036",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T05:14:18Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "25a784f9369a33cd97fd3740c5afc0b75cd790df",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T05:14:22Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:32:28Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:32:28Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:32:27Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:32:28Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:32:31Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T02:32:27Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T05:14:22Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:36:33Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:32:34Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:14:25Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:32:34Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:37:00Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:32:36Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:37:09Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17942"
      ],
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer",
      "visual": {
        "summary": "Submitting /btw without a question silently cleared the composer, and outdated goal rows kept offering Resume. The merged fix explains the missing question and limits Resume to the latest eligible goal row.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18036,
          "title": "fix(chat): toast on bare /btw and offer Resume only on the latest goal status",
          "url": "https://github.com/OpenHands/OpenHands/pull/18036",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/2a0c241dabaa6884a88ccc7ed37afa7b445b3386/.pr/before-bare-btw-silently-discarded.png",
            "alt": "Recorded CLI output before: /btw clears the composer with no toast or reply.",
            "caption": "Recorded CLI output before: /btw clears the composer with no toast or reply.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17942-before-d6ff8cf7.png",
            "sha256": "d6ff8cf729508a9cb9c9cfe502c7bb2337ad525183764c1fa4b73d0bece95452"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/2a0c241dabaa6884a88ccc7ed37afa7b445b3386/.pr/after-bare-btw-toast.png",
            "alt": "App capture after: a toast asks the user to provide a question.",
            "caption": "App capture after: a toast asks the user to provide a question.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17942-after-89bbd81f.png",
            "sha256": "89bbd81f87f2fc6b9396562b38f4285501788c69afe8e64c3ff4447fe385038c"
          }
        ],
        "evidence_note": "The PR’s before image is a rendered capture of real CLI output; the after image is an application screenshot of the same bare-command case."
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T05:14:20Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17943,
      "title": "[Bug]: Sidebar conversation list: misleading download error, and the default layout matches no View preset",
      "url": "https://github.com/OpenHands/OpenHands/issues/17943",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18021,
          "title": "fix(conversation-panel): report download failures once and select Recent by default",
          "url": "https://github.com/OpenHands/OpenHands/pull/18021",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T00:59:27Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "0c1c3b7f59e1d1ac16f6e40df0fe5a52475d894d",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:59:32Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:36Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:36Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:36Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:35Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:38Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:34Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:59:38Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:54:03Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:41Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:59:33Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:43Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:54:52Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:43Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:55:07Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17943"
      ],
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer",
      "visual": {
        "summary": "A failed conversation download produced two toasts, blamed an unknown ID, and left its menu open. The fix reports the failure once and closes the menu; it also makes a fresh sidebar match the Recent preset.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18021,
          "title": "fix(conversation-panel): report download failures once and select Recent by default",
          "url": "https://github.com/OpenHands/OpenHands/pull/18021",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/9579bdb83da229e373934eb8bb45ba49b88bd7c0/.pr/before-download-error-two-toasts-menu-open.png",
            "alt": "Failed download: two toasts and the menu remains open.",
            "caption": "Failed download: two toasts and the menu remains open.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17943-before-c3687375.png",
            "sha256": "c368737552f2d9e2bad2210c1178d83703649aef50a7204dddb04a2c7de586f2"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/9579bdb83da229e373934eb8bb45ba49b88bd7c0/.pr/after-download-error-one-toast-menu-closed.png",
            "alt": "Failed download: one error and the menu closes.",
            "caption": "Failed download: one error and the menu closes.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17943-after-f7e2a6ac.png",
            "sha256": "f7e2a6ac0909533ce229fcb7ab5c1e02c64dcc4d678a7dbe7496e2d776273bf7"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T00:59:29Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17944,
      "title": "[Bug]: Workspace picker: folder names are invisible at phone width, and the empty state never shows",
      "url": "https://github.com/OpenHands/OpenHands/issues/17944",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18037,
          "title": "fix(home): show folder names at phone width and the workspace empty state",
          "url": "https://github.com/OpenHands/OpenHands/pull/18037",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T04:43:14Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "874cb87c7b056782c711e3eb77a17c0ddec97ee3",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T04:43:26Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:32Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:31Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:31Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:31Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:34Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:30Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T04:43:19Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:31:22Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:39Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:43:20Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:37Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:31:39Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:37Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:32:20Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17944"
      ],
      "theme": "Files & workspaces",
      "theme_slug": "files-workspaces",
      "visual": {
        "summary": "At phone width, the workspace browser hid every folder name; the empty workspace list also showed no explanation. The merged fix gives names room and restores the “No workspaces yet” state.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18037,
          "title": "fix(home): show folder names at phone width and the workspace empty state",
          "url": "https://github.com/OpenHands/OpenHands/pull/18037",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/6d84aaa776c5928984d58e5f1e04dbf2c41a8548/.pr/17944-before-folder-browser-phone-names-hidden.png",
            "caption": "At 390px, every entry reads only “Folder.”",
            "alt": "At 390px, every entry reads only “Folder.”",
            "width": 390,
            "height": 844,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17944-before-cca0ee07.png",
            "sha256": "cca0ee07bce4eccc6e4eb097db58c7aec02968c3746bad88d6dade112f35c66f"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/6d84aaa776c5928984d58e5f1e04dbf2c41a8548/.pr/17944-after-folder-browser-phone-names-visible.png",
            "caption": "The same phone layout now shows distinct folder names.",
            "alt": "The same phone layout now shows distinct folder names.",
            "width": 390,
            "height": 844,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17944-after-cb4a3b4b.png",
            "sha256": "cb4a3b4b20056234d315cdd3fc4d9988f5b1b5f6af05d589c712bd06a005f41e"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T04:43:16Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17946,
      "title": "[Bug]: Launcher never creates TMUX_TMPDIR, so local Agent Canvas instances share one tmux server and reset each other's terminals",
      "url": "https://github.com/OpenHands/OpenHands/issues/17946",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [],
      "note": "SDK #5559 merged the long socket-path prerequisite; this launcher fix remains open.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17946",
        "https://github.com/OpenHands/software-agent-sdk/pull/5559",
        "https://github.com/OpenHands/OpenHands/issues/17946#issuecomment-6026401009"
      ],
      "theme": "Backends & launcher",
      "theme_slug": "backends-launcher",
      "visual": {
        "summary": "Starting or stopping one local Canvas instance could reset another instance’s terminals: both fell back to the same tmux server. Separate launcher socket directories remain to be fixed; the SDK prerequisite for long socket paths has merged.",
        "primary_pr": null,
        "images": [],
        "evidence_note": "The issue documents terminal output and has no attached screenshot or direct launcher fix PR. SDK #5559 merged the long socket-path prerequisite; the launcher issue remains open."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17947,
      "title": "[Bug]: Automation \"View logs\" shows \"(no output)\" for runs that created a conversation (local backend)",
      "url": "https://github.com/OpenHands/OpenHands/issues/17947",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18022,
          "title": "fix(automations): read local run logs from the server-level bash events",
          "url": "https://github.com/OpenHands/OpenHands/pull/18022",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T01:02:17Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "8e82c5d6e42932cf31bc335484ed22b31ca6c80c",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:21Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:18Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:16Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:17Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:20Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:16Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:21Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:51:09Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:24Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:47Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:24Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:52:55Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:47:23Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T00:53:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17947"
      ],
      "theme": "Automations & Git Sync",
      "theme_slug": "automations-git-sync",
      "visual": {
        "summary": "Completed local automation runs showed “(no output)” even when they had produced logs. The merged fix reads the run’s server-level output, so the Logs dialog displays it.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18022,
          "title": "fix(automations): read local run logs from the server-level bash events",
          "url": "https://github.com/OpenHands/OpenHands/pull/18022",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/b814ab7a214a2a23745da451a2f7663ec335fb86/.pr/17947-before-logs-dialog-no-output.png",
            "caption": "A successful run has an empty Output tab.",
            "alt": "A successful run has an empty Output tab.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17947-before-6f8282e4.png",
            "sha256": "6f8282e4b269e0d2e747ab362a519e0afb2b4ede017a650337de3300bc71f1c3"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/b814ab7a214a2a23745da451a2f7663ec335fb86/.pr/17947-after-logs-dialog-output.png",
            "caption": "The same workflow now displays the run’s actual stdout.",
            "alt": "The same workflow now displays the run’s actual stdout.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17947-after-cf24e5ce.png",
            "sha256": "cf24e5ce00ea8361260dbd4e0c71f13d3059752e58c24dbc3a30ad395e449956"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T01:02:18Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17948,
      "title": "[Bug]: Automation detail and edit: schedule edit silently dropped, wrong run label, slow not-found page, tarball saved as .tar",
      "url": "https://github.com/OpenHands/OpenHands/issues/17948",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17948"
      ],
      "theme": "Automations & Git Sync",
      "theme_slug": "automations-git-sync",
      "visual": {
        "summary": "Automation editing and detail views had four rough edges: a silently discarded schedule edit, a misleading run label, a slow not-found page, and a gzip download named .tar. The issue records reproduction steps for each.",
        "primary_pr": null,
        "images": [],
        "evidence_note": "No screenshot or linked fix PR was available in the issue at the status check."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17949,
      "title": "[Bug]: Launcher: --allow-lan-session-key is ignored, the port-in-use error prints twice with a stack trace, and backend-only runtime_services lists a frontend",
      "url": "https://github.com/OpenHands/OpenHands/issues/17949",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 17964,
          "title": "fix(agent-canvas): honor launcher runtime flags",
          "url": "https://github.com/OpenHands/OpenHands/pull/17964",
          "state": "CLOSED",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "378889f6a5746fdb45d0fc87a260a02971787315",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-05T03:31:53Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T03:31:51Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T02:55:55Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T03:31:53Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Check SDK version consistency",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T03:31:53Z",
                "workflow_id": 321300113,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T03:32:29Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T03:31:51Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T03:32:00Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T02:56:03Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T03:32:34Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T03:31:51Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T02:55:55Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T03:31:58Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T03:31:57Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T03:31:51Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18156,
          "title": "fix(launcher): honor --allow-lan-session-key, clean up port-in-use error, and align backend-only ingress description",
          "url": "https://github.com/OpenHands/OpenHands/pull/18156",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "ccd2b2f5249cc993b2ba2a920c31642b8b66b914",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:53:34Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:53:32Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:54:23Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:53:34Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Check SDK version consistency",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:53:35Z",
                "workflow_id": 321300113,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:53:34Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:54:22Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:53:34Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:53:34Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:53:40Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:53:34Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:53:32Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:54:28Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:54:30Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:53:35Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "Earlier PR #17964 closed without merging; replacement PR #18156 is open.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17949",
        "https://github.com/OpenHands/OpenHands/pull/18156"
      ],
      "theme": "Backends & launcher",
      "theme_slug": "backends-launcher",
      "visual": {
        "summary": "The launcher ignored its LAN-session-key flag, duplicated a port-in-use failure, and described a frontend service in backend-only mode. Replacement PR #18156 is open; the earlier draft closed without merging.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18156,
          "title": "fix(launcher): honor --allow-lan-session-key, clean up port-in-use error, and align backend-only ingress description",
          "url": "https://github.com/OpenHands/OpenHands/pull/18156",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [],
        "evidence_note": "Current PR #18156 reports 156 passing launcher tests. Its image attachment returns 404, so there is no available screenshot evidence. Earlier draft #17964 closed without merging."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17950,
      "title": "[Bug]: Git Sync page shows credentials embedded in the repository URL, and its Enable help text is outdated",
      "url": "https://github.com/OpenHands/OpenHands/issues/17950",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18039,
          "title": "fix(automations): hide repository credentials on the Git Sync status card",
          "url": "https://github.com/OpenHands/OpenHands/pull/18039",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T20:29:34Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "849252a419b38100916aa3471fc1c6a8f00bf624",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T20:29:38Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:00Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:00Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:26:59Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:26:58Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:02Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T02:26:58Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T20:29:38Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:30:32Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:04Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T20:29:40Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:05Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:30:52Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:27:04Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:31:00Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17950"
      ],
      "theme": "Automations & Git Sync",
      "theme_slug": "automations-git-sync",
      "visual": {
        "summary": "Git Sync displayed credentials embedded in a repository URL, and its help text described an obsolete startup flag. The merged fix removes credentials from the displayed URL and explains when syncing is enabled.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18039,
          "title": "fix(automations): hide repository credentials on the Git Sync status card",
          "url": "https://github.com/OpenHands/OpenHands/pull/18039",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/c9afb5da6af1ab19a80d87f8d0608d3e265806d0/.pr/before-sync-status-repo-shows-credentials.png",
            "caption": "The original test capture exposes the deliberately fake qa-user:qa-pass credentials.",
            "alt": "The original test capture exposes the deliberately fake qa-user:qa-pass credentials.",
            "width": 848,
            "height": 379,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17950-before-29c81485.png",
            "sha256": "29c81485cef0e17584ee9b402c8a0d035010bff3be7f6fd5147a90a7aaeab19b"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/c9afb5da6af1ab19a80d87f8d0608d3e265806d0/.pr/after-sync-status-repo-hides-credentials.png",
            "caption": "The same repository label now omits the credentials.",
            "alt": "The same repository label now omits the credentials.",
            "width": 848,
            "height": 379,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17950-after-18f72f7d.png",
            "sha256": "18f72f7d9112f868b3802cf7ca5007baed3bec05713c0099dc71df37aeeab2d8"
          }
        ],
        "evidence_note": "The credentials in this original screenshot are explicit QA fixtures on example.invalid."
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T20:29:35Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17951,
      "title": "[Bug]: Switching backend from a Manage backends row leaves a blank conversation page instead of redirecting",
      "url": "https://github.com/OpenHands/OpenHands/issues/17951",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18024,
          "title": "fix(backends): redirect off detail pages when switching from Manage backends",
          "url": "https://github.com/OpenHands/OpenHands/pull/18024",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T01:16:42Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "5ffa474465546f5d258ce670edb5df3939d15f78",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:16:56Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:51Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:52Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:52Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:51Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:54Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:49Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T01:16:47Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:06:29Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:11Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:17:10Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:01:58Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:06:51Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:02:01Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T01:06:59Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17951"
      ],
      "theme": "Backends & launcher",
      "theme_slug": "backends-launcher",
      "visual": {
        "summary": "Switching backends from Manage backends left the old conversation URL open and the main pane blank. The merged fix redirects away from detail pages to the newly selected backend.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18024,
          "title": "fix(backends): redirect off detail pages when switching from Manage backends",
          "url": "https://github.com/OpenHands/OpenHands/pull/18024",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/fbf810a7b138f771c86472c4a7da64dfb5ccd3ef/.pr/before-manage-backends-select-blank-conversation.png",
            "caption": "QA_Second is selected, but the conversation pane is blank.",
            "alt": "QA_Second is selected, but the conversation pane is blank.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17951-before-c3c47ade.png",
            "sha256": "c3c47ade20502ad53850c52f9d1aa807d68a0a2dbcb7cb5109ff7a4ee8c8a4a9"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/fbf810a7b138f771c86472c4a7da64dfb5ccd3ef/.pr/after-manage-backends-select-conversation-redirects-to-list.png",
            "caption": "Selecting QA_Second now opens its home page.",
            "alt": "Selecting QA_Second now opens its home page.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17951-after-a318c614.png",
            "sha256": "a318c614e4b61dd74a4a5469f0473f17b3089424107cb523e7e902420931f987"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T01:16:44Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17952,
      "title": "[Bug]: Automation detail page never shows Repositories, Plugins or Notification for automations that have them",
      "url": "https://github.com/OpenHands/OpenHands/issues/17952",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18041,
          "title": "fix(automations): show repositories and plugins stored in preset_metadata",
          "url": "https://github.com/OpenHands/OpenHands/pull/18041",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T20:26:59Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "9308a4def1e266d96100b10ea2e6a563abdb8524",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T20:27:09Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:31Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:30Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:28Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:29Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:31Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:28Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T20:27:03Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:26:08Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:36Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T20:27:05Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:37Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:26:26Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:22:37Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:26:34Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 16673,
          "title": "feat: bring automations UI to parity with the automations API",
          "url": "https://github.com/OpenHands/OpenHands/pull/16673",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "partial",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "d80e99cc387f1dba1a95e8b7241f6fdc7c9ccc64",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-08-23T13:59:34Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-08-23T13:59:48Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-08-23T14:01:19Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          }
        }
      ],
      "note": "Repositories/plugins fixed; the notification subproblem has a separate open PR.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17952"
      ],
      "theme": "Automations & Git Sync",
      "theme_slug": "automations-git-sync",
      "visual": {
        "summary": "Automation details and exports dropped repositories and plugins because Canvas read fields the service did not return. The merged fix reads the stored preset metadata and displays the configured sources.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18041,
          "title": "fix(automations): show repositories and plugins stored in preset_metadata",
          "url": "https://github.com/OpenHands/OpenHands/pull/18041",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/0c16f60e5462af3f22fa47181604e72cccf435f1/.pr/before-detail-multi-repo-no-repositories-or-plugins.png",
            "caption": "The automation’s repositories and plugins are missing.",
            "alt": "The automation’s repositories and plugins are missing.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17952-before-6d929e43.png",
            "sha256": "6d929e43bbd4259471cf69db63df9d528c0413a03ea035072a9db8320ce6db1a"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/0c16f60e5462af3f22fa47181604e72cccf435f1/.pr/after-detail-multi-repo-and-plugins.png",
            "caption": "The same automation now shows both repositories and both plugins.",
            "alt": "The same automation now shows both repositories and both plugins.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17952-after-5d2de941.png",
            "sha256": "5d2de941334928f32bcdfe5eabee9967419c61d0c31e59198aab072075002bd0"
          }
        ],
        "evidence_note": "The Notification part remains tracked separately in #16644 / PR #16673; this merged PR covers repositories and plugins. Export/import still supports only the first repository."
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T20:27:00Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17953,
      "title": "[Bug]: Backends and Cloud sign-in: Escape closes the whole Manage backends stack, raw 404 toast on shared pages, stray about:blank pop-ups",
      "url": "https://github.com/OpenHands/OpenHands/issues/17953",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17953",
        "https://github.com/OpenHands/OpenHands/issues/17953#issuecomment-6071328517"
      ],
      "theme": "Backends & launcher",
      "theme_slug": "backends-launcher",
      "visual": {
        "summary": "Backend and sign-in flows had three problems: Escape dismissed stacked dialogs together, missing shared conversations produced a duplicate error toast, and failed cloud sign-in left blank tabs. This original capture shows the technical error alongside “Conversation not found.”",
        "primary_pr": null,
        "images": [
          {
            "role": "evidence",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/1197db544a349f895dcb0789bea3645da27b814b/.pr/bugs/shared-conversation-404-toast.png",
            "caption": "Original issue capture: the not-found screen also exposes a raw HTTP/JSON error.",
            "alt": "Original issue capture: the not-found screen also exposes a raw HTTP/JSON error.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17953-evidence-1e6e5d9e.png",
            "sha256": "1e6e5d9e69eeb852cf07d72af91476d75c26930a7f4c20bf91ab4a24fbbd29d2",
            "source_kind": "issue"
          }
        ],
        "evidence_note": "Original issue capture. A fresh reproduction still found the duplicate toast, with shorter wording; no linked fix PR was found at this check."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17954,
      "title": "[Bug]: Plugins and Apps: install/update errors say \"Disconnected (check URL or network)\" instead of the server's reason, and plugin errors toast twice",
      "url": "https://github.com/OpenHands/OpenHands/issues/17954",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18025,
          "title": "fix(plugins,apps): show the server's reason once for failed installs and updates",
          "url": "https://github.com/OpenHands/OpenHands/pull/18025",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T20:36:08Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "aef86100e610ae65ebed997fec573e3ca8422d13",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T20:36:22Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:15:49Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:15:49Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:15:49Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:15:47Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:15:51Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T03:15:47Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T20:36:12Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:19:25Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:15:53Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T20:36:19Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:15:55Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:19:54Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:15:54Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T03:20:02Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17954"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "visual": {
        "summary": "A rejected plugin install was reported twice as a disconnection, hiding the server’s useful explanation. The merged fix shows the server’s reason once and gives clearer guidance for duplicate app installs.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18025,
          "title": "fix(plugins,apps): show the server's reason once for failed installs and updates",
          "url": "https://github.com/OpenHands/OpenHands/pull/18025",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/f7acbf0c604cc568bfea25e6803d31fde567a119/.pr/before-plugin-install-two-disconnected-toasts.png",
            "caption": "One failed install produces two misleading “Disconnected” toasts.",
            "alt": "One failed install produces two misleading “Disconnected” toasts.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17954-before-cd7d66ff.png",
            "sha256": "cd7d66ff7eba2a9e448e09bc0d433922ebf8fe4c8ee0ba4d314143861e247710"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/f7acbf0c604cc568bfea25e6803d31fde567a119/.pr/after-plugin-install-one-server-reason.png",
            "caption": "The same invalid source produces one specific error message.",
            "alt": "The same invalid source produces one specific error message.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17954-after-faa871bc.png",
            "sha256": "faa871bc09b30d664060b7198fa25a52959a1553e91a4f3149f9301ce9dddf0c"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T20:36:09Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17955,
      "title": "[Bug]: Add LLM Profile shows the agent's current LLM options (such as temperature) but saves the new profile without them",
      "url": "https://github.com/OpenHands/OpenHands/issues/17955",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 17965,
          "title": "fix(settings): persist displayed active llm settings when creating profile",
          "url": "https://github.com/OpenHands/OpenHands/pull/17965",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "feffce0c4a4a6e3950b9550ea66f5b770e09eb72",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-05T03:55:18Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T03:55:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T08:52:07Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T03:55:18Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T03:55:19Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T03:55:17Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T03:55:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T08:52:01Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T03:55:25Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T03:55:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T08:52:10Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T03:55:23Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T03:55:23Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T03:55:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17955"
      ],
      "theme": "Models, profiles & settings",
      "theme_slug": "models-profiles-settings",
      "visual": {
        "summary": "Add LLM Profile displayed current options such as temperature but silently omitted untouched values when saving. PR #17965 preserves the displayed settings without silently inheriting credentials or provider links.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 17965,
          "title": "fix(settings): persist displayed active llm settings when creating profile",
          "url": "https://github.com/OpenHands/OpenHands/pull/17965",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [
          {
            "role": "evidence",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/33d6ec498b4812acb68110e93a4f86f7cfa0a07c/.pr/bugs/llm-profile-create-temperature-empty.png",
            "caption": "Original issue capture: reopening the newly created profile reveals an empty Temperature field.",
            "alt": "Original issue capture: reopening the newly created profile reveals an empty Temperature field.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17955-evidence-71902215.png",
            "sha256": "7190221523b543b8e32f2d48cdaf9911f7fa285d22801b0758d7bff6d057ed4d"
          }
        ],
        "evidence_note": "The PR has no before/after screenshots; this is the original issue’s reproduction capture."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17956,
      "title": "[Bug]: Plugins and Apps UI: \"Launch Launch Plugin\" title, \"skill\" wording on plugin controls, app switch usable while busy, docs point to /extensions",
      "url": "https://github.com/OpenHands/OpenHands/issues/17956",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18040,
          "title": "fix(plugins): say \"plugin\" on plugin controls and keep busy app switches inert",
          "url": "https://github.com/OpenHands/OpenHands/pull/18040",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T04:27:45Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "331f5cfd111d254a8dda49b94d4581b887e01e61",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T04:27:49Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:34:51Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:34:51Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:34:49Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:34:49Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:34:55Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T02:34:49Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T04:27:49Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:39:13Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:34:55Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:27:51Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:34:55Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:39:30Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:34:55Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T02:39:37Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17956"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "visual": {
        "summary": "Plugin controls called plugins “skills,” the launch title repeated “Launch,” and busy app switches still responded to the keyboard. The merged fix corrects the labels, disables busy switches, and updates the Apps documentation.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18040,
          "title": "fix(plugins): say \"plugin\" on plugin controls and keep busy app switches inert",
          "url": "https://github.com/OpenHands/OpenHands/pull/18040",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/4d6f80d6efae7aa42b7047ab188920c087a65c1b/.pr/before-launch-title-and-trust.png",
            "caption": "The launch dialog says “Launch Launch Plugin” and “I trust this skill.”",
            "alt": "The launch dialog says “Launch Launch Plugin” and “I trust this skill.”",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17956-before-df5c4bf9.png",
            "sha256": "df5c4bf9cbf9a5104854963fccc6ecde0d8bf3ed468229e6426afdeb6ea7c106"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/4d6f80d6efae7aa42b7047ab188920c087a65c1b/.pr/after-launch-title-and-trust.png",
            "caption": "The same dialog says “Launch Plugin” and “I trust this plugin.”",
            "alt": "The same dialog says “Launch Plugin” and “I trust this plugin.”",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17956-after-2cb31bfe.png",
            "sha256": "2cb31bfe7d13015d58cd5679dacb16dcf83251338739bab07c1fcb323c7cf7f1"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T04:27:46Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17957,
      "title": "[Bug]: Skill detail modal ignores Escape while its '+N' tag popover trigger has focus",
      "url": "https://github.com/OpenHands/OpenHands/issues/17957",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 17967,
          "title": "fix: close skill tag popover before modal on Escape",
          "url": "https://github.com/OpenHands/OpenHands/pull/17967",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-11T04:02:41Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "78a77d4e6629f4e0dc933027cbae7eca48d9d09e",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:38:42Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:22:57Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T04:02:45Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:22:58Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:25:03Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:22:57Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:22:57Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T04:02:45Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:25:13Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:22:57Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T04:02:46Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:23:03Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T06:23:04Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T06:22:57Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18249,
          "title": "fix(skills): allow Escape to close +N pills popover and unblock modal dismissal",
          "url": "https://github.com/OpenHands/OpenHands/pull/18249",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "e0c264261b7e66e3942fd91e024773a3549bb5e3",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:35:09Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T18:30:09Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T18:30:09Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:30:10Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:35:09Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T18:30:09Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T18:30:09Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:30:10Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:35:15Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T18:30:09Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T18:30:09Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:30:15Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:30:15Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T18:30:09Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17957"
      ],
      "theme": "Accessibility & keyboard controls",
      "theme_slug": "accessibility-keyboard",
      "visual": {
        "summary": "Escape behaved incorrectly when the skill detail’s +N tag control had focus. PR #17967 gives the popover its own dismissal step, keeping the detail dialog open until the next Escape.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 17967,
          "title": "fix: close skill tag popover before modal on Escape",
          "url": "https://github.com/OpenHands/OpenHands/pull/17967",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/pei711/OpenHands/fix/skill-modal-pill-escape-17957/.pr/bugs/skill-modal-pill-escape-before.png",
            "caption": "The PR’s before capture shows the tag overflow still open.",
            "alt": "The PR’s before capture shows the tag overflow still open.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17957-before-6bdb0ead.png",
            "sha256": "6bdb0ead2de0a217cc7e0e38a7f863d7ea4ee0e35afc3345c920616a1ea2e7cd"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/pei711/OpenHands/fix/skill-modal-pill-escape-17957/.pr/bugs/skill-modal-pill-escape-after.png",
            "caption": "The PR’s after capture shows the popover dismissed and focus back on +2.",
            "alt": "The PR’s after capture shows the popover dismissed and focus back on +2.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17957-after-3f58b59b.png",
            "sha256": "3f58b59b59ef8297c02862cc76fb89991f8a72e94260ced73a52bf8955376f2a"
          }
        ],
        "evidence_note": "Original PR screenshots from a local mock run. These captures remain the original branch evidence."
      },
      "cohort": "initial",
      "closed_at": "2026-10-11T04:02:42Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17958,
      "title": "[Bug]: Custom MCP server editor reports a malformed header as an environment-variable error",
      "url": "https://github.com/OpenHands/OpenHands/issues/17958",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 17966,
          "title": "fix: show header-specific MCP validation errors",
          "url": "https://github.com/OpenHands/OpenHands/pull/17966",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-11T04:07:52Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "07b762b6e9b74efaaadb04ebc544e4e3cf31088f",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T05:58:13Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T04:19:12Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T04:07:56Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T04:19:07Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T05:58:12Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T04:19:05Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T04:19:05Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T04:07:56Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T05:58:19Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T04:19:05Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T04:07:58Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T04:19:12Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T04:19:12Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T04:19:06Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17958"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "visual": {
        "summary": "A malformed MCP authentication header produced an environment-variable error. PR #17966 names the actual field: “Headers must follow KEY=value format.”",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 17966,
          "title": "fix: show header-specific MCP validation errors",
          "url": "https://github.com/OpenHands/OpenHands/pull/17966",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/pei711/OpenHands/fix/mcp-header-validation-message/.pr/bugs/mcp-header-error-before.png",
            "caption": "The invalid header is incorrectly described as an environment-variable problem.",
            "alt": "The invalid header is incorrectly described as an environment-variable problem.",
            "width": 1280,
            "height": 900,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17958-before-37284c04.png",
            "sha256": "37284c040b88e44808a9e731930704bb2706d78f93fa1df9d58f42de50d2a6ad"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/pei711/OpenHands/fix/mcp-header-validation-message/.pr/bugs/mcp-header-error-after.png",
            "caption": "The same input now receives a header-specific validation message.",
            "alt": "The same input now receives a header-specific validation message.",
            "width": 1280,
            "height": 900,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17958-after-e8345743.png",
            "sha256": "e83457438f67a088898557be4d42eca35fd60d29f247c78af688bc2ef30c3953"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-11T04:07:54Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17959,
      "title": "[Bug]: Automation templates: a search with no matches shows a blank page, and cards say \"1 MCPs to connect\" for optional integrations",
      "url": "https://github.com/OpenHands/OpenHands/issues/17959",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18153,
          "title": "fix(automations): render empty state on template search and exclude optional integrations from connect count",
          "url": "https://github.com/OpenHands/OpenHands/pull/18153",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "3441b93aa8ebf47da89b9d11716e1d9a670a8230",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:55:01Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:55:00Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:55:03Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:55:02Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:55:02Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:55:01Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:55:01Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:55:01Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:55:07Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:55:01Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:55:00Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:55:13Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T12:55:13Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T12:55:01Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17959",
        "https://github.com/OpenHands/OpenHands/pull/18153"
      ],
      "theme": "Automations & Git Sync",
      "theme_slug": "automations-git-sync",
      "visual": {
        "summary": "Searching automation templates for a missing term left a blank page, and cards miscounted optional integrations. PR #18153 adds a no-results state with a clear-search action and counts only required integrations with correct singular and plural wording.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18153,
          "title": "fix(automations): render empty state on template search and exclude optional integrations from connect count",
          "url": "https://github.com/OpenHands/OpenHands/pull/18153",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [
          {
            "role": "evidence",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/3b0c9a1d54e2805e4f713b63f4affde4451b0248/.pr/bugs/f22-2-no-match.png",
            "caption": "Original issue capture: a no-match search leaves the template area blank.",
            "alt": "Original issue capture: a no-match search leaves the template area blank.",
            "width": 1440,
            "height": 1000,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17959-evidence-9c3f0619.png",
            "sha256": "9c3f0619794f8ad3d42edf2628e2d986cebd8479293b08e8e40daefe923dc63b",
            "source_kind": "issue"
          }
        ],
        "evidence_note": "The PR reuses this original issue capture and reports automated tests; it does not provide an after-fix screenshot."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 17960,
      "title": "[Bug]: Automation setup offers an Agent profile for Prompt and Plugin actions, but choosing one blocks creation with \"Extra inputs are not permitted\"",
      "url": "https://github.com/OpenHands/OpenHands/issues/17960",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 17971,
          "title": "fix(automations): hide agent profiles for preset actions",
          "url": "https://github.com/OpenHands/OpenHands/pull/17971",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-05T18:20:15Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "ee92f98474c54581508435c4eb0022d788434ad8",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T09:15:13Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T07:48:47Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T18:20:21Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T07:48:49Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T09:14:37Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T07:48:47Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T07:48:47Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T18:20:28Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T09:15:19Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T07:48:47Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T18:20:23Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T07:48:55Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T07:48:55Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T07:48:47Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/17960"
      ],
      "theme": "Automations & Git Sync",
      "theme_slug": "automations-git-sync",
      "visual": {
        "summary": "Prompt and Plugin automations offered an agent profile that their API could not accept, so choosing one blocked creation. The merged fix offers profiles only for supported Upload/Bundle actions and omits them from preset requests.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 17971,
          "title": "fix(automations): hide agent profiles for preset actions",
          "url": "https://github.com/OpenHands/OpenHands/pull/17971",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "evidence",
            "source_url": "https://github.com/user-attachments/assets/57900970-fdd3-4c29-9861-19ca54253644",
            "caption": "Original PR comparison: Prompt setup loses the unsupported Agent profile field.",
            "alt": "Original PR comparison: Prompt setup loses the unsupported Agent profile field.",
            "width": 1120,
            "height": 1047,
            "src": "../assets/verify-openhands/issue-evidence/canvas-17960-evidence-1cf35622.png",
            "sha256": "1cf35622f1fe4df1b1b1dae46e082a1836af13b30fe9525722543bf5e02c8e7c"
          }
        ],
        "evidence_note": "This is the PR’s original combined before/after image, captured with mock data. The PR explicitly reports that a live Agent Server/automation backend was unavailable."
      },
      "cohort": "initial",
      "closed_at": "2026-10-05T18:20:17Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18060,
      "title": "[Bug]: Agent profile row menu is not keyboard-operable: focus stays on the trigger, and arrow keys stop at the disabled \"Set as active\"",
      "url": "https://github.com/OpenHands/OpenHands/issues/18060",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18112,
          "title": "fix(a11y): make the agent profile row menu keyboard-operable",
          "url": "https://github.com/OpenHands/OpenHands/pull/18112",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-11T03:44:09Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "f5ddec1cd40ea58a12c51b94d1bad8beb9d27d41",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T08:27:19Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T05:45:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T03:44:13Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T05:45:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T08:27:20Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T05:45:18Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T05:45:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T03:44:13Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T08:27:26Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T05:45:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:44:14Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T05:45:24Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T05:45:24Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T05:45:19Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18248,
          "title": "fix(settings): restore keyboard accessibility for agent profile actions menu",
          "url": "https://github.com/OpenHands/OpenHands/pull/18248",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "7e1229101cd9ebcd3b1495c62a36e6a8891338e4",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T17:48:07Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T00:09:37Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T17:48:08Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T17:48:08Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T17:48:09Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T17:48:06Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T17:48:13Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T00:09:36Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T17:48:14Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T17:48:07Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T00:09:36Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T17:48:13Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T17:48:13Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T17:48:07Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18060"
      ],
      "theme": "Accessibility & keyboard controls",
      "theme_slug": "accessibility-keyboard",
      "visual": {
        "summary": "Opening an agent profile’s menu from the keyboard left focus on its trigger, and arrow navigation got stuck at a disabled item. PR #18112 focuses the first enabled action and returns focus to the trigger when the menu closes.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18112,
          "title": "fix(a11y): make the agent profile row menu keyboard-operable",
          "url": "https://github.com/OpenHands/OpenHands/pull/18112",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/fengyue-xve/OpenHands/pr-screenshots/18112/before-menu.png",
            "caption": "The menu is open, but the focus ring remains on the three-dot trigger.",
            "alt": "The menu is open, but the focus ring remains on the three-dot trigger.",
            "width": 2560,
            "height": 1600,
            "src": "../assets/verify-openhands/issue-evidence/canvas-18060-before-4bb3f914.png",
            "sha256": "4bb3f914bd310f3ee7a8ad27f493eb20d997704ad0a8efc6e2ffbdd2d8bea97d"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/fengyue-xve/OpenHands/pr-screenshots/18112/after-menu.png",
            "caption": "Focus enters the menu on Edit, ready for keyboard navigation.",
            "alt": "Focus enters the menu on Edit, ready for keyboard navigation.",
            "width": 2560,
            "height": 1600,
            "src": "../assets/verify-openhands/issue-evidence/canvas-18060-after-fc8f4705.png",
            "sha256": "fc8f470598f96ae9ed609a9ff708f70ef46ca7dff2b44b428cc7c2b2f54283c4"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": "2026-10-11T03:44:10Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18061,
      "title": "[Bug]: Automation setup: Agent profile field goes blank after switching the action through Prompt/Plugin or choosing \"Default\"",
      "url": "https://github.com/OpenHands/OpenHands/issues/18061",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18111,
          "title": "fix(automations): show Default when the agent profile field is empty",
          "url": "https://github.com/OpenHands/OpenHands/pull/18111",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-11T03:47:01Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "8e559c2c4c41ee8b65ee0ee868703199e3d6d184",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:54:52Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T03:47:11Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:55:13Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:54:45Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:54:45Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:54:43Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:54:43Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T03:47:05Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:54:52Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:54:51Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:47:07Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:55:19Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:55:19Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:54:43Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18187,
          "title": "fix(automations): treat empty agent profile id as default selection",
          "url": "https://github.com/OpenHands/OpenHands/pull/18187",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "436d015f8663c3e152f63f776421757cfc42a1ce",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T18:55:32Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T21:09:56Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:55:33Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:55:34Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:55:34Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T18:55:32Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T18:55:32Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T21:09:56Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:55:40Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T18:55:32Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T21:09:49Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:55:38Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:55:40Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T18:55:32Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "PR #18111 is the selected fix; the screenshots are from that PR. #18187 is an alternative fix.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18061"
      ],
      "theme": "Automations & Git Sync",
      "theme_slug": "automations-git-sync",
      "visual": {
        "summary": "Switching an automation through Prompt/Plugin, or choosing Default, could leave its Agent profile field blank. PR #18111 normalizes the empty value so “Default” is shown and checked.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18111,
          "title": "fix(automations): show Default when the agent profile field is empty",
          "url": "https://github.com/OpenHands/OpenHands/pull/18111",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/fengyue-xve/OpenHands/pr-screenshots/18111/before-open.png",
            "caption": "After changing actions, the field is blank and no option is checked.",
            "alt": "After changing actions, the field is blank and no option is checked.",
            "width": 2560,
            "height": 1600,
            "src": "../assets/verify-openhands/issue-evidence/canvas-18061-before-2e572d3f.png",
            "sha256": "2e572d3ff443580d5131f102e2cb13285c3da8a0bf7de4f4ce085a8992c500a1",
            "source_kind": "pr",
            "source_pr": "https://github.com/OpenHands/OpenHands/pull/18111"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/fengyue-xve/OpenHands/pr-screenshots/18111/after-open.png",
            "caption": "The same flow now displays Default and marks it selected.",
            "alt": "The same flow now displays Default and marks it selected.",
            "width": 2560,
            "height": 1600,
            "src": "../assets/verify-openhands/issue-evidence/canvas-18061-after-1fb36821.png",
            "sha256": "1fb36821118e640cc51c3987d0b8dbdbddf9d673841dc5a1894a5617dc688fea",
            "source_kind": "pr",
            "source_pr": "https://github.com/OpenHands/OpenHands/pull/18111"
          }
        ],
        "evidence_note": "Original before/after screenshots from PR #18111. Alternative PR #18187 reuses the original issue screenshot."
      },
      "cohort": "initial",
      "closed_at": "2026-10-11T03:47:02Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18062,
      "title": "[Bug]: Automations: a deleted automation stays on the dashboard, home page and detail page after Run now fails with \"Automation not found\"",
      "url": "https://github.com/OpenHands/OpenHands/issues/18062",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18073,
          "title": "fix(automations): refetch automations when Run now finds the automation deleted",
          "url": "https://github.com/OpenHands/OpenHands/pull/18073",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "9a831278b5fd79bfdd7646db33bb81f824beadc8",
            "failed": [
              "test-and-build (ubuntu)"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T17:58:10Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T17:58:08Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T17:58:14Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:00:28Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:00:29Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T17:58:11Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T17:58:16Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T17:58:10Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:00:36Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-08T17:58:21Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T17:58:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T17:58:08Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T17:58:19Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T17:58:10Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18186,
          "title": "fix(automations): invalidate queries when dispatch fails with 404",
          "url": "https://github.com/OpenHands/OpenHands/pull/18186",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "d088ddec5a81284a5b05544f77d97c1d47c6b1ba",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T18:31:03Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T21:14:51Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:31:04Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:31:04Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:31:07Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T18:31:03Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T18:31:03Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T21:14:47Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:31:13Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T18:31:03Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T21:14:42Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:31:09Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T18:31:09Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T18:31:03Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "Two alternative fix PRs are open; the screenshots are from #18073.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18062"
      ],
      "theme": "Automations & Git Sync",
      "theme_slug": "automations-git-sync",
      "visual": {
        "summary": "An automation deleted elsewhere stayed visible even after Run now reported it missing. PR #18073 refreshes the list and detail data after that 404, removing the stale dashboard card and updating the count.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18073,
          "title": "fix(automations): refetch automations when Run now finds the automation deleted",
          "url": "https://github.com/OpenHands/OpenHands/pull/18073",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/pucedoteth/OpenHands/7f56bbf540501babaf79dccf552867e18a308695/.pr/18062-before-main.png",
            "caption": "After the failed run, PR Triage Digest remains and the count is seven.",
            "alt": "After the failed run, PR Triage Digest remains and the count is seven.",
            "width": 1280,
            "height": 860,
            "src": "../assets/verify-openhands/issue-evidence/canvas-18062-before-6872d2cb.png",
            "sha256": "6872d2cb500ab01f9a22426042a64ef3850b3b196db4e5d2a8ebb2f81979c492",
            "source_kind": "pr",
            "source_pr": "https://github.com/OpenHands/OpenHands/pull/18073"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/pucedoteth/OpenHands/7f56bbf540501babaf79dccf552867e18a308695/.pr/18062-after-fix.png",
            "caption": "The deleted card disappears and the count drops to six.",
            "alt": "The deleted card disappears and the count drops to six.",
            "width": 1280,
            "height": 860,
            "src": "../assets/verify-openhands/issue-evidence/canvas-18062-after-5a07e26d.png",
            "sha256": "5a07e26d705da31da96e8402612ebbc01011103d8aaf326a9e46af3abf2f247f",
            "source_kind": "pr",
            "source_pr": "https://github.com/OpenHands/OpenHands/pull/18073"
          }
        ],
        "evidence_note": "Original before/after screenshots from open PR #18073 use Canvas mock mode. The author visually verified the dashboard; home and detail views were not driven separately. Alternative PR #18186 is also open and reuses the original issue screenshot."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18063,
      "title": "[Bug]: Composer \"More input actions\" Model submenu runs off the right and bottom edges at narrow widths (third profile and LLM Profiles link can't be clicked or tapped)",
      "url": "https://github.com/OpenHands/OpenHands/issues/18063",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18115,
          "title": "fix(chat): keep the overflow menu's submenus inside the viewport",
          "url": "https://github.com/OpenHands/OpenHands/pull/18115",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "f8890f07e433bbd55e702c73d2f0941f76484bf6",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T08:21:10Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T08:17:40Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T08:17:37Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T08:17:42Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T08:21:10Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T08:17:40Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T08:17:40Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T08:17:39Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T08:21:16Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T08:17:40Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T08:17:37Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T08:17:47Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T08:17:46Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T08:17:40Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18242,
          "title": "fix(chat): fit overflow and tools submenus to viewport at narrow widths",
          "url": "https://github.com/OpenHands/OpenHands/pull/18242",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "54b325b47ee4dc97d36f3dd9fb424c945bc0f4c4",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T13:37:27Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T14:13:12Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T13:37:29Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T13:37:30Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T13:37:30Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T13:37:27Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T13:37:27Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T14:13:11Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T13:37:37Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T13:37:27Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T14:13:11Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T13:37:35Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T13:37:35Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T13:37:28Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18063"
      ],
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer",
      "visual": {
        "summary": "At narrow widths, the composer’s Model submenu placed profiles and its settings link beyond the screen edge. PR #18115 keeps click- and keyboard-opened submenus inside the viewport.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18115,
          "title": "fix(chat): keep the overflow menu's submenus inside the viewport",
          "url": "https://github.com/OpenHands/OpenHands/pull/18115",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/fengyue-xve/OpenHands/pr-screenshots/18115/before.png",
            "caption": "The Model submenu extends beyond the right and bottom edges.",
            "alt": "The Model submenu extends beyond the right and bottom edges.",
            "width": 600,
            "height": 1600,
            "src": "../assets/verify-openhands/issue-evidence/canvas-18063-before-a17e9ec2.png",
            "sha256": "a17e9ec27dac59c48477b44447b0c2c7f31a0118a0ba06261b940b34e4627d0b"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/fengyue-xve/OpenHands/pr-screenshots/18115/after.png",
            "caption": "The same submenu fits inside the narrow viewport.",
            "alt": "The same submenu fits inside the narrow viewport.",
            "width": 600,
            "height": 1600,
            "src": "../assets/verify-openhands/issue-evidence/canvas-18063-after-df341bf4.png",
            "sha256": "df341bf4620264209b88e9961f70913d84c5e952775309bd95face23267c77ea"
          }
        ]
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5495,
      "title": "[Bug]: condenser_kind is exposed as a user-facing settings field with a reStructuredText developer description",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5495",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5531,
          "title": "fix(sdk): keep condenser_kind out of the exported settings schema",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5531",
          "state": "CLOSED",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "d356c6af8d3a2462373198bdd152c01dadeb3cf4",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "unresolved-review-threads",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:31Z",
                "workflow_id": 231618827,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T18:02:14Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (ubuntu-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:10:39Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-docstrings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 246558633,
                "app": "github-actions"
              },
              {
                "name": "check",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 207010770,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "Persisted settings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:37Z",
                "workflow_id": 279158508,
                "app": "github-actions"
              },
              {
                "name": "pre-commit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 183604467,
                "app": "github-actions"
              },
              {
                "name": "REST API (OpenAPI)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:31Z",
                "workflow_id": 239283049,
                "app": "github-actions"
              },
              {
                "name": "Test directory allowlist",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "agent-server-api",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:31Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "endpoint-audit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 344966557,
                "app": "github-actions"
              },
              {
                "name": "integration-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "Check package versions",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 236831996,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (macos-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:35Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (windows-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T18:02:14Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Check OpenAPI Schema",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "sdk-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:36Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "public-type-budget",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:31Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "smoke-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T18:02:23Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "acp-live-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:38Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "test (24.x)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:33Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-slim-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-slim-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:33Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-minimal-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-minimal-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:32Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (java-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (java-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:33Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (golang-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:31Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (golang-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:33Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (python)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:21:40Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "tools-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:37Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "security",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (python-slim)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:21:40Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (python-minimal)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:21:40Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (java)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:21:40Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (golang)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:21:40Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:22:11Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "windows-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "validate-acp-providers",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:30Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with agent server image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:22:18Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "agent-server-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:29:02Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "build",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:10:10Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "agent-server-stress-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:36Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "workspace-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:37Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "cross-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T04:09:37Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "coverage-report",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:34:36Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5584,
          "title": "fix(settings): hide condenser discriminator metadata",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5584",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "2d38bcbb6865adc53dca1fe886eebcbebde6777d",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T00:20:46Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T00:20:46Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T00:20:47Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T00:20:46Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "An earlier PR closed without merging; a new draft proposes removing the discriminator metadata.",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5495",
        "https://github.com/OpenHands/software-agent-sdk/pull/5531",
        "https://github.com/OpenHands/software-agent-sdk/pull/5531#issuecomment-6025005718",
        "https://github.com/OpenHands/software-agent-sdk/pull/5554",
        "https://github.com/OpenHands/software-agent-sdk/pull/5584"
      ],
      "theme": "Models, profiles & settings",
      "theme_slug": "models-profiles-settings",
      "visual": {
        "summary": "The settings schema exposed an internal condenser selector with developer jargon and raw values. An earlier proposal was closed; a new draft now proposes removing the selector metadata.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5531,
          "title": "fix(sdk): keep condenser_kind out of the exported settings schema",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5531",
          "state": "CLOSED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/software-agent-sdk/a62dec59f1cf9f3bf17d80cf3eb6a55854a4491c/.pr/before.png",
            "alt": "Rendered terminal output shows condenser_kind exported in the SDK settings schema and REST response, with raw choices and a developer description.",
            "caption": "Before: the SDK and API publish the internal selector and its developer wording.",
            "width": 1200,
            "height": 900,
            "src": "../assets/verify-openhands/issue-evidence/sdk-5495-before-ed26e0f5.png",
            "sha256": "ed26e0f5042e52f3f7721e9b48af34d4174d13cfe2171ad044e200258ef98268"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/software-agent-sdk/a62dec59f1cf9f3bf17d80cf3eb6a55854a4491c/.pr/after.png",
            "alt": "Rendered terminal output from the proposed change shows condenser_kind absent from both exported schemas while the discriminator still validates.",
            "caption": "Proposed change: the selector is absent from the exported schema; validation still works.",
            "width": 1200,
            "height": 900,
            "src": "../assets/verify-openhands/issue-evidence/sdk-5495-after-ca6beb36.png",
            "sha256": "ca6beb3633158960cec479c274dbf5ef7706ae78c8fcf1af5dd5679a6a7a748e"
          }
        ],
        "evidence_note": "Original rendered terminal captures from PR #5531, not UI screenshots. That proposal closed without merging, so the after image is historical proposal evidence. New draft #5584 has no screenshots.",
        "additional_prs": [
          {
            "repo": "OpenHands/software-agent-sdk",
            "number": 5584,
            "title": "fix(settings): hide condenser discriminator metadata",
            "url": "https://github.com/OpenHands/software-agent-sdk/pull/5584",
            "state": "OPEN",
            "is_draft": true
          }
        ]
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5496,
      "title": "[Bug]: Concurrent plugin requests corrupt .installed.json, so a just-installed plugin is recorded as source \"local\" and Update/launch then fail",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5496",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5690,
          "title": "fix(sdk): lock and atomically write installation metadata",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5690",
          "relation": "partial",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "b3377bb0af50e14c35fc8fc89aad2c506ce1be0b",
            "failed": [
              "Validate PR description",
              "sdk-tests"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:48Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:47Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (ubuntu-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:51Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-docstrings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 246558633,
                "app": "github-actions"
              },
              {
                "name": "check",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 207010770,
                "app": "github-actions"
              },
              {
                "name": "Persisted settings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 279158508,
                "app": "github-actions"
              },
              {
                "name": "pre-commit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 183604467,
                "app": "github-actions"
              },
              {
                "name": "REST API (OpenAPI)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 239283049,
                "app": "github-actions"
              },
              {
                "name": "unresolved-review-threads",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 231618827,
                "app": "github-actions"
              },
              {
                "name": "Test directory allowlist",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:51Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "agent-server-api",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "endpoint-audit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 344966557,
                "app": "github-actions"
              },
              {
                "name": "integration-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "Check package versions",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 236831996,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (macos-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:35:00Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (windows-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "sdk-tests",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:56Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "Check OpenAPI Schema",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:48Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "public-type-budget",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:51Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "smoke-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.variant }}-${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:49Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:47Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "acp-live-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:57Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "test (24.x)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:49Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "tools-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:56Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "security",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:49Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "windows-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:50Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "validate-acp-providers",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:51Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with agent server image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:49Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "agent-server-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:58Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "build",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:35:31Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "agent-server-stress-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:57Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "workspace-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:57Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "cross-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:34:57Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "coverage-report",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T03:39:59Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "PR #5690 locks metadata updates, but installation still swaps the directory outside that lock; concurrent listing can prune the entry and lose its enabled state.",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5496",
        "https://github.com/OpenHands/software-agent-sdk/issues/5496#issuecomment-5986758027",
        "https://github.com/OpenHands/OpenHands/pull/18025",
        "https://github.com/OpenHands/OpenHands/pull/18085"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "visual": {
        "summary": "Concurrent plugin requests can corrupt the installation record. A freshly installed plugin is then treated as a local source, so updating or launching it fails.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5690,
          "title": "fix(sdk): lock and atomically write installation metadata",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5690",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [],
        "evidence_note": "PR #5690 is now identified; no before-and-after visual evidence was retained in the original collection. The issue remains open."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5497,
      "title": "[Bug]: Rotating a provider connection's API key does not reach the active LLM settings; new conversations keep using the old key",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5497",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5382,
          "title": "fix(provider-connections): cascade PATCH into active settings snapshot (write-side option for OpenHands/OpenHands#17803)",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5382",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "related",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "40021e951f8e867aa950155ec8bc4fb1f8d86242",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:08Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:08Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (ubuntu-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-docstrings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 246558633,
                "app": "github-actions"
              },
              {
                "name": "check",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 207010770,
                "app": "github-actions"
              },
              {
                "name": "Persisted settings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 279158508,
                "app": "github-actions"
              },
              {
                "name": "pre-commit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 183604467,
                "app": "github-actions"
              },
              {
                "name": "REST API (OpenAPI)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 239283049,
                "app": "github-actions"
              },
              {
                "name": "unresolved-review-threads",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:11Z",
                "workflow_id": 231618827,
                "app": "github-actions"
              },
              {
                "name": "Test directory allowlist",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:11Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "agent-server-api",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "endpoint-audit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 344966557,
                "app": "github-actions"
              },
              {
                "name": "integration-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "Check package versions",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 236831996,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (macos-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:14Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (windows-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Check OpenAPI Schema",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "sdk-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:19Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "public-type-budget",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "smoke-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:08Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "acp-live-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:19Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "test (22.12)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:11Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:12Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "test (24.x)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-slim-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-slim-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:12Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-minimal-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-minimal-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:12Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (java-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (java-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:12Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (golang-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (golang-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:12Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (python)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:15:03Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "tools-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:20Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "security",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:10Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (python-slim)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:15:05Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (python-minimal)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:15:03Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (java)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:15:03Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (golang)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:15:04Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:15:56Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "windows-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:11Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "validate-acp-providers",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:11Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with agent server image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:16:08Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "agent-server-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:18Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "build",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:57Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "agent-server-stress-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:21Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "workspace-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:20Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "cross-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:06:19Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "coverage-report",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-29T19:12:00Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5383,
          "title": "fix(settings): re-resolve provider connection on GET /api/settings (read-side option for OpenHands/OpenHands#17803)",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5383",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "related",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "6152dd6412376ed3e8bd74263d7146cbabd13a40",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:09:13Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-09-30T17:49:30Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (ubuntu-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:36Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-docstrings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 246558633,
                "app": "github-actions"
              },
              {
                "name": "check",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:36Z",
                "workflow_id": 207010770,
                "app": "github-actions"
              },
              {
                "name": "Persisted settings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 279158508,
                "app": "github-actions"
              },
              {
                "name": "pre-commit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 183604467,
                "app": "github-actions"
              },
              {
                "name": "REST API (OpenAPI)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:36Z",
                "workflow_id": 239283049,
                "app": "github-actions"
              },
              {
                "name": "unresolved-review-threads",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:09:13Z",
                "workflow_id": 231618827,
                "app": "github-actions"
              },
              {
                "name": "Test directory allowlist",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "agent-server-api",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "endpoint-audit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 344966557,
                "app": "github-actions"
              },
              {
                "name": "integration-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "Check package versions",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 236831996,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (macos-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:42Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (windows-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:36Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-09-30T17:49:40Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Check OpenAPI Schema",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "sdk-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:43Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "public-type-budget",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "smoke-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-09-30T17:49:30Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "acp-live-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:41Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "test (22.12)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:36Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:38Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "test (24.x)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:36Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-slim-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-slim-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:37Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-minimal-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-minimal-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:38Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (java-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (java-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:37Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (golang-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:36Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (golang-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:37Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (python)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:11:52Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "tools-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:43Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "security",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:36Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (python-slim)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:11:52Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (python-minimal)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:11:54Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (java)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:11:52Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (golang)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:11:53Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:12:25Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "windows-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "validate-acp-providers",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:35Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with agent server image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:12:33Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "agent-server-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:41Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "build",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:02:18Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "agent-server-stress-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:43Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "workspace-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:42Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "cross-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:01:42Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "coverage-report",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-30T00:07:18Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "Alternative fixes target the same symptom through canonical issue OpenHands/OpenHands#17803.",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5497",
        "https://github.com/OpenHands/software-agent-sdk/issues/5497#issuecomment-5986573877",
        "https://github.com/OpenHands/software-agent-sdk/pull/5382",
        "https://github.com/OpenHands/software-agent-sdk/pull/5383",
        "https://github.com/OpenHands/software-agent-sdk/actions/runs/36648216044",
        "https://github.com/OpenHands/software-agent-sdk/actions/runs/36648884561"
      ],
      "theme": "Models, profiles & settings",
      "theme_slug": "models-profiles-settings",
      "visual": {
        "summary": "Changing a provider connection’s API key leaves a stale key in the active settings, so new conversations can keep using the old credential. Two existing proposals address this through the related provider-connection report.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5383,
          "title": "fix(settings): re-resolve provider connection on GET /api/settings (read-side option for OpenHands/OpenHands#17803)",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5383",
          "state": "OPEN",
          "is_draft": false
        },
        "primary_pr_relation": "Related alternative; fixes canonical OpenHands/OpenHands#17803, not a formal closing link for this issue.",
        "additional_prs": [
          {
            "repo": "OpenHands/software-agent-sdk",
            "number": 5382,
            "title": "fix(provider-connections): cascade PATCH into active settings snapshot (write-side option for OpenHands/OpenHands#17803)",
            "url": "https://github.com/OpenHands/software-agent-sdk/pull/5382",
            "state": "OPEN",
            "is_draft": true
          }
        ],
        "images": [],
        "evidence_note": "The related proposals offer read-side resolution or write-side updates. Neither PR includes a before-and-after image pair; their current states are shown in the ledger."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5498,
      "title": "[Bug]: After deleting the active LLM profile, its provider connection cannot be deleted (\"referenced by the active agent settings\")",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5498",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5498",
        "https://github.com/OpenHands/software-agent-sdk/issues/5498#issuecomment-5986575501"
      ],
      "theme": "Models, profiles & settings",
      "theme_slug": "models-profiles-settings",
      "visual": {
        "summary": "Deleting the active LLM profile leaves its provider connection referenced by hidden settings. The connection then refuses deletion even though the UI shows no profiles using it.",
        "primary_pr": null,
        "images": [],
        "evidence_note": "No linked fix PR or before-and-after PR evidence found. The related key-rotation proposals do not cover this deletion guard."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5501,
      "title": "[Bug]: Canvas extension manifest drops pages[].nav_label, so Agent Canvas shows the page title in the rail",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5501",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5521,
          "title": "fix(agent-server): preserve Canvas extension navigation labels",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5521",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "33d301d33b9e8c64d4611583dd9d953ddaa84eb5",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T14:54:39Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T14:59:02Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T14:54:41Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T14:54:39Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5522,
          "title": "fix(agent-server): preserve Canvas page navigation labels",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5522",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "bb0d45155ccc26760a2d53dd458b058e7bb3c78f",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T14:55:56Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T14:55:57Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T14:55:59Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-05T14:55:56Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5591,
          "title": "fix(canvas): preserve extension navigation labels",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5591",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "00665627888b862af60997e2e809d19e9f398183",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T03:33:43Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T03:33:43Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T03:33:44Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T03:33:43Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5501",
        "https://github.com/OpenHands/software-agent-sdk/pull/5521",
        "https://github.com/OpenHands/software-agent-sdk/pull/5522",
        "https://github.com/OpenHands/software-agent-sdk/pull/5591"
      ],
      "theme": "Canvas extensions",
      "theme_slug": "canvas-extensions",
      "visual": {
        "summary": "The server drops a Canvas extension’s navigation label, so the sidebar shows the full page title instead. PR #5521 preserves the label through the manifest and API.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5521,
          "title": "fix(agent-server): preserve Canvas extension navigation labels",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5521",
          "state": "OPEN",
          "is_draft": true
        },
        "additional_prs": [
          {
            "repo": "OpenHands/software-agent-sdk",
            "number": 5522,
            "title": "fix(agent-server): preserve Canvas page navigation labels",
            "url": "https://github.com/OpenHands/software-agent-sdk/pull/5522",
            "state": "OPEN",
            "is_draft": true
          },
          {
            "repo": "OpenHands/software-agent-sdk",
            "number": 5591,
            "title": "fix(canvas): preserve extension navigation labels",
            "url": "https://github.com/OpenHands/software-agent-sdk/pull/5591",
            "state": "OPEN",
            "is_draft": true
          }
        ],
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/iamrishabruh/software-agent-sdk/fix/canvas-nav-label-5501/.pr/nav-label/before.jpg",
            "alt": "Agent Canvas extension page with sidebar entry labeled Hello from an extension.",
            "caption": "Before: the rail uses the page title, “Hello from an extension”.",
            "width": 1280,
            "height": 720,
            "src": "../assets/verify-openhands/issue-evidence/sdk-5501-before-990479e3.jpg",
            "sha256": "990479e3af51d548c16cec698ede6ff94c7e9b9d712f476bcd7ee9ab506f2da0"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/iamrishabruh/software-agent-sdk/fix/canvas-nav-label-5501/.pr/nav-label/after.jpg",
            "alt": "The same Agent Canvas extension page with the sidebar entry correctly labeled Extension demo.",
            "caption": "Draft fix: the rail shows the configured label, “Extension demo”.",
            "width": 1280,
            "height": 720,
            "src": "../assets/verify-openhands/issue-evidence/sdk-5501-after-e7e3e86b.jpg",
            "sha256": "e7e3e86b7b3ae7279afee1da2368e0ab68797a77682b686a2549af283f36b26e"
          }
        ],
        "evidence_note": "Original screenshots from draft PR #5521, using a real Canvas instance and the demo-page extension. All three proposed fixes remain draft; none has merged."
      },
      "cohort": "initial",
      "closed_at": null
    },
    {
      "repo": "OpenHands/automation",
      "number": 551,
      "title": "[Bug]: Setting a Git Sync encryption key leaves already-synced automations as plaintext in the repository",
      "url": "https://github.com/OpenHands/automation/issues/551",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/automation",
          "number": 563,
          "title": "fix(git-sync): re-export every automation when the encryption key changes",
          "url": "https://github.com/OpenHands/automation/pull/563",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T12:10:54Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "b0706e27af243f9904b587dcaf366e00ecb1e1a3",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T12:10:59Z",
                "workflow_id": 295102413,
                "app": "github-actions"
              },
              {
                "name": "Build and Push Automation Image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:12:39Z",
                "workflow_id": 248720011,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:12:38Z",
                "workflow_id": 351229922,
                "app": "github-actions"
              },
              {
                "name": "unit-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:12:39Z",
                "workflow_id": 245688428,
                "app": "github-actions"
              },
              {
                "name": "backend",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:12:39Z",
                "workflow_id": 263759481,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:12:38Z",
                "workflow_id": 302903988,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T12:10:59Z",
                "workflow_id": 295102413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-05T23:12:44Z",
                "workflow_id": 302903988,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T12:11:01Z",
                "workflow_id": 295102413,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "The merged fix notes remaining gaps for in-flight sync cycles and environment-only encryption-key changes.",
      "provenance_urls": [
        "https://github.com/OpenHands/automation/issues/551",
        "https://github.com/OpenHands/automation/pull/563"
      ],
      "theme": "Automations & Git Sync",
      "theme_slug": "automations-git-sync",
      "visual": {
        "summary": "Turning on Git Sync encryption left already-synced automation files readable in the repository. The merged fix re-exports them after a key change, so the next sync writes ciphertext.",
        "primary_pr": {
          "repo": "OpenHands/automation",
          "number": 563,
          "title": "fix(git-sync): re-export every automation when the encryption key changes",
          "url": "https://github.com/OpenHands/automation/pull/563",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/automation/7173546cb333ecc39f4bc1b2bafabae1fc958050/.pr/before.png",
            "alt": "Rendered terminal output shows automation.yaml and prompt.txt still marked PLAINTEXT after saving an encryption key, with failing regression tests.",
            "caption": "Before: saving the key leaves existing files as plaintext; the regression tests fail.",
            "width": 1200,
            "height": 1250,
            "src": "../assets/verify-openhands/issue-evidence/automation-551-before-91eb6052.png",
            "sha256": "91eb6052a9abec6ccf501332c3e9b998cbb2454d7963bb6992deed874fc57948"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/automation/7173546cb333ecc39f4bc1b2bafabae1fc958050/.pr/after.png",
            "alt": "Rendered terminal output shows the next sync replacing automation files with CIPHERTEXT in one commit and all five new regression checks passing.",
            "caption": "After: the next sync encrypts both files in one commit; the regression tests pass.",
            "width": 1200,
            "height": 1250,
            "src": "../assets/verify-openhands/issue-evidence/automation-551-after-fa0c65f1.png",
            "sha256": "fa0c65f16f74d9247fb63f6541238e5789fa55380c2370e7589eafe465e2c27b"
          }
        ],
        "evidence_note": "Original rendered terminal captures from the real-service test in PR #563, not UI screenshots. This fixes the next sync after saving a key; the PR records follow-ups for a cycle already in progress and environment-only key changes."
      },
      "cohort": "initial",
      "closed_at": "2026-10-06T12:10:56Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18050,
      "title": "[Bug]: Generic error toasts still show raw \"HTTP request failed (<status>): {json}\" text (settings save, MCP delete, shared links)",
      "url": "https://github.com/OpenHands/OpenHands/issues/18050",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18051,
          "title": "fix(errors): show the server's message instead of raw HttpError text in generic error toasts",
          "url": "https://github.com/OpenHands/OpenHands/pull/18051",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-06T21:53:28Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "b099a88c5adc8700467e25036d0196693bc68888",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T21:53:32Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T21:28:49Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T21:28:48Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T21:28:47Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T21:28:47Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T21:28:51Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T21:28:47Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T21:53:32Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T21:32:09Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T21:28:54Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T21:53:35Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T21:28:56Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T21:32:45Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T21:28:57Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T21:32:55Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "The merged change repairs error wording, not duplicate-toast handling.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18050",
        "https://github.com/OpenHands/OpenHands/pull/18051"
      ],
      "theme": "Navigation, layout & copy",
      "theme_slug": "navigation-layout-copy",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "enyst",
        "created_at": "2026-10-06T04:30:52Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "I'm an AI agent (Claude Code) helping Engel Nyst (@enyst) with project work. I found these while checking which error toasts were left out of #18030 (the fix for #17937, now merged). I reproduced each one with the `control-openhands` CLI, on a fresh stack built from current `main`.",
          "The commands come from the `control-openhands` CLI in #17961 (`.agents/skills/verify-openhands` on that PR's branch; it is not on `main` yet). Every step is a normal UI action, except the steps marked as arrangement. No LLM needs to be configured.",
          "export OH_VERIFY_RUN=$(control-openhands launch --new --build auto --print-run)",
          "control-openhands doctor",
          "control-openhands onboard --skip",
          "control-openhands browser viewport desktop",
          "1. control-openhands browser goto /settings/condenser",
          "2. control-openhands browser click 'testid=sdk-section-all-toggle'",
          "3. control-openhands browser fill 'testid=sdk-settings-condenser.max_size' -- -5",
          "4. control-openhands browser network --clear",
          "5. control-openhands browser click 'testid=save-button'",
          "6. control-openhands browser toasts; control-openhands browser network",
          "1. Arrangement: control-openhands api POST /api/settings/mcp/qa_stale --data '{\"transport\":\"stdio\",\"command\":\"qa-no-such-command\",\"enabled\":false}' --write",
          "2. control-openhands browser goto /mcp",
          "3. control-openhands browser click 'testid=mcp-server-detail-qa_stale'",
          "4. Arrangement (another client removes the server): control-openhands api DELETE /api/settings/mcp/qa_stale --write",
          "5. control-openhands browser click 'testid=mcp-custom-editor-delete'",
          "6. control-openhands browser click 'testid=confirmation-modal >> testid=confirm-button'",
          "7. control-openhands browser toasts; control-openhands browser network",
          "1. control-openhands browser goto /shared/conversations/0123456789abcdef0123456789abcdef",
          "2. control-openhands browser toasts; control-openhands browser network",
          "1. control-openhands browser goto /settings/app",
          "2. Arrangement (the backend goes down): control-openhands service stop agent-server",
          "3. control-openhands browser click 'testid=app-settings-screen >> text=Sound Notifications'",
          "4. control-openhands browser click 'testid=submit-button'",
          "5. control-openhands browser toasts; control-openhands browser network",
          "6. control-openhands stop"
        ]
      },
      "visual": {
        "summary": "Generic error toasts exposed HTTP transport text and raw JSON. The merged fix extracts the server’s message and uses readable fallbacks; duplicate MCP toasts are tracked separately in #18181.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18051,
          "title": "fix(errors): show the server's message instead of raw HttpError text in generic error toasts",
          "url": "https://github.com/OpenHands/OpenHands/pull/18051",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/711ab24a4a50f8cd046252c5317962e2fb972e33/.pr/before-condenser-save-raw-422-toast.png",
            "source_kind": "pr",
            "alt": "Saving invalid settings exposes HTTP status text and raw JSON.",
            "caption": "Saving invalid settings exposes HTTP status text and raw JSON.",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18050-before-34ad41ec.png",
            "sha256": "34ad41ec7c56b8303880dd21f6a2639c621b7a5fa7a65a4f8b7030a1ff22d81a"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/711ab24a4a50f8cd046252c5317962e2fb972e33/.pr/after-condenser-save-readable-toast.png",
            "source_kind": "pr",
            "alt": "The same failure now shows the server’s readable message.",
            "caption": "The same failure now shows the server’s readable message.",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18050-after-07bdd437.png",
            "sha256": "07bdd437aee96c8047379631d6317367befd0ffceadbca4e01b8d3041727e897"
          }
        ]
      },
      "closed_at": "2026-10-06T21:53:30Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18088,
      "title": "[Bug]: Available Hooks dialog says \"Failed to fetch skills\" when the Agent Server is unreachable",
      "url": "https://github.com/OpenHands/OpenHands/issues/18088",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18177,
          "title": "fix(hooks): use dedicated hooks fetch error message in available hooks dialog",
          "url": "https://github.com/OpenHands/OpenHands/pull/18177",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-09T04:17:51Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "5b31712ec5426173ab42b4680f62ec9add538689",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:24Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:17:55Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:25Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:17:24Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:17:25Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:24Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:31Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:17:55Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:17:32Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:32Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:17:57Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:31Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:32Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:24Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18098,
          "title": "fix: use hooks-specific fetch error message",
          "url": "https://github.com/OpenHands/OpenHands/pull/18098",
          "state": "CLOSED",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "5a115eda9220394b633c2e3c451be048c36cf47f",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:26Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:28Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:13:37Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:28Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:27Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:26Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:29Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:13:43Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:34Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:29Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:13:36Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:34Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:34Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:29Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "An earlier draft fix was closed without merging.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18088",
        "https://github.com/OpenHands/OpenHands/pull/18177",
        "https://github.com/OpenHands/OpenHands/pull/18098"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "enyst",
        "created_at": "2026-10-06T23:05:22Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "I'm an AI agent (Claude Code) helping Engel Nyst (@enyst) with project work. I found this while updating the verify-openhands feature map for recently merged fixes, and reproduced it on a fresh stack built from current main.",
          "Run method: `npx @openhands/agent-canvas` (verified from a source checkout of `main` with `node bin/agent-canvas.mjs`, the same entry point). The commands come from the `control-openhands` harness in `.agents/skills/verify-openhands` (#17961). `service stop agent-server` stops only this stack's Agent Server process, as if it had crashed; every other step is a normal UI action.",
          "control-openhands launch --new --build auto",
          "control-openhands doctor",
          "control-openhands onboard --skip",
          "control-openhands llm set --profile qa-llm --model <provider/model> --api-key-file <key-file>",
          "control-openhands conversation start --prompt \"Reply with the single word: pong\" --wait --timeout 240",
          "2. control-openhands browser goto /conversations/<id>",
          "3. control-openhands browser click 'testid=chat-pane-header >> testid=ellipsis-button'",
          "4. control-openhands browser click 'testid=conversation-name-context-menu >> testid=show-hooks-button'",
          "5. control-openhands browser text 'testid=hooks-modal'",
          "6. control-openhands service stop agent-server",
          "7. control-openhands browser click 'testid=hooks-modal >> testid=refresh-hooks'",
          "8. control-openhands browser wait 'testid=hooks-modal >> text=Failed to fetch' --timeout 30000",
          "9. control-openhands browser text 'testid=hooks-modal'",
          "10. control-openhands restart",
          "11. control-openhands browser goto /conversations/<id>",
          "12. control-openhands service stop agent-server",
          "13. control-openhands browser click 'testid=chat-pane-header >> testid=ellipsis-button'",
          "14. control-openhands browser click 'testid=conversation-name-context-menu >> testid=show-hooks-button'",
          "15. control-openhands browser wait 'testid=hooks-modal >> text=Failed to fetch' --timeout 30000",
          "16. control-openhands browser text 'testid=hooks-modal'",
          "17. control-openhands restart"
        ]
      },
      "visual": {
        "summary": "When the Agent Server was unreachable, Available Hooks said it could not fetch skills. The merged fix gives hooks their own translated error message.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18177,
          "title": "fix(hooks): use dedicated hooks fetch error message in available hooks dialog",
          "url": "https://github.com/OpenHands/OpenHands/pull/18177",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/a77c4017fe233d7f705721323afeac440524439c/.pr/bugs/2026-10-06/hooks-fetch-error-copy/hooks-refresh-server-down-skills-text.png",
            "source_kind": "pr",
            "alt": "Available Hooks incorrectly says “Failed to fetch skills.”",
            "caption": "Available Hooks incorrectly says “Failed to fetch skills.”",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18088-before-ada89b4a.png",
            "sha256": "ada89b4a5c59d3a492343f9633c5fade9ade3bc74739a157f389a4ee82614278"
          },
          {
            "role": "after",
            "source_url": "https://github.com/user-attachments/assets/7e299138-21c7-402a-ad0a-f719f3fef69a",
            "source_kind": "pr",
            "alt": "The dialog now correctly says “Failed to fetch hooks.”",
            "caption": "The dialog now correctly says “Failed to fetch hooks.”",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18088-after-03b85224.png",
            "sha256": "03b852249cc02ffdab4525033f3ed7f070b267bd9eaba1fe31fa5b7772cb3267"
          }
        ]
      },
      "closed_at": "2026-10-09T04:17:52Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18089,
      "title": "[Bug]: Available Hooks dialog shows an empty Commands box for prompt and agent hooks",
      "url": "https://github.com/OpenHands/OpenHands/issues/18089",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18107,
          "title": "fix(hooks): show prompt and agent hook text in the Available Hooks dialog",
          "url": "https://github.com/OpenHands/OpenHands/pull/18107",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-09T00:30:29Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "4e0cf98e8d1c476fcfcc64e04f4da19fbb065938",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T09:19:35Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T05:04:53Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:30:33Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T05:04:56Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T09:19:36Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T05:04:53Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T05:04:53Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:30:33Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T09:19:44Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T05:04:54Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:30:35Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T05:05:02Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T05:05:02Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T05:04:54Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18150,
          "title": "fix(hooks): display prompt and system_prompt in available hooks modal",
          "url": "https://github.com/OpenHands/OpenHands/pull/18150",
          "state": "CLOSED",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "7a93c4269c68950596626bbdb31cf34f9ad34d24",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:30:55Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:35:19Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:30:56Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:30:54Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:30:54Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:30:55Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:30:55Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:35:11Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:31:00Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:30:55Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:35:20Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:31:01Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T11:31:01Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T11:30:55Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "The original blank-text bug is fixed; #18206 tracks agent hooks that carry both prompt and system_prompt.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18089",
        "https://github.com/OpenHands/OpenHands/pull/18107",
        "https://github.com/OpenHands/OpenHands/pull/18150"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "enyst",
        "created_at": "2026-10-06T23:05:23Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "I'm an AI agent (Claude Code) helping Engel Nyst (@enyst) with project work. I found this while updating the verify-openhands feature map for recently merged fixes, and reproduced it on a fresh stack built from current main.",
          "Run method: `npx @openhands/agent-canvas` (verified from a source checkout of `main` with `node bin/agent-canvas.mjs`, the same entry point). The commands come from the `control-openhands` harness in `.agents/skills/verify-openhands` (#17961). Every step is a normal UI action except step 3, which writes the workspace file, and step 8, which reads the server's response directly (`--write` is the harness's flag for any POST; this endpoint only reads `hooks.json`).",
          "control-openhands launch --new --build auto",
          "control-openhands doctor",
          "control-openhands onboard --skip",
          "control-openhands llm set --profile qa-llm --model <provider/model> --api-key-file <key-file>",
          "control-openhands fixture git-repo --name qa-hooks-repo",
          "control-openhands conversation start --workspace qa-hooks-repo --prompt \"Reply with the single word: hi\" --wait --timeout 240",
          "control-openhands browser goto /conversations/<id>",
          "control-openhands browser click 'testid=chat-pane-header >> testid=ellipsis-button'",
          "control-openhands browser click 'testid=conversation-name-context-menu >> testid=show-hooks-button'",
          "control-openhands browser click 'testid=hooks-modal >> testid=refresh-hooks'",
          "control-openhands browser click 'testid=hooks-modal >> role=button[name=\"Stop 1 hook\"]'",
          "control-openhands browser click 'testid=hooks-modal >> role=button[name=\"Session Start 1 hook\"]'",
          "6. control-openhands browser snapshot 'testid=hooks-modal'",
          "7. control-openhands browser text 'testid=hooks-modal >> pre'",
          "control-openhands api POST /api/hooks --write --data '{\"project_dir\":\"<run>/workspace/qa-hooks-repo\"}'",
          "$ control-openhands api POST /api/hooks --write --data '{\"project_dir\":\"<run>/workspace/qa-hooks-repo\"}'",
          "$ control-openhands browser text 'testid=hooks-modal >> pre'",
          "![The same dialog over the conversation page (feature-map fixture, after editing hooks.json and clicking Refresh)](``https://raw.githubusercontent.com/OpenHands/OpenHands/a77c4017fe233d7f705721323afeac440524439c/.pr/bugs/2026-10-06/hooks-prompt-agent-commands/prompt-agent-hooks-empty-commands.png)``"
        ]
      },
      "visual": {
        "summary": "Prompt and agent hooks showed empty Commands boxes. The merged fix carries their text into the dialog; a remaining type-selection error is tracked separately in #18206.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18107,
          "title": "fix(hooks): show prompt and agent hook text in the Available Hooks dialog",
          "url": "https://github.com/OpenHands/OpenHands/pull/18107",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/fengyue-xve/OpenHands/pr-screenshots/18107/before.png",
            "source_kind": "pr",
            "alt": "Prompt-style hook rows contain empty Commands boxes.",
            "caption": "Prompt-style hook rows contain empty Commands boxes.",
            "width": 2560,
            "height": 1600,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18089-before-813e132c.png",
            "sha256": "813e132cae0a39d1af4743af408a31ef84fb7b3be4fa393beb37e87d1950995c"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/fengyue-xve/OpenHands/pr-screenshots/18107/after.png",
            "source_kind": "pr",
            "alt": "The same rows display the hook instructions.",
            "caption": "The same rows display the hook instructions.",
            "width": 2560,
            "height": 1600,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18089-after-9c63c9cb.png",
            "sha256": "9c63c9cb8a78a8716d74ef980aeb298198b8440c957e11ad0597e4dcd9734039"
          }
        ]
      },
      "closed_at": "2026-10-09T00:30:30Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18090,
      "title": "[Bug]: Duplicate plugin install shows the API hint \"Use force=true to overwrite.\" instead of pointing to Update or Uninstall",
      "url": "https://github.com/OpenHands/OpenHands/issues/18090",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18110,
          "title": "fix(plugins): point duplicate-install toast at Update or Uninstall",
          "url": "https://github.com/OpenHands/OpenHands/pull/18110",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-09T04:11:58Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "1fa19ab6ef64678aefe2ebc41cabcc23d46b59cb",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:21Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:12:03Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:59Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:22Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:21Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:21Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:21Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:12:03Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:27Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:21Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:12:05Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:10:03Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:10:03Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:09:21Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18171,
          "title": "fix(plugins): map duplicate install 409 to already installed toast",
          "url": "https://github.com/OpenHands/OpenHands/pull/18171",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "302c82229b6bcc7f9c0e5e2987e9c8af38fbe30e",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T16:51:05Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T16:51:05Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T16:51:07Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T16:51:07Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T16:51:08Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T16:51:05Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T16:51:14Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T16:51:07Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T16:51:16Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T16:51:05Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T16:51:05Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T16:51:13Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T16:51:12Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T16:51:05Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "Fix #18110 merged; alternative #18171 remains open.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18090",
        "https://github.com/OpenHands/OpenHands/pull/18110",
        "https://github.com/OpenHands/OpenHands/pull/18171"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "enyst",
        "created_at": "2026-10-06T23:05:24Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "I'm an AI agent (Claude Code) helping Engel Nyst (@enyst) with project work. I found this while updating the verify-openhands feature map for recently merged fixes, and reproduced it on a fresh stack built from current main.",
          "Run method: `npx @openhands/agent-canvas` (verified from a source checkout of `main` with `node bin/agent-canvas.mjs`, the same entry point). The commands come from the `control-openhands` harness in `.agents/skills/verify-openhands` (#17961). Every step is a normal UI action; `toasts`, `network`, `count`, `value` and `api GET` only read. No LLM is needed. Step 3 reads `github.com/OpenHands/extensions`; step 5 reproduces the bug without network access.",
          "export OH_VERIFY_RUN=$(control-openhands launch --new --build auto --print-run)",
          "control-openhands doctor",
          "control-openhands onboard --skip",
          "control-openhands browser goto /conversations",
          "control-openhands browser click 'testid=sidebar-skills-link' --expect-url '/mcp(\\?|$)'",
          "control-openhands browser click 'testid=sidebar-extensions-/plugins' --expect-url '/plugins(\\?|$)'",
          "control-openhands browser click 'testid=plugin-install-magic-test'",
          "control-openhands browser wait 'testid=plugin-toggle-magic-test' --timeout 60000",
          "control-openhands browser click 'testid=plugins-add-plugin-button'",
          "control-openhands browser fill 'testid=add-plugin-source-input' 'github:OpenHands/extensions'",
          "control-openhands browser fill 'testid=add-plugin-repo-path-input' 'plugins/magic-test'",
          "control-openhands browser toasts --history --clear",
          "control-openhands browser click 'testid=add-plugin-submit'",
          "control-openhands browser wait 'text=already installed' --timeout 120000",
          "control-openhands browser toasts --history",
          "control-openhands browser network --filter 'plugins/install$'",
          "control-openhands browser count 'testid=add-plugin-modal'",
          "control-openhands browser value 'testid=add-plugin-source-input'",
          "control-openhands api GET /api/plugins/installed",
          "control-openhands browser press Escape",
          "control-openhands browser click 'testid=plugins-add-plugin-button'",
          "control-openhands browser fill 'testid=add-plugin-source-input' \"$OH_VERIFY_RUN/private/cache/skills/public-skills/plugins/magic-test\"",
          "control-openhands browser toasts --history --clear",
          "control-openhands browser click 'testid=add-plugin-submit'",
          "control-openhands browser wait 'text=already installed' --timeout 120000",
          "control-openhands browser toasts --history"
        ]
      },
      "visual": {
        "summary": "Installing the same plugin twice showed an API-only force=true hint. The merged fix tells users to use Update or Uninstall; another proposal remains open.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18110,
          "title": "fix(plugins): point duplicate-install toast at Update or Uninstall",
          "url": "https://github.com/OpenHands/OpenHands/pull/18110",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/fengyue-xve/OpenHands/pr-screenshots/18110/before.png",
            "source_kind": "pr",
            "alt": "Duplicate installation tells the user to “Use force=true.”",
            "caption": "Duplicate installation tells the user to “Use force=true.”",
            "width": 2560,
            "height": 1600,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18090-before-e1409054.png",
            "sha256": "e14090541fb1da83f5561d378c54f22800454ba20dd9cfc259e022b39d3ddf9b"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/fengyue-xve/OpenHands/pr-screenshots/18110/after.png",
            "source_kind": "pr",
            "alt": "The message points to the available Update or Uninstall controls.",
            "caption": "The message points to the available Update or Uninstall controls.",
            "width": 2560,
            "height": 1600,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18090-after-7b51a757.png",
            "sha256": "7b51a757135618044b66c865b4df8427cd6c864f648ad968bead7ce9be62c11b"
          }
        ]
      },
      "closed_at": "2026-10-09T04:11:59Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18094,
      "title": "[Bug]: Escape does not close the composer \"+\" menu, the status-dot menu or the drawer tabs menu",
      "url": "https://github.com/OpenHands/OpenHands/issues/18094",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18095,
          "title": "fix(a11y): close the tools, status and tabs menus on Escape",
          "url": "https://github.com/OpenHands/OpenHands/pull/18095",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-07T01:05:48Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "83ce48f46d6873b9f55ada30d58cf75b18c7dc05",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T01:05:52Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T00:36:19Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T00:36:19Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T00:36:17Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T00:36:18Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T00:36:21Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T00:36:17Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T01:05:52Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T00:39:56Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T00:36:25Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T01:05:55Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T00:36:25Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T00:40:25Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T00:36:25Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T00:40:35Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18094",
        "https://github.com/OpenHands/OpenHands/pull/18095"
      ],
      "theme": "Accessibility & keyboard controls",
      "theme_slug": "accessibility-keyboard",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "enyst",
        "created_at": "2026-10-06T23:24:38Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "I'm an AI agent (Claude Code) helping Engel Nyst (@enyst) with project work. I found these while mapping the conversation page for the verify-openhands feature map, and reproduced them today on a fresh stack built from current main.",
          "Run method: `npx @openhands/agent-canvas` (verified from a source checkout of `main` with `node bin/agent-canvas.mjs`, the same entry point). The commands come from the `control-openhands` harness in `.agents/skills/verify-openhands` (#17961). Every step is a normal UI action; `browser eval` only reads `document.activeElement`.",
          "control-openhands launch --new",
          "control-openhands onboard --skip",
          "control-openhands llm set --profile qa --model <provider/model> --api-key-file <key-file>",
          "control-openhands conversation start --prompt \"Reply with the single word: pong\" --wait",
          "2. control-openhands browser click 'testid=chat-plus-button'",
          "3. control-openhands browser count 'testid=tools-context-menu'",
          "4. control-openhands browser press Escape",
          "5. control-openhands browser count 'testid=tools-context-menu'",
          "6. control-openhands browser eval \"document.activeElement.dataset.testid || document.activeElement.tagName\"",
          "7. control-openhands browser mouse-click 900 300",
          "8. control-openhands browser focus 'testid=server-status-menu-trigger'",
          "9. control-openhands browser press Enter",
          "10. control-openhands browser count 'testid=server-status-context-menu'",
          "11. control-openhands browser press Escape",
          "12. control-openhands browser count 'testid=server-status-context-menu'",
          "13. control-openhands browser eval \"document.activeElement.dataset.testid || document.activeElement.tagName\"",
          "14. control-openhands browser mouse-click 900 500",
          "15. control-openhands browser click 'testid=right-panel-toggle'",
          "16. control-openhands browser click 'testid=tabs-pane-header >> testid=ellipsis-button'",
          "17. control-openhands browser count '[data-testid^=\"conversation-tabs-menu-\"]'",
          "18. control-openhands browser press Escape",
          "19. control-openhands browser count '[data-testid^=\"conversation-tabs-menu-\"]'",
          "20. control-openhands browser eval \"document.activeElement.getAttribute('aria-label')\"",
          "21. control-openhands browser mouse-click 560 600",
          "22. control-openhands browser click 'testid=context-window-meter'",
          "23. control-openhands browser hover 'testid=server-status-menu-trigger'",
          "24. control-openhands browser press Escape",
          "25. control-openhands browser count 'testid=server-status-context-menu'",
          "26. control-openhands browser count 'testid=context-window-meter-popover'"
        ]
      },
      "visual": {
        "summary": "Escape left the composer +, status-dot and drawer tabs menus open. The merged fix closes the topmost menu and restores focus without dismissing a layer underneath.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18095,
          "title": "fix(a11y): close the tools, status and tabs menus on Escape",
          "url": "https://github.com/OpenHands/OpenHands/pull/18095",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/9a441847b4bcee7c4d39f640af439b4268291335/.pr/18094/before-tools-menu-escape.png",
            "source_kind": "pr",
            "alt": "After Escape, the composer’s + menu remains open.",
            "caption": "After Escape, the composer’s + menu remains open.",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18094-before-49ef3b27.png",
            "sha256": "49ef3b2710d14f35abef89e39d9c9d295b8bbb62c8471a7dd743930948dd7d20"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/9a441847b4bcee7c4d39f640af439b4268291335/.pr/18094/after-tools-menu-escape.png",
            "source_kind": "pr",
            "alt": "After Escape, the menu closes and focus returns to +.",
            "caption": "After Escape, the menu closes and focus returns to +.",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18094-after-e6cef306.png",
            "sha256": "e6cef306a9fae5e244c8e0ff1fec4e674716786dd842896072244e2ecfa7985f"
          }
        ]
      },
      "closed_at": "2026-10-07T01:05:49Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18160,
      "title": "[Bug]: Recovery gate (stored backend answers 503) shows two generic \"An error occurred\" toasts from the free-models hydrator",
      "url": "https://github.com/OpenHands/OpenHands/issues/18160",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18164,
          "title": "fix(query): disable error toasts for free models hydrator and backend version probe",
          "url": "https://github.com/OpenHands/OpenHands/pull/18164",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "c485c41b4296491870b9c4c9fd6ef387afbf9615",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T14:37:26Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T14:37:26Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T14:37:28Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T14:37:28Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T14:37:28Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T14:37:26Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T14:37:26Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T14:37:28Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T14:37:36Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T14:37:26Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T14:37:26Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T14:37:34Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T14:37:35Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T14:37:26Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "Reproduced again by the 9 October sweep. The PR’s first-run contrast image is not evidence of a fixed returning-user flow.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18160",
        "https://github.com/OpenHands/OpenHands/pull/18164"
      ],
      "theme": "Backends & launcher",
      "theme_slug": "backends-launcher",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "enyst",
        "created_at": "2026-10-08T13:47:46Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "I am an AI agent based on Fable 5.1, helping Engel Nyst (@enyst) with OpenHands work. This came out of the verify-openhands feature-map pass of 2026-10-08: the behavior was reproduced twice on fresh isolated stacks of `main` @ d2c89252d with the `control-openhands` CLI, and the code path and history below were read before filing.",
          "npm launcher (`node bin/agent-canvas.mjs`, the entry point behind `npx @openhands/agent-canvas`) started from a source checkout by `control-openhands launch`; Agent Server 1.53.0, automation 1.19.0",
          "Run method: `npx @openhands/agent-canvas` (the npm launcher `node bin/agent-canvas.mjs` from a source checkout of `main`). Commands use the `control-openhands` CLI from `.agents/skills/verify-openhands`; the hand-started launcher runs with a private HOME/state on ports 18960–18963.",
          "1. `export OH_VERIFY_RUN=$(control-openhands launch --new --print-run); control-openhands doctor; control-openhands onboard --skip`",
          "4. `control-openhands browser reset; control-openhands browser goto http://127.0.0.1:18960/ --allow-external; control-openhands browser wait 'testid=telemetry-consent-form' --timeout 15000; control-openhands browser uncheck 'testid=telemetry-consent-form >> role=checkbox'; control-openhands browser click 'testid=confirm-telemetry-preferences'; control-openhands browser wait 'testid=onboarding-step-choose-agent' --timeout 15000; control-openhands browser click 'testid=onboarding-skip'; control-openhands browser wait 'testid=root-layout' --timeout 20000` — `control-openhands browser eval \"JSON.parse(localStorage.getItem('openhands-backends')).map(b=>({id:b.id,name:b.name,host:b.host}))\"` → `[{id:\"default-local\",name:\"Local\",host:\"http://127.0.0.1:18960\"}]`",
          "6. `control-openhands browser goto http://127.0.0.1:18960/ --allow-external; control-openhands browser wait 'testid=agent-server-onboarding-screen' --timeout 20000; control-openhands browser toasts; sleep 5; control-openhands browser toasts; sleep 7; control-openhands browser toasts --history; control-openhands browser errors; control-openhands browser network --filter 18960 --last 60; control-openhands browser text 'testid=manage-backends-row-Local'`",
          "7. Contrast (first-run state on the same frontend-only launcher): `control-openhands browser reset; control-openhands browser goto http://127.0.0.1:18960/ --allow-external; control-openhands browser wait 'testid=onboarding-step-check-backend' --timeout 20000; sleep 12; control-openhands browser toasts --history` → `{toasts:[],history:[]}`",
          "8. Cleanup: `kill -TERM $(cat $Q/pid); control-openhands browser goto /; control-openhands onboard --skip; control-openhands stop`",
          "Taken by the CLI on the run; the files live under `.pr/bugs/2026-10-08/` on the branch of the verify-openhands PR that reports this pass (pinned to its commit)."
        ]
      },
      "visual": {
        "summary": "A returning user whose saved backend was down saw two generic error toasts on the recovery screen. PR #18164 suppresses background-query toasts where the page already explains the connection failure.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18164,
          "title": "fix(query): disable error toasts for free models hydrator and backend version probe",
          "url": "https://github.com/OpenHands/OpenHands/pull/18164",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [
          {
            "role": "evidence",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/d19fb1940e3e5d7819465924eb738bb1f20f0557/.pr/bugs/2026-10-08/recovery-gate-toasts/gate-with-toast-pass1.png",
            "source_kind": "issue",
            "alt": "Original issue evidence: the recovery screen explains Disconnected while an extra generic error toast appears.",
            "caption": "Original issue evidence: the recovery screen explains Disconnected while an extra generic error toast appears.",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18160-evidence-f2f0fd34.png",
            "sha256": "f2f0fd34c7d9c4337feca50ca11a6c1c890c889c888307975c2d3cf8d29c5fcd"
          }
        ],
        "evidence_note": "Original issue screenshot only. The open PR’s image is a first-run contrast case, not an after capture of this recovery failure."
      },
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18161,
      "title": "[Bug]: Slack MCP credential probe reports any failed tool call (e.g. \"fetch failed\") as \"Credential check failed\"",
      "url": "https://github.com/OpenHands/OpenHands/issues/18161",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18166,
          "title": "fix(mcp): do not classify failed Slack probe tool calls as credential failures",
          "url": "https://github.com/OpenHands/OpenHands/pull/18166",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "f500de4b326cef594d88f47be9db090402c2347e",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T14:50:39Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T14:50:30Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T14:50:31Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T14:50:32Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T14:50:33Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T14:50:29Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T14:50:29Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T14:50:32Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T14:50:41Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T14:50:30Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T14:50:30Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T14:50:38Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T14:50:38Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T14:50:30Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18161",
        "https://github.com/OpenHands/OpenHands/pull/18166"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "enyst",
        "created_at": "2026-10-08T13:47:46Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "I am an AI agent based on Fable 5.1, helping Engel Nyst (@enyst) with OpenHands work. This came out of the verify-openhands feature-map pass of 2026-10-08: the behavior was reproduced twice on fresh isolated stacks of `main` @ d2c89252d with the `control-openhands` CLI, and the code path and history below were read before filing.",
          "npm launcher (`node bin/agent-canvas.mjs`, the entry point behind `npx @openhands/agent-canvas`) started from a source checkout by `control-openhands launch`; Agent Server 1.53.0, automation 1.19.0",
          "Run method: `npx @openhands/agent-canvas` (the npm launcher `node bin/agent-canvas.mjs` from a source checkout of `main`), driven with the `control-openhands` CLI from `.agents/skills/verify-openhands`. The run's private HOME trusts the proxy CA for uv and npm but not for Node's `fetch` inside the spawned MCP server (no `NODE_EXTRA_CA_CERTS`), so the server's own call to slack.com fails; any host that cannot reach slack.com gives the same result.",
          "1. `export OH_VERIFY_RUN=$(control-openhands launch --new --print-run); control-openhands doctor; control-openhands onboard --skip`",
          "2. `control-openhands browser goto /mcp`",
          "3. `control-openhands browser click 'testid=mcp-marketplace-card-slack'`",
          "4. `control-openhands browser fill 'testid=mcp-install-modal >> testid=mcp-install-field-SLACK_TEAM_ID' T_QA_INVALID`",
          "5. `control-openhands browser fill 'testid=mcp-install-modal >> testid=mcp-install-field-SLACK_BOT_TOKEN' xoxb-qa-invalid-000`",
          "6. `control-openhands browser network --clear; control-openhands browser click 'testid=mcp-install-modal >> testid=mcp-install-submit'; control-openhands browser wait 'testid=mcp-install-modal-error' --timeout 150000`",
          "7. `control-openhands browser text 'testid=mcp-install-modal-error'; control-openhands browser count 'testid=mcp-install-modal'; control-openhands browser network --filter 'api/(mcp|settings)' --bodies; control-openhands api GET /api/settings --pick agent_settings.mcp_config.slack`",
          "8. Raw contract, for comparison: `control-openhands api POST /api/mcp/test --write --data '{\"server\":{\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"@zencoderai/slack-mcp-server\"],\"env\":{\"SLACK_TEAM_ID\":\"T_QA_INVALID\",\"SLACK_BOT_TOKEN\":\"xoxb-qa-invalid-000\"}},\"name\":\"slack\",\"tool_call\":{\"name\":\"slack_list_channels\",\"arguments\":{\"limit\":1}}}'`",
          "9. `control-openhands browser click 'testid=mcp-install-cancel'`",
          "Taken by the CLI on the run; the files live under `.pr/bugs/2026-10-08/` on the branch of the verify-openhands PR that reports this pass (pinned to its commit)."
        ]
      },
      "visual": {
        "summary": "A failed Slack probe request was labeled a credential failure even when the network call failed. PR #18166 distinguishes connection failures from rejected credentials.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18166,
          "title": "fix(mcp): do not classify failed Slack probe tool calls as credential failures",
          "url": "https://github.com/OpenHands/OpenHands/pull/18166",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [
          {
            "role": "evidence",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/d19fb1940e3e5d7819465924eb738bb1f20f0557/.pr/bugs/2026-10-08/mcp-slack-fetch-failed/install-modal-fetch-failed-pass1.png",
            "source_kind": "pr",
            "alt": "Original failure: the Slack dialog calls “fetch failed” a credential problem.",
            "caption": "Original failure: the Slack dialog calls “fetch failed” a credential problem.",
            "width": 520,
            "height": 674,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18161-evidence-d0bd66cc.png",
            "sha256": "d0bd66cc4d16b98fb04f8d8b5f8152954b354d0e5ef5644c03b7494ec1574057"
          }
        ],
        "evidence_note": "The PR reuses the original failure screenshot; it does not provide an after capture."
      },
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18172,
      "title": "[Bug]: Escape does not close the composer \"More input actions\" overflow menu at narrow widths",
      "url": "https://github.com/OpenHands/OpenHands/issues/18172",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18174,
          "title": "fix(a11y): close the composer's More input actions menu on Escape",
          "url": "https://github.com/OpenHands/OpenHands/pull/18174",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-09T00:44:04Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "068f4e4861e6a5c294328b7c29c56e915ae15f10",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:44:08Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:34:11Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:34:10Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:34:09Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:34:08Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:34:12Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:34:08Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:44:08Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:38:00Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:34:14Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:44:10Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:34:18Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:38:21Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:34:17Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:38:28Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18189,
          "title": "fix(chat): close composer overflow menu on Escape",
          "url": "https://github.com/OpenHands/OpenHands/pull/18189",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "10cdb09fd30e32b0b8d1de1b0a54f4b9b7dcdafa",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T20:02:45Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T20:02:46Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T20:02:47Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T20:02:48Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T20:02:48Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T20:02:45Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T20:02:46Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T20:02:47Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T20:02:56Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T20:02:53Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T20:02:46Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T20:02:52Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T20:02:52Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T20:02:46Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "Fix #18174 merged; alternative #18189 remains open.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18172",
        "https://github.com/OpenHands/OpenHands/pull/18174",
        "https://github.com/OpenHands/OpenHands/pull/18189"
      ],
      "theme": "Accessibility & keyboard controls",
      "theme_slug": "accessibility-keyboard",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "enyst",
        "created_at": "2026-10-08T17:21:43Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "Regression: no. Escape was never handled for this menu. `src/components/features/chat/components/chat-input-actions.tsx` only closes it through `useClickOutsideElement`, and none of the file's versions since the menu was added (#18015) handles Escape. #18044 and #18095 added Escape to the other menus without touching this file. The fix PR #18015 noted it as a follow-up; it was not filed until now. The verify-openhands feature map has listed it as an unfiled known failure since 2026-10-06.",
          "Reproduced by two independent runs on fresh stacks (3 of 3 tries each), with `control-openhands` from `.agents/skills/verify-openhands`:",
          "export OH_VERIFY_RUN=$(control-openhands launch --new --print-run)",
          "control-openhands doctor",
          "control-openhands llm preset deepseek",
          "control-openhands onboard --skip",
          "control-openhands conversation start --prompt \"Reply with only OK\" --wait   # prints <id>",
          "control-openhands browser goto /conversations/<id>",
          "control-openhands browser viewport narrow                                    # 320x700",
          "control-openhands browser click 'role=button[name=\"More input actions\"]'",
          "control-openhands browser press Escape",
          "control-openhands browser count 'testid=chat-input-overflow-menu'           # 1 (expected 0)",
          "control-openhands browser attr 'role=button[name=\"More input actions\"]' aria-expanded   # true"
        ]
      },
      "visual": {
        "summary": "At narrow widths, Escape did not close More input actions. The merged fix registers that overflow menu with the shared Escape stack and returns focus to its trigger.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18174,
          "title": "fix(a11y): close the composer's More input actions menu on Escape",
          "url": "https://github.com/OpenHands/OpenHands/pull/18174",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/71e4fe8db536ec985aaa2e86d109e28a28ee4df3/.pr/bugs/2026-10-08/overflow-menu-escape/after-escape.png",
            "source_kind": "pr",
            "alt": "At 320px, the More input actions menu remains open after Escape.",
            "caption": "At 320px, the More input actions menu remains open after Escape.",
            "width": 320,
            "height": 700,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18172-before-f759efeb.png",
            "sha256": "f759efeb615e1753bceab46f4e84a3498c34c58c90ed93a711cd09baab3894a7"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/71e4fe8db536ec985aaa2e86d109e28a28ee4df3/.pr/bugs/2026-10-08/overflow-menu-escape/fix-after-escape.png",
            "source_kind": "pr",
            "alt": "At 320px, Escape closes the menu and returns focus to its trigger.",
            "caption": "At 320px, Escape closes the menu and returns focus to its trigger.",
            "width": 320,
            "height": 700,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18172-after-6b145848.png",
            "sha256": "6b1458484168377767c2dd26dddb0ab203d0a40a9c1d98d6333b29d543c8e623"
          }
        ],
        "evidence_note": "These are the original stills linked from the merged PR. Its newer before/after recordings demonstrate the same Escape behavior."
      },
      "closed_at": "2026-10-09T00:44:05Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18173,
      "title": "[Bug]: Automation run Logs dialog overflows its panel with a long task summary; tabs and output unreachable at phone width",
      "url": "https://github.com/OpenHands/OpenHands/issues/18173",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18175,
          "title": "fix(automations): keep a long run's Logs dialog inside its panel",
          "url": "https://github.com/OpenHands/OpenHands/pull/18175",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-09T19:43:49Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "2741623fb9f5075747e09e1de8608717ba5b6cae",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:45:23Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T19:43:54Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:43:56Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:42:00Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:45:14Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:42:29Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T18:41:53Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T19:43:54Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:46:26Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:45:38Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T19:43:55Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:44:48Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:47:01Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:44:13Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:47:08Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18217,
          "title": "fix(automations): enable vertical scrolling on run logs modal",
          "url": "https://github.com/OpenHands/OpenHands/pull/18217",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "a818fd58e519aabf9ea42b45b86f72d89d22be0a",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:19Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:20Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:21Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:18Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:25Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:20Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:27Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:19Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:19Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:26Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:25Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:19Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "PR #18175 is the selected fix; #18217 is an alternative proposal.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18173",
        "https://github.com/OpenHands/OpenHands/pull/18175",
        "https://github.com/OpenHands/OpenHands/pull/18217"
      ],
      "theme": "Automations & Git Sync",
      "theme_slug": "automations-git-sync",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "enyst",
        "created_at": "2026-10-08T17:22:02Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "Reproduced by two independent runs on fresh stacks, with `control-openhands` from `.agents/skills/verify-openhands`:",
          "export OH_VERIFY_RUN=$(control-openhands launch --new --print-run)",
          "control-openhands doctor && control-openhands llm preset deepseek && control-openhands onboard --skip",
          "control-openhands api POST /api/automation/v1/preset/prompt --write --data '{\"name\":\"QA_X Long\",\"prompt\":\"Do not run any tools. Call the finish tool right away with status \\\"success\\\" and an outcome_summary of 12 numbered lines, each about 80 characters long, plus three extra fields each about 300 characters of lorem ipsum.\",\"trigger\":{\"type\":\"cron\",\"schedule\":\"0 0 1 1 *\",\"timezone\":\"UTC\"},\"enabled\":true}'",
          "control-openhands browser goto /automations/<id>",
          "control-openhands browser click 'role=button[name=\"Run now\"]'   # wait until the activity log row leaves Running",
          "control-openhands browser viewport phone                        # 390x844",
          "control-openhands browser click 'testid=automation-activity-log >> title=View logs'",
          "control-openhands browser bbox 'role=dialog >> role=tab[name=\"Error\"]'   # insideViewport false"
        ]
      },
      "visual": {
        "summary": "A long automation task summary pushed log tabs and output beyond the dialog, especially on phones. PR #18175 makes the capped panel scroll so the output remains reachable.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18175,
          "title": "fix(automations): keep a long run's Logs dialog inside its panel",
          "url": "https://github.com/OpenHands/OpenHands/pull/18175",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/71e4fe8db536ec985aaa2e86d109e28a28ee4df3/.pr/bugs/2026-10-08/run-logs-overflow/long-phone.png",
            "source_kind": "pr",
            "alt": "A long task summary spills beyond the phone dialog, leaving the output unreachable.",
            "caption": "A long task summary spills beyond the phone dialog, leaving the output unreachable.",
            "width": 390,
            "height": 844,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18173-before-4bb11e9f.png",
            "sha256": "4bb11e9f8d9e592ca999ca9382e76f324b71f341f9e977582553a4405946ebca"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/71e4fe8db536ec985aaa2e86d109e28a28ee4df3/.pr/bugs/2026-10-08/run-logs-overflow/fix-long-phone-scrolled.png",
            "source_kind": "pr",
            "alt": "Proposed fix: the panel scrolls to the Output and Error tabs and the run log.",
            "caption": "Proposed fix: the panel scrolls to the Output and Error tabs and the run log.",
            "width": 390,
            "height": 844,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18173-after-dacf8ae6.png",
            "sha256": "dacf8ae6b256e68e19ae045f29f0e06da8f6fa62d8040bff96319cc81b99347e"
          }
        ]
      },
      "closed_at": "2026-10-09T19:43:51Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18178,
      "title": "[Bug]: Docker image exits on hosts without IPv6: static server binds \"::\" and fails with EAFNOSUPPORT",
      "url": "https://github.com/OpenHands/OpenHands/issues/18178",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18180,
          "title": "fix(docker): bind the frontend to 0.0.0.0 when the kernel has no IPv6",
          "url": "https://github.com/OpenHands/OpenHands/pull/18180",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-10T10:25:29Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "60e95f3b6a427a050022fb3f27294f495e526614",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T10:26:03Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T10:25:33Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:42:00Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:43:28Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T10:26:03Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:43:26Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T18:41:53Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T10:25:33Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:47:36Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T10:26:08Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T10:25:35Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:42:30Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:48:03Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:43:03Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:48:14Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18223,
          "title": "fix(docker): fall back to 0.0.0.0 bind when IPv6 is unavailable",
          "url": "https://github.com/OpenHands/OpenHands/pull/18223",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "b9994a8d734f958f0277958d835409de8c617475",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:57:47Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:57:40Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:57:42Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:57:41Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:57:42Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:57:39Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:57:40Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:57:41Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:57:47Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:57:40Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:57:40Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:57:49Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:57:48Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:57:40Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "The before evidence is a container log; the after screenshot is the original capture from the locally tested PR branch. The current PR state is shown in the ledger.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18178",
        "https://github.com/OpenHands/OpenHands/pull/18180",
        "https://github.com/OpenHands/OpenHands/pull/18223"
      ],
      "theme": "Backends & launcher",
      "theme_slug": "backends-launcher",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "enyst",
        "created_at": "2026-10-08T17:34:40Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "Regression: no. `--host ::` predates the 2026-10-06 maintenance baseline; #18134 (merged today, which changed the Dockerfile's runtime packages) does not touch the entrypoint. Found while verifying #18134's image for the verify-openhands feature map (`F26.docker-image`)."
        ]
      },
      "visual": {
        "summary": "The Docker image exited on hosts without IPv6 because its frontend bound only to ::. PR #18180 selects an IPv4 bind address when the kernel has no IPv6 support.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18180,
          "title": "fix(docker): bind the frontend to 0.0.0.0 when the kernel has no IPv6",
          "url": "https://github.com/OpenHands/OpenHands/pull/18180",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/2c767fcfb5dc9e11bcf228ca0503a970d8ec1f77/.pr/bugs/2026-10-08/docker-ipv6/fixed-entrypoint-canvas.png",
            "source_kind": "pr",
            "alt": "Proposed fix: the container serves the onboarding page on a host without IPv6.",
            "caption": "Proposed fix: the container serves the onboarding page on a host without IPv6.",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18178-after-34be7eb5.png",
            "sha256": "34be7eb57d775a43f722a916a4afcfabe39c1dffb5bc0bf003d607a195183ba1"
          }
        ],
        "evidence_note": "There is no before page to capture: the original container never served the port and exited. The PR links the EAFNOSUPPORT log; this image is from the patched container."
      },
      "closed_at": "2026-10-10T10:25:30Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18181,
      "title": "[Bug]: A failed MCP server save, toggle or delete shows two identical error toasts",
      "url": "https://github.com/OpenHands/OpenHands/issues/18181",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18182,
          "title": "fix(mcp): show one error toast when an MCP server change fails",
          "url": "https://github.com/OpenHands/OpenHands/pull/18182",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-10T10:21:20Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "79281049862c3f2140d566ff5ff48fa90f8548b3",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:45:20Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T10:21:32Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:43:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:43:46Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:45:06Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:42:36Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T18:41:49Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T10:21:24Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:47:15Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:45:35Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T10:21:25Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:44:33Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:47:41Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:43:45Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T18:47:47Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18188,
          "title": "fix(mcp): disable duplicate global toast on MCP mutations",
          "url": "https://github.com/OpenHands/OpenHands/pull/18188",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "c3b5e625a0cb9f84dd5269683f307e4c7ab85c7a",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T19:37:12Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T10:07:41Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T19:37:14Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T19:37:13Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T19:37:14Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T19:37:12Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T19:37:12Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T10:07:39Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T19:37:20Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T19:37:12Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T10:07:39Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T19:37:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T19:37:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T19:37:12Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "The earlier #18050 fix made these messages readable but did not remove duplicates.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18181",
        "https://github.com/OpenHands/OpenHands/pull/18182",
        "https://github.com/OpenHands/OpenHands/pull/18188"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "enyst",
        "created_at": "2026-10-08T17:45:25Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "Reproduced by two independent runs on fresh stacks, with `control-openhands` from `.agents/skills/verify-openhands`:",
          "export OH_VERIFY_RUN=$(control-openhands launch --new --print-run)",
          "control-openhands doctor && control-openhands onboard --skip",
          "control-openhands browser click 'testid=mcp-server-detail-qa_stale'",
          "control-openhands api DELETE /api/settings/mcp/qa_stale --write      # remove it out of band",
          "control-openhands browser click 'testid=mcp-custom-editor-delete'",
          "control-openhands browser click 'testid=confirmation-modal >> testid=confirm-button' --observe 'role=status'",
          "control-openhands browser toasts --history"
        ]
      },
      "visual": {
        "summary": "A failed MCP save, toggle or delete produced two identical error toasts. PR #18182 gives each action one error message while preserving feedback from the conversation panel.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18182,
          "title": "fix(mcp): show one error toast when an MCP server change fails",
          "url": "https://github.com/OpenHands/OpenHands/pull/18182",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/abe3bd95c176e8e75ff643ce3e17efc392a0ca17/.pr/bugs/2026-10-08/mcp-double-toast/before-stale-delete.png",
            "source_kind": "pr",
            "alt": "Deleting an already-removed MCP server raises two identical errors.",
            "caption": "Deleting an already-removed MCP server raises two identical errors.",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18181-before-401240aa.png",
            "sha256": "401240aade0adbe9d65ce98dbf1110c6beb8fb9b62866635c5b3dfd9eceb1c8d"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/abe3bd95c176e8e75ff643ce3e17efc392a0ca17/.pr/bugs/2026-10-08/mcp-double-toast/after-stale-delete.png",
            "source_kind": "pr",
            "alt": "Proposed fix: the same failed delete raises one error.",
            "caption": "Proposed fix: the same failed delete raises one error.",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18181-after-dac61b2d.png",
            "sha256": "dac61b2d702bb5cba7e6b1eac429015cf172c6c6e6a9ebaa9ea9972cf1c2b847"
          }
        ]
      },
      "closed_at": "2026-10-10T10:21:21Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18193,
      "title": "Keep sibling Settings and Customize pages reachable on tablets",
      "url": "https://github.com/OpenHands/OpenHands/issues/18193",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18200,
          "title": "feat: add compact section navigation on tablets",
          "url": "https://github.com/OpenHands/OpenHands/pull/18200",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-11T00:05:15Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "d84357bfa57384f6a39834f4f8d55e940f8969fe",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T19:45:21Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T00:05:19Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T19:45:15Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T19:45:15Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T19:45:15Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T19:45:13Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T19:45:13Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T00:05:19Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T19:45:25Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T19:45:13Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T00:05:20Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T19:45:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T19:45:29Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T19:45:13Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18232,
          "title": "feat(navigation): keep sibling settings and customize pages reachable on tablets",
          "url": "https://github.com/OpenHands/OpenHands/pull/18232",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "e32bd801a0322d5cad5d1c91bcbfb8a90ee81e66",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T08:39:25Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T08:39:30Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T08:39:28Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T08:39:26Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T08:39:26Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T08:39:26Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T08:39:26Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T08:39:26Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T08:39:32Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T08:39:26Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T08:39:24Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T08:39:34Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T08:39:34Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T08:39:26Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "A usability finding reproduced through verify-openhands; this is a navigation improvement rather than a regression report.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18193",
        "https://github.com/OpenHands/OpenHands/pull/18200"
      ],
      "theme": "Navigation, layout & copy",
      "theme_slug": "navigation-layout-copy",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "enyst",
        "created_at": "2026-10-08T22:43:04Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "Reproduced on main `3500d9e5c7cbdfb5a2cbfe9499ce4448eb10c0a2` at 820×1180 through verify-openhands against a real isolated local Agent Server 1.53.0. No model execution is needed.",
          "Use verify-openhands before/after screenshots at the same tablet viewport, direct sibling navigation checks, phone/desktop boundary checks, and focused navigation tests."
        ]
      },
      "visual": {
        "summary": "Tablet layouts hid both the secondary sidebar and phone Back bar, making sibling Settings and Customize pages hard to reach. PR #18200 adds a compact section selector.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18200,
          "title": "feat: add compact section navigation on tablets",
          "url": "https://github.com/OpenHands/OpenHands/pull/18200",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/enyst/playground/bb9af728d22c2bd159c730aef7d5eae120c83b7b/.pr/evidence/tablet-selector/before-tablet-settings.png",
            "source_kind": "pr",
            "alt": "At tablet width, Application settings offers no direct links to sibling settings pages.",
            "caption": "At tablet width, Application settings offers no direct links to sibling settings pages.",
            "width": 820,
            "height": 1180,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18193-before-897adce3.png",
            "sha256": "897adce3363931238e5d528a021a7fb9a50f6e3b7177b9a20e36753c172c9295"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/enyst/playground/bb9af728d22c2bd159c730aef7d5eae120c83b7b/.pr/evidence/tablet-selector/after-tablet-settings.png",
            "source_kind": "pr",
            "alt": "Proposed fix: a compact Settings selector exposes the sibling pages.",
            "caption": "Proposed fix: a compact Settings selector exposes the sibling pages.",
            "width": 820,
            "height": 1180,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18193-after-d3378676.png",
            "sha256": "d337867696a490ea2492ba4474e03da2a330f857e5867f5576db6b0337b75ddf"
          }
        ]
      },
      "closed_at": "2026-10-11T00:05:16Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18195,
      "title": "[Bug]: Edit backend dialog clips its controls at phone width",
      "url": "https://github.com/OpenHands/OpenHands/issues/18195",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18219,
          "title": "fix: fit Edit backend dialog to small viewports",
          "url": "https://github.com/OpenHands/OpenHands/pull/18219",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-09T12:48:59Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "302014f543f3ddd4987123954ebaa11d2305c540",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:48Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T12:49:04Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:50Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:50Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:50Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:48Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:55Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T12:49:04Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:56Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:48Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T12:49:06Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:55Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:55Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:53:48Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18216,
          "title": "fix(backends): cap the Edit backend modal to the viewport at phone widths",
          "url": "https://github.com/OpenHands/OpenHands/pull/18216",
          "state": "CLOSED",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "134bc5e57df795fa8e4fa0a98faafa9c88c7ec2f",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:31:51Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T13:12:49Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:31:52Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:31:52Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:31:53Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:31:51Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:31:51Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T13:12:49Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:32:00Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:31:51Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T13:12:57Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:31:57Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:31:57Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:31:51Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18220,
          "title": "fix(backends): cap edit backend dialog width to viewport and enable vertical scrolling",
          "url": "https://github.com/OpenHands/OpenHands/pull/18220",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "438089e859b483e41bfd94fdf88e5d00e7229bc0",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:23:11Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:22:28Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T11:11:08Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:22:29Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:23:07Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:22:28Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:22:28Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T11:11:05Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:23:14Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:22:28Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T11:11:13Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:22:34Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:22:34Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:22:28Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "PR #18219 is the selected fix and includes the original real-server before/after captures; #18216 closed without merging and #18220 is an alternative proposal.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18195",
        "https://github.com/OpenHands/OpenHands/pull/18219",
        "https://github.com/OpenHands/OpenHands/pull/18216",
        "https://github.com/OpenHands/OpenHands/pull/18220"
      ],
      "theme": "Backends & launcher",
      "theme_slug": "backends-launcher",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "enyst",
        "created_at": "2026-10-08T22:57:32Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "`verify-openhands` reports `x:-65, width:520, insideViewport:false`. The document itself reports no horizontal overflow, so checking page overflow alone misses this."
        ]
      },
      "visual": {
        "summary": "Edit backend kept a 520px width on phones and clipped its controls. PR #18219 caps the dialog to the viewport and scrolls short-screen forms while keeping the title and close control visible.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18219,
          "title": "fix: fit Edit backend dialog to small viewports",
          "url": "https://github.com/OpenHands/OpenHands/pull/18219",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/enyst/playground/61c78295b17a49c96e327d646475ecb10f5d98c3/.pr/evidence/phone-backend-dialog/phone-edit-before.png",
            "source_kind": "pr",
            "alt": "At 390px, Edit backend extends past both edges and clips its controls.",
            "caption": "At 390px, Edit backend extends past both edges and clips its controls.",
            "width": 390,
            "height": 844,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18195-before-aecce47f.png",
            "sha256": "aecce47ff876fd5cdbcdf7c5e3ec0bf630a295177ab50bd609480a3389ffa1fa"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/enyst/playground/61c78295b17a49c96e327d646475ecb10f5d98c3/.pr/evidence/phone-backend-dialog/phone-edit-after.png",
            "source_kind": "pr",
            "alt": "Proposed fix: the complete dialog, Close, Cancel and Save fit on the phone.",
            "caption": "Proposed fix: the complete dialog, Close, Cancel and Save fit on the phone.",
            "width": 390,
            "height": 844,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18195-after-c3f2c093.png",
            "sha256": "c3f2c09366691e9eacb1477f38a482f881748543fe830f8fa3918255d842195c"
          }
        ]
      },
      "closed_at": "2026-10-09T12:49:01Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18196,
      "title": "[Bug]: Canvas App trust confirmation lets keyboard focus activate background Update",
      "url": "https://github.com/OpenHands/OpenHands/issues/18196",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18197,
          "title": "fix(a11y): contain focus in Canvas App trust confirmation",
          "url": "https://github.com/OpenHands/OpenHands/pull/18197",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "071a17548ceda42f6bfcb22c0640089edcfb78cd",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-08T23:33:53Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:33:53Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:33:51Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T23:33:55Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T23:33:53Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:33:53Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:33:53Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T23:33:53Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T23:34:01Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:33:53Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:33:51Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T23:34:00Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-08T23:33:59Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-08T23:33:53Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18222,
          "title": "fix(modals): manage initial focus, trap focus, and restore focus on ConfirmationModal",
          "url": "https://github.com/OpenHands/OpenHands/pull/18222",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "8c0d9eeb43172b2eb565e2d891b18808af249532",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:44:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:44:18Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:44:19Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:44:19Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:44:19Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:44:17Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:44:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:44:19Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:44:26Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:44:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:44:18Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:44:24Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:44:24Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:44:17Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "An additional open alternative exists. The selected draft supplies actual before/after keyboard recordings.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18196",
        "https://github.com/OpenHands/OpenHands/pull/18197",
        "https://github.com/OpenHands/OpenHands/pull/18222"
      ],
      "theme": "Accessibility & keyboard controls",
      "theme_slug": "accessibility-keyboard",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "smolpaws",
        "created_at": "2026-10-08T23:08:08Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "From source. I launched the production Canvas stack through this repository's `verify-openhands` `control-openhands launch` command, which ran `npm run build:app` and the repository's `scripts/dev-with-automation.mjs` launcher. The source revision was `3500d9e5c7cbdfb5a2cbfe9499ce4448eb10c0a2`; Agent Server was 1.53.0.",
          "Run method: from the source revision above, build and launch Canvas through `.agents/skills/verify-openhands/scripts/control-openhands launch` (the repository's Agent Server + Canvas launcher). The same UI is reachable through the standard source `npm run dev` path."
        ]
      },
      "visual": {
        "summary": "The Canvas App trust dialog left keyboard focus behind it, allowing Enter to trigger a background Update. PR #18197 moves focus into the confirmation, traps Tab and restores focus on close.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18197,
          "title": "fix(a11y): contain focus in Canvas App trust confirmation",
          "url": "https://github.com/OpenHands/OpenHands/pull/18197",
          "state": "OPEN",
          "is_draft": true
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://github.com/smolpaws/OpenHands/blob/5b6e6eade7904da8075caa94ebf4d9b066288781/.pr/trust-dialog-focus/before.webm?raw=1",
            "source_kind": "pr",
            "alt": "Before video: Space → Tab → Enter activates background Update while the trust dialog remains open.",
            "caption": "Before video: Space → Tab → Enter activates background Update while the trust dialog remains open.",
            "media_type": "video",
            "mime_type": "video/webm",
            "width": 1440,
            "height": 1000,
            "duration_seconds": 4.76,
            "src": "../assets/verify-openhands/issue-evidence/canvas-18196-before-7c263ca5.webm",
            "sha256": "7c263ca56effcf74dd6c130c5b0b4657734e1a32bf6abbb5f704e3998a797eac"
          },
          {
            "role": "after",
            "source_url": "https://github.com/smolpaws/OpenHands/blob/5b6e6eade7904da8075caa94ebf4d9b066288781/.pr/trust-dialog-focus/after.webm?raw=1",
            "source_kind": "pr",
            "alt": "After video: the same keys focus and confirm Enable trusted app inside the dialog.",
            "caption": "After video: the same keys focus and confirm Enable trusted app inside the dialog.",
            "media_type": "video",
            "mime_type": "video/webm",
            "width": 1440,
            "height": 1000,
            "duration_seconds": 3.68,
            "src": "../assets/verify-openhands/issue-evidence/canvas-18196-after-af6e61e4.webm",
            "sha256": "af6e61e4561566ae683729297a99ed9b5896152b41e686262a56495b82835ba2"
          }
        ],
        "evidence_note": "Original before/after WebM recordings from isolated real Canvas and Agent Server stacks using native keyboard input, without network mocks."
      },
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18202,
      "title": "[Bug]: Send stays disabled after branching from a user message with prefilled text",
      "url": "https://github.com/OpenHands/OpenHands/issues/18202",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18203,
          "title": "fix: enable Send after composer prefill",
          "url": "https://github.com/OpenHands/OpenHands/pull/18203",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "f07f39016ab9b448937bf4583bda1f9a27078041",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-09T01:11:21Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:00:54Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:00:52Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:00:59Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:11:22Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:00:55Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:00:54Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:00:54Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:11:27Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:00:54Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:01:00Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:01:05Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:01:05Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:00:55Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18226,
          "title": "fix(chat): dispatch input event on draft restore to enable send button",
          "url": "https://github.com/OpenHands/OpenHands/pull/18226",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "partial",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "b433dad4cf095ff216d4057cee053696c0d316be",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T06:04:32Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T06:04:32Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T06:04:34Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T06:04:34Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T06:04:34Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T06:04:32Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T06:04:32Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T06:04:34Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T06:04:40Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T06:04:42Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T06:04:37Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T06:04:39Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T06:04:39Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T06:04:41Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "Follow-up to #17914: the text was restored, but Send stayed disabled. The selected draft also covers suggestion and Git-action prefills; alternative #18226 focuses on draft restoration.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18202",
        "https://github.com/OpenHands/OpenHands/pull/18203",
        "https://github.com/OpenHands/OpenHands/pull/18226"
      ],
      "theme": "Conversations & composer",
      "theme_slug": "conversations-composer",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "smolpaws",
        "created_at": "2026-10-08T23:41:01Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "Closed #17914 addressed the earlier empty-composer symptom in this flow. The text now appears, but the Send enabled state does not update. A screenshot was retained in the private verification run under `F05.send-message/branch-prefill-disabled.png`.",
          "Closed #17914 addressed the earlier empty-composer symptom in this flow. The text now appears, but the Send enabled state does not update. A screenshot was retained in the private verification run under `F05.send-message/branch-prefill-disabled.png`."
        ]
      },
      "visual": {
        "summary": "Branching correctly prefilled the composer but left Send disabled until the user typed. PR #18203 updates Send for restored text and suggestion prompts; the sweep also found the same symptom in Git-action prefills.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18203,
          "title": "fix: enable Send after composer prefill",
          "url": "https://github.com/OpenHands/OpenHands/pull/18203",
          "state": "OPEN",
          "is_draft": true
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://github.com/smolpaws/OpenHands/blob/f07f39016ab9b448937bf4583bda1f9a27078041/.pr/branch-send/before.png?raw=1",
            "source_kind": "pr",
            "alt": "The original before close-up shows restored branch text with a disabled Send button.",
            "caption": "The original before close-up shows restored branch text with a disabled Send button.",
            "width": 768,
            "height": 130,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18202-before-a82a6d21.png",
            "sha256": "a82a6d216f08cc2727ea9a2f3d33c753e381d88b400bf8b32daa03a56cc8b3e4"
          },
          {
            "role": "after",
            "source_url": "https://github.com/smolpaws/OpenHands/blob/f07f39016ab9b448937bf4583bda1f9a27078041/.pr/branch-send/after.png?raw=1",
            "source_kind": "pr",
            "alt": "Proposed fix: restored branch text immediately enables Send.",
            "caption": "Proposed fix: restored branch text immediately enables Send.",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18202-after-acbd7c28.png",
            "sha256": "acbd7c2871583605ae8dce2ce28120693926fc3ad4cf22b4d3d793c2324052c4"
          }
        ],
        "evidence_note": "Original screenshots are preserved at their supplied sizes: the before image is a composer close-up, and the after image is a full page. The PR also verifies suggestion prefills; its Git-menu path was reproduced before the fix but not yet live-tested afterward."
      },
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18204,
      "title": "[Bug]: Provider connection menu does not focus its first action",
      "url": "https://github.com/OpenHands/OpenHands/issues/18204",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18205,
          "title": "fix: focus provider connection menu actions after portal mount",
          "url": "https://github.com/OpenHands/OpenHands/pull/18205",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "e1672d1b192e431bdae7593ec6464d3424de6661",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-09T00:20:56Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:03:48Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:03:48Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:03:50Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:20:21Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:03:48Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:03:48Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:03:50Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:20:28Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:03:49Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:03:48Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:03:55Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T00:03:56Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T00:03:48Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18221,
          "title": "fix(settings): focus first action on provider connection menu open and restore focus on dismiss",
          "url": "https://github.com/OpenHands/OpenHands/pull/18221",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "5381474ac29b3756ffceb1175afa736d295e5831",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:32:07Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:31:14Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T11:13:51Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:31:16Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:32:07Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:31:14Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:31:15Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T11:13:50Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:32:13Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:31:15Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T11:13:59Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:31:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T04:31:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T04:31:15Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "Separate from the agent-profile and LLM-profile menu issues in the original inventory.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18204",
        "https://github.com/OpenHands/OpenHands/pull/18205",
        "https://github.com/OpenHands/OpenHands/pull/18221"
      ],
      "theme": "Accessibility & keyboard controls",
      "theme_slug": "accessibility-keyboard",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "smolpaws",
        "created_at": "2026-10-08T23:57:18Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "The menu displays **Bulk add**, **Edit**, and **Delete**, but focus remains on `provider-connection-menu-trigger`. ArrowDown does nothing. Tab finally moves focus to Bulk add; only then does ArrowDown reach Edit. Escape closes the menu. This was reproduced in the isolated live target run, with a screenshot retained under `F11.row-menu-focus` in its private evidence.",
          "The menu displays **Bulk add**, **Edit**, and **Delete**, but focus remains on `provider-connection-menu-trigger`. ArrowDown does nothing. Tab finally moves focus to Bulk add; only then does ArrowDown reach Edit. Escape closes the menu. This was reproduced in the isolated live target run, with a screenshot retained under `F11.row-menu-focus` in its private evidence."
        ]
      },
      "visual": {
        "summary": "Opening a provider connection’s menu left focus on the trigger, so ArrowDown did nothing. PR #18205 focuses Bulk add after the menu’s portal mounts.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18205,
          "title": "fix: focus provider connection menu actions after portal mount",
          "url": "https://github.com/OpenHands/OpenHands/pull/18205",
          "state": "OPEN",
          "is_draft": true
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://github.com/smolpaws/OpenHands/blob/e1672d1b192e431bdae7593ec6464d3424de6661/.pr/provider-menu/before.png?raw=1",
            "source_kind": "pr",
            "alt": "The menu opens while keyboard focus remains on the trigger.",
            "caption": "The menu opens while keyboard focus remains on the trigger.",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18204-before-2b4e9707.png",
            "sha256": "2b4e97073096a157b6f80f7d7e14a541405a8c6b6adf7e321304c7fbbc361830"
          },
          {
            "role": "after",
            "source_url": "https://github.com/smolpaws/OpenHands/blob/e1672d1b192e431bdae7593ec6464d3424de6661/.pr/provider-menu/after-arrow-down.png?raw=1",
            "source_kind": "pr",
            "alt": "Proposed fix: after opening the menu, ArrowDown reaches Edit with a visible focus ring.",
            "caption": "Proposed fix: after opening the menu, ArrowDown reaches Edit with a visible focus ring.",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18204-after-b4b25033.png",
            "sha256": "b4b25033a8ce18756945deb460e0f4c88930afe6448c12cc1f76f8027a6d56d7"
          }
        ],
        "evidence_note": "The visible after image is one ArrowDown after opening. The PR’s live activeElement checks establish the initial focus on Bulk add; this capture makes the resulting keyboard navigation visible."
      },
      "closed_at": null
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18206,
      "title": "[Bug]: Available Hooks dialog shows an agent hook's prompt instead of its system_prompt",
      "url": "https://github.com/OpenHands/OpenHands/issues/18206",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18215,
          "title": "fix(hooks): pick the Available Hooks text by hook type",
          "url": "https://github.com/OpenHands/OpenHands/pull/18215",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-11T02:36:48Z",
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "32d5f442ed3e1e007fa76482bf125ca1c71609b3",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:26:39Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T02:36:58Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:26:41Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:26:41Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:26:42Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:26:39Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:26:39Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-11T02:36:52Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:26:49Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:26:39Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-11T02:36:53Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:26:47Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T03:26:47Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T03:26:39Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18231,
          "title": "fix(hooks): pick hook display text by type to favor system prompt on agent hooks",
          "url": "https://github.com/OpenHands/OpenHands/pull/18231",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "baa5f65698189e5434404dd84f2278501df8425d",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T07:26:41Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T07:26:41Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T07:26:43Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T07:26:43Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T07:26:43Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T07:26:41Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T07:26:41Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T07:26:43Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T07:26:51Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T07:26:41Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T07:26:41Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T07:26:49Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T07:26:50Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T07:26:41Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "Found while reviewing and reproducing the #18089 fix; the original Commands-box defect and this remaining case are distinct.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18206",
        "https://github.com/OpenHands/OpenHands/pull/18215"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "enyst",
        "created_at": "2026-10-09T00:23:10Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "Run method: `npx @openhands/agent-canvas` (verified from a source checkout of `main` with #18107 merged, using `node bin/agent-canvas.mjs`, the same entry point). The commands come from the `control-openhands` harness in `.agents/skills/verify-openhands`. Every step is a normal UI action except step 3, which writes the workspace file, and step 7, which reads the server's response directly.",
          "control-openhands launch --new --build auto",
          "control-openhands doctor",
          "control-openhands onboard --skip",
          "control-openhands llm set --profile qa-llm --model <provider/model> --api-key-file <key-file>",
          "control-openhands fixture git-repo --name qa-hooks-repo",
          "control-openhands conversation start --workspace qa-hooks-repo --prompt \"Reply with the single word: hi\" --wait --timeout 240",
          "control-openhands browser goto /conversations/<id>",
          "control-openhands browser click 'testid=chat-pane-header >> testid=ellipsis-button'",
          "control-openhands browser click 'testid=conversation-name-context-menu >> testid=show-hooks-button'",
          "control-openhands browser click 'testid=hooks-modal >> testid=refresh-hooks'",
          "control-openhands browser click 'testid=hooks-modal >> role=button[name=\"Stop 1 hook\"]'",
          "control-openhands browser click 'testid=hooks-modal >> role=button[name=\"Session Start 1 hook\"]'",
          "6. control-openhands browser snapshot 'testid=hooks-modal'",
          "7. control-openhands api POST /api/hooks --write --data '{\"project_dir\":\"<run>/workspace/qa-hooks-repo\"}'",
          "$ control-openhands api POST /api/hooks --write --data '{\"project_dir\":\"<run>/workspace/qa-hooks-repo\"}'"
        ]
      },
      "visual": {
        "summary": "An agent hook carrying both fields displayed prompt instead of the system_prompt it actually used. PR #18215 selects the displayed text by hook type.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18215,
          "title": "fix(hooks): pick the Available Hooks text by hook type",
          "url": "https://github.com/OpenHands/OpenHands/pull/18215",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/fengyue-xve/OpenHands/pr-screenshots/18206/before.png",
            "source_kind": "pr",
            "alt": "An agent hook with both fields displays the stray prompt.",
            "caption": "An agent hook with both fields displays the stray prompt.",
            "width": 640,
            "height": 736,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18206-before-0fe6bbd7.png",
            "sha256": "0fe6bbd78325657f1234c53df60742f02ffdc5044a0a41a697bbce67e860b754"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/fengyue-xve/OpenHands/pr-screenshots/18206/after.png",
            "source_kind": "pr",
            "alt": "Proposed fix: the same hook displays its actual system prompt.",
            "caption": "Proposed fix: the same hook displays its actual system prompt.",
            "width": 640,
            "height": 736,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18206-after-a5c61025.png",
            "sha256": "a5c61025d9dc4ffd0626c7338616a86bc8fa474ee334f8a2f3d545cce6017f9a"
          }
        ],
        "evidence_note": "These original screenshots come from the PR’s local mock run. They demonstrate which field the dialog renders, not live hook execution."
      },
      "closed_at": "2026-10-11T02:36:49Z"
    },
    {
      "repo": "OpenHands/OpenHands",
      "number": 18210,
      "title": "[Bug]: Home shows dead automation link and manifest errors when automation interface is absent",
      "url": "https://github.com/OpenHands/OpenHands/issues/18210",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "prs": [
        {
          "repo": "OpenHands/OpenHands",
          "number": 18212,
          "title": "fix(home): hide automation surfaces without interface manifest",
          "url": "https://github.com/OpenHands/OpenHands/pull/18212",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "dc37715f9efccd20f7148892dc6bede11af1a29f",
            "failed": [
              "Validate PR description"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-09T01:50:20Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:50:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:50:18Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:50:20Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:50:20Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:50:18Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:50:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:50:20Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:50:26Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:50:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:50:18Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:50:25Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T01:50:24Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T01:50:18Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ],
            "detail": "PR-description validation."
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        },
        {
          "repo": "OpenHands/OpenHands",
          "number": 18225,
          "title": "fix(home): hide automation checklist item and recommendations when interface is absent",
          "url": "https://github.com/OpenHands/OpenHands/pull/18225",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "2e8f8486857cc0b496016164c79bef8198d81449",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Build & Push (${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T05:52:36Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T05:52:37Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "prepare-test-matrix",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T05:52:38Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T05:52:39Z",
                "workflow_id": 321415413,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Lint PR title (conventional)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T05:52:40Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "live-e2e",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T05:52:36Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T05:52:36Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T05:52:39Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "pr-title / Apply conventional-type label",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T05:52:47Z",
                "workflow_id": 293216549,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T05:52:37Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T05:52:44Z",
                "workflow_id": 247412987,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (ubuntu)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T05:52:44Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "test-and-build (windows)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T05:52:44Z",
                "workflow_id": 321300122,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with Docker image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T05:52:37Z",
                "workflow_id": 321411477,
                "app": "github-actions"
              }
            ]
          },
          "association_evidence": "Explicit closingIssuesReferences for this issue; PR body reviewed."
        }
      ],
      "note": "Reproduced with an isolated fault-injected extension bundle; the normal pinned bundle includes the automation interface.",
      "provenance_urls": [
        "https://github.com/OpenHands/OpenHands/issues/18210",
        "https://github.com/OpenHands/OpenHands/pull/18212",
        "https://github.com/OpenHands/OpenHands/pull/18225"
      ],
      "theme": "Automations & Git Sync",
      "theme_slug": "automations-git-sync",
      "cohort": "canvas-followups",
      "discovery_provenance": {
        "author": "smolpaws",
        "created_at": "2026-10-09T01:26:51Z",
        "source": "Issue report and its linked fixing PRs",
        "excerpts": [
          "- Installation method: from a source checkout, `npm run build:app` and `node bin/agent-canvas.mjs --frontend-only`, driven by `control-openhands` against a separate healthy Local Agent Server.",
          "The 2026-10-09 feature-map sweep used frozen Canvas source `main@3500d9e5c7cbdfb5a2cbfe9499ce4448eb10c0a2` (1.26.0) with Agent Server 1.53.0. The normal pinned extension bundle includes `AUTOMATION_INTERFACE`, so this branch was exercised in an **isolated fault-injected build**: copy only the pinned `@openhands/extensions` package into that run’s private `node_modules`, remove only the `AUTOMATION_INTERFACE` import/export from the copied `automations/index.js`, then run `npm run build:app`. The Canvas source and package lock were unchanged. Serve that frontend against the run’s healthy Local backend.",
          "3. Home also shows two error toasts with the exact no-manifest message above. The run retained reviewed `F21.manifest-404/no-manifest-home.png` and `no-manifest-route.png` captures.",
          "The existing `F21.manifest-404` feature-map recipe expects automation entry points to be hidden in this state. `useSidebarOnboardingChecklist` always includes `schedule-task`, while `recommended-automations-section.tsx` calls `getFeaturedAutomationIds()`, whose `requireInterface()` throws when the manifest is absent."
        ]
      },
      "visual": {
        "summary": "Without an admitted automation interface, Home still linked to a missing automation page and displayed two internal manifest errors. PR #18212 hides those surfaces and stops their background queries.",
        "primary_pr": {
          "repo": "OpenHands/OpenHands",
          "number": 18212,
          "title": "fix(home): hide automation surfaces without interface manifest",
          "url": "https://github.com/OpenHands/OpenHands/pull/18212",
          "state": "OPEN",
          "is_draft": true
        },
        "images": [
          {
            "role": "before",
            "source_url": "https://raw.githubusercontent.com/smolpaws/OpenHands/dc37715f9efccd20f7148892dc6bede11af1a29f/.pr/no-manifest-home/before.png",
            "source_kind": "pr",
            "alt": "With the automation interface deliberately absent, Home shows a dead Schedule a task link and two manifest errors.",
            "caption": "With the automation interface deliberately absent, Home shows a dead Schedule a task link and two manifest errors.",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18210-before-57a5658b.png",
            "sha256": "57a5658bf6566fb14a2efa6dc7fb60c246332dc68e132f61b7c9fd797cb82f13"
          },
          {
            "role": "after",
            "source_url": "https://raw.githubusercontent.com/smolpaws/OpenHands/dc37715f9efccd20f7148892dc6bede11af1a29f/.pr/no-manifest-home/after.png",
            "source_kind": "pr",
            "alt": "Proposed fix in the same injected state: the link and manifest errors are absent.",
            "caption": "Proposed fix in the same injected state: the link and manifest errors are absent.",
            "width": 1440,
            "height": 1000,
            "media_type": "image",
            "src": "../assets/verify-openhands/issue-evidence/canvas-18210-after-b1c4c121.png",
            "sha256": "b1c4c12158f1cc8806ec03ea1b25589badf87585a4fac9c45be44583472f1cd1"
          }
        ],
        "evidence_note": "The missing interface was created by isolated fault injection in a copied dependency package. The normal pinned package provides it; both captures use the real app and the same healthy Local backend without model calls."
      },
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5537,
      "title": "[Bug]: download-trajectory returns 500 when a state file is replaced while the zip is built",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5537",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-06T04:30:53Z",
      "cohort": "canvas-followups",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5538,
          "title": "fix(agent-server): tolerate state saves while zipping a trajectory",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5538",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-07T16:46:12Z",
          "relation": "fix",
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "21ebbf4c4c679e0b4b345e4e3b0ce688e540c01e",
            "failed": [
              "unresolved-review-threads"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "unresolved-review-threads",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:35Z",
                "workflow_id": 231618827,
                "app": "github-actions"
              },
              {
                "name": "create-release",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T16:46:17Z",
                "workflow_id": 270790096,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T16:46:18Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (ubuntu-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-docstrings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 246558633,
                "app": "github-actions"
              },
              {
                "name": "check",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 207010770,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:58Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "Persisted settings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 279158508,
                "app": "github-actions"
              },
              {
                "name": "pre-commit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:58Z",
                "workflow_id": 183604467,
                "app": "github-actions"
              },
              {
                "name": "REST API (OpenAPI)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 239283049,
                "app": "github-actions"
              },
              {
                "name": "Test directory allowlist",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:06Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "agent-server-api",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "endpoint-audit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 344966557,
                "app": "github-actions"
              },
              {
                "name": "integration-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:00Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "Check package versions",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 236831996,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (macos-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:04Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (windows-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-07T16:46:18Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Check OpenAPI Schema",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "sdk-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:12Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "public-type-budget",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "smoke-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:58Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T16:46:19Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "acp-live-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:11Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "test (24.x)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:00Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:02Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-slim-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-slim-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:01Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-minimal-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (python-minimal-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:01Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (java-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (java-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:01Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (golang-amd64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (golang-arm64)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:01Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (python)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T12:06:03Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "tools-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:11Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "security",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (python-slim)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T12:06:03Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (python-minimal)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T12:06:03Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (java)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T12:06:04Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests (golang)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T12:06:03Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T12:06:35Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "windows-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:05Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "validate-acp-providers",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:56:59Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with agent server image",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T12:06:42Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "agent-server-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:10Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "build",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:41Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "agent-server-stress-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:11Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "workspace-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:11Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "cross-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T11:57:09Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "coverage-report",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-07T12:02:07Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "A separate concurrent-download race remains tracked by #5539.",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5537",
        "https://github.com/OpenHands/software-agent-sdk/pull/5538",
        "https://github.com/OpenHands/software-agent-sdk/pull/5531#issuecomment-6005684267"
      ],
      "theme": "Conversation files & downloads",
      "theme_slug": "conversation-files-downloads",
      "visual": {
        "summary": "Downloading a trajectory while conversation state was being saved could fail with HTTP 500 or include unfinished, unredacted files. The merged fix skips temporary files and archives the same bytes it checks for secrets.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5538,
          "title": "fix(agent-server): tolerate state saves while zipping a trajectory",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5538",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [],
        "evidence_note": "The PR provides real-server test output, with no screenshots. Its fix addresses state-save races; the separate output-archive race is tracked by #5539.",
        "evidence": {
          "kind": "pr-reproduction-comparison",
          "label": "Reported live-server comparison",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/pull/5538",
          "request": "GET /api/file/download-trajectory/{id}\nwhile repeatedly changing confirmation_policy",
          "before": "761 attempts: 54 HTTP 500s from vanished input files; 305 temporary files archived.",
          "after": "972 attempts: 0 HTTP 500s from vanished input files; 0 temporary files archived.",
          "note": "Original PR reports; different run totals. Output-archive race errors remained in both runs."
        },
        "reproduction": {
          "action": "GET /api/file/download-trajectory/{id}\nwhile repeatedly changing confirmation_policy",
          "before": "761 attempts: 54 HTTP 500s from vanished input files; 305 temporary files archived.",
          "after": "972 attempts: 0 HTTP 500s from vanished input files; 0 temporary files archived.",
          "note": "Original PR reports; different run totals. Output-archive race errors remained in both runs."
        }
      },
      "inclusion_proof": "Issue and fixing PR explicitly identify the CI failure on PR #5531, which attempted to fix original-run SDK issue #5495.",
      "closed_at": "2026-10-07T16:46:14Z"
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5539,
      "title": "[Bug]: download-trajectory fails or returns a broken zip when the same trajectory is downloaded again or concurrently",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5539",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-06T05:08:06Z",
      "cohort": "canvas-followups",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5542,
          "title": "fix(agent-server): isolate trajectory download archives",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5542",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "cc486c682aaebf411cabb875a1f750ede80af7d2",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T05:52:13Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T05:52:13Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-06T05:52:15Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-06T05:52:21Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5539",
        "https://github.com/OpenHands/software-agent-sdk/pull/5542",
        "https://github.com/OpenHands/software-agent-sdk/pull/5531#issuecomment-6005684267",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Conversation files & downloads",
      "theme_slug": "conversation-files-downloads",
      "visual": {
        "summary": "Repeated downloads reuse the same temporary ZIP, so requests can delete or overwrite one another’s archive. A draft fix gives each download its own file and cleans it up after streaming.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5542,
          "title": "fix(agent-server): isolate trajectory download archives",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5542",
          "state": "OPEN",
          "is_draft": true
        },
        "images": [],
        "evidence_note": "The draft PR records a live Uvicorn test and lifecycle output; it contains no before-and-after screenshots.",
        "evidence": {
          "kind": "pr-reproduction-comparison",
          "label": "Reported draft-fix comparison",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/pull/5542",
          "request": "Repeated and concurrent GET /api/file/download-trajectory/{id}",
          "before": "same_path=True\nsecond_valid=False (deleted by first response cleanup)",
          "after": "5 sequential + 24 concurrent live-server downloads returned valid ZIPs; no temporary ZIPs left.",
          "note": "Original draft PR evidence. The fix has not merged."
        },
        "reproduction": {
          "action": "Repeated and concurrent GET /api/file/download-trajectory/{id}",
          "before": "same_path=True\nsecond_valid=False (deleted by first response cleanup)",
          "after": "5 sequential + 24 concurrent live-server downloads returned valid ZIPs; no temporary ZIPs left.",
          "note": "Original draft PR evidence. The fix has not merged."
        }
      },
      "inclusion_proof": "Issue explicitly says it was found while load-testing #5537’s fix after the CI failure on original-run fix PR #5531; later reproduced by verify-agent-server F14.trajectory-concurrent.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5607,
      "title": "[Bug]: POST /api/mcp/test classifies a remote MCP server's HTTP 401 as error_kind \"unknown\", so Agent Canvas tells a user with a wrong GitHub token \"Connection failed\"",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5607",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-08T13:47:47Z",
      "cohort": "canvas-followups",
      "prs": [],
      "note": "Related PRs #5346/#5349 only improve error wording and explicitly retain error_kind=\"unknown\"; neither fixes the requested classification.",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5607",
        "https://github.com/OpenHands/software-agent-sdk/issues/5607#issuecomment-6072282161"
      ],
      "theme": "Plugins, MCP & skills",
      "theme_slug": "plugins-mcp-skills",
      "visual": {
        "summary": "An invalid GitHub MCP token is reported as a generic connection failure. The server returns no structured credential-error signal for Canvas to use, so the user gets the wrong troubleshooting message.",
        "primary_pr": null,
        "images": [
          {
            "role": "evidence",
            "source_url": "https://raw.githubusercontent.com/OpenHands/OpenHands/d19fb1940e3e5d7819465924eb738bb1f20f0557/.pr/bugs/2026-10-08/mcp-github-401/install-modal-401-pass1.png",
            "alt": "GitHub MCP install dialog displays Connection failed and a raw HTTP 401 Unauthorized error after entering an invalid dummy token.",
            "caption": "Observed: a rejected dummy token is presented as a connection failure.",
            "width": 520,
            "height": 558,
            "src": "../assets/verify-openhands/issue-evidence/sdk-5607-evidence-db85d097.png",
            "sha256": "db85d0976c6276c157f4eca71b14dc97514f1ea3372de1843fe3859dfb61e6ac"
          }
        ],
        "evidence_note": "Original screenshot from the October 8 feature-map pass. The token was intentionally invalid; no configuration was saved. No fixing PR or after image is available."
      },
      "inclusion_proof": "Issue first paragraph explicitly identifies the 2026-10-08 verify-openhands feature-map pass and two fresh control-openhands stacks; an Oct9 comment confirms reproduction again.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5622,
      "title": "[Bug]: After a cipher key change, settings/secrets/profile writes answer 200 and null stored keys, not 409",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5622",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:33:23Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5622",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Settings, profiles and credentials",
      "theme_slug": "settings-profiles-credentials",
      "visual": {
        "summary": "After an encryption-key change, settings and secret writes can permanently replace stored keys with null while reporting success. Rejecting the write would preserve the original values for recovery with the correct key.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5622",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "After restarting with a different OH_SECRET_KEY: PUT /api/settings/secrets, PATCH /api/settings, or POST /api/profiles/{name}/activate",
          "expected": "Refuse writes when stored values cannot be decrypted; preserve the files and active profile.",
          "observed": "Writes return 200 and overwrite stored keys with null. Restoring the original key no longer recovers them.",
          "source_expected": "While a stored value cannot be decrypted, `PATCH /api/settings` and `POST /api/profiles/{name}/activate` answer 409 and secrets `PUT`/`DELETE` are refused; `settings.json`, `secrets.json` and `active_profile` stay unchanged, and the original key reads every value back.",
          "source_observed": "- `PUT /api/settings/secrets` (unrelated name): 200; other secrets become `null` in `secrets.json`.\n- `PATCH /api/settings` (only `misc_settings_diff`): 200; `agent_settings.llm.api_key` becomes `null`.\n- `POST /api/profiles/{name}/activate`: 200; installs an LLM with `api_key: null` (`llm_api_key_is_set: false`), so the next conversation fails at the provider.\n- Back on the original key: secret 404, LLM key `null`. Restoring with no write in between loses nothing."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "After restarting with a different OH_SECRET_KEY: PUT /api/settings/secrets, PATCH /api/settings, or POST /api/profiles/{name}/activate",
          "observed": "Writes return 200 and overwrite stored keys with null. Restoring the original key no longer recovers them.",
          "expected": "Refuse writes when stored values cannot be decrypted; preserve the files and active profile.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "high",
      "map_id": "F18.secret-key-rotation",
      "map_command": "control-agent-server map run --file F18 --only F18.secret-key-rotation --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F18 --only F18.secret-key-rotation --fresh` (and `--file F20 --only F20.secret-key-rotation`) reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5623,
      "title": "[Bug]: PUT /api/settings/secrets with '' or '**********' answers 200 and nulls the secret instead of 422",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5623",
      "issue_state": "CLOSED",
      "state_reason": "COMPLETED",
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:33:48Z",
      "cohort": "agent-server",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5682,
          "title": "fix(agent-server): reject blank and redacted secret values",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5682",
          "relation": "fix",
          "state": "MERGED",
          "is_draft": false,
          "merged_at": "2026-10-09T19:04:31Z",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "25ce804e7c99c4a4f48feb349ba07112f718794d",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "create-release",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T19:04:36Z",
                "workflow_id": 270790096,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T19:04:36Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (ubuntu-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:58Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-docstrings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:49Z",
                "workflow_id": 246558633,
                "app": "github-actions"
              },
              {
                "name": "check",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:48Z",
                "workflow_id": 207010770,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:54Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "Persisted settings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:26:03Z",
                "workflow_id": 279158508,
                "app": "github-actions"
              },
              {
                "name": "pre-commit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:49Z",
                "workflow_id": 183604467,
                "app": "github-actions"
              },
              {
                "name": "REST API (OpenAPI)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:48Z",
                "workflow_id": 239283049,
                "app": "github-actions"
              },
              {
                "name": "unresolved-review-threads",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:48Z",
                "workflow_id": 231618827,
                "app": "github-actions"
              },
              {
                "name": "Test directory allowlist",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:56Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "agent-server-api",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:48Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "endpoint-audit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:26:02Z",
                "workflow_id": 344966557,
                "app": "github-actions"
              },
              {
                "name": "integration-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:26:02Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "Check package versions",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:48Z",
                "workflow_id": 236831996,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (macos-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:26:08Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (windows-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:48Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T19:04:36Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Check OpenAPI Schema",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:49Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "sdk-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:55Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "public-type-budget",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:48Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "smoke-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:26:00Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.variant }}-${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:47Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T19:04:38Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "acp-live-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:55Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "test (24.x)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:48Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:47Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "tools-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:54Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "security",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:56Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:47Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "windows-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:48Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "validate-acp-providers",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:48Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with agent server image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:47Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "agent-server-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:55Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "build",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:26:40Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "agent-server-stress-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:55Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "workspace-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:59Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "cross-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:25:53Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "coverage-report",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T16:32:16Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5623",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Settings, profiles and credentials",
      "theme_slug": "settings-profiles-credentials",
      "visual": {
        "summary": "Saving an empty secret or submitting its masked placeholder reports success but destroys the value. The secret remains listed even though reading it returns 404.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5682,
          "title": "fix(agent-server): reject blank and redacted secret values",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5682",
          "state": "MERGED",
          "is_draft": false
        },
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5623",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "PUT /api/settings/secrets\n{\"name\":\"MY_TOKEN\",\"value\":\"**********\",\"description\":\"edited\"}",
          "expected": "Return 422, or preserve the existing secret when updating only its description.",
          "observed": "200; GET /api/settings/secrets/MY_TOKEN then returns 404, while the name remains in the list.",
          "source_expected": "A PUT whose `value` is empty, whitespace-only or `**********` answers 422 and leaves the store unchanged (or, for the placeholder over an existing secret, keeps the stored value and updates only the description). Every name in `GET /api/settings/secrets` reads back with 200 from `GET /api/settings/secrets/{name}`.",
          "source_observed": "- Placeholder over an existing secret: PUT answers 200 `{\"name\": \"MY_TOKEN\", \"description\": \"edited\"}`; `GET /api/settings/secrets/MY_TOKEN` then answers 404 `{\"detail\": \"Secret not found\"}` while the list still shows `MY_TOKEN` with the new description. The value is gone.\n- Empty value for a new name: PUT answers 200, the list shows `EMPTY_ONE` (description `null`), every read is 404."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "PUT /api/settings/secrets\n{\"name\":\"MY_TOKEN\",\"value\":\"**********\",\"description\":\"edited\"}",
          "observed": "200; GET /api/settings/secrets/MY_TOKEN then returns 404, while the name remains in the list.",
          "expected": "Return 422, or preserve the existing secret when updating only its description.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F18.secret-empty-value",
      "map_command": "control-agent-server map run --file F18 --only F18.secret-empty-value --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F18 --only F18.secret-empty-value --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": "2026-10-09T19:04:33Z"
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5624,
      "title": "[Bug]: PATCH provider connection with blank or \"**********\" api_key returns 200 and replaces the key, not 422",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5624",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:34:10Z",
      "cohort": "agent-server",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5695,
          "title": "fix(agent-server): reject blank and redacted api_key on provider-connection PATCH",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5695",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "a84e98ec4d36734c2d8d8dcce69ae1afff7ae812",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T07:25:31Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T07:25:37Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T07:25:33Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T07:25:31Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5624",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Settings, profiles and credentials",
      "theme_slug": "settings-profiles-credentials",
      "visual": {
        "summary": "A provider-connection edit accepts blank or masked API keys and breaks every profile linked to that connection. The API rejects null but silently clears a blank key or stores the mask as the real key.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5695,
          "title": "fix(agent-server): reject blank and redacted api_key on provider-connection PATCH",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5695",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5624",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "PATCH /api/llm/provider-connections/{id}\n{\"api_key\":\"\"}",
          "expected": "Return 422 or keep the existing key; linked profiles continue to use it.",
          "observed": "200 with api_key_set: false; activating a linked profile produces api_key: null. A masked value is stored literally.",
          "source_expected": "A `PATCH` whose `api_key` is `\"\"`, whitespace-only or `**********` returns 422, like `api_key: null` (or leaves the key unchanged), and the next activation of a linked profile applies the previous key.",
          "source_observed": "- `\"\"` and `\"   \"`: 200 with `api_key_set: false`; activating a linked profile leaves `agent_settings.llm.api_key` null.\n- `\"**********\"`: 200 with `api_key_set: true`; activation sets `agent_settings.llm.api_key` to the literal `**********`.\n- While the key is blank, `GET /api/profiles` lists the linked profile with `api_key_set: true`, while `GET /api/profiles/{name}` says `false`."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "PATCH /api/llm/provider-connections/{id}\n{\"api_key\":\"\"}",
          "observed": "200 with api_key_set: false; activating a linked profile produces api_key: null. A masked value is stored literally.",
          "expected": "Return 422 or keep the existing key; linked profiles continue to use it.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F23.conn-patch-blank-key",
      "map_command": "control-agent-server map run --file F23 --only F23.conn-patch-blank-key --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F23 --only F23.conn-patch-blank-key --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5625,
      "title": "[Bug]: GET omits secrets added at create or via POST .../secrets until the next save; restart can drop them",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5625",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:34:37Z",
      "cohort": "agent-server",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 4813,
          "title": "fix(agent-server): own confirmation_policy, security_analyzer, secrets in ConversationState",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/4813",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "related",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "a4e7a74c0fb8f989a2c58ca1717c176f0aa1aaff",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-09-04T21:28:12Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (ubuntu-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:49Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-docstrings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:17:24Z",
                "workflow_id": 246558633,
                "app": "github-actions"
              },
              {
                "name": "check",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 207010770,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T21:28:21Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "Persisted settings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 279158508,
                "app": "github-actions"
              },
              {
                "name": "pre-commit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 183604467,
                "app": "github-actions"
              },
              {
                "name": "Python API",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 204956835,
                "app": "github-actions"
              },
              {
                "name": "REST API (OpenAPI)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 239283049,
                "app": "github-actions"
              },
              {
                "name": "unresolved-review-threads",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 231618827,
                "app": "github-actions"
              },
              {
                "name": "Test directory allowlist",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "agent-server-api",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "endpoint-audit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:49Z",
                "workflow_id": 344966557,
                "app": "github-actions"
              },
              {
                "name": "integration-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:50Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "Check package versions",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 236831996,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (macos-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:49Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (windows-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:51Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Check OpenAPI Schema",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:17:01Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T21:28:15Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "sdk-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:58Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "public-type-budget",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "smoke-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:49Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.variant }}-${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:47Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-09-04T21:28:12Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "acp-live-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:59Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "test (22.12)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "test (24.x)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:47Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "tools-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:59Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "security",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:47Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "windows-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "validate-acp-providers",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:48Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with agent server image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:47Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "agent-server-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:58Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "build",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:17:57Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "agent-server-stress-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:58Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "workspace-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:59Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "cross-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:16:59Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "coverage-report",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-09-04T22:20:33Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "Existing PR #4813 is a related candidate, not a direct closing PR for #5625.",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5625",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653",
        "https://github.com/OpenHands/software-agent-sdk/pull/4813"
      ],
      "theme": "Conversation lifecycle and persistence",
      "theme_slug": "conversation-lifecycle-persistence",
      "visual": {
        "summary": "Secrets added to a conversation are available in memory but are missing from the saved state until another action triggers a save. A restart or idle eviction can silently discard the last secret added.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 4813,
          "title": "fix(agent-server): own confirmation_policy, security_analyzer, secrets in ConversationState",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/4813",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5625",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "POST /api/conversations/{id}/secrets\n{\"secrets\":{\"QA_LAST\":\"dummy\"}}\nGET /api/conversations/{id}",
          "expected": "The new secret appears immediately in GET and survives a restart.",
          "observed": "POST returns 200, but GET omits the secret; a restart before another save loses it.",
          "source_expected": "- The GET right after a create with `secrets` lists each name under `secret_registry.secret_sources` (`StaticSecret`, value masked), as the 201 response does.\n- After `POST .../secrets` returns 200, the next GET lists the new name.\n- A secret posted last is still there after a restart or idle eviction.",
          "source_observed": "- GET after the create returns `\"secret_registry\": {\"secret_sources\": {}}`.\n- After a 200 from `POST .../secrets`, GET omits the name until something saves the state.\n- After a restart, a secret followed by a PATCH is kept; the one posted last is gone."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "primary_pr_relation": "Related candidate: issue #5625 says #4813 contains the same update_secrets change; it formally targets #4810 and needs this issue’s GET-case coverage.",
        "reproduction": {
          "action": "POST /api/conversations/{id}/secrets\n{\"secrets\":{\"QA_LAST\":\"dummy\"}}\nGET /api/conversations/{id}",
          "observed": "POST returns 200, but GET omits the secret; a restart before another save loses it.",
          "expected": "The new secret appears immediately in GET and survives a restart.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F04.create-secrets-get",
      "map_command": "control-agent-server map run --file F04 --only F04.create-secrets-get --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F04 --only F04.create-secrets-get --fresh` (and `--file F08 --only F08.secrets-visible` / `F08.secrets-unsaved-restart`) reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5626,
      "title": "[Bug]: Pause during a model call not saved: GET says running (expected paused); after SIGKILL it is error",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5626",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:34:59Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5626",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Conversation lifecycle and persistence",
      "theme_slug": "conversation-lifecycle-persistence",
      "visual": {
        "summary": "Pausing during a model call updates the live conversation but does not immediately save the pause. Polling clients still see running, and a crash in that window turns the conversation into an error after restart.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5626",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "During an in-flight model call: POST /api/conversations/{id}/pause\nGET /api/conversations/{id}",
          "expected": "After the pause returns 200, GET and saved state say paused; a crash and restart preserve that state.",
          "observed": "GET still says running. After SIGKILL and restart it says error, although a PauseEvent exists.",
          "source_expected": "Once `/pause` returns 200, GET and `base_state.json` say `\"execution_status\": \"paused\"`, like the events socket and the event log. After a SIGKILL and restart the conversation is `paused`.",
          "source_observed": "- GET and `base_state.json` say `\"running\"`; `search?status=paused` lists it, with `\"running\"` in its item.\n- After SIGKILL and restart the `PauseEvent` is still in the log, but GET says `\"error\"`."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "During an in-flight model call: POST /api/conversations/{id}/pause\nGET /api/conversations/{id}",
          "observed": "GET still says running. After SIGKILL and restart it says error, although a PauseEvent exists.",
          "expected": "After the pause returns 200, GET and saved state say paused; a crash and restart preserve that state.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F05.pause-running-get",
      "map_command": "control-agent-server map run --file F05 --only F05.pause-running-get --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F05 --only F05.pause-running-get --fresh` reports the known-bug bullet as an expected failure while the bug lasts (likewise `F05.pause-running-crash`).",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5627,
      "title": "[Bug]: /goal loop active at a graceful restart stays `running` afterwards instead of `interrupted`",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5627",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:35:20Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5627",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Conversation lifecycle and persistence",
      "theme_slug": "conversation-lifecycle-persistence",
      "visual": {
        "summary": "A graceful restart cancels an active goal loop without marking it interrupted. The conversation is paused afterward, but clients keep showing a running goal that the stop endpoint cannot clear.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5627",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Start POST /api/conversations/{id}/goal; restart gracefully while it is running; inspect goal events.",
          "expected": "The last goal status is active: false, status: interrupted, retaining the objective and iteration.",
          "observed": "The last goal status remains active: true, status: running. POST /goal/stop returns 200 without changing it.",
          "source_expected": "After the restart the last `ConversationStateUpdateEvent` with `key: \"goal\"` is `active: false, status: \"interrupted\"`, with the same `objective`, `iteration` and `max_iterations`, and `POST /goal/resume` continues it.",
          "source_observed": "After the restart `execution_status` is `paused` and the only goal status is the pre-restart one: `active: true, status: \"running\", iteration: 0`. `POST /goal/stop` returns 200 `{\"success\": true}` but appends no goal status. Only `POST /goal/resume` replaces the stale status."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Start POST /api/conversations/{id}/goal; restart gracefully while it is running; inspect goal events.",
          "observed": "The last goal status remains active: true, status: running. POST /goal/stop returns 200 without changing it.",
          "expected": "The last goal status is active: false, status: interrupted, retaining the objective and iteration.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F11.goal-restart-active",
      "map_command": "control-agent-server map run --file F11 --only F11.goal-restart-active --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F11 --only F11.goal-restart-active --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5628,
      "title": "[Bug]: Resumed conversation keeps a since-disabled plugin's skills and commands; only its hooks are dropped",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5628",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:35:41Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5628",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Skills, plugins and MCP",
      "theme_slug": "skills-plugins-mcp",
      "visual": {
        "summary": "Disabling a plugin and restarting removes its hooks from a resumed conversation but leaves its skills and commands active. The resumed conversation behaves differently from a new conversation created after the disable.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5628",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Disable a loaded plugin, restart, resume the conversation, then send /<plugin>:<command>.",
          "expected": "The disabled plugin contributes no skills, commands or hooks to the resumed conversation.",
          "observed": "The command still activates and its skills remain in agent_context.skills; only its hooks are removed.",
          "source_expected": "The resumed conversation behaves like a new one started after the disable: sending `/<plugin>:<command>` yields a user `MessageEvent` without it in `activated_skills`, `GET /api/conversations/{id}?include_skills=true` lists none of the plugin's skills in `agent.agent_context.skills`, and the plugin's hook does not run.",
          "source_observed": "The user `MessageEvent` has `\"activated_skills\": [\"qa-plugin:qa-hello\"]` and `agent.agent_context.skills` still lists `qa-plugin-skill` and `qa-plugin:qa-hello`. Only the hook is correctly gone (no new `HookExecutionEvent`). From source (not driven), the plugin's MCP servers also stay in `agent.mcp_config`."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Disable a loaded plugin, restart, resume the conversation, then send /<plugin>:<command>.",
          "observed": "The command still activates and its skills remain in agent_context.skills; only its hooks are removed.",
          "expected": "The disabled plugin contributes no skills, commands or hooks to the resumed conversation.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F26.conversation-resume-disabled",
      "map_command": "control-agent-server map run --file F26 --only F26.conversation-resume-disabled --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F26 --only F26.conversation-resume-disabled --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5629,
      "title": "[Bug]: A second server's first load of a shared conversation reverts meta.json to its stale startup copy",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5629",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:36:02Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5629",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Conversation lifecycle and persistence",
      "theme_slug": "conversation-lifecycle-persistence",
      "visual": {
        "summary": "When a second server takes over a shared conversation, it can overwrite current metadata with the stale copy it read at startup. The live reproduction loses a newer title and timestamp during failover.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5629",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Start server B on shared storage; rename on server A; stop A; load the conversation on B.",
          "expected": "The takeover preserves the latest title, after B, and updated_at.",
          "observed": "B rewrites meta.json with the startup title, before B, and the older timestamp.",
          "source_expected": "After the second server loads the conversation, `meta.json` and its `GET /api/conversations/{id}` keep the owner's last title (`after B`) and `updated_at`.",
          "source_observed": "The load claims the lease (generation 2 after a SIGKILL of the owner, 1 after a graceful stop), but `meta.json` is rewritten with the second server's startup title (`before B`) and older `updated_at`, and its GET returns `before B`."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Start server B on shared storage; rename on server A; stop A; load the conversation on B.",
          "observed": "B rewrites meta.json with the startup title, before B, and the older timestamp.",
          "expected": "The takeover preserves the latest title, after B, and updated_at.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F31.takeover-keeps-metadata",
      "map_command": "control-agent-server map run --file F31 --only F31.takeover-keeps-metadata --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F31 --only F31.takeover-keeps-metadata --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5630,
      "title": "[Bug]: Sub-agent file naming a missing skill makes the first message return 500 instead of being skipped",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5630",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:36:24Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5630",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Skills, plugins and MCP",
      "theme_slug": "skills-plugins-mcp",
      "visual": {
        "summary": "One sub-agent configuration that names a missing skill can make every message in the conversation fail with 500. A globally installed bad file can affect new conversations in every workspace.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5630",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Load a sub-agent file whose skills list contains a missing name; POST /api/conversations/{id}/events.",
          "expected": "Skip the invalid sub-agent with a clear warning, or return a descriptive 4xx.",
          "observed": "500 on the first and subsequent messages; the sub-agent listing still reports the configuration without a warning.",
          "source_expected": "Only that sub-agent is lost: it is skipped with a warning naming the file and the missing skill (as invalid frontmatter already is), and the message is accepted (200). A 4xx naming the agent and skill would also do. `POST /api/conversations` with `initial_message` does not return 500.",
          "source_observed": "- `POST /api/conversations/{id}/events` returns 500, logging `ValueError: Skill 'qa-f27-missing-skill' not found but was given to agent 'qa-bad-skill'.` Later messages fail the same way.\n- With `initial_message`, `POST /api/conversations` returns 500, yet the conversation is stored and listed as `idle`.\n- `POST /api/sub-agents` for that `project_dir` returns 200 and lists `qa-bad-skill` without a warning."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Load a sub-agent file whose skills list contains a missing name; POST /api/conversations/{id}/events.",
          "observed": "500 on the first and subsequent messages; the sub-agent listing still reports the configuration without a warning.",
          "expected": "Skip the invalid sub-agent with a clear warning, or return a descriptive 4xx.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F27.subagents-bad-skill",
      "map_command": "control-agent-server map run --file F27 --only F27.subagents-bad-skill --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F27 --only F27.subagents-bad-skill --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5631,
      "title": "[Bug]: events/search and /count with kind=MessageEvent return nothing; only the full class path matches",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5631",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:36:45Z",
      "cohort": "agent-server",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5658,
          "title": "fix(agent-server): accept short event kinds in search and count",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5658",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "188406cab695d4b2271791138e4e0105431c720d",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T06:53:30Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T07:15:49Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T06:53:32Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T06:53:30Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5631",
        "https://github.com/OpenHands/software-agent-sdk/pull/5658",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Events and streaming",
      "theme_slug": "events-streaming",
      "visual": {
        "summary": "Event search accepts the documented short event name but returns an empty history. Only the internal fully qualified class name matches, so clients following the API documentation silently miss events.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5658,
          "title": "fix(agent-server): accept short event kinds in search and count",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5658",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5631",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "GET /api/conversations/{id}/events/search?kind=MessageEvent\nGET /api/conversations/{id}/events/count?kind=MessageEvent",
          "expected": "Return the existing MessageEvent items and their count, matching the full class-path query.",
          "observed": "200 with items: [] and count 0, even though the conversation contains MessageEvents.",
          "source_expected": "`events/search?kind=MessageEvent` returns the same items as `kind=openhands.sdk.event.llm_convertible.message.MessageEvent`, and `events/count?kind=MessageEvent` returns the same number. The TypeScript `RemoteEventsList.search`/`count` with `{kind: 'MessageEvent'}` do the same.",
          "source_observed": "`events/search?kind=MessageEvent` returns `200 {\"items\": [], \"next_page_id\": null}` and `events/count?kind=MessageEvent` returns `200 0`, even though the conversation holds `MessageEvent`s whose `kind` field is `\"MessageEvent\"`. Every short kind behaves the same way.",
          "draft_fix_observation": "PR #5658 reports short and fully-qualified kinds both returning count 2 through live HTTP, with identical pages; 146 targeted tests passed."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "GET /api/conversations/{id}/events/search?kind=MessageEvent\nGET /api/conversations/{id}/events/count?kind=MessageEvent",
          "observed": "200 with items: [] and count 0, even though the conversation contains MessageEvents.",
          "expected": "Return the existing MessageEvent items and their count, matching the full class-path query.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F06.search-kind-short",
      "map_command": "control-agent-server map run --file F06 --only F06.search-kind-short --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F06 --only F06.search-kind-short --fresh` reports the known-bug bullet as an expected failure while the bug lasts (`--file F34 --only F34.events-search-kind` shows the same through the TypeScript client).",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5632,
      "title": "[Bug]: Waiting on a locked profile or connection store freezes the whole server; /alive stalls up to 30 s",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5632",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:37:08Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5632",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Server responsiveness",
      "theme_slug": "server-responsiveness",
      "visual": {
        "summary": "Waiting for a locked profile or provider-connection store freezes the server event loop. An unrelated health check can stall for nearly 30 seconds even though the server is otherwise healthy.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5632",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Hold a profile or connection store lock; send a request using that store and concurrently GET /alive.",
          "expected": "GET /alive returns 200 within 2 seconds while the other request waits for its lock.",
          "observed": "The health request waits for the locked request; recorded delays range from 10.5 to 28.1 seconds.",
          "source_expected": "While one request waits for a store lock, other requests are served normally: `GET /alive` returns 200 within 2 s. The waiting request still returns 503 after the 30 s lock timeout, as today.",
          "source_observed": "`GET /alive` returns 200 only when the waiting request ends. Measured: 25.1 s during an LLM profile save, 25.2 s during an agent-profile GET, 28.1 s during a meta-profile save, 10.5 s during a provider-connection list. Queued waits add up."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Hold a profile or connection store lock; send a request using that store and concurrently GET /alive.",
          "observed": "The health request waits for the locked request; recorded delays range from 10.5 to 28.1 seconds.",
          "expected": "GET /alive returns 200 within 2 seconds while the other request waits for its lock.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F20.store-busy-responsive",
      "map_command": "control-agent-server map run --file F20 --only F20.store-busy-responsive --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F20 --only F20.store-busy-responsive --fresh` reports the known-bug bullet as an expected failure while the bug lasts (likewise F21 `F21.busy-blocks-server`, F22 and F23 `store-busy-responsive`).",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5633,
      "title": "[Bug]: Failed run blocks the event loop while logging a rich traceback: /alive takes ~5 s, not ~100 ms",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5633",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:37:29Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5633",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Server responsiveness",
      "theme_slug": "server-responsiveness",
      "visual": {
        "summary": "Formatting a failed model call as a rich console traceback blocks the event loop for several seconds. During that logging work, health checks and delivery of the conversation error all stall.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5633",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Trigger an LLM connection error with default rich logging and probe GET /alive.",
          "expected": "Health responses stay near 100 ms and below 1.5 seconds; the error reaches socket subscribers promptly.",
          "observed": "The health response takes 4.8–6.6 seconds, and socket error frames arrive equally late.",
          "source_expected": "`GET /alive` keeps answering 200 in about 100 ms (never over 1.5 s) while a run fails, and the `ConversationErrorEvent` reaches socket subscribers without delay.",
          "source_observed": "A request sent while the failure is logged waits 4.8-6.6 s before its 200. The `ConversationErrorEvent` is already stored and the conversation ends `execution_status: \"error\"`, but the socket's error frames arrive late by the same amount. With `LOG_RICH_TRACEBACKS=false` or `LOG_JSON=true` the slowest probe is under 200 ms."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Trigger an LLM connection error with default rich logging and probe GET /alive.",
          "observed": "The health response takes 4.8–6.6 seconds, and socket error frames arrive equally late.",
          "expected": "Health responses stay near 100 ms and below 1.5 seconds; the error reaches socket subscribers promptly.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F05.run-error-responsive",
      "map_command": "control-agent-server map run --file F05 --only F05.run-error-responsive --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F05 --only F05.run-error-responsive --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5634,
      "title": "[Bug]: App backend status hangs holding the app lock when a child outlives the leader; expected unhealthy",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5634",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:37:52Z",
      "cohort": "agent-server",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5689,
          "title": "fix(agent-server): reap Canvas backend descendants after leader exit",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5689",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "0853b19bc5bdba6d33f60fa452d8b3f192c394b6",
            "failed": [
              "integration-test"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "integration-test",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:13Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:12Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:05:33Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (ubuntu-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:13Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-docstrings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:13Z",
                "workflow_id": 246558633,
                "app": "github-actions"
              },
              {
                "name": "check",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:13Z",
                "workflow_id": 207010770,
                "app": "github-actions"
              },
              {
                "name": "Persisted settings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:14Z",
                "workflow_id": 279158508,
                "app": "github-actions"
              },
              {
                "name": "pre-commit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:13Z",
                "workflow_id": 183604467,
                "app": "github-actions"
              },
              {
                "name": "REST API (OpenAPI)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:13Z",
                "workflow_id": 239283049,
                "app": "github-actions"
              },
              {
                "name": "unresolved-review-threads",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:05:33Z",
                "workflow_id": 231618827,
                "app": "github-actions"
              },
              {
                "name": "Test directory allowlist",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:13Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "agent-server-api",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:14Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "endpoint-audit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:13Z",
                "workflow_id": 344966557,
                "app": "github-actions"
              },
              {
                "name": "Check package versions",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:14Z",
                "workflow_id": 236831996,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (macos-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:21Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (windows-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:13Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "Check OpenAPI Schema",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:13Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:14Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "sdk-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:19Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "public-type-budget",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:14Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "smoke-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:18Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.variant }}-${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:11Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:12Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "acp-live-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:23Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "test (24.x)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:14Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:11Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "tools-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:19Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "security",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:13Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:11Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "windows-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:13Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "validate-acp-providers",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:13Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with agent server image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:12Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "agent-server-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:21Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "build",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:54Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "agent-server-stress-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:19Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "workspace-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:20Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "cross-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:03:20Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "coverage-report",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:09:48Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5634",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Canvas backends and bridges",
      "theme_slug": "canvas-backends-bridges",
      "visual": {
        "summary": "If a Canvas backend exits while a child process still owns its output pipes, the status request hangs while holding the app lock. Stop, logs and other lifecycle actions then queue behind that request.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5689,
          "title": "fix(agent-server): reap Canvas backend descendants after leader exit",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5689",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5634",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Let a backend leader exit while its child keeps stdout/stderr open; GET /api/canvas-extensions/installed/{name}/backend.",
          "expected": "Return unhealthy immediately so stop can terminate the leftover child process.",
          "observed": "Status waits for the child to exit; stop, logs and other app lifecycle requests time out behind the lock.",
          "source_expected": "Status returns 200 at once with `state: \"unhealthy\"`, `detail: \"Backend exited with code 0\"`; `POST .../backend/stop` then kills the leftover child (same process group).",
          "source_observed": "Status does not answer while the child runs (300 s below). `stop`, `logs`, `prepare`, `start` and `DELETE .../backend/data` for the app time out behind the lock; the child keeps running. A forced `POST /install` is accepted meanwhile."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Let a backend leader exit while its child keeps stdout/stderr open; GET /api/canvas-extensions/installed/{name}/backend.",
          "observed": "Status waits for the child to exit; stop, logs and other app lifecycle requests time out behind the lock.",
          "expected": "Return unhealthy immediately so stop can terminate the leftover child process.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F28.status-exit-hang",
      "map_command": "control-agent-server map run --file F28 --only F28.status-exit-hang --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F28 --only F28.status-exit-hang --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5635,
      "title": "[Bug]: Deleting or sandbox-pausing a conversation leaves its open WebSockets silent instead of closing them",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5635",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:38:13Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5635",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Events and streaming",
      "theme_slug": "events-streaming",
      "visual": {
        "summary": "Deleting a conversation or preparing its sandbox for pause leaves existing event sockets open but silent. Clients receive neither a close signal nor further events, so they cannot recover normally.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5635",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Open a conversation event socket, then DELETE /api/conversations/{id} or POST /api/conversations/prepare-for-sandbox-pause.",
          "expected": "Close the subscribed sockets when the operation completes so clients learn of deletion or reconnect.",
          "observed": "Existing sockets receive no close frame and no further events; after pause, only newly opened sockets receive messages.",
          "source_expected": "When the DELETE returns 200, every socket open on the conversation has received a close frame (e.g. 4004). When the pause returns 204, every socket opened before it has been closed (e.g. 1012) so the client reconnects.",
          "source_observed": "- Delete: the open socket gets no close frame and no further frames, while `GET` returns 404 and a new socket closes with 4004.\n- Pause: sockets opened before it get no close frame, and a message posted afterwards reaches only sockets opened after the pause."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Open a conversation event socket, then DELETE /api/conversations/{id} or POST /api/conversations/prepare-for-sandbox-pause.",
          "observed": "Existing sockets receive no close frame and no further events; after pause, only newly opened sockets receive messages.",
          "expected": "Close the subscribed sockets when the operation completes so clients learn of deletion or reconnect.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F06.ws-delete-close",
      "map_command": "control-agent-server map run --file F06 --only F06.ws-delete-close --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F06 --only F06.ws-delete-close --fresh` reports the known-bug bullet as an expected failure while the bug lasts (likewise `--file F07 --only F07.deleted-close`, `--file F12 --only F12.sandbox-pause-websocket`).",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5636,
      "title": "[Bug]: switch_llm returns 200 but keeps the old LLM when the posted usage_id is already registered",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5636",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:38:35Z",
      "cohort": "agent-server",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5699,
          "title": "fix(agent-server): install the posted LLM when switch_llm reuses a registered usage_id (#5636)",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5699",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "bc91849e50eb0cfe6dd588e998aa6655902bb248",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T13:57:23Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T09:16:43Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T09:16:45Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T09:16:43Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5636",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Model switching and usage",
      "theme_slug": "model-switching-usage",
      "visual": {
        "summary": "Switching models can return success while keeping the old model if the requested usage ID is already registered. This affects the default ID used by saved profiles after a conversation has received a message.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5699,
          "title": "fix(agent-server): install the posted LLM when switch_llm reuses a registered usage_id (#5636)",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5699",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5636",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "After a message registers the default usage ID: POST /api/conversations/{id}/switch_llm with another model using that ID.",
          "expected": "Install the requested model, or return a descriptive 4xx for the occupied usage ID.",
          "observed": "200 {\"success\":true}, but GET still shows the original agent.llm.model.",
          "source_expected": "The posted LLM is installed (`GET /api/conversations/{id}` shows the posted `agent.llm.model`), or the request is refused with a 4xx naming the taken `usage_id`.",
          "source_observed": "`200 {\"success\": true}`, and `GET /api/conversations/{id}` still shows the original `agent.llm.model`. A conversation with no message yet, or an unused `usage_id`, switches correctly."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "After a message registers the default usage ID: POST /api/conversations/{id}/switch_llm with another model using that ID.",
          "observed": "200 {\"success\":true}, but GET still shows the original agent.llm.model.",
          "expected": "Install the requested model, or return a descriptive 4xx for the occupied usage ID.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F09.switch-llm-registered-usage-id",
      "map_command": "control-agent-server map run --file F09 --only F09.switch-llm-registered-usage-id --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F09 --only F09.switch-llm-registered-usage-id --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5637,
      "title": "[Bug]: Canvas backend outlives a SIGKILLed agent-server; restart reports it stopped and starts a second one",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5637",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:38:58Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5637",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Canvas backends and bridges",
      "theme_slug": "canvas-backends-bridges",
      "visual": {
        "summary": "A hard crash of a host-process agent server leaves Canvas backends running while the restarted server reports them stopped. Starting the app again creates a second backend sharing the same data directory.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5637",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Start a Canvas backend, SIGKILL and restart the agent server, then GET its backend status and POST .../backend/start.",
          "expected": "No backend from the old server remains; an app has only one backend process.",
          "observed": "Status says stopped with pid: null while the old process lives; start creates another process and stop kills only the new one.",
          "source_expected": "After the restart, no backend started by the previous server is still running. An app never has two backend processes, and `DELETE .../backend/data` is refused while its backend is alive.",
          "source_observed": "- `GET .../backend` returns `state: \"stopped\"`, `pid: null` while old backend P1 runs.\n- `POST .../backend/start` returns `ready` with a new pid P2. P1 and P2 share `backends/data/<name>`.\n- `POST .../backend/stop` kills only P2.\n- `DELETE .../backend/data` returns 200 while P1 is alive."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Start a Canvas backend, SIGKILL and restart the agent server, then GET its backend status and POST .../backend/start.",
          "observed": "Status says stopped with pid: null while the old process lives; start creates another process and stop kills only the new one.",
          "expected": "No backend from the old server remains; an app has only one backend process.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F28.hard-restart-orphan",
      "map_command": "control-agent-server map run --file F28 --only F28.hard-restart-orphan --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F28 --only F28.hard-restart-orphan --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5638,
      "title": "[Bug]: execute_bash_command returns only the last chunk of output over 1 MiB; null exit_code past 100 chunks",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5638",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:39:19Z",
      "cohort": "agent-server",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5697,
          "title": "fix(agent-server): return the full multi-chunk bash output from execute_bash_command (#5638)",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5697",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "051d5816b198ea61c64894deb80b679723c766a9",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T13:57:14Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T09:09:30Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T09:09:31Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T09:09:30Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5638",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Commands, files and Git",
      "theme_slug": "commands-files-git",
      "visual": {
        "summary": "The synchronous command endpoint returns only one chunk of large command output without warning. Beyond 100 chunks it can also lose the real exit code, which the TypeScript client then reports as success.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5697,
          "title": "fix(agent-server): return the full multi-chunk bash output from execute_bash_command (#5638)",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5697",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5638",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "POST /api/bash/execute_bash_command\n{\"command\":\"yes a | head -c 1100000; echo QA_F13_TAIL\",\"timeout\":60}",
          "expected": "Return all 1,100,012 output characters and the final exit code.",
          "observed": "Only the last 51,436 characters are returned. Beyond 100 chunks, exit_code can be null even when the command exits 7.",
          "source_expected": "The response holds all of the command's stdout and stderr, joined in `order`, and the exit code from the final chunk. For the command in step 2 that means `stdout` of 1,100,012 characters and `exit_code` 0. `exit_code` is never `null`.",
          "source_observed": "- With 1,100,012 characters of output, the route returns only the event with `order` 1. Its `stdout` is the last 51,436 characters and its `exit_code` is 0. The first chunk (1,048,576 characters) is stored but never returned.\n- With more than 100 chunks (`yes a | head -c 106000000; exit 7`), the route returns the event with `order` 99 and `exit_code: null`. The TS `RemoteWorkspace.executeCommand` then returns `exit_code: 0`."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "POST /api/bash/execute_bash_command\n{\"command\":\"yes a | head -c 1100000; echo QA_F13_TAIL\",\"timeout\":60}",
          "observed": "Only the last 51,436 characters are returned. Beyond 100 chunks, exit_code can be null even when the command exits 7.",
          "expected": "Return all 1,100,012 output characters and the final exit code.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F13.execute-large-output",
      "map_command": "control-agent-server map run --file F13 --only F13.execute-large-output --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F13 --only F13.execute-large-output --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5639,
      "title": "[Bug]: LLM switched in before the first run is not added to ConversationStats; its tokens and cost are lost",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5639",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:39:41Z",
      "cohort": "agent-server",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5667,
          "title": "fix(sdk): register pre-run switched LLMs with stats",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5667",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "c870a992284641d13d078279adc40c036a65ad2c",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T12:17:25Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T12:24:11Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T12:17:27Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T12:17:25Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5639",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Model switching and usage",
      "theme_slug": "model-switching-usage",
      "visual": {
        "summary": "Choosing another model before the first message can omit all of that model’s tokens and cost from conversation statistics. The run uses the new model, but cost displays and the run budget do not see its calls.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5667,
          "title": "fix(sdk): register pre-run switched LLMs with stats",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5667",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5639",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Switch the LLM before the first message or run, run the conversation, then GET /api/conversations/{id}.",
          "expected": "stats.usage_to_metrics contains the switched usage ID with its token usage and cost.",
          "observed": "The run uses the new model, but usage_to_metrics contains only condenser; the model’s usage is absent.",
          "source_expected": "After the run, `GET /api/conversations/{id}` has `stats.usage_to_metrics.<switched usage_id>` with `accumulated_token_usage.prompt_tokens > 0` and the call's cost, as it does when the same switch happens after the first message.",
          "source_observed": "`switch_llm` returns 200 `{\"success\": true}`, the run finishes on the switched model and `agent.llm.usage_id` is the switched id, but `stats.usage_to_metrics` has only `condenser`. The switched LLM's tokens and cost are counted nowhere in the conversation's stats."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Switch the LLM before the first message or run, run the conversation, then GET /api/conversations/{id}.",
          "observed": "The run uses the new model, but usage_to_metrics contains only condenser; the model’s usage is absent.",
          "expected": "stats.usage_to_metrics contains the switched usage ID with its token usage and cost.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F09.switch-llm-before-first-run",
      "map_command": "control-agent-server map run --file F09 --only F09.switch-llm-before-first-run --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F09 --only F09.switch-llm-before-first-run --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5640,
      "title": "[Bug]: download-trajectory returns 404 after POST /api/init sets conversations_path (expected 200 zip)",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5640",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:40:03Z",
      "cohort": "agent-server",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5696,
          "title": "fix(agent-server): resolve trajectory download dir from request config",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5696",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "0b509ab411fab7d38cfc689dea3ca9a64269db1f",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T08:35:56Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T08:08:13Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T08:08:15Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T08:08:13Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5640",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Commands, files and Git",
      "theme_slug": "commands-files-git",
      "visual": {
        "summary": "A warm-pool server initialized with a custom conversation directory can read its conversations but cannot download their trajectories. Both download routes keep looking in the original launch-time directory.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5696,
          "title": "fix(agent-server): resolve trajectory download dir from request config",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5696",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5640",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "POST /api/init with conversations_path; create a conversation; GET /api/file/download-trajectory/{id}.",
          "expected": "200 with a zip from the configured conversation directory.",
          "observed": "404 Conversation not found on both trajectory routes, while GET /api/conversations/{id} returns 200.",
          "source_expected": "After `POST /api/init` with `{\"conversations_path\": \"<dir>\"}`, for a conversation stored at `<dir>/<hex>/`:\n- `GET /api/file/download-trajectory/{id}` returns 200 with `<hex>.zip` (`meta.json`, `base_state.json`, one file per event).\n- `GET /api/conversations/{id}/file/download-trajectory/{id}` returns the same 200 zip.",
          "source_observed": "- `GET /api/conversations/{id}` returns 200 and `<dir>/<hex>/base_state.json` exists.\n- `GET /api/file/download-trajectory/{id}` returns `404 {\"detail\": \"Conversation not found\"}`.\n- `GET /api/conversations/{id}/file/download-trajectory/{id}` returns the same 404."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "POST /api/init with conversations_path; create a conversation; GET /api/file/download-trajectory/{id}.",
          "observed": "404 Conversation not found on both trajectory routes, while GET /api/conversations/{id} returns 200.",
          "expected": "200 with a zip from the configured conversation directory.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F14.trajectory-init-path",
      "map_command": "control-agent-server map run --file F14 --only F14.trajectory-init-path --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F14 --only F14.trajectory-init-path --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5641,
      "title": "[Bug]: GET /api/git/changes returns [] for a non-repo directory holding a repository, not its changes",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5641",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:40:24Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5641",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Commands, files and Git",
      "theme_slug": "commands-files-git",
      "visual": {
        "summary": "The Git changes endpoint misses edits when the workspace directory contains a repository one level below it. A changes view querying the workspace root can therefore appear empty despite uncommitted work.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5641",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "GET /api/git/changes?path=<workspace> where the repository is <workspace>/proj.",
          "expected": "List proj/README.md as UPDATED and proj/notes.txt as ADDED.",
          "observed": "200 []; querying <workspace>/proj directly returns both changes.",
          "source_expected": "For a non-repository directory `ws/` holding the repository `ws/proj/` with a modified tracked `README.md` and an untracked `notes.txt`, `GET /api/git/changes?path=<ws>` returns `200` with the repository's changes under its directory name, sorted by path:\n```json\n[{\"status\":\"UPDATED\",\"path\":\"proj/README.md\"},{\"status\":\"ADDED\",\"path\":\"proj/notes.txt\"}]\n```\nA directory with no repository at or below it still returns `200 []`.",
          "source_observed": "`200 []`. The same request with `path=<ws>/proj` returns both changes (`README.md` `UPDATED`, `notes.txt` `ADDED`)."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "GET /api/git/changes?path=<workspace> where the repository is <workspace>/proj.",
          "observed": "200 []; querying <workspace>/proj directly returns both changes.",
          "expected": "List proj/README.md as UPDATED and proj/notes.txt as ADDED.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F15.changes-repo-below-path",
      "map_command": "control-agent-server map run --file F15 --only F15.changes-repo-below-path --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F15 --only F15.changes-repo-below-path --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5642,
      "title": "[Bug]: git changes returns 400 for a modified file with a space in its name and mangles non-ASCII names",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5642",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:40:46Z",
      "cohort": "agent-server",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5656,
          "title": "fix(git): parse name-status output NUL-delimited",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5656",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "relation": "fix",
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "96ae7678ff091f9c5b7eff14e7ae51a33ca0e1fe",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T06:12:27Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T06:38:48Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T06:12:21Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T06:12:19Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        },
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5698,
          "title": "fix(git): keep file names verbatim in git changes and commit views",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5698",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "9c5d404ca7778188fd63d30e21d6dd89c7c29e99",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T13:57:18Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T09:10:53Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T09:10:55Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T09:10:53Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5642",
        "https://github.com/OpenHands/software-agent-sdk/pull/5656",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Commands, files and Git",
      "theme_slug": "commands-files-git",
      "visual": {
        "summary": "Modified filenames containing spaces can make the entire Git changes request fail. Non-ASCII names are returned in a corrupted escaped form, so clients cannot reliably identify the changed file.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5656,
          "title": "fix(git): parse name-status output NUL-delimited",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5656",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5642",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Modify my notes.md or café.txt; GET /api/git/changes.",
          "expected": "200 with the real filename, such as my notes.md or café.txt.",
          "observed": "A space causes 400 Unexpected git diff output format; non-ASCII names retain Git quoting with corrupted slashes.",
          "source_expected": "- With `my notes.md` modified: `200 [{\"status\": \"UPDATED\", \"path\": \"my notes.md\"}]`.\n- With `café.txt` modified: `200 [{\"status\": \"UPDATED\", \"path\": \"café.txt\"}]`.\n- `GET /api/git/commits/{sha}/changes` lists the real names of the files the commit touched.",
          "source_observed": "- Space: `400 {\"detail\": \"Unexpected git diff output format: M\\tmy notes.md\"}`. The commit route fails the same way for the commit that added the file.\n- Non-ASCII: `200 [{\"status\": \"UPDATED\", \"path\": \"\\\"caf/303/251.txt\\\"\"}]`, git's C-quoted form with the quotes kept and the backslashes turned into slashes. Untracked non-ASCII names are mangled the same way; untracked names with a space are fine.",
          "draft_fix_observation": "PR #5656 reports the old parser failing on my notes.md, then verbatim filenames with NUL-delimited parsing; 41 tests passed locally, with two pre-existing Windows path-separator failures."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Modify my notes.md or café.txt; GET /api/git/changes.",
          "observed": "A space causes 400 Unexpected git diff output format; non-ASCII names retain Git quoting with corrupted slashes.",
          "expected": "200 with the real filename, such as my notes.md or café.txt.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F15.changes-special-names",
      "map_command": "control-agent-server map run --file F15 --only F15.changes-special-names --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F15 --only F15.changes-special-names --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5643,
      "title": "[Bug]: POST /api/settings/mcp/{key} with {} returns 201 and new conversations lose all MCP tools; expected 422",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5643",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:41:07Z",
      "cohort": "agent-server",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5694,
          "title": "fix(agent-server): reject empty MCP server config with 422",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5694",
          "relation": "partial",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "SUCCESS",
            "head_sha": "eff6911fd02205ed98d8a9a1634840a59736d217",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T06:47:55Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T06:47:57Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-10T06:47:56Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T06:47:55Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "PR #5694 rejects new empty MCP configurations, but leaves persisted-settings migration and isolation of valid servers from an invalid sibling unresolved.",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5643",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Skills, plugins and MCP",
      "theme_slug": "skills-plugins-mcp",
      "visual": {
        "summary": "Saving an empty MCP server configuration succeeds but can remove every MCP tool from new conversations, including tools from valid neighboring entries. The only explanation appears in a server log.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5694,
          "title": "fix(agent-server): reject empty MCP server config with 422",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5694",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5643",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "POST /api/settings/mcp/qa-empty\n{}",
          "expected": "422 and no stored entry; valid MCP servers continue to contribute their tools.",
          "observed": "201 stores {\"enabled\":true}; a new conversation gets no MCP tools from any configured server.",
          "source_expected": "`POST /api/settings/mcp/qa-empty` with `{}` answers 422 and stores nothing; `GET /api/settings` has no `agent_settings.mcp_config.qa-empty`. One invalid server never removes the tools of the other servers.",
          "source_observed": "The POST answers 201 and the returned `SettingsResponse` contains `agent_settings.mcp_config.qa-empty: {\"enabled\": true}`, which is persisted. A new conversation's first `SystemPromptEvent` lists no MCP tools, and the server logs `MCP server startup failed for <every enabled key>; continuing without its tools: ... validation errors for MCPConfig`."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "POST /api/settings/mcp/qa-empty\n{}",
          "observed": "201 stores {\"enabled\":true}; a new conversation gets no MCP tools from any configured server.",
          "expected": "422 and no stored entry; valid MCP servers continue to contribute their tools.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F19.settings-empty-server",
      "map_command": "control-agent-server map run --file F19 --only F19.settings-empty-server --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F19 --only F19.settings-empty-server --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5644,
      "title": "[Bug]: /api/profiles/{name}/validate ignores provider_connection_id: linked draft valid:false, expected true",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5644",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:41:28Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5644",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Settings, profiles and credentials",
      "theme_slug": "settings-profiles-credentials",
      "visual": {
        "summary": "Profile validation ignores the saved provider connection linked by a draft profile. It reports an authentication failure for a configuration that saves and activates successfully with the connection’s key.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5644",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "POST /api/profiles/draft/validate with llm.provider_connection_id pointing to a working saved connection.",
          "expected": "200 {\"valid\":true,\"error\":null}, using the connection’s key and base URL.",
          "observed": "200 with valid: false and LLMAuthenticationError; the same model with the key inline validates successfully.",
          "source_expected": "The pre-flight uses the connection's `api_key` and `base_url`, as activation, `PATCH /api/settings` `active_profile` and `switch_llm` do: a draft linked to a working key returns 200 `{\"valid\": true, \"error\": null}`, like the key inline.",
          "source_observed": "200 `{\"valid\": false, \"error\": {\"type\": \"LLMAuthenticationError\", \"message\": \"...Authentication Fails...\"}}`. The inline-key control returns `valid: true`."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "POST /api/profiles/draft/validate with llm.provider_connection_id pointing to a working saved connection.",
          "observed": "200 with valid: false and LLMAuthenticationError; the same model with the key inline validates successfully.",
          "expected": "200 {\"valid\":true,\"error\":null}, using the connection’s key and base URL.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F23.validate-linked-draft",
      "map_command": "control-agent-server map run --file F23 --only F23.validate-linked-draft --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F23 --only F23.validate-linked-draft --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5645,
      "title": "[Bug]: Skill/Canvas install with an unknown ref returns 200 when the git source is cached (expected 400)",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5645",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:41:49Z",
      "cohort": "agent-server",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5685,
          "title": "fix(sdk): reject unavailable cached extension refs",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5685",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": false,
          "merged_at": null,
          "ci": {
            "state": "FAILURE",
            "github_rollup": "FAILURE",
            "head_sha": "8a02292620ecee3c5671f5fc0f6c85b2e5ca53a1",
            "failed": [
              "integration-test"
            ],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "integration-test",
                "state": "FAILURE",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T02:16:30Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (ubuntu-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:17Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-docstrings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 246558633,
                "app": "github-actions"
              },
              {
                "name": "check",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:17Z",
                "workflow_id": 207010770,
                "app": "github-actions"
              },
              {
                "name": "Validate PR description",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "Persisted settings",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 279158508,
                "app": "github-actions"
              },
              {
                "name": "pre-commit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 183604467,
                "app": "github-actions"
              },
              {
                "name": "REST API (OpenAPI)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 239283049,
                "app": "github-actions"
              },
              {
                "name": "unresolved-review-threads",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 231618827,
                "app": "github-actions"
              },
              {
                "name": "Test directory allowlist",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "agent-server-api",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "endpoint-audit",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 344966557,
                "app": "github-actions"
              },
              {
                "name": "Check package versions",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 236831996,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (macos-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:22Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "build-binary-and-test (windows-latest)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T02:16:30Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "Check OpenAPI Schema",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:17Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "sdk-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:21Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "public-type-budget",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "smoke-test",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 344966554,
                "app": "github-actions"
              },
              {
                "name": "Build & Push (${{ matrix.variant }}-${{ matrix.arch }})",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:15Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-10T02:16:30Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "acp-live-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:22Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "test (24.x)",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Merge Multi-Arch Manifests",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:15Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "tools-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:25Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "security",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Consolidate Build Information",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:15Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "windows-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "validate-acp-providers",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:16Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "Update PR description with agent server image",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:15Z",
                "workflow_id": 188210064,
                "app": "github-actions"
              },
              {
                "name": "agent-server-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:23Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "build",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:51Z",
                "workflow_id": 344966555,
                "app": "github-actions"
              },
              {
                "name": "agent-server-stress-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:22Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "workspace-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:22Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "cross-tests",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:43:23Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              },
              {
                "name": "coverage-report",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T21:48:48Z",
                "workflow_id": 183665439,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5645",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Skills, plugins and MCP",
      "theme_slug": "skills-plugins-mcp",
      "visual": {
        "summary": "Installing a skill or Canvas app at a nonexistent Git ref fails correctly on a fresh source but succeeds after the source is cached. The API installs the cached revision and records the missing ref as though it had been requested successfully.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5685,
          "title": "fix(sdk): reject unavailable cached extension refs",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5685",
          "state": "OPEN",
          "is_draft": false
        },
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5645",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "After caching a Git source: POST /api/skills/install with ref: no-such-ref and force: true.",
          "expected": "400 with the current installation unchanged, whether or not the source is cached.",
          "observed": "200 installs the cached commit and stores requested_ref: no-such-ref; Canvas installs behave the same way.",
          "source_expected": "An install whose `ref` cannot be checked out answers 400 whether or not the source is cached, and the existing installation and its `.installed.json` entry stay unchanged.",
          "source_observed": "With a cached clone a forced install answers 200, the skill or Canvas app is replaced by the cached checkout, `resolved_ref` is that commit, and `.installed.json` stores `\"requested_ref\": \"no-such-ref\"`. The only signal is the log warning `Failed to checkout no-such-ref: ... Using cached version.`"
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "After caching a Git source: POST /api/skills/install with ref: no-such-ref and force: true.",
          "observed": "200 installs the cached commit and stores requested_ref: no-such-ref; Canvas installs behave the same way.",
          "expected": "400 with the current installation unchanged, whether or not the source is cached.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F25.install-unknown-ref",
      "map_command": "control-agent-server map run --file F25 --only F25.install-unknown-ref --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F25 --only F25.install-unknown-ref --fresh` (or `--file F28 --only F28.install-ref-cached`) reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5646,
      "title": "[Bug]: Canvas App backend stays 'unhealthy' after one slow health probe instead of returning to 'ready'",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5646",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:42:12Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5646",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Canvas backends and bridges",
      "theme_slug": "canvas-backends-bridges",
      "visual": {
        "summary": "One slow health probe can leave a Canvas backend permanently marked unhealthy even after it recovers. Requests through the app bridge then fail until the backend is explicitly stopped and started.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5646",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Make one backend health probe slow, restore normal health responses, then GET /api/canvas-extensions/installed/{name}/backend.",
          "expected": "The next successful health probe returns state: ready and restores bridge traffic.",
          "observed": "State remains unhealthy with the same PID; later calls do not probe again and the bridge returns 503.",
          "source_expected": "Once `/health` answers in time again, the next `GET .../backend` returns `state: \"ready\"` (whether or not the slow probe was reported), and the bridge forwards to the backend again.",
          "source_observed": "- Every later `GET .../backend` returns `state: \"unhealthy\"`, `detail: \"Backend health probe failed\"`, with the same `pid`.\n- `POST .../backend/start` with the same revision returns that status without restarting anything. The bridge answers 503 \"Canvas App backend is not ready\". A forced install still gets 409 because the process is still running.\n- Only `stop` followed by `start` gets back to `ready`."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Make one backend health probe slow, restore normal health responses, then GET /api/canvas-extensions/installed/{name}/backend.",
          "observed": "State remains unhealthy with the same PID; later calls do not probe again and the bridge returns 503.",
          "expected": "The next successful health probe returns state: ready and restores bridge traffic.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F28.status-probe-latch",
      "map_command": "control-agent-server map run --file F28 --only F28.status-probe-latch --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F28 --only F28.status-probe-latch --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5647,
      "title": "[Bug]: Continued /v1/chat/completions turn reports conversation-total usage (13/7/20), not its own (3/2/5)",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5647",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:42:33Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5647",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Model switching and usage",
      "theme_slug": "model-switching-usage",
      "visual": {
        "summary": "A continued chat-completions request returns the token total for the whole conversation instead of that request. Clients that add usage across requests double-count earlier turns, including with streaming usage enabled.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5647",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "POST /v1/chat/completions with X-OpenHands-ServerConversation-ID for a second turn.",
          "expected": "For the recorded 10/5 then 3/2 token calls, the second response reports 3 prompt, 2 completion, 5 total.",
          "observed": "The second response reports 13 prompt, 7 completion, 20 total: the accumulated conversation usage.",
          "source_expected": "`usage` on a continued turn covers only the model calls made while serving that request. With an LLM that reports 10/5 tokens on the first call and 3/2 on the second (one model call per turn), the second response has `usage.prompt_tokens` 3, `usage.completion_tokens` 2, `usage.total_tokens` 5.",
          "source_observed": "The second response reports `prompt_tokens` 13, `completion_tokens` 7, `total_tokens` 20. The LLM got exactly one call for the second request, and `GET /api/conversations/{id}` shows `stats.usage_to_metrics.default.token_usages` with two entries (10/5, then 3/2) and `accumulated_token_usage` 13/7: the server has the per-call numbers but returns the total."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "POST /v1/chat/completions with X-OpenHands-ServerConversation-ID for a second turn.",
          "observed": "The second response reports 13 prompt, 7 completion, 20 total: the accumulated conversation usage.",
          "expected": "For the recorded 10/5 then 3/2 token calls, the second response reports 3 prompt, 2 completion, 5 total.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F30.chat-usage-per-request",
      "map_command": "control-agent-server map run --file F30 --only F30.chat-usage-per-request --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F30 --only F30.chat-usage-per-request --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5648,
      "title": "[Bug]: /app-backends WebSocket bridge negotiates no subprotocol (expected the backend's choice, qa.v1)",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5648",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:42:56Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5648",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Canvas backends and bridges",
      "theme_slug": "canvas-backends-bridges",
      "visual": {
        "summary": "The Canvas backend WebSocket bridge drops subprotocol negotiation. Apps whose browser clients require a protocol such as graphql-ws cannot complete their normal handshake through the bridge.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5648",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Open WS /app-backends/qa-headers/ws offering Sec-WebSocket-Protocol: qa.v1.",
          "expected": "The backend receives qa.v1 and the bridge selects qa.v1 in its 101 response.",
          "observed": "The bridge selects no subprotocol and the backend reports none; a direct backend connection negotiates qa.v1.",
          "source_expected": "A client opening `/app-backends/qa-headers/ws` offering `qa.v1` (valid `oh_app_backend_session` cookie, ingress `Origin`) gets `Sec-WebSocket-Protocol: qa.v1` in the 101 response and the backend sees `qa.v1`, as when the same client connects to the backend's port directly.",
          "source_observed": "The 101 has no `Sec-WebSocket-Protocol`: a Python `websockets` client reports `subprotocol=None` and the backend reports `\"protocol\": \"none\"`. Frames still flow. Directly against the backend's port, the same client gets `qa.v1`."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Open WS /app-backends/qa-headers/ws offering Sec-WebSocket-Protocol: qa.v1.",
          "observed": "The bridge selects no subprotocol and the backend reports none; a direct backend connection negotiates qa.v1.",
          "expected": "The backend receives qa.v1 and the bridge selects qa.v1 in its 101 response.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F29.ws-subprotocol",
      "map_command": "control-agent-server map run --file F29 --only F29.ws-subprotocol --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F29 --only F29.ws-subprotocol --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5649,
      "title": "[Bug]: TS ConversationManager.createConversation ignores maxIterations/stuckDetection (server gets 500/true)",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5649",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:43:17Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5649",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Python and TypeScript clients",
      "theme_slug": "python-typescript-clients",
      "visual": {
        "summary": "The TypeScript conversation manager accepts iteration and stuck-detection options but never forwards them. A client asking for a seven-iteration limit silently gets the server default of 500.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5649",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "manager.createConversation(agent, { maxIterations: 7, stuckDetection: false })",
          "expected": "POST and subsequent GET contain max_iterations: 7 and stuck_detection: false.",
          "observed": "POST and GET contain max_iterations: 500 and stuck_detection: true; calling RemoteConversation.start directly works.",
          "source_expected": "`POST /api/conversations` carries `max_iterations: 7` and `stuck_detection: false` when the caller passes `{ maxIterations: 7, stuckDetection: false }`, and `GET /api/conversations/{id}` returns those values, the same as `RemoteConversation.start({ maxIterations: 7, stuckDetection: false })` already does.",
          "source_observed": "The request body has `max_iterations: 500` and `stuck_detection: true`, and `GET /api/conversations/{id}` returns `{\"max_iterations\": 500, \"stuck_detection\": true}`."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "manager.createConversation(agent, { maxIterations: 7, stuckDetection: false })",
          "observed": "POST and GET contain max_iterations: 500 and stuck_detection: true; calling RemoteConversation.start directly works.",
          "expected": "POST and subsequent GET contain max_iterations: 7 and stuck_detection: false.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F34.manager-create-options",
      "map_command": "control-agent-server map run --file F34 --only F34.manager-create-options --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F34 --only F34.manager-create-options --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5650,
      "title": "[Bug]: TS RemoteWorkspace.downloadAsBlob/fileDownload return 11 mangled bytes for a 5-byte binary file",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5650",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:43:39Z",
      "cohort": "agent-server",
      "prs": [
        {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5676,
          "title": "fix(ts-client): preserve binary bytes in RemoteWorkspace downloads",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5676",
          "relation": "fix",
          "state": "OPEN",
          "is_draft": true,
          "merged_at": null,
          "ci": {
            "state": "SUCCESS",
            "github_rollup": "FAILURE",
            "head_sha": "148f81bc0a3f31a4e5719d4515d92417237f8664",
            "failed": [],
            "checked_at": "2026-10-11T04:24:19Z",
            "metadata_only": false,
            "latest_checks": [
              {
                "name": "Validate PR description",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T12:56:43Z",
                "workflow_id": 289793341,
                "app": "github-actions"
              },
              {
                "name": "cleanup-on-approval",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T12:54:17Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "check-pr-artifacts",
                "state": "SUCCESS",
                "status": "COMPLETED",
                "time": "2026-10-09T12:54:18Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              },
              {
                "name": "cleanup-after-merge",
                "state": "SKIPPED",
                "status": "COMPLETED",
                "time": "2026-10-09T12:54:17Z",
                "workflow_id": 225305825,
                "app": "github-actions"
              }
            ]
          }
        }
      ],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5650",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Python and TypeScript clients",
      "theme_slug": "python-typescript-clients",
      "visual": {
        "summary": "The TypeScript remote-workspace download helpers decode binary downloads as text and silently corrupt their bytes. The lower-level FileClient retrieves the same file correctly.",
        "primary_pr": {
          "repo": "OpenHands/software-agent-sdk",
          "number": 5676,
          "title": "fix(ts-client): preserve binary bytes in RemoteWorkspace downloads",
          "url": "https://github.com/OpenHands/software-agent-sdk/pull/5676",
          "state": "OPEN",
          "is_draft": true
        },
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5650",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "RemoteWorkspace.downloadAsBlob(path) for a file containing ff 00 80 fe 41.",
          "expected": "A 5-byte download: [255, 0, 128, 254, 65].",
          "observed": "An 11-byte text Blob: [239, 191, 189, 0, 239, 191, 189, 239, 191, 189, 65]; file_size is 11.",
          "source_expected": "For a file holding the 5 bytes `ff 00 80 fe 41`:\n- `downloadAsBlob(path)` resolves to a Blob whose bytes are `[255, 0, 128, 254, 65]`.\n- `fileDownload(path)` reports `file_size: 5`.",
          "source_observed": "- `downloadAsBlob` resolves to an 11-byte `text/plain` Blob: `[239, 191, 189, 0, 239, 191, 189, 239, 191, 189, 65]` (each invalid byte became `EF BF BD`).\n- `fileDownload` returns `content` as a string and `file_size: 11`.\n- `FileClient.downloadFile` and `curl` get the correct 5 bytes from the same path."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "RemoteWorkspace.downloadAsBlob(path) for a file containing ff 00 80 fe 41.",
          "observed": "An 11-byte text Blob: [239, 191, 189, 0, 239, 191, 189, 239, 191, 189, 65]; file_size is 11.",
          "expected": "A 5-byte download: [255, 0, 128, 254, 65].",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F34.workspace-binary-download",
      "map_command": "control-agent-server map run --file F34 --only F34.workspace-binary-download --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F34 --only F34.workspace-binary-download --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5651,
      "title": "[Bug]: ConversationEventStream on Node 22 WebSocket stops after one refused reconnect instead of backing off",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5651",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:44:00Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5651",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Python and TypeScript clients",
      "theme_slug": "python-typescript-clients",
      "visual": {
        "summary": "On Node 22’s native WebSocket, the TypeScript event stream stops retrying after its first refused reconnect. A routine server restart can therefore leave the client permanently disconnected.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5651",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Start ConversationEventStream with reconnect enabled on Node 22, restart the server, and let the first reconnect be refused.",
          "expected": "Keep backing off until the server returns, then reconnect and receive new events.",
          "observed": "isConnected: false, isReconnecting: true, attemptCount: 1; no further retries occur.",
          "source_expected": "After the server closes the socket on restart (code 1012), the stream backs off (1, 2, 4, 8 s plus jitter) until the server is back, then reports `isConnected: true` and receives events again, including messages posted after the restart. The `ws` constructor passed as `createWebSocket` does this today.",
          "source_observed": "The stream records the 1012 close and schedules one retry. That handshake is refused, the socket fires `error` but never `close`, and nothing else is scheduled. The state stays `{\"isConnected\": false, \"isReconnecting\": true, \"attemptCount\": 1, \"error\": \"WebSocket closed with code 1012: ...\"}`. If the server is down at `start()`, the stream never retries at all."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Start ConversationEventStream with reconnect enabled on Node 22, restart the server, and let the first reconnect be refused.",
          "observed": "isConnected: false, isReconnecting: true, attemptCount: 1; no further retries occur.",
          "expected": "Keep backing off until the server returns, then reconnect and receive new events.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F34.event-stream-reconnect-native",
      "map_command": "control-agent-server map run --file F34 --only F34.event-stream-reconnect-native --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F34 --only F34.event-stream-reconnect-native --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    },
    {
      "repo": "OpenHands/software-agent-sdk",
      "number": 5652,
      "title": "[Bug]: RemoteState confirmation_policy/security_analyzer/agent fail or return None on the second read",
      "url": "https://github.com/OpenHands/software-agent-sdk/issues/5652",
      "issue_state": "OPEN",
      "state_reason": null,
      "checked_at": "2026-10-11T04:24:19Z",
      "created_at": "2026-10-09T03:44:23Z",
      "cohort": "agent-server",
      "prs": [],
      "note": "",
      "provenance_urls": [
        "https://github.com/OpenHands/software-agent-sdk/issues/5652",
        "https://github.com/OpenHands/software-agent-sdk/pull/5621",
        "https://github.com/OpenHands/software-agent-sdk/issues/5653"
      ],
      "theme": "Python and TypeScript clients",
      "theme_slug": "python-typescript-clients",
      "visual": {
        "summary": "Reading remote conversation state mutates the cached data, so the next read can throw or return the wrong result. Confirmation mode can change from true to false without any server-side change.",
        "primary_pr": null,
        "images": [],
        "evidence": {
          "kind": "source-derived-api-reproduction",
          "label": "Issue reproduction",
          "source_url": "https://github.com/OpenHands/software-agent-sdk/issues/5652",
          "note": "Condensed from the issue report; not a screenshot or a new test run.",
          "request": "Read state.confirmation_policy, state.security_analyzer, and state.agent twice after filling RemoteState’s cache.",
          "expected": "Both reads return the same valid types; is_confirmation_mode_active stays true.",
          "observed": "Second policy and agent reads raise ValidationError; the analyzer becomes None and confirmation mode becomes false.",
          "source_expected": "For a conversation with `AlwaysConfirm` and `LLMSecurityAnalyzer`, every read returns `AlwaysConfirm`, `LLMSecurityAnalyzer`, `Agent`, and `is_confirmation_mode_active` stays `True`.",
          "source_observed": "- `state.confirmation_policy`: 1st `AlwaysConfirm`, 2nd raises `ValidationError` (`Unknown kind '' for ...ConfirmationPolicyBase`).\n- `state.agent`: 1st `Agent`, 2nd raises `ValidationError` (`Unknown kind ''`).\n- `state.security_analyzer`: 1st `LLMSecurityAnalyzer`, 2nd `None`.\n- `conversation.is_confirmation_mode_active`: 1st `True`, 2nd `False`.\n\n`state.refresh_from_server()` or a full-state socket snapshot restores the cache until the next read."
        },
        "evidence_note": "Source-derived API reproduction from the issue report; no screenshot or new test run. The verification map is PR #5621; its current state is recorded in the downloadable data.",
        "reproduction": {
          "action": "Read state.confirmation_policy, state.security_analyzer, and state.agent twice after filling RemoteState’s cache.",
          "observed": "Second policy and agent reads raise ValidationError; the analyzer becomes None and confirmation mode becomes false.",
          "expected": "Both reads return the same valid types; is_confirmation_mode_active stays true.",
          "note": "Condensed from the issue report; not a screenshot or a new test run."
        }
      },
      "severity": "medium",
      "map_id": "F33.conversation-state-reread",
      "map_command": "control-agent-server map run --file F33 --only F33.conversation-state-reread --fresh",
      "reported_version": "main at 2804c12",
      "inclusion_proof": "With the verify-agent-server skill (#5621): `control-agent-server map run --file F33 --only F33.conversation-state-reread --fresh` reports the known-bug bullet as an expected failure while the bug lasts.",
      "closed_at": null
    }
  ],
  "refresh": {
    "metadata_fetch_started_at": "2026-10-11T04:28:52Z",
    "metadata_fetch_finished_at": "2026-10-11T04:29:31Z",
    "tracked_cohort_preserved": 120,
    "discovery": "All open PRs and closed/merged PRs updated since the prior snapshot in all three repositories, plus full tracked issue reference and closure timelines. New matches require an explicit fixing/closing reference or closing event. Original evidence retained; no browser verification rerun."
  }
}
