Skip to content

fix(gateway): keep service-derived status targets off the explicit-URL credential path - #135862

Merged
vincentkoc merged 6 commits into
openclaw:mainfrom
SunnyShu0925:fix/gateway-status-auth-none-135471
Sep 7, 2026
Merged

vincentkoc merged 6 commits into
openclaw:mainfrom
SunnyShu0925:fix/gateway-status-auth-none-135471

Conversation

@SunnyShu0925

@SunnyShu0925 SunnyShu0925 commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

Closes #135471

What Problem This Solves

Resolves a problem where operators running gateway status --require-rpc against an auth-none local Gateway receive an explicit-credential error even though they did not supply --url.

Service diagnostics could also select credentials or connection details from a configured remote Gateway instead of the service being inspected. An empty target-scoped credential result could fall back to unrelated config or environment credentials later in the RPC path.

Why This Change Was Made

Service-derived targets now remain distinct from explicit URL overrides throughout the status probe. The selected service target owns its local credentials, merged service environment, and certificate, regardless of the configured client remote mode.

  • serviceTargetUrl carries the service URL without classifying it as CLI --url.
  • Status uses a nonpersisted command-local config view so downstream resolution cannot borrow remote Gateway credentials or conflicting target settings. Service auth mode remains available for RPC preflight.
  • The view preserves only the existing remote URL scope, edgeAuth, and tlsFingerprint. Existing consumers retain their endpoint-scoped transport policy: proxy headers use the existing origin/path selector, and ordinary connectivity probes retain the saved pin only on an exact configured endpoint. Unrelated token/password fallback and service certificate inheritance remain excluded.
  • skipImplicitAuth preserves the already-resolved credential set, including an empty set for auth-none.
  • Explicit --url uses only explicit RPC token/password and does not inherit the service certificate.
  • Saved pins remain configuration input to their existing consumer; they are not promoted to an explicit fingerprint argument, and RPC TLS selection is unchanged.
  • Connection details report the same service URL that the probe uses.
  • The command-local projection lives with the existing status target helpers, keeping the gather function below its existing size limit.
  • Advisory plugin install-record reads use the existing artifact-preserving read-only mode, so status and diagnostics do not create SQLite sidecars beside the inspected source database.

Generic credential precedence, persisted configuration, schemas, and protocols are unchanged. Explicit URL credential requirements and read-only device-auth behavior remain intact.

User Impact

Operators can inspect an auth-none service without inventing a token or password. Service status remains tied to the selected service even when remote client settings or an environment URL are present. Explicit remote probes retain their credential isolation, while configured proxy headers and saved certificate restrictions remain available under their existing endpoint-scoping rules.

