Skip to content

Agents coverage#229

Merged
hemang-snyk merged 3 commits intomainfrom
agents-coverage
Mar 19, 2026
Merged

Agents coverage#229
hemang-snyk merged 3 commits intomainfrom
agents-coverage

Conversation

@hemang-snyk
Copy link
Contributor

No description provided.

@hemang-snyk hemang-snyk requested a review from a team as a code owner March 18, 2026 20:55
@qodo-merge-etso
Copy link

Review Summary by Qodo

Add agent coverage documentation and update client configurations

✨ Enhancement 📝 Documentation

Grey Divider

Walkthroughs

Description
• Add agent coverage table by OS and capability (MCP/skills)
• Update clawdbot client name to openclaw with additional paths
• Fix 429 error message URL to include contact anchor
Diagram
flowchart LR
  A["Agent Coverage Updates"] --> B["Documentation"]
  A --> C["Client Configuration"]
  A --> D["Error Handling"]
  B --> B1["OS/Capability Table"]
  C --> C1["Rename clawdbot to openclaw"]
  C --> C2["Add new paths"]
  D --> D1["Update 429 URL"]
Loading

Grey Divider

File Changes

1. README.md 📝 Documentation +23/-0

Add agent coverage documentation table

• Add comprehensive "Supported agents by OS" section with coverage table
• Document MCP and skills support across macOS, Linux, and Windows
• Include legend explaining table symbols and capability indicators

README.md


2. src/agent_scan/well_known_clients.py ✨ Enhancement +3/-3

Update clawdbot to openclaw with new paths

• Rename clawdbot client to openclaw
• Add ~/.openclaw path to client_exists_paths
• Add ~/.openclaw/skills path to skills_dir_paths

src/agent_scan/well_known_clients.py


3. src/agent_scan/verify_api.py 🐞 Bug fix +1/-1

Fix 429 error message contact URL

• Update 429 error message URL with contact-us anchor
• Direct users to specific contact section for limit increases

src/agent_scan/verify_api.py


Grey Divider

Qodo Logo

@qodo-merge-etso
Copy link

qodo-merge-etso bot commented Mar 18, 2026

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (1) 📎 Requirement gaps (0) 📐 Spec deviations (0)

Grey Divider


Remediation recommended

1. openclaw discovery untested 📘 Rule violation ⛯ Reliability
Description
The PR changes the well-known client inventory by renaming clawdbot to openclaw and adding new
discovery paths, but it does not add/update automated tests to exercise this changed discovery
behavior. This risks regressions where openclaw is not detected (or is misdetected) across
OS-specific client lists.
Code

src/agent_scan/well_known_clients.py[R55-58]

+        name="openclaw",
+        client_exists_paths=["~/.clawdbot", "~/.openclaw"],
        mcp_config_paths=[],
-        skills_dir_paths=["~/.clawdbot/skills"],
+        skills_dir_paths=["~/.clawdbot/skills", "~/.openclaw/skills"],
Evidence
PR Compliance ID 4 requires automated tests that exercise changed code paths. The diff introduces
new CandidateClient data for openclaw (new name plus additional client_exists_paths and
skills_dir_paths), but no corresponding tests were added/updated in this PR to validate client
discovery against these new paths.

Rule 4: Every change must include automated tests; bug fixes add a regression test
src/agent_scan/well_known_clients.py[54-59]
src/agent_scan/well_known_clients.py[121-126]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The PR updates well-known client definitions to include `openclaw` (renaming `clawdbot` and adding additional discovery paths), but there are no automated tests validating that the discovery logic includes this new client and its paths.

## Issue Context
Well-known client definitions are OS-specific and regressions can silently reduce coverage by failing to detect installed clients.

## Fix Focus Areas
- src/agent_scan/well_known_clients.py[14-84]
- src/agent_scan/well_known_clients.py[86-152]
- tests/unit/test_well_known_clients.py[1-200]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Client ID rename break 🐞 Bug ✓ Correctness
Description
The well-known client name was changed from "clawdbot" to "openclaw", which changes the emitted
ScanPathResult.client value for that agent and therefore the JSON output and uploaded payload
identifier for existing installs.
Code

