Skip to content

Develop#148

Merged
mrdailey99 merged 16 commits into
mainfrom
develop
May 7, 2026
Merged

Develop#148
mrdailey99 merged 16 commits into
mainfrom
develop

Conversation

@mrdailey99
Copy link
Copy Markdown
Collaborator

No description provided.

mrdailey99 and others added 3 commits May 7, 2026 08:14
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
Copilot AI review requested due to automatic review settings May 7, 2026 13:39
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

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-analysis job that runs only for pull_request events.
  • Runs mrdailey99/QualityOrchestrator against the test directory with auto framework detection and non-failing high findings.

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

Comment thread .github/workflows/CI_Execution.yml
Comment thread .github/workflows/CI_Execution.yml
mrdailey99 and others added 13 commits May 7, 2026 08:47
… 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)
@mrdailey99 mrdailey99 merged commit c140b6e into main May 7, 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