The implicit DisplayTemplate context caused the Razor source generator
to compile 'context.Item as IHasExtraProperties' into
'context as IHasExtraProperties' (dropping the .Item access). Since
CellDisplayContext<TItem> itself does not implement IHasExtraProperties,
the cast was always null and the cell rendered empty.
Renaming the context with Context="rowContext" produces the correct
'rowContext.Item as IHasExtraProperties' codegen and the cell now
shows the property value.
ABP dynamic HTTP client proxy uses HttpCompletionOption.ResponseHeadersRead,
but several paths in ClientProxyBase and DynamicHttpProxyInterceptor dropped
the response without disposing it, leaving the underlying connection
occupied until the server closed it or the client timed out.
Fixes#25475
Filter out UserExceptionInformer category from AbpExceptionHandlingLoggerProvider so logs written by the informer do not re-enter the same provider, which previously caused infinite recursion and a browser stack overflow.
Fixes#25463
Add @codemirror/state and @codemirror/view dependencies, update build config, introduce a minimal/basic setup toggle, and improve focus styling.
- package.json: include @codemirror/state and @codemirror/view required by new imports.
- scripts/build.js: change esbuild legalComments from 'none' to 'eof' to keep trailing license comments.
- scripts/entry.js: import minimalSetup and factory getEditorSetup(options) to use minimalSetup by default and basicSetup only when lineNumbers === true; integrates this into editor state creation.
- src/codemirror.css: fix closing brace and add :focus-within styles to apply a Bootstrap-like focus ring.
These changes reduce default editor surface (no line numbers unless requested), add required runtime deps, and improve accessibility/focus visuals.
Replace 'has not compatible with' with 'is not compatible with' in FeatureManager, SettingManager and PermissionManager (the latter is the original phrasing this PR initially mirrored).
- SettingManager.GetAllAsync / FeatureManager.GetAllWithProviderAsync: drop top-level continue and rely on the provider chain filter so allowed upstream providers can still be read via inheritance (e.g. GetAllForUserAsync now returns a Global-only setting)
- FeatureAppService.GetAsync: switch includedFeatures to HashSet for O(1) parent lookup
- FeatureManager.SetAsync: throw when providerName is not in feature.AllowedProviders
- FeatureManager.GetAllWithProviderAsync / GetOrNullInternalAsync: filter providers chain by feature.AllowedProviders (aligning with FeatureChecker)
- FeatureAppService.GetAsync: filter features by AllowedProviders and add parent chain check to prevent orphan child entries (aligning with PermissionAppService)
- SettingManager.SetAsync: throw when providerName is not in setting.Providers
- SettingManager.GetAllAsync / GetOrNullInternalAsync: filter providers chain by setting.Providers (aligning with SettingProvider)
- Add `.Application -> .Domain` arrow to all 4 diagrams
- Module diagram: remove `.Web` node (module template's `.Web` is the
module's own UI layer per `[DependsOn]` and csproj, not a standalone
host that would reference `.HttpApi`) and add `.MongoDB`