Add Cowork plugin, DCR setup, and security checks#7
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 3 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit af72ee8. Configure here.
| }, | ||
| "files": [ | ||
| "cowork/", | ||
| "dist/evolver-cowork.zip", |
There was a problem hiding this comment.
Committed ZIP can drift from source
High Severity
The npm package ships dist/evolver-cowork.zip, but validate:cowork and CI only check the cowork/ source. The build process rebuilds the ZIP without verifying if the newly built artifact matches the committed version, which could result in an outdated dist/evolver-cowork.zip being shipped.
Triggered by team rule: Mandatory review after completing all tasks
Reviewed by Cursor Bugbot for commit af72ee8. Configure here.
| } | ||
| for (const requiredTool of ['gep_status', 'gep_recall', 'gep_search_community', 'gep_evolve', 'gep_record_outcome']) { | ||
| assert(toolNames.has(requiredTool), `MCP tool description is missing ${requiredTool}`); | ||
| } |
There was a problem hiding this comment.
Validator skips required identity tool
Medium Severity
The validation script doesn't require the gep_identity tool, even though it's essential for EvoMap sign-in and operations. This means a package could pass validation but be functionally incomplete.
Triggered by team rule: GEP evolution memory full integration
Reviewed by Cursor Bugbot for commit af72ee8. Configure here.
| assert(remote.authorization === undefined, 'authorization must be omitted so Cowork can use EvoMap Dynamic Client Registration'); | ||
| assert(remote.mcpToolDescription && typeof remote.mcpToolDescription.file === 'string', 'connector must reference a static MCP tool description'); | ||
|
|
||
| const toolCatalog = readJson(path.join(root, remote.mcpToolDescription.file)); |
There was a problem hiding this comment.
Tool catalog path unchecked
Medium Severity
The validatePackage function doesn't validate remote.mcpToolDescription.file for path traversal. This allows a crafted manifest to specify a path outside the package root, leading to arbitrary file reads during validation.
Reviewed by Cursor Bugbot for commit af72ee8. Configure here.


Summary
gep_statusidentity verification before other Evolver operationsPOST https://evomap.ai/oauth/registerVerification
npm run checknpm audit --omit=dev --audit-level=high --offlinenpm run build:coworkgit diff --checkCowork package:
dist/evolver-cowork.zipSHA-256:
706cb911984ae4e6c841436d5807f1c0662c574d2d961fa64b05cd010ae54458Known deployment blocker
Microsoft DCR provisioning currently fails because EvoMap's registration response omits
client_secret. The README documents the required confidential-client response and secure handling. A focused backend issue will be created after this PR is merged.Note
Medium Risk
New OAuth/DCR and hosted-connector surface increases auth and deployment risk, though secrets stay server-side and the skill enforces identity checks; end-to-end Cowork deploy remains blocked until EvoMap returns
client_secretfrom DCR.Overview
v0.2.0 extends Evolver beyond VS Code with a Microsoft 365 Copilot Cowork upload package (
cowork/→dist/evolver-cowork.zip): Unified App manifest,capability-evolverAgent Skill (auth viagep_identity/gep_status, redaction rules), hostedhttps://evomap.ai/mcpconnector with DCR (no embedded secrets), and a static eight-toolmcp-tools.jsoncatalog.Adds validate/build/remote-check scripts and tests for deterministic ZIP output, plus a
toolkit/evolver-cowork-dcrAgents Toolkit project to provision OAuth viadcr/registerand document admin/user flows. README and CHANGELOG call out a deployment blocker: EvoMap’sPOST /oauth/registermust return a confidentialclient_secretfor Microsoft DCR.CI and supply chain: new
security.yml(npm audit, local SAST, tests, Cowork validate/build, PR dependency review, CodeQL) and weekly Dependabot for npm and GitHub Actions.Reviewed by Cursor Bugbot for commit af72ee8. Bugbot is set up for automated code reviews on this repo. Configure here.