src/agent_scan/well_known_clients.py[R55-58]

+        name="openclaw",
+        client_exists_paths=["~/.clawdbot", "~/.openclaw"],
        mcp_config_paths=[],
-        skills_dir_paths=["~/.clawdbot/skills"],
+        skills_dir_paths=["~/.clawdbot/skills", "~/.openclaw/skills"],
Evidence
CandidateClient.name is used as the client identifier in scan results, and upload preserves that
identifier unless it can infer a known client from the scanned path. Renaming the well-known client
therefore changes the externally-visible identifier for this agent.

src/agent_scan/well_known_clients.py[54-59]
src/agent_scan/inspect.py[320-323]
src/agent_scan/upload.py[74-86]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
Renaming `CandidateClient.name` from `clawdbot` to `openclaw` changes the `ScanPathResult.client` value, which is part of the tool's output and is included in uploads. This is a backward-incompatible identifier change for any consumers keyed on the previous client string.

### Issue Context
- `ScanPathResult.client` is set directly from `inspected_client.name`.
- Upload only overrides `result.client` when it can infer a client from `result.path`; otherwise it keeps the existing `result.client`.

### Fix Focus Areas
Implement a stable, non-display identifier for clients (and optionally keep a separate display name), or otherwise provide a compatibility alias/migration path.

- src/agent_scan/well_known_clients.py[54-59]
- src/agent_scan/inspect.py[320-323]
- src/agent_scan/models.py[498-517]
- src/agent_scan/upload.py[74-86]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Advisory comments

3. Support table drift risk 🐞 Bug ⚙ Maintainability
Description
README adds a manual OS support matrix claimed to reflect well_known_clients.py, but it has no
automated generation or CI check; future client/path updates can silently make the documentation
incorrect.
Code

README.md[R36-58]

+## Supported agents by OS
+
+Agent Scan auto-discovers clients and their capabilities (MCP servers or skills) when their install paths exist. The table reflects [well-known client definitions](src/agent_scan/well_known_clients.py).
+
+- **✓**: at least one path is defined for that capability.
+- **✗**: the client is listed for that OS but has no paths for that capability.
+- **—**: that client is not included for that OS.
+- **Skills** columns apply when using `--skills`.
+
+| Agent | macOS MCP | macOS Skills | Linux MCP | Linux Skills | Windows MCP | Windows Skills |
+| --- | :---: | :---: | :---: | :---: | :---: | :---: |
+| Windsurf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Cursor | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| VS Code | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Claude Desktop | ✓ | ✗ | — | — | ✓ | ✗ |
+| Claude Code | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Gemini CLI | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| OpenClaw | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ |
+| Kiro | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ |
+| OpenCode | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
+| Antigravity | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ |
+| Codex | ✗ | ✓ | ✗ | ✓ | — | — |
+
Evidence
The README explicitly states the table reflects src/agent_scan/well_known_clients.py, but the
table is hand-maintained markdown; nothing enforces synchronization with the referenced code.

README.md[36-58]
src/agent_scan/well_known_clients.py[14-85]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
The README support matrix is hand-written while claiming to reflect `well_known_clients.py`. Without automation, it's likely to drift and mislead users.

### Issue Context
The matrix is derived from whether each client entry has non-empty `mcp_config_paths` and/or `skills_dir_paths` per OS list.

### Fix Focus Areas
Add either:
- a small script to generate the markdown table from `well_known_clients.py` (and commit the output), and/or
- a unit test/CI check that validates the README table matches the computed matrix.

- README.md[36-58]
- src/agent_scan/well_known_clients.py[14-220]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

@hemang-snyk hemang-snyk requested a review from knielsen404 March 18, 2026 21:38
@hemang-snyk hemang-snyk merged commit b1ac8cb into main Mar 19, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants