OptionalpreloadedArtifact: MJArtifactEntityOptionalpreloadedVersion: MJArtifactVersionEntityOptionalprovider: IMetadataProviderThe provider the fallback load reads through. A component constructing this in a
multi-provider tree passes its own ProviderToUse; omitting it falls back to the global
default, named explicitly rather than reached for via new Metadata().
ReadonlyArtifactReadonlyArtifactReadonlyArtifactReadonlyArtifactReadonlyArtifactReadonlyConversationReadonlyDirectionReadonlyVersionReadonlyVersionReadonlyVersionReadonlyVersionReadonlyVisibilityUse ArtifactDescription.
Use ArtifactId.
Use ArtifactName.
Use ArtifactType.
Use ArtifactVersionId.
Use ConversationDetailId.
Use Direction.
Use IsLoaded.
Checks if the artifact entities can be accessed without triggering a load. True if the engine has them or fallbacks are populated.
Use IsLoading.
Checks if a fallback load is currently in progress.
Use VersionCreatedAt.
Use VersionDescription.
Use VersionName.
Use VersionNumber.
Use Visibility.
Use GetArtifact.
Gets the full Artifact entity. Checks ArtifactMetadataEngine first (always fresh), falls back to direct load.
Use GetVersion.
Gets the full ArtifactVersion entity including Content field. Checks ArtifactMetadataEngine first (always fresh), falls back to direct load.
Represents artifact information with lazy-loading capabilities. Stores minimal display data initially (from query) and loads full entities on-demand.
For full entity access, this first checks ArtifactMetadataEngine's on-demand caches (populated when an artifact's versions were loaded earlier this session) and otherwise loads the single artifact/version directly from the database. Artifacts and versions are no longer bulk-loaded at boot — a version's
Contentcan be arbitrarily large — so a direct load is the normal path here, not just a fallback.The direct load is coalesced via a shared promise so concurrent callers issue a single query.