Skip to content

added workflow section to publish to mcp registry#131

Merged
mrdailey99 merged 23 commits intomainfrom
develop
Apr 25, 2026
Merged

added workflow section to publish to mcp registry#131
mrdailey99 merged 23 commits intomainfrom
develop

Conversation

@mrdailey99
Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI review requested due to automatic review settings April 24, 2026 19:32
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the manual/release publishing GitHub Actions workflow to also publish the package to the MCP Registry (in addition to NPM), using GitHub OIDC authentication.

Changes:

  • Renames the workflow to reflect dual publishing (NPM + MCP Registry).
  • Adds job-level OIDC permissions (id-token: write) required for MCP Registry authentication.
  • Downloads mcp-publisher, authenticates via github-oidc, and runs mcp-publisher publish.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/DeployManual.yml
Comment thread .github/workflows/DeployManual.yml
mrdailey99 and others added 22 commits April 24, 2026 14:36
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…a mode=failures

Req: Wave 3 inner-loop tools — atomic test-case step editing with backup/restore safety and lightweight failure extraction from JUnit XML results without full RCA overhead.
Fix: Agents editing test steps had to replace entire XML files with no rollback; mode=failures returns a plain failure array for quick triage without loading HTML reports.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rsion sync

RCA: tar install used redundant duplicate -f flags not matching official MCP registry docs
Fix: Use tar xz per docs; add release-only step to sync tag version into server.json both fields

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ad (A1)

RCA: Agents silently used stale config values when reading a different properties file than the one registered in sf config, causing downstream test run failures.
Fix: Compare provarHome/projectPath/resultsPath between active sf config and requested file, surface details.warning on divergence. Also renames FILE_NOT_FOUND -> PROPERTIES_FILE_NOT_FOUND and guards active-file path with assertPathAllowed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…on.testrun (B1)

RCA: After a test run agents had no structured per-test-case result data, only raw stdout, making failure diagnosis require manual log parsing.
Fix: Parse JUnit XML files in the results directory post-run; return steps[] array with testItemId, title, status, and errorMessage on both success and failure responses. Handles bare <testsuite> and <testsuites> wrapper roots, partial parse failures, and falls back to details.warning when no valid XML is found.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rep)

RCA: Wave 2 (test case generation) and Wave 3 (step editing) both need to validate XML after mutations without spawning a separate MCP tool call round-trip.
Fix: Export validateTestCaseXml(filePath, config) from testCaseValidate.ts; it enforces path policy, reads the file, and returns the same TestCaseValidationResult shape as the tool handler. Throws TESTCASE_FILE_NOT_FOUND on missing file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… code rename

RCA: Three behaviour changes in this wave lacked documentation: provar.properties.read gained a divergence warning + error code rename (FILE_NOT_FOUND → PROPERTIES_FILE_NOT_FOUND), and provar.automation.testrun now returns a structured steps[] array from JUnit XML.
Fix: Update docs/mcp.md to reflect PROPERTIES_FILE_NOT_FOUND error code, divergence_warning field, and the steps[] shape returned by provar.automation.testrun.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
RCA: This PR introduces new behaviour (divergence warning, JUnit step output, validateTestCaseXml export) that warrants a beta version bump per the project's publish policy.
Fix: Increment beta suffix from beta.9 to beta.10 in package.json and both version fields in server.json to keep them in sync.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Req: Four Copilot review comments on PR #132 were all valid and needed fixing before merge to prevent subtle bugs and security gaps.
Fix: Reject step_xml with ≠1 apiCall; use temp→rename write; enforce path policy on project_path in rca; treat thrown validation errors as failures not success.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
RCA: Five issues flagged by code review: (1) readResultsPathFromSfConfig read sf config and results dir without path-policy guards, allowing properties files inside allowedPaths to redirect reads outside; (2-3) provar.properties.set and .validate still emitted FILE_NOT_FOUND while .read used PROPERTIES_FILE_NOT_FOUND, making error handling inconsistent; (4-5) docs/mcp.md referred to a specific "JUnit.xml" filename (impl scans all *.xml) and the .properties.read output/error sections were missing requestId and PATH_TRAVERSAL.
Fix: Thread ServerConfig into readResultsPathFromSfConfig and registerAutomationTestRun; add assertPathAllowed guards on propFilePath and resultsDir before reading. Standardise to PROPERTIES_FILE_NOT_FOUND across all three properties tools (set, validate, read). Fix docs: "JUnit XML files", add requestId to output shape, add PATH_TRAVERSAL to properties.read error codes, align set/validate error codes in docs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…iles

RCA: Internal phased-rollout terminology leaked into docs and source comments, confusing external users who encountered these references
Fix: Replace Phase 1/2 labels with descriptive terms across 5 files; no behaviour change

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…n.list

Req: Wave 2 engineering review — fix non-SF page object generation bugs and add connection discovery tool for AI agents
Fix: correct URI format, substeps XML structure, uiWithScreenTarget validator, SSO guard, wildcard scope, connection.list tool

- testCaseGenerate: query-param URI (ui:pageobject:target?pageId=pageobjects.X) and substeps clause
- bestPracticesEngine: implement uiWithScreenTarget validator, fix arguments path
- pageObjectGenerate: FILE_EXISTS guard on SSO stub write
- qualityHubTools: narrow wildcard detection to --plan-name values only
- connectionTools: new provar.connection.list reads .testproject connections and environments

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ixes

feat(mcp): Wave 1 inner-loop improvements — divergence warning, JUnit steps, validateTestCaseXml export
Req: Address all 9 PR review comments and 2 of 3 Codex findings on feature/wave2-nonsf-generation
Fix: atomic write ordering, XML parse error surfacing, path validation, validator logic, error message clarity, and doc field name corrections

- pageObjectGenerate: preflight both filePath and ssoFilePath before any write (atomic)
- connectionTools: throw CONNECTION_XML_PARSE_ERROR on malformed .testproject XML
- connectionTools: assertPathAllowed on testProjectPath (defence in depth)
- bestPracticesEngine: use rule.check.apiId value for filter instead of hardcoded substring
- testCaseGenerate: clarify TESTCASE_INVALID message to reference details.validation
- qualityHubTools: narrow wildcard flag description to --plan-name values specifically
- docs/mcp.md: fix fields schema (locator_strategy/element_type), steps schema (attributes), QH wildcard note

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tion

feat(mcp): wave 2 — non-SF generation fixes + provar.connection.list tool
Req: Wave 2 merged to develop adding provar.connection.list; Wave 3 needs to incorporate those changes without losing its own additions.
Fix: Keep both imports/registrations in server.ts; renumber step.edit smoke entry to #50; update TOTAL_EXPECTED to 50 and tools comment to 39.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat(mcp): add provar.testcase.step.edit and provar.testrun.rca mode=failures
@mrdailey99 mrdailey99 merged commit e7d557b into main Apr 25, 2026
1 check 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