chore: apply sweep decisions
[skip ci]
This commit is contained in:
parent
e83e100571
commit
aa41fc485e
@ -1,38 +0,0 @@
|
||||
---
|
||||
sha: a1d288cbb770332d30529a2ba1c2aae3cf80a4ca
|
||||
parent: 57301d7624a03337d27cdf6e21c6e4bbbe25ebb4
|
||||
repository: openclaw/openclaw
|
||||
author: "Peter Steinberger"
|
||||
committer: "Peter Steinberger"
|
||||
github_author: steipete
|
||||
github_committer: steipete
|
||||
co_authors: []
|
||||
commit_authored_at: "2026-05-09T00:33:17+01:00"
|
||||
commit_committed_at: "2026-05-09T00:33:23+01:00"
|
||||
result: nothing_found
|
||||
confidence: high
|
||||
highest_severity: none
|
||||
check_conclusion: success
|
||||
reviewed_at: 2026-05-08T23:38:33+00:00
|
||||
---
|
||||
|
||||
# Commit a1d288cbb7
|
||||
|
||||
Nothing found.
|
||||
|
||||
## Details
|
||||
|
||||
- Do we have a high-confidence way to reproduce the issue? Not applicable; no actionable issue was found.
|
||||
- Is this the best way to solve the issue? Not applicable; no fix is recommended.
|
||||
|
||||
## Reviewed
|
||||
|
||||
- Diff: `57301d7624a03337d27cdf6e21c6e4bbbe25ebb4..a1d288cbb770332d30529a2ba1c2aae3cf80a4ca`
|
||||
- Changed files: `ui/src/ui/views/config-quick.test.ts`
|
||||
- Code read: `ui/src/ui/views/config-quick.test.ts`, `ui/src/ui/views/config-quick.ts`, `ui/AGENTS.md`, `docs/reference/test.md`
|
||||
- Dependencies/web: no dependency files changed; no web lookup needed.
|
||||
- Commands: `pnpm docs:list`; `git show --stat --format=fuller a1d288cbb770332d30529a2ba1c2aae3cf80a4ca`; `git diff --find-renames 57301d7624a03337d27cdf6e21c6e4bbbe25ebb4..a1d288cbb770332d30529a2ba1c2aae3cf80a4ca -- ui/src/ui/views/config-quick.test.ts`; `pnpm install`; `pnpm test ui/src/ui/views/config-quick.test.ts`; `git diff --check 57301d7624a03337d27cdf6e21c6e4bbbe25ebb4..a1d288cbb770332d30529a2ba1c2aae3cf80a4ca`; `pnpm exec oxfmt --check --threads=1 ui/src/ui/views/config-quick.test.ts`
|
||||
|
||||
## Limitations
|
||||
|
||||
- none
|
||||
@ -1,5 +1,5 @@
|
||||
---
|
||||
review_comment_synced_at: 2026-05-08T23:39:33.611Z
|
||||
review_comment_synced_at: 2026-05-07T23:12:20.344Z
|
||||
number: 58675
|
||||
repository: openclaw/openclaw
|
||||
type: pull_request
|
||||
@ -7,13 +7,13 @@ title: "feat(github-copilot): auto-discover models via /models API"
|
||||
url: https://github.com/openclaw/openclaw/pull/58675
|
||||
state_at_review: open
|
||||
item_created_at: 2026-04-01T02:23:42Z
|
||||
item_updated_at: 2026-05-08T23:31:04Z
|
||||
item_updated_at: 2026-05-07T23:05:26Z
|
||||
author: jduartedj
|
||||
author_association: NONE
|
||||
labels: ["agents","size: M","triage: dirty-candidate","triage: needs-real-behavior-proof"]
|
||||
reviewed_at: 2026-05-08T23:38:52.846Z
|
||||
main_sha: a1d288cbb770332d30529a2ba1c2aae3cf80a4ca
|
||||
pull_head_sha: aaa89ede2522f8a2e2827de1477baf4d18989d63
|
||||
reviewed_at: 2026-05-07T23:11:42.951Z
|
||||
main_sha: 97d2d40fb75b86a947b335c4fc7d1bed7d59e61a
|
||||
pull_head_sha: 0b0a8aaeb8671c8fe52ebeabe0ae4750b0463afb
|
||||
latest_release: v2026.5.7
|
||||
latest_release_sha: eeef4864494f859838fec1586bedbab1f8fa5702
|
||||
fixed_release: unknown
|
||||
@ -31,19 +31,19 @@ review_model: gpt-5.5
|
||||
review_reasoning_effort: high
|
||||
review_sandbox: danger-full-access
|
||||
review_service_tier: default
|
||||
review_prompt_chars: 133958
|
||||
review_prompt_chars: 134398
|
||||
review_static_prompt_chars: 33412
|
||||
review_context_chars: 99313
|
||||
review_context_chars: 99753
|
||||
review_schema_chars: 14081
|
||||
review_additional_prompt_chars: 0
|
||||
review_context_elapsed_ms: 6018
|
||||
review_codex_elapsed_ms: 259147
|
||||
review_context_elapsed_ms: 5068
|
||||
review_codex_elapsed_ms: 198796
|
||||
review_mode: propose
|
||||
review_status: complete
|
||||
local_checkout_access: verified
|
||||
item_snapshot_hash: ccc1aecaba87ea6a3788dc4ad30e4a29ac63e1f7dcc266c075ffb365afb91dc8
|
||||
item_snapshot_hash: 568ab6e0856bf6f70ab95a5212422ea8f2776c6b65b19ad10f5b23b111514a02
|
||||
close_comment_sha256: none
|
||||
review_comment_sha256: dff8642cbeb703b17e616d6c02d458c7e0588a46b9e2d9f305ce99d507889ce3
|
||||
review_comment_sha256: 2040ae16d80e2eeded3ba8ca2854c902e476dd5906ee879c39877e25369899ca
|
||||
review_comment_id: 4349682890
|
||||
review_comment_url: https://github.com/openclaw/openclaw/pull/58675#issuecomment-4349682890
|
||||
decision: keep_open
|
||||
@ -52,13 +52,13 @@ confidence: high
|
||||
action_taken: kept_open
|
||||
work_candidate: manual_review
|
||||
work_confidence: high
|
||||
work_priority: medium
|
||||
work_priority: high
|
||||
work_status: manual_review
|
||||
work_reason_sha256: d1768bb03a033c8b8840205c0c31cd59cea0eaff96f1ac48963d6da2228061cd
|
||||
work_reason_sha256: d917b995d39857d8781a2f3f0527ea9bc7c31348f8b17e9c22b17c47ec9d445c
|
||||
work_prompt_sha256: none
|
||||
work_cluster_refs: ["https://github.com/openclaw/openclaw/issues/74159"]
|
||||
work_validation: ["pnpm test extensions/github-copilot/discovery.test.ts extensions/github-copilot/index.test.ts extensions/github-copilot/provider-discovery.contract.test.ts extensions/github-copilot/models.test.ts src/agents/models-config.providers.implicit.discovery-scope.test.ts","pnpm exec oxfmt --check --threads=1 extensions/github-copilot/discovery.ts extensions/github-copilot/index.ts src/agents/models-config.providers.implicit.ts src/plugin-sdk/test-helpers/provider-discovery-contract.ts CHANGELOG.md"]
|
||||
work_likely_files: ["extensions/github-copilot/discovery.ts","extensions/github-copilot/index.ts","extensions/github-copilot/models.ts","extensions/github-copilot/stream.ts","CHANGELOG.md"]
|
||||
work_cluster_refs: ["https://github.com/openclaw/openclaw/pull/58675","https://github.com/openclaw/openclaw/issues/74159"]
|
||||
work_validation: []
|
||||
work_likely_files: []
|
||||
item_category: feature
|
||||
reproduction_status: not_applicable
|
||||
reproduction_confidence: high
|
||||
@ -84,9 +84,9 @@ Labels: agents, size: M, triage: dirty-candidate, triage: needs-real-behavior-pr
|
||||
|
||||
Created at: Apr 1, 2026, 02:23 UTC
|
||||
|
||||
Updated at: May 8, 2026, 23:31 UTC
|
||||
Updated at: May 7, 2026, 23:05 UTC
|
||||
|
||||
Reviewed against: [a1d288cbb770](https://github.com/openclaw/openclaw/commit/a1d288cbb770332d30529a2ba1c2aae3cf80a4ca)
|
||||
Reviewed against: [97d2d40fb75b](https://github.com/openclaw/openclaw/commit/97d2d40fb75b86a947b335c4fc7d1bed7d59e61a)
|
||||
|
||||
Codex review: model gpt-5.5, reasoning high
|
||||
|
||||
@ -104,48 +104,50 @@ Action taken: kept_open
|
||||
|
||||
## Summary
|
||||
|
||||
Keep open. The provider-local discovery design is still useful and the latest head appears to have fixed the earlier SSRF concern, but it can still auto-register Copilot Gemini models that the current runtime is known to send to the unsupported Responses endpoint, and the external PR still needs real behavior proof plus a changelog entry.
|
||||
Keep open: the feature is useful and current main does not already implement Copilot `/models` discovery, but the latest PR head still has a source-proven SSRF policy regression, lacks required changelog coverage, and lacks concrete real behavior proof from the contributor's Copilot setup.
|
||||
|
||||
## What This Changes
|
||||
|
||||
Adds GitHub Copilot `/models` catalog discovery with SSRF-guarded fetches, IDE/configured header forwarding, implicit header merging, and focused discovery tests.
|
||||
Adds GitHub Copilot `/models` catalog discovery during provider catalog resolution, merges discovered models and IDE headers into provider config, and updates focused provider discovery tests.
|
||||
|
||||
## Best Possible Solution
|
||||
|
||||
Land provider-local Copilot discovery after it avoids advertising models the current Copilot transport cannot execute, adds an Unreleased changelog bullet, and includes redacted real runtime proof; keep the broader Gemini transport fix tracked in https://github.com/openclaw/openclaw/issues/74159.
|
||||
Land the provider-local discovery design after switching discovery to private-network-safe host scoping, adding regression coverage and a changelog bullet, and attaching redacted Copilot runtime proof; keep Gemini runtime routing tracked in https://github.com/openclaw/openclaw/issues/74159.
|
||||
|
||||
## Reproduction Assessment
|
||||
|
||||
Not applicable for the feature request itself. For the blocking review finding, the source path is clear: the PR maps discovered non-Claude IDs through `resolveCopilotTransportApi`, and the linked Gemini issue provides current runtime evidence that this route fails for Copilot Gemini.
|
||||
Not applicable for the requested feature; however, the blocking security finding is source-reproducible by tracing configured `baseUrl` into the new discovery fetch policy and current SSRF semantics.
|
||||
|
||||
## Solution Assessment
|
||||
|
||||
No. Provider-local discovery is the right shape and the latest head uses the safer SSRF policy, but it should not surface known runtime-broken Gemini discoveries and still needs changelog coverage plus real behavior proof before merge.
|
||||
No. Provider-local discovery is the right shape, but this patch should use private-network-safe host scoping, include changelog coverage, and provide real behavior proof before merge.
|
||||
|
||||
## Review Findings
|
||||
|
||||
Overall correctness: patch is incorrect
|
||||
|
||||
Overall confidence: 0.86
|
||||
Overall confidence: 0.9
|
||||
|
||||
Full review comments:
|
||||
|
||||
- **[P2] Gate discovered Gemini models on supported transport:** `extensions/github-copilot/discovery.ts:65`
|
||||
- body: Discovery can now register Copilot Gemini IDs that are not in the built-in list, but those IDs inherit `resolveCopilotTransportApi` and go through `openai-responses`. The linked open Gemini issue shows those Copilot models reject `/responses` and require chat completions, so this can advertise selectable models that fail and fall back at runtime. Filter those IDs until the transport is fixed, or make discovery endpoint-aware here.
|
||||
- confidence: 0.86
|
||||
- **[P1] Keep discovery private-network blocked by default:** `extensions/github-copilot/discovery.ts:98-99`
|
||||
- body: `configuredProvider.baseUrl` flows into discovery, but this policy uses `ssrfPolicyFromHttpBaseUrlAllowedHostname`, whose `allowedHostnames` path skips private-network checks. A configured loopback or metadata URL can therefore be fetched during startup without `request.allowPrivateNetwork`; use the provider transport's host allowlist pattern and only add private-network access when explicitly configured.
|
||||
- confidence: 0.93
|
||||
- **[P3] Add the required changelog entry:** `extensions/github-copilot/index.ts:420-426`
|
||||
- body: This is a user-facing Copilot model discovery feature, but the PR still does not touch `CHANGELOG.md`. Without an Unreleased entry, release notes will omit the new behavior.
|
||||
- body: This PR adds user-facing Copilot model discovery, but the diff still does not include `CHANGELOG.md`. Repo policy requires user-facing feature changes to add an Unreleased changelog bullet, so release notes would miss the new behavior.
|
||||
- confidence: 0.91
|
||||
|
||||
## Security Review
|
||||
|
||||
Status: cleared
|
||||
Status: needs_attention
|
||||
|
||||
Summary: The latest diff uses the shared SSRF-guarded fetch with hostname allowlisting and explicit private-network opt-in; I found no remaining concrete security or supply-chain regression.
|
||||
Summary: The new authenticated discovery request still has a concrete SSRF policy regression for configured Copilot base URLs.
|
||||
|
||||
Concerns:
|
||||
|
||||
- none
|
||||
- **[high] Configured discovery host bypasses private-IP checks:** `extensions/github-copilot/discovery.ts:98`
|
||||
- body: The PR derives discovery policy from the configured `baseUrl` with `allowedHostnames`; current SSRF code treats those hosts as private-network-check exemptions, so private/internal hosts are reachable without explicit opt-in.
|
||||
- confidence: 0.93
|
||||
|
||||
## Real Behavior Proof
|
||||
|
||||
@ -155,7 +157,7 @@ Evidence kind: none
|
||||
|
||||
Needs contributor action: true
|
||||
|
||||
Summary: The PR claims production testing, but it does not attach after-fix screenshots, terminal output, copied live output, recordings, linked artifacts, or redacted logs; the contributor should update the PR body with proof and redact private details before merge.
|
||||
Summary: The PR body claims production testing, but it does not include after-fix output, screenshots, recordings, terminal output, linked artifacts, or redacted logs showing the real Copilot discovery behavior.
|
||||
|
||||
## Work Candidate
|
||||
|
||||
@ -163,85 +165,78 @@ Candidate: manual_review
|
||||
|
||||
Confidence: high
|
||||
|
||||
Priority: medium
|
||||
Priority: high
|
||||
|
||||
Status: manual_review
|
||||
|
||||
Reason: Needs contributor-supplied real Copilot discovery proof and maintainer review of the Gemini discovery/transport boundary before automation should attempt repair.
|
||||
Reason: Needs contributor real behavior proof plus maintainer/security review of the SSRF policy fix before any repair or merge lane.
|
||||
|
||||
Cluster refs:
|
||||
|
||||
- https://github.com/openclaw/openclaw/pull/58675
|
||||
- https://github.com/openclaw/openclaw/issues/74159
|
||||
|
||||
Likely files:
|
||||
|
||||
- extensions/github-copilot/discovery.ts
|
||||
- extensions/github-copilot/index.ts
|
||||
- extensions/github-copilot/models.ts
|
||||
- extensions/github-copilot/stream.ts
|
||||
- CHANGELOG.md
|
||||
- none
|
||||
|
||||
Validation:
|
||||
|
||||
- pnpm test extensions/github-copilot/discovery.test.ts extensions/github-copilot/index.test.ts extensions/github-copilot/provider-discovery.contract.test.ts extensions/github-copilot/models.test.ts src/agents/models-config.providers.implicit.discovery-scope.test.ts
|
||||
- pnpm exec oxfmt --check --threads=1 extensions/github-copilot/discovery.ts extensions/github-copilot/index.ts src/agents/models-config.providers.implicit.ts src/plugin-sdk/test-helpers/provider-discovery-contract.ts CHANGELOG.md
|
||||
- none
|
||||
|
||||
## Evidence
|
||||
|
||||
- **Current main lacks catalog discovery:** Current main's GitHub Copilot catalog returns a provider base URL with an empty model list; `extensions/github-copilot/discovery.ts` does not exist on main.
|
||||
- file: [extensions/github-copilot/index.ts:387](https://github.com/openclaw/openclaw/blob/a1d288cbb770332d30529a2ba1c2aae3cf80a4ca/extensions/github-copilot/index.ts#L387)
|
||||
- command: `nl -ba extensions/github-copilot/index.ts | sed -n '330,460p'; test -e extensions/github-copilot/discovery.ts`
|
||||
- sha: [a1d288cbb770](https://github.com/openclaw/openclaw/commit/a1d288cbb770332d30529a2ba1c2aae3cf80a4ca)
|
||||
- **PR adds guarded `/models` discovery:** The PR head builds `/models`, calls `fetchWithSsrFGuard`, forwards IDE/configured headers, filters enabled chat models, sorts by id, and maps them into model definitions.
|
||||
- file: [extensions/github-copilot/discovery.ts:103](https://github.com/openclaw/openclaw/blob/aaa89ede2522f8a2e2827de1477baf4d18989d63/extensions/github-copilot/discovery.ts#L103)
|
||||
- command: `curl -L --fail --silent https://raw.githubusercontent.com/openclaw/openclaw/aaa89ede2522f8a2e2827de1477baf4d18989d63/extensions/github-copilot/discovery.ts | nl -ba | sed -n '1,220p'`
|
||||
- sha: [aaa89ede2522](https://github.com/openclaw/openclaw/commit/aaa89ede2522f8a2e2827de1477baf4d18989d63)
|
||||
- **Private-network policy is improved on latest head:** The PR head uses `hostnameAllowlist` and only passes `allowPrivateNetwork` when configured; current SSRF enforcement keeps private-network checks unless that explicit opt-in is present.
|
||||
- file: [extensions/github-copilot/discovery.ts:83](https://github.com/openclaw/openclaw/blob/aaa89ede2522f8a2e2827de1477baf4d18989d63/extensions/github-copilot/discovery.ts#L83)
|
||||
- command: `curl -L --fail --silent https://raw.githubusercontent.com/openclaw/openclaw/aaa89ede2522f8a2e2827de1477baf4d18989d63/extensions/github-copilot/discovery.ts | nl -ba | sed -n '74,117p'; nl -ba src/infra/net/ssrf.ts | sed -n '279,303p'`
|
||||
- sha: [aaa89ede2522](https://github.com/openclaw/openclaw/commit/aaa89ede2522f8a2e2827de1477baf4d18989d63)
|
||||
- **Gemini transport issue remains open:** Current main still routes every non-Claude Copilot model to `openai-responses`, while https://github.com/openclaw/openclaw/issues/74159 reports direct Copilot evidence that Gemini models require `/chat/completions` and fail through `/responses`.
|
||||
- file: [extensions/github-copilot/models.ts:21](https://github.com/openclaw/openclaw/blob/a1d288cbb770332d30529a2ba1c2aae3cf80a4ca/extensions/github-copilot/models.ts#L21)
|
||||
- command: `nl -ba extensions/github-copilot/models.ts | sed -n '1,90p'; curl --fail --silent https://api.github.com/repos/openclaw/openclaw/issues/74159`
|
||||
- sha: [a1d288cbb770](https://github.com/openclaw/openclaw/commit/a1d288cbb770332d30529a2ba1c2aae3cf80a4ca)
|
||||
- **PR maps discovered non-Claude models through existing transport inference:** Discovered model definitions set `api` from `resolveCopilotTransportApi`, so newly discovered Gemini IDs inherit the currently open `openai-responses` routing problem.
|
||||
- file: [extensions/github-copilot/discovery.ts:65](https://github.com/openclaw/openclaw/blob/aaa89ede2522f8a2e2827de1477baf4d18989d63/extensions/github-copilot/discovery.ts#L65)
|
||||
- command: `curl -L --fail --silent https://raw.githubusercontent.com/openclaw/openclaw/aaa89ede2522f8a2e2827de1477baf4d18989d63/extensions/github-copilot/discovery.ts | nl -ba | sed -n '49,70p'`
|
||||
- sha: [aaa89ede2522](https://github.com/openclaw/openclaw/commit/aaa89ede2522f8a2e2827de1477baf4d18989d63)
|
||||
- **Changelog entry is missing:** The PR file list has eight files and no `CHANGELOG.md`; the head changelog has no Copilot model discovery entry under Unreleased.
|
||||
- file: [CHANGELOG.md:5](https://github.com/openclaw/openclaw/blob/aaa89ede2522f8a2e2827de1477baf4d18989d63/CHANGELOG.md#L5)
|
||||
- command: `curl --fail --silent https://api.github.com/repos/openclaw/openclaw/pulls/58675/files?per_page=100 | jq -r '.[].filename'; curl -L --fail --silent https://raw.githubusercontent.com/openclaw/openclaw/aaa89ede2522f8a2e2827de1477baf4d18989d63/CHANGELOG.md | sed -n '1,40p'`
|
||||
- sha: [aaa89ede2522](https://github.com/openclaw/openclaw/commit/aaa89ede2522f8a2e2827de1477baf4d18989d63)
|
||||
- **Real behavior proof is still absent:** The PR body and comments claim production and local validation, but the thread does not include after-fix terminal output, screenshots, recordings, redacted logs, or linked artifacts showing current-head Copilot discovery working.
|
||||
- command: `curl --fail --silent https://api.github.com/repos/openclaw/openclaw/issues/58675/comments?per_page=100`
|
||||
- **Current main lacks Copilot catalog discovery:** The current catalog path resolves the Copilot base URL and returns an empty model list; no `extensions/github-copilot/discovery.ts` exists on main.
|
||||
- file: [extensions/github-copilot/index.ts:390](https://github.com/openclaw/openclaw/blob/97d2d40fb75b86a947b335c4fc7d1bed7d59e61a/extensions/github-copilot/index.ts#L390)
|
||||
- command: `sed -n '330,470p' extensions/github-copilot/index.ts; rg -n "discoverCopilotModels|COPILOT_IDE_HEADERS" extensions/github-copilot`
|
||||
- sha: [97d2d40fb75b](https://github.com/openclaw/openclaw/commit/97d2d40fb75b86a947b335c4fc7d1bed7d59e61a)
|
||||
- **PR discovery uses the unsafe SSRF helper:** The PR builds discovery policy with `ssrfPolicyFromHttpBaseUrlAllowedHostname(baseUrl)` and only merges the private-network opt-in afterward.
|
||||
- file: [extensions/github-copilot/discovery.ts:98](https://github.com/openclaw/openclaw/blob/0b0a8aaeb8671c8fe52ebeabe0ae4750b0463afb/extensions/github-copilot/discovery.ts#L98)
|
||||
- command: `curl -L --silent --show-error https://raw.githubusercontent.com/jduartedj/openclaw/0b0a8aaeb8671c8fe52ebeabe0ae4750b0463afb/extensions/github-copilot/discovery.ts | nl -ba | sed -n '80,105p'`
|
||||
- sha: [0b0a8aaeb867](https://github.com/openclaw/openclaw/commit/0b0a8aaeb8671c8fe52ebeabe0ae4750b0463afb)
|
||||
- **`allowedHostnames` skips private-network checks:** Current SSRF enforcement treats hosts in `allowedHostnames` as `skipPrivateNetworkChecks`, so a configured private host can bypass the default block.
|
||||
- file: [src/infra/net/ssrf.ts:155](https://github.com/openclaw/openclaw/blob/97d2d40fb75b86a947b335c4fc7d1bed7d59e61a/src/infra/net/ssrf.ts#L155)
|
||||
- command: `nl -ba src/infra/net/ssrf.ts | sed -n '80,125p;145,162p;286,304p'`
|
||||
- sha: [97d2d40fb75b](https://github.com/openclaw/openclaw/commit/97d2d40fb75b86a947b335c4fc7d1bed7d59e61a)
|
||||
- **Provider transport uses safer host scoping:** The normal model transport path uses `ssrfPolicyFromHttpBaseUrlFakeIpHostnameAllowlist`, which produces `hostnameAllowlist` and keeps private-network blocking unless `allowPrivateNetwork` is explicit.
|
||||
- file: [src/agents/provider-transport-fetch.ts:304](https://github.com/openclaw/openclaw/blob/97d2d40fb75b86a947b335c4fc7d1bed7d59e61a/src/agents/provider-transport-fetch.ts#L304)
|
||||
- command: `nl -ba src/agents/provider-transport-fetch.ts | sed -n '292,318p'`
|
||||
- sha: [97d2d40fb75b](https://github.com/openclaw/openclaw/commit/97d2d40fb75b86a947b335c4fc7d1bed7d59e61a)
|
||||
- **Changelog entry missing:** The PR file list has eight code/test files and no `CHANGELOG.md`; the PR branch changelog has no Copilot model discovery entry under Unreleased.
|
||||
- file: [CHANGELOG.md:5](https://github.com/openclaw/openclaw/blob/0b0a8aaeb8671c8fe52ebeabe0ae4750b0463afb/CHANGELOG.md#L5)
|
||||
- command: `curl -L --silent --show-error https://api.github.com/repos/openclaw/openclaw/pulls/58675/files?per_page=100; curl -L --silent --show-error https://raw.githubusercontent.com/jduartedj/openclaw/0b0a8aaeb8671c8fe52ebeabe0ae4750b0463afb/CHANGELOG.md | rg -n "Copilot|copilot|GitHub"`
|
||||
- sha: [0b0a8aaeb867](https://github.com/openclaw/openclaw/commit/0b0a8aaeb8671c8fe52ebeabe0ae4750b0463afb)
|
||||
- **Real behavior proof still absent:** The PR body states production testing, but the body and comments do not include concrete after-fix output, screenshots, logs, recordings, or linked artifacts showing discovered models and a successful run.
|
||||
- command: `curl -L --silent --show-error https://api.github.com/repos/openclaw/openclaw/pulls/58675; curl -L --silent --show-error https://api.github.com/repos/openclaw/openclaw/issues/58675/comments?per_page=100`
|
||||
- sha: [0b0a8aaeb867](https://github.com/openclaw/openclaw/commit/0b0a8aaeb8671c8fe52ebeabe0ae4750b0463afb)
|
||||
- **Related Gemini runtime work remains separate:** The PR now skips Gemini discovered IDs and points to the still-open dedicated Gemini transport/auth-header issue.
|
||||
- file: [extensions/github-copilot/discovery.ts:133](https://github.com/openclaw/openclaw/blob/0b0a8aaeb8671c8fe52ebeabe0ae4750b0463afb/extensions/github-copilot/discovery.ts#L133)
|
||||
- command: `curl -L --silent --show-error https://raw.githubusercontent.com/jduartedj/openclaw/0b0a8aaeb8671c8fe52ebeabe0ae4750b0463afb/extensions/github-copilot/discovery.ts | nl -ba | sed -n '112,138p'`
|
||||
- sha: [0b0a8aaeb867](https://github.com/openclaw/openclaw/commit/0b0a8aaeb8671c8fe52ebeabe0ae4750b0463afb)
|
||||
|
||||
## Likely Related People
|
||||
|
||||
- **steipete:** recent maintainer
|
||||
- reason: Recent commits own Copilot transport behavior, provider discovery config, and the provider-discovery contract helper touched by this PR.
|
||||
- **steipete:** recent maintainer and adjacent owner
|
||||
- reason: Recent main history owns the Copilot Claude transport direction and the provider-host SSRF policy pattern this PR needs to follow.
|
||||
- confidence: high
|
||||
- commits: 5d20c73e05c844a4858dd32237fda89dda595d4f, 1c5a4d2a2b92c09944fdd2deabcb1e852cdc909a, 027337df791794c8abc38da986dd4c8b9658a164
|
||||
- files: extensions/github-copilot/models.ts, src/agents/models-config.providers.implicit.ts, src/plugin-sdk/test-helpers/provider-discovery-contract.ts
|
||||
- **vincentkoc:** adjacent owner
|
||||
- reason: Recent work refreshed Copilot live discovery config and made provider discovery runtime behavior explicit in adjacent paths.
|
||||
- confidence: medium
|
||||
- commits: 6dba5cc2a038d035bd7cfda867c6d118db7ae9d2, 522eedc75437
|
||||
- commits: 5d20c73e05c844a4858dd32237fda89dda595d4f, edb7e00721fd4e35f48389aa94c6aa39e6339a4e, ca620fbd4f9f7eade5f7962755bd0d0ed786f432
|
||||
- files: extensions/github-copilot/models.ts, extensions/github-copilot/index.ts, src/agents/provider-transport-fetch.ts, src/infra/net/ssrf.ts
|
||||
- **vincentkoc:** recent provider-discovery maintainer
|
||||
- reason: Recent merged work touched Copilot live discovery config and provider-discovery runtime flow adjacent to this catalog path.
|
||||
- confidence: high
|
||||
- commits: 6dba5cc2a038d035bd7cfda867c6d118db7ae9d2, 522eedc754370ecc7229556fac6c74ecc627a07f
|
||||
- files: extensions/github-copilot/index.ts, src/agents/models-config.providers.implicit.ts
|
||||
- **fuller-stack-dev:** introduced adjacent behavior
|
||||
- reason: Introduced the forward-compatible Copilot dynamic model resolver that this PR's catalog discovery now interacts with.
|
||||
- reason: Introduced the forward-compatible GitHub Copilot dynamic model resolver that this PR extends from manual model IDs to provider catalog discovery.
|
||||
- confidence: medium
|
||||
- commits: 5137a51307469721e509df011f0fbcfee1a5d21a
|
||||
- files: extensions/github-copilot/models.ts
|
||||
- **shakkernerd:** adjacent maintainer
|
||||
- reason: Recent provider discovery filter and metadata work is adjacent to the implicit-provider resolution paths changed by this PR.
|
||||
- confidence: medium
|
||||
- commits: 5531502cb009, 4cd2cabe7fca, 4e7de4b5c9ed
|
||||
- files: src/agents/models-config.providers.implicit.ts
|
||||
- files: extensions/github-copilot/models.ts, extensions/github-copilot/models-defaults.ts
|
||||
|
||||
## Risks / Open Questions
|
||||
|
||||
- No attached live output from the latest head proves Copilot `/models` discovery in a real account after the SSRF guard rewrite.
|
||||
- The open Gemini transport issue can make newly discovered Gemini models appear selectable even though current runtime routing is known to fail.
|
||||
- The authenticated discovery fetch can still reach configured private/internal Copilot base URLs without explicit private-network opt-in.
|
||||
- The external PR has only textual testing claims, not concrete after-fix runtime proof from a real Copilot account.
|
||||
- The user-facing feature still lacks release-note coverage, and CI for the exact latest head was pending during review.
|
||||
|
||||
## Close Comment
|
||||
|
||||
@ -250,18 +245,18 @@ _No close comment posted._
|
||||
## GitHub Snapshot
|
||||
|
||||
- comments: 12
|
||||
- timeline events: 76
|
||||
- timeline events: 77
|
||||
- related items: 2
|
||||
- PR files: 8
|
||||
- PR commits: 2
|
||||
- PR commits: 5
|
||||
|
||||
## Review Telemetry
|
||||
|
||||
- prompt chars: 133958
|
||||
- prompt chars: 134398
|
||||
- static prompt chars: 33412
|
||||
- context chars: 99313
|
||||
- context chars: 99753
|
||||
- schema chars: 14081
|
||||
- additional prompt chars: 0
|
||||
- context collection ms: 6018
|
||||
- Codex review ms: 259147
|
||||
- context collection ms: 5068
|
||||
- Codex review ms: 198796
|
||||
|
||||
Loading…
Reference in New Issue
Block a user