Evidence

  • Before main integration, 267 focused tests passed: 154 Gateway call tests and 113 daemon status/probe tests.
  • Existing coverage includes remote URL present/missing, distinct service/remote/environment credentials and TLS pins, auth-none, explicit URL isolation, existing SecretRef behavior, and local-port selection.
  • Real WebSocket tests verify the exact empty/token/password credentials sent by the RPC probe and no first-time identity or pairing-state creation.
  • Negative/positive proof: without the implicit-auth freeze, an empty resolved credential set sent a config token and ambient password. With the fix, the empty set stayed empty and the token/password sibling cases passed.
  • Scoped lint, formatting, and whitespace checks passed.
  • The relevant Gateway test typecheck passed after adding the missing optional serviceTargetUrl field to the exported connection-details wrapper type.
  • Independent full-candidate review found one type-declaration omission. That finding was accepted and resolved; it was not an originally clean review.
  • Main was merged without replacing contributor ancestry. The integration preserves the reviewed credential behavior, main's cast-free environment value, and the existing credential-trimming import.
  • The edge-auth regression is covered by extending the existing gather tests for matching, other-origin, and other-path targets in both probe modes. They use the real selector on captured probe config and check stripped Gateway credentials/local TLS, retained endpoint-scoped fields, and unchanged original config.
  • Bounded before/after proof executes the actual producer projection and scope-selector declarations. Matching service-derived and explicit targets lose headers before the correction and retain them afterward; nonmatching scopes withhold them in both versions. This is declaration-level proof, not a full gather or transport run.
  • An earlier full-candidate P2 review reported no actionable defects. Subsequent CI and bot review exposed the bounded follow-ups recorded below. A mechanical target-boolean/call-placement cleanup resolved the remaining size violation and passed the focused max-lines check; no size-limit exception was added.
  • Targeted formatting and PR-delta whitespace checks passed. Complete runtime, lint, and type validation used hosted CI because the local declaration guard rejects shared dependency links. No dependency or containment workaround was applied.
  • Exact-head CI on a94fb88434d8fe96e8076e1ced93cfa118c6e921 exposed three related failures: oxc/no-map-spread in test-case construction, TS2698 from spreading an unknown-typed expected fixture field, and the existing seeded-state diagnostics-export test observing new empty SQLite WAL/SHM files. Evidence: https://github.com/openclaw/openclaw/actions/runs/34083612351
  • The constrained follow-up constructs the same test fields explicitly, names the fixture's existing bind: "loopback" expectation without a cast, and opts the status install-record caller into artifactPreservingReadOnly. Storage owners, defaults, schemas, and the existing seeded/absent process-test assertions are unchanged.
  • The focused oxc/no-map-spread check reproduced the failure before the test-construction repair and passed after it. Focused lint/max-lines, formatting, and whitespace checks passed for the follow-up.
  • Fresh delta-only P2 review against a94fb88434d8fe96e8076e1ced93cfa118c6e921 reported no actionable defects in the caller option or the two test-construction repairs.
  • Actual process red/green evidence for the artifact-preserving read repair: the seeded diagnostics-export case failed in run 34083612351, then its process shard passed on exact head 8dd21f205d357ace6e2178f38a3df699c642b666, without changing the seeded/absent assertions. Green job: https://github.com/openclaw/openclaw/actions/runs/34084196955/job/101625141599
  • Complete hosted CI for exact head 8dd21f205d357ace6e2178f38a3df699c642b666 finished successfully on September 7, 2026 at 04:52:43 UTC, validating all three follow-up repairs and the existing tests with the complete dependency tree. This predates the saved-pin correction and does not establish its TLS proof. Run: https://github.com/openclaw/openclaw/actions/runs/34084196955
  • The later saved-pin finding was accepted: the projection now retains the existing fingerprint alongside URL scope and proxy headers. Bounded before/after proof runs the actual projection and existing saved-pin selector expression; exact endpoints lose the pin before and retain it after, while different endpoints still receive no pin.
  • Two new rows in the existing gather suite delegate to the real ordinary status probe and TLS WebSocket transport. They assert a matching saved pin and required proxy header allow the explicit synthetic token through, and a wrong pin fails before decrypted HTTP bytes, upgrades, or connect frames. Both assert no local certificate inspection or explicit fingerprint argument. They reuse existing TLS fixtures and frame helpers; the test mock is restored afterward.
  • Fresh delta-only P2 review against 8dd21f205d357ace6e2178f38a3df699c642b666 reported no actionable defects in the saved-pin correction or its TLS test boundary. Focused lint/max-lines, formatting, and whitespace checks passed.
  • Complete hosted CI for final head 5819c53f08df82fc495cd63c69c97b1b4ac1fbf8 finished successfully on September 7, 2026 at 05:06:48 UTC. All 155 jobs completed green, including the agentic CLI selection containing the gather suite and its real TLS cases. The matching saved pin admits the required proxy header and explicit synthetic token; the wrong pin fails with zero decrypted HTTP bytes, upgrades, or connect frames. This is hosted production-path test proof, not a local or external-service run. Run: https://github.com/openclaw/openclaw/actions/runs/34084976323
  • The current-head bot review found no actionable code defects and recognized the saved-pin repair. Its outstanding request concerned TLS execution that had not completed when its body snapshot was captured; the completed exact-head CI above supplies that evidence.
  • The missing-maxPayload scanner annotation was inspected at the new test fixture. It concerns a temporary HTTPS/WebSocket server bound to a free loopback port, driven by synthetic test traffic and closed in finally, not a deployed Gateway listener or a changed production payload limit. No production change or scanner suppression was added.

