Repository navigation
Conversation
…ilent member drop
Plugins#3042: Feedback/Feedback nodes created as {"$type":"Feedback",...} (no such
type; the NodeType binds FeedbackContent) were stored and became dead letters.
- ContentSchemaValidator: a $type that contradicts the declared content type and
resolves on none of this hub's registry, the mesh-wide content-type map, or the
declared type's own assembly is refused (content.schema.unknownDiscriminator).
ContentDiscriminatorValidator exempts runtime-compiled NodeTypes, so nothing
refused it there before.
- MeshOperations.Create: refuses top-level content members the bound type does not
declare (the Patch/Update rule) and the same unresolvable $type, judged on the
probe hub. The probe resolved the bound type by the NodeType PATH as a $type name,
which misses whenever the record is not named like the NodeType; it now falls back
to IMeshContentTypeRegistry.TryResolveByNodeType (create-only checks; the historical
ValidateAgainst keeps its reach).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…es probe options and the mesh-wide registry Review on #6231: - ContentSchemaValidator normalizes the as-written JsonObject DOM to a JsonElement before judging, so a direct Create/Update carrying {"$type":"Feedback"} as a JsonObject is refused too (new test). - MeshOperations.ValidateCreatedContent judges unknown members with the probe hub's serializer options, which own the bound type's contract. - MeshOperations.DiscriminatorResolves consults IMeshContentTypeRegistry (full + short name), the same instruments as the write-boundary validator, so the verb never refuses what the boundary admits. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ite boundary; pin the Update discriminator cases A $type naming a DIFFERENT real type carries that type's members, so the MCP create verb no longer judges them against the declared type (it refused what ContentSchemaValidator admits). Adds the MCP control, an Update-to-unknown-$type refusal, and the keep-the-stored-$type exemption with its negative control. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ce carrying PluginContent
AStaleRecordDoesNotUndoTheGateTest arranged its partition root as NodeType `Space` with
content `{"$type":"PluginContent"}` — a shape nothing in production writes (a plugin root is
`Store/Plugin` with `PluginContent`; the installer's only `Space` root is the content-free
stage-0 placeholder). That content names a type its NodeType does not bind and that resolves
nowhere on this mesh, which is exactly what #6231's write-boundary refusal exists to stop, so
the precondition write was refused and all three async tests failed in shard 4.
The fixture now declares a content-free stand-in `Store/Plugin` NodeType (the real one lives in
MeshWeaver.Plugins) and writes the root under it. The root's content stays the raw
`"$type":"PluginContent"` JSON PreInstalledOnRoot recognises — what a core host that never
compiled the plugins' types actually reads — so the tests exercise the same code path as before.
The refusal is unchanged.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Contributor
Test Results 8 files - 14 8 suites - 14 16m 49s ⏱️ - 31m 31s For more details on these failures, see this check. Results for commit 021b6dc. ± Comparison against base commit cac0664. This pull request removes 8383 and adds 3 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
Contributor
Test Results (shard 3) 4 files ±0 4 suites ±0 9m 37s ⏱️ + 2m 52s For more details on these failures, see this check. Results for commit 021b6dc. ± Comparison against base commit cac0664. This pull request removes 1 and adds 2 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
Contributor
Author
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.
Throwaway experiment for #5212, plan: #5212 (comment). DO NOT MERGE. Branched from #6231 head 54fc990.
Only change: .github/workflows/dotnet-test.yml test matrix is shard 3 only with arm [A, B].
Expected: Consolidate test results goes red (only shard 3 reports); that is by design.
🤖 Generated with Claude Code
Mirror-sync: none — experiment branch, never merged; the key comes from #6231, which carries its own Mirror-sync statement.
Pairs-with: none — experiment branch, never merged.