Repository navigation
Description
Found while stabilising prod on 2026-08-17. Not a new regression — a standing condition that nothing has been ticketing (see the log-watcher issue filed alongside this).
What is broken
| portal | NodeTypes parked at CompileError |
|---|---|
| memex-cloud (memex.meshweaver.cloud) | 13 |
| memex (memex.systemorph.com) | 2 — BinaryClickerV2/BinaryToggle, Edu/Course |
| client-i (customer prod) | 0 ✅ |
The 13, with the first error of each:
| node | error |
|---|---|
Northwind/Product |
CS0246 Supplier, Category not found |
Northwind/AnalyticsCatalog |
CS0103 OrderViews, SalesViews do not exist |
FutuRe/{AmericasIns,EuropeRe,AsiaRe}/LineOfBusiness |
CS0246 LineOfBusiness; CS1061 AddLineOfBusinessLayoutAreas |
FutuRe/{AmericasIns,EuropeRe,AsiaRe}/TransactionMapping |
CS0246 TransactionMapping |
Doc/DataMesh/SocialMedia/{Post,Profile} |
CS0246 SocialMediaPost/SocialMediaProfile, Platform |
SocialMedia/{Post,Profile} |
same |
Doc/Architecture/BusinessRules/Cession |
CS0246 CessionData, Cashflow |
All are under the MeshWeaver/samples/Graph/Data/** import.
One shape, three causes — and they need different fixes
Every one of these is "the configuration lambda references a type its source query never included". The compiler says so explicitly for the worst case:
Matched Code nodes (0):
(none) — the configuration lambda cannot reference types because no source files were
included. Check that your Source Code nodes exist and that the NodeType's `sources` list
points at them.
But the reason the query comes up short differs, and lumping them would produce one wrong fix:
- Stale orphans.
samples/Graph/Data/SocialMedia/**does not exist in the MeshWeaver repo at all — SocialMedia moved to its own repo. The mesh still holds the NodeTypes, so the import adds and updates but never retires what the source tree dropped. These should be deleted, not fixed. - Sources that are not under the node's own
Source/.FutuRe/*andDoc/Architecture/BusinessRules/Cessionhave zero.csfiles under them in the repo — their types live elsewhere (shared/sibling), and the default query (namespace:<node>/Source scope:subtree nodeType:Code) cannot reach them. Needs asourceslist, or the content moved. - Sources that exist and still do not resolve.
Northwind/ProductandAnalyticsCatalogdo shipSource/*.cswith correct// <meshweaver>headers and noNodeType:override, so they should import asCode— yetSupplier,Category,OrderViews,SalesViewsare missing while other types in the same lambda resolve. This is the one to investigate first: a partial source set means the import dropped specific files, which is the same silent-skip family as A UTF-8 BOM makes the node-repo parser skip a file — PensionFund loses 62 of 72 files and gates ZERO NodeTypes, silently #1767.
🚨 Ruled out: it is not the #1767 BOM defect — 0 of 28 .cs under the failing Northwind nodes carry a BOM.
Why it matters, stated accurately
The failures are contained: CompileWatcher parks a failed NodeType and serves the cached error without recompiling, so there is no retry storm (the log says so in as many words). What it costs is real anyway — every page backed by these types is broken for users, and the parked state is invisible unless someone reads pod logs.
Verification
kubectl -n memex-cloud logs <portal-pod> | grep "PARKED after compile failure", on a pod started fresh at 19:26 UTC, so this is the current state and not history.
Activity
rbuergi commentedon Aug 17, 2026
Root cause of "case 3" — and it is not a dropped file
No file was dropped by the importer. The mesh was never asked.
The 32 NodeType files under
samples/Graph/Datawere produced by exporting a running mesh, so each carries that machine's runtime compile record next to the authored definition:compilationStatus,compilationError, RoslyncompilationDiagnostics,compiledSources/currentSourceVersions, assembly coordinates, release-request timestamps.Exactly eight carry
"compilationStatus": "Error"— and they are exactly the eight non-SocialMedia rows in the table above:The
compilationErrorandMatched Code nodes (0)in each is the transcript of a compile that ran on 2026-06-26, committed into the file. Two proofs it cannot describe the sources it ships beside:AnalyticsCatalog's error namesOrderViews,SalesViews,SupplierViews,ProductViews. Those identifiers occur nowhere in the configuration in the same file, which callsAddOrderLayoutAreas()/AddSalesLayoutAreas()/AddSupplierLayoutAreas()/AddProductLayoutAreas()— all of which exist underAnalyticsCatalog/Source/. The configuration had already been corrected; the correction could never take effect.Product's error points at lines 200 and 204 of a source set that is 181 lines long.Why the state is unrecoverable, not merely stale
Every automatic path that could re-drive a compile is closed to such a node:
ErrornodeCompilationStatus is nullError— reads as "already attempted here"CompilationStatus == CompilingLatestAssemblyCollection+LatestAssemblyPath+CompiledFrameworkVersionApplyCompileFailurestamps none of themRequestedReleaseAt > LastReleaseRequestHandledAtThe 24 files that baked
Okescaped only by accident: they also carry assembly coordinates plus acompiledFrameworkVersionMVID, which never matches another deployment, so the framework-stale kickoff rebuilds them. TheOkbake is the same defect; it is merely self-healing.PR #1792 strips the runtime-owned members from all 32 files (byte-exact elsewhere) and adds
ShippedNodeTypeStateTest, whose banned set is derived fromNodeTypeDefinitionby reflection over the control plane's naming convention so a member added later is banned the day it is added. Verified on memex-cloud that omitting the state is the supported shape:Doc/Architecture/BusinessRules/Cessionships no compile state in its file and its live node holds a full, current compile record.The measurements correct three rows of the table
Read live off memex-cloud (
geton each node, so this is the node's own record, not a log line):Doc/DataMesh/SocialMedia/PostOk, v804, compiled 19:24:44, 3 sources presentDoc/DataMesh/SocialMedia/ProfileOk, v664, compiled 19:24:44, 2 sources presentSocialMedia/PostOk, v1177, compiled 15:43:50, 9 sources presentSocialMedia/ProfileOk, v471, 10 sources present (usessources: ["namespace:Source scope:subtree", "shared=@SocialMedia/Post/Source"])Doc/Architecture/BusinessRules/CessionOk, v671,lsp_diagnostics_for_nodereturnsok:true— warnings onlySo "case 1 — stale orphans that want deleting" does not hold.
SocialMedia/{Post,Profile}are the live plugin's types with their sources in the mesh, andDoc/DataMesh/SocialMedia/{Post,Profile}compile fromDoc/DataMesh/SocialMedia/*/Source/*, which exist.Cessionis likewise fine — its fourSource/*Code nodes are present (CessionDatadeclaresCashflow,ExcessOfLossLayer,CededCashflow). Deleting any of these would have destroyed working content.Those five rows were true of some pod, not of the mesh at the time they were written down — which is the same shape as the bug itself: a compile verdict outliving the thing it described.
Northwind/{Product,AnalyticsCatalog}are not on memex-cloud at all —Memex.Portal.Distributedsyncs onlyDoc, Agent, Model, Harness, Skill, andsearch nodeType:NodeType namespace:MeshWeaver scope:descendantsreturns 19 types under ACME / FutuRe / Systemorph and no Northwind. Their bakedErroris still a real defect for every deployment that does load them (the dev Monolith, the test fixtures) — fixed by #1792.What is genuinely broken, and why I stopped short of fixing it
MeshWeaver/samples/Graph/Data/FutuRe/{AmericasIns,EuropeRe,AsiaRe}/{LineOfBusiness,TransactionMapping}— six nodes, and this one is live, not stale:compilationStatus: Error,currentSourceVersions: {}— the live sources watcher measured zero sources.lastCompileStartedAt 2026-08-17T19:40:20, one second afterrequestedReleaseAt 19:40:19. A real compile ran today and really failed.search namespace:.../AmericasIns/LineOfBusiness/Source scope:subtree→ 0; the group-level.../FutuRe/LineOfBusiness/Source→ 2 Code nodes.Each declares
WithContentType<LineOfBusiness>()(+.AddLineOfBusinessLayoutAreas()) while the types live in the group-level node'sSource/.I did not "just delete them", and the reason matters. They are not dead weight — they are the per-business-unit browse pages, and that is tested:
FutuReAnalysisTest.EuropeRe_LineOfBusiness_Search_ShouldReturn8LoBsassertsFutuRe/EuropeRe/LineOfBusinessrenders the NodeType search shell withHiddenQueryscoped tonamespace:FutuRe/EuropeRe/LineOfBusiness, and explicitly asserts it is not the instance fallback (path:). Deleting the node removes a tested behaviour.Nor is the obvious repair safe: pointing their
sourcesat the group-levelSourcewould compile the sameLineOfBusinessrecord into four separate collectible assemblies, giving four CLR types with the same$typediscriminator — the silent-empty-render trap.So the fix is a design call I don't want to guess at:
WithContentType<…>from the regional nodes and let them be pure browse pages over instances of the group-level type (needs confirming that the Search shell doesn't require a compiled content type — it renders correctly today while the node is parked, which suggests it doesn't); orFutuRe/AsiaRe.jsonisnodeType: FutuRe/BusinessUnit,FutuRe/AmericasIns/Analysis.jsonisnodeType: FutuRe/LocalAnalysis— the six are the only nodes in that tree that declare a type instead of being one); orWhich of those do you want?
Platform gap worth its own issue
A NodeType that has never compiled successfully and settles at
Erroris unreachable by every automatic re-drive — so a fix to the cause can never reach the node. That is not only how the baked state persists; it is why theAnchorIncludePathfix (which was written for "memex-cloud 2026-08-12 parked 15 NodeTypes (FutuRe, Cession, SocialMedia, Northwind/AnalyticsCatalog)" — near enough the same list) left them parked after it shipped.The framework-stale kickoff's own
Wherealready readsCompilationStatus is Ok or Error, so coveringErroris clearly intended; it cannot, becauseHasStaleFrameworkBuildrequires assembly coordinates thatApplyCompileFailurenever writes. StampingCompiledFrameworkVersionon failure (or an equivalent "which framework produced this verdict" marker) would let a framework bump retry a failed type exactly once — which is already the treatment a stale successful build gets.I have not written that: it changes compile-control-plane behaviour and wants its own review.
Merge pull request #1792 from Systemorph/fix/1786-nodetype-compile-er…
rbuergi commentedon Aug 21, 2026
Re-measured on prod today — 13 → 6, and PR #2030 takes the rest
Verified against
memex.meshweaver.cloud(serving3.0.0-rc6.ci.4780) withGetDiagnosticsper type, 2026-08-21. Seven of the thirteen are gone; six are still Error.FutuRe/{AmericasIns,EuropeRe,AsiaRe}/LineOfBusinessSource/FutuRe/{AmericasIns,EuropeRe,AsiaRe}/TransactionMappingDoc/DataMesh/SocialMedia/{Post,Profile}SocialMedia/{Post,Profile}Doc/Architecture/BusinessRules/CessionNorthwind/{Product,AnalyticsCatalog}namespace:Northwind scope:subtree→ 0)Cause 3 was the interesting one, and it is answered
This issue flagged
Northwind/Product/AnalyticsCatalogas "sources exist and still do not resolve — investigate first". They are gone now, andShippedNodeTypeStateTestrecords what they actually were: the tree shipped 32 NodeType files exported from a running mesh, carrying that machine's compile record. Eight had"compilationStatus": "Error"baked in from 2026-06-26, and every deployment adopted the verdict verbatim — unreachable by every automatic re-drive path. That is whyAnalyticsCatalog's committed error namedOrderViews/SalesViews, identifiers that occur nowhere in the configuration it shipped alongside: the configuration had been corrected and the correction could never take effect.So cause 3 was not a silent-skip sibling of #1767 at all — it was a stale imported verdict, and stripping it is what let the other seven compile for real.
What is left, and why it survived the cleanup
The six FutuRe types now fail for a real reason — the live compiler's own report, not a baked-in one:
They are copy-pastes of their parents: identical
WithContentType<LineOfBusiness>()lambda, none of the parent'sSource/*.cs. The parentFutuRe/LineOfBusinesscompiles Ok on the same mesh because it owns itsSource/.And nothing is typed by any of the six. Every instance beneath them names the parent — 8+8 LoB instances as
FutuRe/LineOfBusiness, 14+13 mappings asFutuRe/TransactionMapping,AsiaRehas none at all — and a repo-wide scan for"nodeType": "<any of the six>"returns 0 files. They were dead weight that could only ever park.PR #2030
Retires the six as
Markdownnodes (keeping the governance prose and their children), removes three source-less duplicates undersamples/Graph/Data/Doc/that can only clobber the documentation tree's good copies, and addsShippedNodeTypeSourceResolutionTest— a shipped NodeType must not name a content type that neither its ownSource/nor the framework declares. Proven non-vacuous: reverting only the data half fails the compiled test naming all nine.test(#1786): EuropeRe LoB Search asserts the retired shape, and the f…
Merge pull request #2030 from Systemorph/fix/1786-vestigial-futures-n…
rbuergi commentedon Aug 25, 2026
~85% done — narrowing scope. Verified against
origin/main@9494b1219:Fixed:
b63fbf057+091a57a6cretired the six FutuRe types and the threeDoc/duplicates;Cessionnow shipsSource/*.cs;.github/doc-gate.allowis empty.Remaining, and all that this issue should now cover:
Northwind/AnalyticsCatalog— itsSource/*.csdo exist (Supplier.cs,Category.csunderAnalyticsCatalog/Source/), so this is a query/config problem, not a missing-source one.Northwind/Product— has noSource/folder at all and nosourceslist, so the defaultnamespace:Northwind/Product/Sourcequery resolves nothing.FutuRe/*entries in.github/samples-gate.allow.SocialMedia/Post,SocialMedia/ProfileandDoc/DataMesh/SocialMedia/*orphans are gone from the repo but still in the mesh DB — they need deleting there, proven by agetreturning nothing.Done-condition:
.github/samples-gate.allowis empty (likedoc-gate.allow), and an MCP sweep where everynodeType:NodeTypereadsCompiled. Per AGENTS.md,ok:falsewithAbsent/NotCompilable/Unavailableis a sweep failure, not a pass.rbuergi commentedon Aug 26, 2026
These are not just CI debt — 7 of the 8
compileentries in.github/samples-gate.alloware exactly the NodeTypes this issue reports parked atCompileErrorin prod. Nobody had connected the two, and the framing differs sharply depending on which you read.Current allow file on
main:Read from the allow file these look like accepted samples-gate debt. Read from here they are a live production condition on memex-cloud — and per AGENTS.md a NodeType left at
CompileErrorrefuses portal readiness and parks every instance hub for the full 60 s activation budget. That is a materially different cost than "the gate is noisy".Two of the thirteen were fixed today, which shows the rest are tractable
#2308 (merged 2026-08-26 06:45) fixed
Northwind/AnalyticsCatalog—DashboardLayoutAreas.csnamed four classes that do not exist (SalesViews.SalesByCategory,SupplierViews.SupplierSummary, …) where the real declarations live inSalesLayoutAreas/SupplierLayoutAreas. It removed that entry from the allow file.It also documents the cascade this issue's table hides:
Northwind/Productwas only red because its ROOT was.SupplierandCategoryare declared inAnalyticsCatalog's ownSource/, so a red root makes every dependent red. That matches AGENTS.md's sweep guidance — fix roots first, a red upstream makes dependentsUpstreamFailed— and means the 13 are probably fewer than 13 distinct defects.Prediction worth checking rather than assuming: if the root fix landed,
Northwind/Productshould now compile, making its allow entry genuinely stale — which #2324's ratchet will now report (and, since it is not markedintermittent, fail on). I did not see a stale-entry flag on the last fivemainruns, so either the gate has not re-evaluated it yet or it still fails for an independent reason. Worth confirming before removing the line.What I could NOT verify
I tried to check current prod state directly and could not:
lsp_diagnostics_for_node Northwind/ProductreturnedAbsent— which per AGENTS.md is a sweep FAILURE, not a pass ("no node resolved at this path, so nothing was checked"). That replica does not hold the path, so this issue's per-portal counts are as-of 2026-08-17 and unconfirmed today. Re-running the documented sweep (Search('nodeType:NodeType')→LspDiagnosticsForNodeper type, on the memex-cloud replica specifically) is the first step for anyone picking this up — and theAbsent/NotCompilable/Unavailablestatuses must be treated as unchecked, not clean.Suggested order
Roots first, then dependents, then delete each allow line as its subject goes green — the ratchet will now enforce that last part rather than letting the line linger.
Resolve the merge with main: keep main's gate surfaces, drop the entr…
Merge pull request #2278 from Systemorph/fix/gates-that-never-fired
rbuergi commentedon Aug 27, 2026
Re-swept both portals today (2026-08-27) — 12 of the 13 are gone; 1 remains, and it is a NEW node, not one of the 13
Measured two independent ways, because AGENTS.md says neither diagnostics surface is trustworthy alone:
search 'nodeType:NodeType -compilationStatus:Ok'onmemex.meshweaver.cloud(a complete result set,truncated:false), thenget_diagnosticsper hit.kubectl -n <ns> logs <portal-pod> -c memex-portal | grep 'PARKED after compile failure', the verification this issue was opened with.Both answer the same thing.
3.0.0-rc8.ci.6011LinkedIn/Skillci.5670(see the incident at the bottom)The 13, one by one
Northwind/Productnamespace:Northwind scope:subtree nodeType:NodeType→ 0); in-repo it is green in the samples gate (ok Northwind/Product [compile:Passed render:Passed tests:Skipped], main run 33044271801)AnalyticsCatalogwas red; plus a baked foreign compile verdictNorthwind/AnalyticsCatalogDashboardLayoutAreas.csnamedSalesViews.…/SupplierViews.…classes that do not existFutuRe/{AmericasIns,EuropeRe,AsiaRe}/LineOfBusinessnamespace:FutuRe scope:subtree→ 0 on memex-cloud); retired toMarkdownin-repoWithContentType<LineOfBusiness>()lambda carrying none of the parent'sSource/*.cs; nothing was typed by any of themFutuRe/{AmericasIns,EuropeRe,AsiaRe}/TransactionMappingDoc/DataMesh/SocialMedia/{Post,Profile}2026-08-27T03:34:45Z"compilationStatus":"Error"baked into the shipped file, unreachable by every automatic re-driveSocialMedia/{Post,Profile}03:38:16Z/05:56:51ZDoc/Architecture/BusinessRules/Cession03:34:44ZError+ noSource/; it now shipsSource/*.csThe two on memex (
BinaryClickerV2/BinaryToggle,Edu/Course) are gone too — zeroPARKED after compile failurelines on either serving pod.So the 13 were not 13 defects. Three causes accounted for all of them, and the largest — a shipped node file carrying a foreign machine's compile verdict — was one edit to 32 files.
The one that is left:
LinkedIn/Skill— the SAME cause-1 shape, a week oldIt was retired on purpose and the mesh kept it.
MeshWeaver.SocialMedia@75f3f3d(2026-08-20, "LinkedIn stops redefining Skill") deletedLinkedIn/Skill.jsonandLinkedIn/Skill/Source/Skill.cs, because the platform owns the nameSkilland this type was dead — the profile Overview'snodeType:LinkedIn/Skillquery had never returned a row. The real type isLinkedIn/LinkedInSkill, which has its 5 source nodes and compiles green, and the Overview was moved onto it in that same commit.Why it only broke now — a framework-identity flip, exactly the mechanism this issue's brief predicted. The node's own record:
It served its already-built assembly happily until the framework identity moved
sbf2f93e…→s990240a1…. The stale-framework kickoff then re-drove the compile, foundsrc=0, and parked it. A bump recompiles every dynamic NodeType at once, which is why this surfaced as a single event rather than on the day the sources went away.It is safe to delete, and that is the fix — not a content edit:
search 'nodeType:LinkedIn/Skill'→ 0 instances;AGENTS.mdprose mention it (as the cautionary example).🚨 I could not land the delete. MCP refuses it for my identity and says not to retry:
Someone with Delete on the LinkedIn partition needs to run it in the GUI: https://memex.meshweaver.cloud/LinkedIn/Skill/Delete — that is the last step to a clean sweep. (
NodeTypeUnparkPostDeletionHandlerclears the park on delete, so nothing else is needed.)The platform gap that produced it — and will produce the next one
Only the DELTA install prunes.
PackageInstaller.InstallNodeRepoDeltadeletesremovedNodePathsderived from a manifest diff; the FULL install has no prune at all, deliberately (PackageInstaller.cs:25— full-replace semantics would wipe the rest of a shared partition). And the delta is unavailable whenever there is no install record withInstalledFiles, or when the diff touches the package's sharedSource/-Test/(CatalogLayoutAreas.cs:598throws "full install required"). Even on the delta path, a prune delete that fails is.Catch-ed to aLogWarningand counted as0, so the{Pruned} prunedline under-reports silently.Net: the mesh keeps what the source tree drops, and a retired NodeType is inert until the next framework bump turns it into a parked type that refuses portal readiness. That is the same sentence the 2026-08-21 comment on this issue ended with; it has now cost a second incident. Worth its own issue with #723 (platform-identity rebuilds) — the two compound: an identity flip is exactly what converts a harmless orphan into a park.
Also unchanged and still worth doing: a NodeType that has never compiled and settles at
Erroris unreachable by every automatic re-drive, becauseApplyCompileFailurewrites noCompiledFrameworkVersionandHasStaleFrameworkBuildrequires one.LinkedIn/Skillescaped that only because it had previously succeeded.Repo-side residue closed: PR #2472
.github/samples-gate.allowstill carried sixcompileentries for the FutuRe types that #2030 retired toMarkdown— dead lines asserting, to anyone reading the file, that six NodeTypes are still failing to compile in production.The gate's ratchet could not retire them: stale-detection asks did this subject pass?, and a subject that no longer exists never passes and never fails. It printed
unverifiable allow entry (check skipped or scope absent this run)six times on everymainrun since #2030 and stayed green. That default is right for the shared tester (satellites stage a subset of their tree), so #2472 leaves it alone and adds a repo-local guard instead — this repo stages its whole content tree unconditionally, so here "absent" means retired and is decidable statically. Proven non-vacuous: with the six lines restored it fails naming all six and what each became.After #2472, this issue's share of that file is zero. The two
PensionFundlines are separately diagnosed debt that #1786 does not own.🚨 Unrelated live incident found while sweeping —
memexcannot roll toci.6011Not #1786, but it is in front of the same portals and nobody has filed it:
memex(memex.systemorph.com) has been stuck mid-rollout for ~3 h —memex-portal-deployment-54bcd4f496isCrashLoopBackOffat 38 restarts, exit 139 /signo 6(SIGABRT, not SIGSEGV — a managed unhandled exception). The cause is at host start:Both namespaces target the same image
memex-portal-ai:3.0.0-rc8.ci.6011and memex-cloud runs it fine, so the break is namespace-local: memex's installed OpenAI module does not registerProviderModelLister. That is the subject of MeshWeaver.Plugins #730 (fix/openai-module-carries-providermodellister, merged at plugins main tip). Twoci.5670pods still serve, so the site answers 200 — but the roll cannot complete and the fix cannot land. This is also why thememex.systemorph.comMCP endpoint errors on every call for me right now.Merge pull request #2472 from Systemorph/fix/1786-samples-gate-dead-e…
rbuergi commentedon Aug 28, 2026
Re-measured against the live memex mesh today (2026-08-28). The memex half of this issue is almost cleared, but not quite, and the remaining one is a different defect from what this issue describes.
Then: "13 NodeTypes are parked at CompileError on memex-cloud (2 on memex)".
Now, on memex: 1.
🚨 A warning for anyone re-running this check. I first queried
compilationStatus:CompileErrorand got 0, which reads as "all clear". It is a false negative: the stored enum value isError, notCompileError. The filter itself works (compilationStatus:Okreturns matches), so the zero looked entirely credible. Use the negation-compilationStatus:Okand classify the results, rather than guessing the failure term.The one that remains is not a configuration-lambda break
This issue's premise is "configuration lambdas referencing deleted framework symbols".
LinkedIn/Skillis a different failure: its source is gone.Its configuration is
config => config.WithContentType<Skill>().AddDefaultLayoutAreas(), andsrc=0says plainly that zero source files were found. It last compiled successfully at v848 on 2026-08-21 13:38; it is now at v877. So it was healthy and lost itsSourcesubtree afterwards.And nothing in any repo defines it.
git ls-files | grep -i 'LinkedIn/Skill'returns 0 in MeshWeaver, MeshWeaver.Plugins and MeshWeaver.SocialMedia. It is an orphan: a live NodeType whose definition no longer exists anywhere, so no sync or redeploy can ever repair it, and per AGENTS.md a NodeType parked in error refuses portal readiness and parks instance hubs for the full 60 s activation budget.I have not touched it — deleting a live NodeType on your portal is your call, not mine. The two options are to delete the orphan, or to restore its
SourceifLinkedIn/Skillis still wanted. Given no repo carries it, deletion looks right, but say the word.What I could not measure: memex-cloud. I have no MCP connection to that mesh, so the "13 on memex-cloud" figure is unverified and this issue should stay open for it.
rbuergi commentedon Aug 28, 2026
Correction to my measurement above: I labelled the wrong instance.
I wrote "Re-measured against the live memex mesh" and reported "on memex: 1". The mesh my MCP session is attached to is memex-cloud, not memex.
Evidence, from data I read in that same session: the webhook events under
Hosting/PlatformBuilds/_Inbox— nodes stored in the mesh I queried — carryand the cluster's ingress map assigns
memex.meshweaver.cloud→ namespacememex-cloud, whilememex.systemorph.com→ namespacememex. Confirmed independently just now: a node I located from thememexnamespace's own logs (Admin/_LogIncident/75d8e54a0f563fa1) returns Not found through this MCP session, which it would not if the two were the same mesh.So the numbers should read:
LinkedIn/Skill)That is a better result than I reported, not a worse one — 13 → 1 on the instance this issue leads with. But the memex half is now the unmeasured one, the exact opposite of what I claimed, and the
LinkedIn/Skillorphan (no repo defines it;src=0) is a memex-cloud node.Everything else in that comment stands unchanged: the count, the orphan diagnosis, and in particular the query warning —
compilationStatus:CompileErrorreturns a false 0 because the stored enum value isError; use-compilationStatus:Okand classify.rbuergi commentedon Aug 28, 2026
Re-measured on memex-cloud today (2026-08-28): 13 → 1. Twelve of the thirteen are gone; one remains, and it is an instance of a different issue.
Method, because the obvious query lies
compilationStatus:CompileErrorreturns a false 0 — the stored enum value isError, notCompileError. And the negation-compilationStatus:Okover-reports: it returned 13, but that set includes types with no compilation status at all (User,VUser,Partition,Space,OAuthCode,WebhookEvent,ApiCredential,Release,Build— compiled-in types with no source) and types merelyPending.Publish/Slidewas in that 13 and hadlastCompileSucceededAt: 2026-08-28T09:45:39— it compiled successfully an hour before I looked.The query that answers the question is
nodeType:NodeType compilationStatus:Error, and it returns exactly one row.The one that is still red:
LinkedIn/SkillfailedBuildInputscarriessrc=0, and I confirmed it directly:namespace:LinkedIn/Skill/Source scope:subtreereturns 0 nodes. The source tree is gone.What survives is the NodeType itself (version 881, last compiled OK at version 848 on 2026-08-21) and its entire Release history — the descendants listing is wall-to-wall
Releasenodes.This is #2473, not a compile bug
The configuration lambda is fine; there is simply nothing left for it to reference. A node the source repo retired survived in the mesh, and the NodeType it fed is now parked at
Error— which is precisely the failure #2473 describes ("a retired NodeType parks the portal on the next framework flip"). Per AGENTS.md a NodeType atCompileErrorrefuses portal readiness and parks every instance hub for the full 60 s activation budget, so this is not cosmetic.Fixing #2473's retirement path should either remove this NodeType with its source or stop the source from being retired out from under it. Suggest narrowing this issue to
LinkedIn/Skilland letting #2473 carry the mechanism — or closing it in favour of #2473 once that lands, since re-fixing the same node by hand would leave the cause live.Measured on memex-cloud only (that is the mesh this MCP connects to). The "2 on memex" half of the original report is unverified here.
rbuergi commentedon Aug 28, 2026
Closing per the re-measurement above and the thread's own recommendation.
nodeType:NodeType compilationStatus:Errorreturns exactly one row; the original query shape over-reported).LinkedIn/Skill, is not this issue's defect class — its configuration lambda is fine; its entire source tree was retired out from under it. That is A node the source repo retires survives in the mesh — and a retired NodeType parks the portal on the next framework flip #2473's retirement path, and A node the source repo retires survives in the mesh — and a retired NodeType parks the portal on the next framework flip #2473's fix merged today: Fix #2473: prune retired nodes on a full node-repo install #2592 ("prune retired nodes on a full node-repo install"). The node clears on the next full node-repo install, or a manual prune if it needs to go sooner.The comment above already proposed exactly this: "closing it in favour of #2473 once that lands, since re-fixing the same node by hand would leave the cause live." #2473's fix has landed, so closing.
Unverified residue, for the record: the original report's "2 on memex" half was never re-measured (the MCP session connects to memex-cloud). If a sweep on memex still shows
compilationStatus:Errorrows that are not the retirement class, that is a fresh finding — file it against the compile pipeline, not here.fix(guard): the staged-package floor tracks the list Cornerstone left
fix(guard): the staged-package floor tracks the list Cornerstone left