Skip to content

fix: stop masked values from landing on new nodes and edges - #639

Merged
Sev7eNup merged 1 commit into
mainfrom
fix/masked-values-on-new-ids
Oct 24, 2026
Merged

Sev7eNup merged 1 commit into
mainfrom
fix/masked-values-on-new-ids

Conversation

@Sev7eNup

Copy link
Copy Markdown
Owner

Fixes #582

The AI chat and MCP see condition literals and other redacted values as ***. When the model copied such a value onto a node or edge with a new id (for example when replacing one edge with two), the merge had no original to restore from and saved the literal ***. A condition status == "***" then never matches.

  • AI chat merge: every mask without a stored original now adds a note, so the user sees it in the proposal review.
  • MCP patcher: the same case rejects the whole operation with the key and item id. MCP saves without a review step, so a note alone is not enough. create_workflow, update/publish and apply_workflow_patch all surface it as an MCP error.
  • Named secret keys (password, apiKey, …) keep the existing "set it manually" handling with a note in both paths.
  • The assistant prompt now says *** only stands for the value under the same id.
  • docs/mcp-server.md and the docs site (DE/EN) mention the rejection.

Tests run locally:

  • NodePilot.Ai.Tests: full project, 832 passed (new: masked literal on new edges, masked array item, named secret)
  • NodePilot.Mcp.Tests: full project, 227 passed (new: MergeFull and Apply rejection cases, named secret note)

🤖 Generated with Claude Code

The AI chat and MCP see condition literals and other redacted config as
"***". When that value is copied onto a node or edge with a new id, there
is no stored original to restore it from, and "***" used to be saved as a
literal. A condition like status == "***" then never matches.

The chat merge now adds a note for every such mask so the user sees it in
the review. The MCP patcher rejects the whole operation with the key and
item id, because MCP saves without a review step. A mask on a named secret
key keeps the existing "set it manually" handling. The assistant prompt
now says that "***" only stands for the value under the same id.

Fixes #582

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Sev7eNup
Sev7eNup merged commit 4f83f89 into main Oct 24, 2026
17 checks passed
@Sev7eNup
Sev7eNup deleted the fix/masked-values-on-new-ids branch October 24, 2026 19:22
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.

Stop masked placeholders from being saved as literal values on new nodes and edges

1 participant