Develop#148
Merged
Merged
Conversation
RCA: No automated PR risk analysis or test coverage mapping existed in the CI pipeline Fix: Add parallel quality-analysis job using mrdailey99/QualityOrchestrator@v1 to score PR risk and post coverage comments Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…sis job RCA: @v1 tag does not exist on the action repo; mutable tag and unvalidated stub paths posed supply chain and path-traversal risk Fix: pin to @v1.0.0, disable stub generation, add persist-credentials: false to checkout step Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…or-action feat(ci): add Quality Orchestrator action for PR risk analysis
Contributor
There was a problem hiding this comment.
Pull request overview
Adds an additional CI job to run automated quality analysis during pull request workflows, alongside the existing multi-OS CI execution.
Changes:
- Introduces a new
quality-analysisjob that runs only forpull_requestevents. - Runs
mrdailey99/QualityOrchestratoragainst thetestdirectory with auto framework detection and non-failing high findings.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
… versions RCA: Actions running on Node.js 20 are deprecated and will be forced to Node.js 24 by default on June 2nd 2026; Node.js 20 runner support ends September 16th 2026 Fix: Bump all actions across CI_Execution, CIRelease_Tagging, DeployManual, and UnpublishManual workflows to their latest Node.js 24-compatible major versions Upgrades applied: - actions/checkout: v4 -> v6 - actions/setup-node: v4 -> v6 - actions/cache: v4 -> v5 - actions/github-script: v6 -> v9 - actions/upload-artifact: v4 -> v7 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
chore(ci): upgrade all GitHub Actions to Node.js 24-compatible versions
Adds a bundled static MCP resource at provar://nitrox/component-catalog that catalogs all 9 shipped NitroX (Hybrid Model) base component packages. Also documents MCP Inspector setup in docs/development.md. RCA: The NitroX generate tool had no reference material to guide component generation — agents had to guess naming conventions, type strings, tagNames, and interaction patterns. Additionally no guidance existed for interactive MCP testing via the MCP Inspector. Fix: Bundle a static catalog of all shipped NitroX packages (generated from local installation, committed to docs/) and register it as a readable MCP resource, mirroring the provar-step-reference pattern. Add MCP Inspector setup guide including port-in-use resolution steps to docs/development.md. Changes: - docs/NITROX_COMPONENT_CATALOG.md: committed static catalog (~2000 lines) across common, html5, salesforce-lwc, screenflow, experienceCloud, omnistudio, runtimeOmnistudio, msdynamics, and vlocityIns packages - package.json: compile step copies catalog to lib/mcp/docs/; added to wireit files inputs - src/mcp/server.ts: registers new resource via readFileSync — no runtime dependency on local Provar installation - src/mcp/tools/nitroXTools.ts: provar_nitrox_generate description references the catalog - scripts/generate-nitrox-catalog.cjs: dev utility to regenerate when packages update - docs/development.md: MCP Inspector setup guide with port-cleanup commands Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…og resource RCA: No assertions verified the generate tool description mentions the component catalog resource, leaving a gap if the reference was accidentally removed. Fix: Add MockMcpServer.registrations capture and a describe block that asserts provar_nitrox_generate description includes provar-nitrox-component-catalog. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
RCA: The MCP Resources section in docs/mcp.md still described only one resource after adding the NitroX component catalog, leaving documentation incomplete. Fix: Add catalog resource entry to ToC and Resources section; add tip to NitroX section recommending agents read the catalog before calling generate. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
RCA: Version bump required on any PR that triggers a publish; this PR adds the provar-nitrox-component-catalog MCP resource (new user-visible feature). Fix: Increment beta suffix from 16 to 17 in package.json and server.json. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
RCA: ESLint @typescript-eslint/member-ordering requires public fields before private fields; the initial test commit had the order reversed, causing CI lint failure. Fix: Move public registrations declaration above private handlers field. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…piled modes RCA: In dev/ts-node mode the sibling lib/mcp/docs/ path doesn't exist, so both MCP resources (nitrox-component-catalog and step-reference) always fell through to the "Catalog not found" fallback text, making them unusable during development. Fix: Extract resolveDocsDir() that probes the sibling docs/ dir and falls back to repo-root docs/ when absent; add server.test.ts covering both branches. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…B2a) RCA: qualityHubTools and defectTools used the simple sfSpawn runSfCommand with no maxBuffer, probing, or sf_path — causing SF_NOT_FOUND on Windows standalone installer path C:\Program Files\sf\bin\sf.cmd. Fix: Elevate sfSpawn.ts to the central sf resolution module with 50 MB maxBuffer, two-phase PATH probe, Windows standalone installer paths in getSfCommonPaths, and sf_path param on all quality hub and defect tools. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
RCA: sfSpawn.ts was elevated to the central sf resolution module but had no dedicated test file, leaving 31 code paths (SfNotFoundError, soqlEscape, getSfCommonPaths, needsWindowsShell, runSfCommand probe logic, injection guard) uncovered by direct assertions. Fix: Add test/unit/mcp/sfSpawn.test.ts covering all exported functions including two-phase probe, Windows shell injection guard, B2a standalone installer paths, and ENOENT handling. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
RCA: Two issues flagged by Copilot review: (1) runSfCommand passed empty-string sfPath directly to spawnSync instead of falling through to auto-discovery, producing a misleading SF_NOT_FOUND with no hint; (2) getSfCommonPaths test predicate includes(bin) was too broad and would pass even if only the client path existed. Fix: Normalize empty/whitespace sfPath to undefined in runSfCommand so auto-discovery runs; tighten qualityHubTools getSfCommonPaths assertions to exact path matching via path.join; add two tests for empty/whitespace sfPath normalization. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…atalog-resource feat(mcp): add provar-nitrox-component-catalog bundled MCP resource
fix(mcp): resolve sf CLI for quality hub and defect tools (B1/B2a)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.