The socket proofs use isolated state, not a native service manager. The new gather-to-TLS rows were validated by hosted CI, not run locally against the complete integrated dependency tree. No new external live-service proof is claimed. Raw local proof logs are not published.

Earlier Contributor Evidence

The contributor previously reported a managed loopback auth-none Gateway accepting gateway status --deep --require-rpc --json, while an explicit --url without credentials was rejected. This is historical contributor evidence, not a new live-service run against the repaired candidate.

AI Assistance

The contributor reported AI-assisted analysis and implementation using Codex CLI, followed by managed-Gateway proof. Maintainer updates include independent review, scoped target/auth repairs, and targeted regression and typechecking evidence.

@clawsweeper

clawsweeper Bot commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@openclaw-barnacle openclaw-barnacle Bot added cli CLI command changes size: XS labels Sep 2, 2026
@clawsweeper clawsweeper Bot added P1 High-priority user-facing bug, regression, or broken workflow. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Sep 2, 2026
@clawsweeper

clawsweeper Bot commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed September 7, 2026, 1:03 AM ET / 05:03 UTC.

ClawSweeper review

What this changes

The PR keeps Gateway service-status probes tied to their selected target and credentials, preserves endpoint-scoped proxy headers and certificate pins, and prevents advisory plugin reads from creating database sidecars.

Merge readiness

⛔ Blocked before merge - 3 items remain

This remains a useful fix for a bug present on current main and the latest release. The previous saved-pin finding is resolved, and no remaining actionable code defect was found; transport proof for that correction is still outstanding.

Priority: P1
Reviewed head: 5819c53f08df82fc495cd63c69c97b1b4ac1fbf8

Review scores

