Skip to content

Fix CLI, WMI and designer bugs from the October audit - #794

Merged
Sev7eNup merged 1 commit into
mainfrom
fix/ready-for-agent-batch
Nov 4, 2026
Merged

Sev7eNup merged 1 commit into
mainfrom
fix/ready-for-agent-batch

Conversation

@Sev7eNup

@Sev7eNup Sev7eNup commented Nov 4, 2026

Copy link
Copy Markdown
Owner

Small bugs from the October audit, plus the shared redaction fixture for #574.

Changes

The CLI test project now references YamlDotNet for the round-trip tests. It is already pinned in Directory.Packages.props and used by the engine. The CLI itself doesn't use it.

Tests run

  • Engine.Tests WmiQueryActivityTests: 42 passed, including two [WindowsFact] tests that make a read-only local StdRegProv call
  • Cli.Tests OutputFormatTests|CommandIntegrationTests|CommandIntegrationResourcesTests|CommandIntegrationCoverageTests: 175 passed
  • Ai.Tests WorkflowSecretRedactorTests: 85 passed
  • Mcp.Tests MoreToolsCoverageTests|DocumentationCounts: 38 passed
  • Vitest propertyConfigs.activities.test.tsx (104) and the sharingContract cases in workflowFragment.test.ts (5) passed; tsc and ESLint clean
  • Every new regression test failed against the unfixed source first

Closes #602
Closes #616
Closes #617
Closes #618
Closes #619
Closes #621
Closes #625
Closes #574

🤖 Generated with Claude Code

- forEach parallelism 0 is saved as 0 instead of 1 (#602).
- WMI method arguments are converted to the declared CIM types, so a
  UInt32 above Int32.MaxValue works; out-of-range values fail with the
  argument name (#616).
- np auth login --password-stdin keeps leading and trailing spaces
  (#617).
- np backup manifest/preview/restore honour -o json and -o yaml (#618).
- np machine create --ssl and the MCP create_machine tool default to
  port 5986 with SSL (#619).
- The CLI YAML output reads back unchanged: escaped multiline strings,
  [] and {}, quoted null-like words (#621).
- Clipboard copy and server export share one redaction fixture (#574).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
{
version = 2, name = "null", description = "",
definitionJson = definition, createdAt = "2026-11-04T10:00:00Z", createdBy = "admin",
changeNote = (string?)null, isCurrent = false,
StubLogin(h);

var originalIn = Console.In;
Console.SetIn(new StringReader(password + "\r\n"));
public static string ToJson(string yaml)
{
var stream = new YamlStream();
stream.Load(new StringReader(yaml));
"- item", "? key", "a: b", "#hash", "@at", " leading", "trailing ", "plain text",
"bell" + (char)7, "line" + (char)0x2028 + "break",
},
Missing = (string?)null,
Cfg("{\"mode\": \"invokeMethod\", \"className\": \"Win32_Process\", \"methodName\": \"Create\", \"arguments\": {\"CommandLine\": \"notepad.exe\", \"Priority\": 32, \"ShowWindow\": true}}"),
CancellationToken.None);
_capturedScript.Should().Contain("-Arguments @{");
_capturedScript.Should().Contain("$__npArgs = @{");
.RespondWith(Response.Create().WithStatusCode(201).WithBodyAsJson(new
{
id = Guid.NewGuid(), name = "WEB01", hostname = "web01", winRmPort = expectedPort, useSsl,
defaultCredentialId = (Guid?)null, tags = (string?)null, lastConnectivityCheck = (DateTime?)null,
.RespondWith(Response.Create().WithStatusCode(201).WithBodyAsJson(new
{
id = Guid.NewGuid(), name = "WEB01", hostname = "web01", winRmPort = expectedPort, useSsl,
defaultCredentialId = (Guid?)null, tags = (string?)null, lastConnectivityCheck = (DateTime?)null,
.RespondWith(Response.Create().WithStatusCode(201).WithBodyAsJson(new
{
id = Guid.NewGuid(), name = "WEB01", hostname = "web01", winRmPort = expectedPort, useSsl,
defaultCredentialId = (Guid?)null, tags = (string?)null, lastConnectivityCheck = (DateTime?)null,
private static IEnumerable<JsonNode> SharingContractCases()
{
var dir = new DirectoryInfo(AppContext.BaseDirectory);
while (dir is not null && !File.Exists(Path.Combine(dir.FullName, "NodePilot.slnx")))
while (dir is not null && !File.Exists(Path.Combine(dir.FullName, "NodePilot.slnx")))
dir = dir.Parent;
if (dir is null) throw new InvalidOperationException($"NodePilot.slnx not found above {AppContext.BaseDirectory}");
var path = Path.Combine(dir.FullName, "src", "nodepilot-ui", "src", "__tests__", "fixtures", "workflow-sharing-redaction.json");
@Sev7eNup
Sev7eNup merged commit c0810c3 into main Nov 4, 2026
17 checks passed
@Sev7eNup
Sev7eNup deleted the fix/ready-for-agent-batch branch November 4, 2026 22:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants