Skip to content

Import - #59

Merged
rbuergi merged 57 commits into
mainfrom
import
Nov 3, 2025
Merged

rbuergi merged 57 commits into
mainfrom
import

Conversation

@rbuergi

@rbuergi rbuergi commented Oct 29, 2025

Copy link
Copy Markdown
Contributor

Importing through CollectionPlugin

@github-actions

github-actions Bot commented Oct 29, 2025 •

Copy link
Copy Markdown
Contributor

Test Results

483 tests  +8   477 ✅ +8   2m 40s ⏱️ +41s
 21 suites ±0     6 💤 ±0 
 21 files   ±0     0 ❌ ±0 

Results for commit 48e724a. ± Comparison against base commit 32cc6d2.

This pull request removes 10 and adds 18 tests. Note that renamed tests count towards both.
MeshWeaver.Hosting.Monolith.Test.ArticlesBlobStorageTest ‑ BasicArticle
MeshWeaver.Hosting.Monolith.Test.ArticlesBlobStorageTest ‑ Catalog
MeshWeaver.Hosting.Monolith.Test.ArticlesBlobStorageTest ‑ NotFound
MeshWeaver.Hosting.Monolith.Test.ArticlesTest ‑ BasicArticle
MeshWeaver.Hosting.Monolith.Test.ArticlesTest ‑ Catalog
MeshWeaver.Hosting.Monolith.Test.FileSystemStreamProviderTests ‑ GetStreamAsync_ExistingFile_ReturnsStream
MeshWeaver.Hosting.Monolith.Test.FileSystemStreamProviderTests ‑ GetStreamAsync_NonExistentFile_ReturnsNull
MeshWeaver.Hosting.Monolith.Test.FileSystemStreamProviderTests ‑ ProviderType_ReturnsFileSystem
MeshWeaver.Hosting.Monolith.Test.FileSystemStreamProviderTests ‑ WriteStreamAsync_CreatesDirectory
MeshWeaver.Hosting.Monolith.Test.FileSystemStreamProviderTests ‑ WriteStreamAsync_CreatesFile
MeshWeaver.AI.Test.ContentPluginTest ‑ GetFile_ExcelWithEmptyCellsAtStart_ShouldPreserveNulls
MeshWeaver.AI.Test.ContentPluginTest ‑ GetFile_ExcelWithNumberOfRows_ShouldLimitRows
MeshWeaver.AI.Test.ContentPluginTest ‑ GetFile_ExcelWithoutNumberOfRows_ShouldReadEntireFile
MeshWeaver.AI.Test.ContentPluginTest ‑ GetFile_NonExistentCollection_ShouldReturnErrorMessage
MeshWeaver.AI.Test.ContentPluginTest ‑ GetFile_NonExistentFile_ShouldReturnErrorMessage
MeshWeaver.AI.Test.ContentPluginTest ‑ GetFile_TextWithNumberOfRows_ShouldLimitRows
MeshWeaver.AI.Test.ContentPluginTest ‑ GetFile_TextWithoutNumberOfRows_ShouldReadEntireFile
MeshWeaver.Import.Test.CollectionPluginImportTest ‑ CollectionPlugin_Import_ShouldImportSuccessfully
MeshWeaver.Import.Test.CollectionPluginImportTest ‑ CollectionPlugin_Import_WithConfiguration_ShouldImportWithoutFormat
MeshWeaver.Import.Test.CollectionPluginImportTest ‑ CollectionPlugin_Import_WithCustomFormat_ShouldImportSuccessfully
…

♻️ This comment has been updated with latest results.

@rbuergi
rbuergi merged commit 721f258 into main Nov 3, 2025
2 checks passed
@rbuergi
rbuergi deleted the import branch November 3, 2025 21:48
rbuergi added a commit that referenced this pull request Apr 23, 2026
…rivate

New ExecuteScriptRequest / ExecuteScriptResponse in MeshWeaver.Mesh.Contract
(no MeshWeaver.Kernel reference). Handler on the Code node's hub reads the
node's CodeConfiguration from its own workspace stream via
.Select(change => change.Value).Where(non-null).Take(1).Subscribe(...) —
reactive, no .Current snapshot, no await — and fire-and-forget dispatches
SubmitCodeRequest to the internal kernel address. Response carries the
submission id + layout-area reference so callers can subscribe to live
progress without ever addressing the kernel.

MeshOperations.ExecuteScript becomes a thin Post-ExecuteScriptRequest-to-
the-Code-node-then-RegisterCallback, removing the direct kernel coupling
from the MCP surface.

Docs:
- AsynchronousCalls.md: 🚨 Never read .Current on a stream — use
  .Select(…).Where(non-null).Take(1).Subscribe. .Current is null on cold
  workspaces and ships wrong answers.
- CqrsAndContentAccess.md: rewritten with the full primitive catalogue
  (query for sets, GetDataRequest for one-shot content, GetRemoteStream for
  live updates, PatchDataChangeRequest for writes, named-request types for
  operations). Concrete ExecuteScript example shows the kernel staying
  private behind the Code hub handler.

Tests: new McpReadYourWritesTest (11/11 green) locks in write→read
consistency per MCP method and the ExecuteScript round-trip on an
IsExecutable Code node seeded via IMeshService.

Task #57 (Get → GetDataRequest) and #58 (Patch → PatchDataChangeRequest)
were attempted and reverted: GetDataRequest-served reads after a
cross-hub write see stale workspace state (read-your-writes fails).
Re-landing after task #59 (per-request hub model) keeps one hub instance
alive for the full call chain.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

3 participants