Measure Result What it means
Overall readiness 🦐 gold shrimp (3/6) The implementation addresses prior findings, but the remaining authority-boundary proof gap prevents merge readiness.
Proof confidence 🦐 gold shrimp (3/6) Needs stronger real behavior proof before merge: Authority-chain proof required: earlier managed-service and real-socket credential evidence remains valid, but the captured body explicitly leaves the new gather-to-TLS cases unexecuted. Provide redacted transport output showing saved-pin success and wrong-certificate rejection before HTTP headers or credentials; the existing production-path harness is suitable. Redact private addresses, keys, and endpoints, then update the PR body to trigger review; if needed, ask a maintainer for @clawsweeper re-review.
Patch quality 🦐 gold shrimp (3/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Needs proof Needs stronger real behavior proof before merge: Authority-chain proof required: earlier managed-service and real-socket credential evidence remains valid, but the captured body explicitly leaves the new gather-to-TLS cases unexecuted. Provide redacted transport output showing saved-pin success and wrong-certificate rejection before HTTP headers or credentials; the existing production-path harness is suitable. Redact private addresses, keys, and endpoints, then update the PR body to trigger review; if needed, ask a maintainer for @clawsweeper re-review.
Evidence reviewed 10 items Current-main necessity: Current main still forwards every required-RPC status target as callGateway.url, which bootstrap classifies as an explicit CLI override. The linked report establishes the resulting auth-none failure.
Latest-release check: The supplied latest release, v2026.9.2, also forwards the service-derived URL through the explicit URL argument; the central repair is not present there.
Established status contract and linked issue: docs/cli/gateway.md distinguishes explicit URLs from service-derived targets and defines --require-rpc as a read-capability check. #135471 supplies native-service reproduction and is explicitly paired with this open candidate.
Findings None None.
Security None None.

How this fits together

Gateway status combines native-service details, configuration, and explicit CLI options to select a connection target. Its probes then report connectivity or read-capability status to operators and readiness scripts.

flowchart TD
  A[Service configuration] --> C[Status target selection]
  B[Explicit CLI options] --> C
  C --> D[Selected credentials and transport policy]
  D --> E[Gateway connection or RPC probe]
  E --> F[Status and readiness result]
Loading

Before merge

  • Add real behavior proof - Needs stronger real behavior proof before merge: Authority-chain proof required: earlier managed-service and real-socket credential evidence remains valid, but the captured body explicitly leaves the new gather-to-TLS cases unexecuted. Provide redacted transport output showing saved-pin success and wrong-certificate rejection before HTTP headers or credentials; the existing production-path harness is suitable. Redact private addresses, keys, and endpoints, then update the PR body to trigger review; if needed, ask a maintainer for @clawsweeper re-review.
  • Resolve merge risk (P1) - The changed projection carries credentials and certificate policy to the transport boundary, but the latest matching-pin and wrong-certificate cases lack recorded execution results; rejection before credential-bearing HTTP traffic remains unproven for this correction.
  • Complete next step (P2) - Add the outstanding after-fix TLS transport evidence to the PR body before merge.
Agent review details

Security

None.

PR surface

Source +64, Tests +476. Total +540 across 10 files.

View PR surface stats
Area Files Added Removed Net
Source 6 87 23 +64
Tests 4 505 29 +476
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 10 592 52 +540

Review metrics

Metric Value Why it matters
Production versus regression coverage Production net +64 lines; tests net +476 lines Production growth carries target provenance and a command-local credential view; most added code exercises isolation and transport boundaries.

Root-cause cluster

Relationship: fixed_by_candidate
Canonical: #135471
Summary: This PR is the explicitly linked implementation candidate for the service-target classification bug.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge-risk options

Maintainer options:

  1. Complete the existing transport proof (recommended)
    Provide observed matching-pin success and mismatch rejection before HTTP headers or credentials leave the corrected status flow.

Technical review

Best possible solution:

Keep the service-owned target and credential flow, with transport evidence confirming that existing pinned endpoints still work and a wrong certificate receives no headers or Gateway credentials.

Do we have a high-confidence way to reproduce the issue?

Yes: the linked native-service report and current-main caller/bootstrap chain establish why auth-none status fails without an explicit URL. This review did not execute that flow.

Is this the best way to solve the issue?

Yes: preserving target provenance and freezing credentials at the status owner repairs the mismatch without weakening the generic explicit-URL guard; the previous endpoint-policy omissions are now corrected.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against 85c00af82973.

Labels

Label changes:

  • remove merge-risk: 🚨 compatibility: Current PR review merge-risk labels are merge-risk: 🚨 security-boundary.

Label justifications:

  • P1: A healthy auth-none Gateway currently fails the documented RPC readiness check used by operator automation.
  • merge-risk: 🚨 security-boundary: The corrected credential-bearing transport path still needs observed rejection of a mismatched certificate before HTTP traffic.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🦐 gold shrimp.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: Authority-chain proof required: earlier managed-service and real-socket credential evidence remains valid, but the captured body explicitly leaves the new gather-to-TLS cases unexecuted. Provide redacted transport output showing saved-pin success and wrong-certificate rejection before HTTP headers or credentials; the existing production-path harness is suitable. Redact private addresses, keys, and endpoints, then update the PR body to trigger review; if needed, ask a maintainer for @clawsweeper re-review.

Evidence

What I checked:

Likely related people:

  • vincentkoc: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)
  • steipete: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Publish after-fix transport observations for both saved-pin acceptance and mismatch rejection before credential-bearing traffic.

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

History

Review history (37 earlier review cycles; latest 8 shown)
  • reviewed 2026-09-03T10:16:20.226Z sha d7b804b396fe6b21fd4976054955e9992fc0e94d :: needs real behavior proof before merge. :: none
  • reviewed 2026-09-03T10:50:16.438Z sha d7b804b396fe6b21fd4976054955e9992fc0e94d :: blocked before merge. :: none
  • reviewed 2026-09-03T15:38:50.255Z sha 0349fb6b747e5aca9ddea6803f1e480ba6767555 :: blocked before merge. :: none
  • reviewed 2026-09-03T15:52:56.466Z sha 7ab99ea :: blocked before merge. :: none
  • reviewed 2026-09-07T04:16:19.745Z sha 74b0c04 :: needs real behavior proof before merge. :: [P1] Preserve origin-scoped edge auth for explicit status targets
  • reviewed 2026-09-07T04:25:50.841Z sha e59df61 :: needs real behavior proof before merge. :: [P1] Preserve origin-scoped edge auth for explicit status targets
  • reviewed 2026-09-07T04:40:45.945Z sha a94fb88 :: needs real behavior proof before merge. :: [P1] Preserve the saved TLS pin for an exact explicit status endpoint
  • reviewed 2026-09-07T04:50:32.537Z sha 8dd21f2 :: needs real behavior proof before merge. :: [P1] Preserve the saved TLS pin for an exact explicit status endpoint

