When a state has multiple batch checkers (e.g. RequirePermissions plus
RequireFeatures), the per-state result was overwritten on every checker
pass, so a later 'true' silently masked an earlier 'false'. AND-combine
the results to require all checkers to pass.
Insert new ABP Studio UI image into the AI agent announcement and refine several paragraphs for clarity and flow. Rephrase the intro and system-shaped explanation, update the closed-loop wording to mention agent-assisted fixes, and remove the "Automatic rules and skills for your solution" bullet and the final sign-off. Adds the image file abp-studio-new-design.png and updates the markdown to include it.
Add a new Community Article announcing the ABP Studio AI Agent, detailing its modes (Agent, Plan, Ask), the Analyze engine, Solution Runner and runtime monitoring, custom workflows, Git/GitHub integration, developer loop, and short-term roadmap. Also add the article cover image. The post introduces solution-aware AI features built into ABP Studio and explains how they streamline ABP development.
Route template used {id} but the method parameter is named blogId, so
ASP.NET Core ApiExplorer emitted an orphan path parameter id, which made
ClientProxyBase.BuildHttpProxyClientProxyContext throw
ArgumentOutOfRangeException when deleting a blog from the MVC admin page.
- Soften IsSandboxed XML doc as a best-effort marker
- Replace #XXXXX placeholders with #25399
- Set Scriban MemberFilter to allowlist public properties only,
blocking method/field access and reflection escape paths
- Update Razor and Scriban safe-runtime docs to match
- Add reflection-escape, method-invocation and nested-property
tests for Scriban
ITemplateRenderingEngine exposes a new IsSandboxed property so callers can
decide whether editing a template requires elevated trust.
- TemplateRenderingEngineBase provides a virtual default of false (secure-by-default)
- RazorTemplateRenderingEngine declares IsSandboxed=false (compiles to .NET assembly via Roslyn)
- ScribanTemplateRenderingEngine declares IsSandboxed=true (DSL without .NET interop)
- Razor integration docs and TextTemplateManagement docs document the implications
- Migration guide for ABP 10.4 documents the new abstraction member