@SunnyShu0925
SunnyShu0925 force-pushed the fix/gateway-status-auth-none-135471 branch 2 times, most recently from 9de7de9 to 99e0b5f Compare September 2, 2026 05:13
@clawsweeper

clawsweeper Bot commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event exact_review_queue).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Sep 2, 2026
@SunnyShu0925
SunnyShu0925 force-pushed the fix/gateway-status-auth-none-135471 branch from 99e0b5f to c310b1c Compare September 2, 2026 06:15
@clawsweeper

clawsweeper Bot commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event exact_review_queue).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

@clawsweeper clawsweeper Bot added P0 Emergency: data loss, security bypass, crash loop, or unusable core runtime. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. and removed P1 High-priority user-facing bug, regression, or broken workflow. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Sep 2, 2026
@clawsweeper

clawsweeper Bot commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event exact_review_queue).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

@clawsweeper clawsweeper Bot added P1 High-priority user-facing bug, regression, or broken workflow. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. and removed P0 Emergency: data loss, security bypass, crash loop, or unusable core runtime. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. labels Sep 2, 2026
@clawsweeper

clawsweeper Bot commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event exact_review_queue).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Sep 2, 2026
@clawsweeper clawsweeper Bot added P0 Emergency: data loss, security bypass, crash loop, or unusable core runtime. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. and removed P1 High-priority user-facing bug, regression, or broken workflow. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. labels Sep 3, 2026
@SunnyShu0925
SunnyShu0925 force-pushed the fix/gateway-status-auth-none-135471 branch from ab799b8 to 143cd4b Compare September 3, 2026 04:21
@clawsweeper clawsweeper Bot added P1 High-priority user-facing bug, regression, or broken workflow. merge-risk: 🚨 availability 🚨 May cause crashes, hangs, restart loops, stalls, or process outages. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed P0 Emergency: data loss, security bypass, crash loop, or unusable core runtime. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. labels Sep 3, 2026
@SunnyShu0925
SunnyShu0925 force-pushed the fix/gateway-status-auth-none-135471 branch from 143cd4b to da1d63a Compare September 3, 2026 05:35
@clawsweeper clawsweeper Bot added the merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. label Sep 3, 2026
@SunnyShu0925
SunnyShu0925 force-pushed the fix/gateway-status-auth-none-135471 branch from da1d63a to ce0c58b Compare September 3, 2026 06:11
@clawsweeper

clawsweeper Bot commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event exact_review_queue).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

@clawsweeper

clawsweeper Bot commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event exact_review_queue).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

@clawsweeper

clawsweeper Bot commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event exact_review_queue).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

…L credential path

gateway status --require-rpc forwards the service-derived probe URL as url
to callGateway, which bootstrap classifies as a CLI --url override and
rejects with GatewayExplicitAuthRequiredError for auth-none local Gateway.

Only forward url to callGateway when the caller supplies an explicit CLI
--url override (probeUrlOverride). Service-derived targets omit url so
bootstrap resolves via localPortOverride and the guard never fires.
@SunnyShu0925

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review. Exact-head CI is now fully green (run 33774337856, conclusion: success) — the previously reported compact-small-6/50 and config-48 failures were unrelated flaky timeouts (agent-exec service-relay, update-cli self-update, qa-lab Slack live) outside this PR's change surface, and passed on rerun. No code changes since head 7ab99ea.

const originalProbe = callGatewayStatusProbe.getMockImplementation();
assert(originalProbe);
const server = createServer({ key: TEST_TLS_KEY_PEM, cert: TEST_TLS_CERT_PEM });
const wss = new WebSocketServer({ noServer: true });
@vincentkoc

Copy link
Copy Markdown
Member

Merged via squash.

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

Labels

cli CLI command changes gateway Gateway runtime merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. P1 High-priority user-facing bug, regression, or broken workflow. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. size: M status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: gateway status --require-rpc rejects an auth-none service as an explicit URL override

3 participants