Previous Scriban-escape pass only matched single-line `{{ ... }}` blocks
and missed the two multi-line ones in BookStoreNavigator and
BottomTabNavigator (the Stack.Screen / Tab.Screen `options={{ ... }}`
props). Linter still failed on docs/en/tutorials/mobile/react-native/index.md#L363.
Wraps both multi-line objects with the same `{%{{{ ... }}}%}` escape, taking
the total escape count to 15/15 balanced and leaving no naked JSX
double-braces in the file.
Scriban treats `{{ ... }}` inside markdown as a template expression and
chokes on the comma inside JSX style props (e.g.
`contentContainerStyle={{ flexGrow: 1, paddingBottom: 96 }}`).
Wraps every literal JSX `{{ ... }}` occurrence with the
`{%{{{ ... }}}%}` escape used elsewhere in the docs, covering the 13 sites
spread across the DataList, AbpSelect, BookStoreNavigator,
BottomTabNavigator and CreateUpdateBookForm code blocks. Pure docs change,
no semantic effect on the rendered tutorial.
Reported by the markdown linter:
index.md:161:43: error: [ScribanParseError] Invalid token found `,`.
Replaces the seven Paper-era TODO placeholders with fresh -new.png captures
from the modernized template (BottomTab + NativeWind). Drops the
'book-list-with-author' shot since the author column is already visible in
'book-list-new.png'.
Captures: book-store-menu-item-new, book-list-new, create-book-new,
update-book-new, delete-book-alert-new, create-author-new,
authors-in-book-form-new.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The old tutorial was built around connectToRedux + Paper + DrawerNavigator
plus a DataList and AbpSelect that no longer ship with the template (PRs
#4635 and #4679 in volosoft/abp-studio cleared and re-themed the React
Native template). The whole document is rewritten so each code block
matches the bookstore-react-native-mongodb sample one-to-one.
Major changes from the previous version:
- Replaces 'add to DrawerNavigator' with 'add to BottomTabNavigator' (the new
default navigation_type).
- Walks through building NativeWind-based DataList and AbpSelect components
before using them in the screens.
- Drops connectToRedux / createAppConfigSelector() in favor of useDispatch +
useSelector(appConfigSelector).
- Keeps Paper TextInput only (the only Paper component the template still
uses); everything else is Pressable + className.
- Backend setup is intentionally short (endpoint + permission summary +
pointer to the Web Application Tutorial) - the focus is the RN side.
- Existing screenshot file paths kept with a TODO marker so they can be
refreshed once the new UI is captured.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Expand the React UI section to state that ABP 10.4 makes React a first-class modern template option, explain the in-solution React app plus ABP Admin Console approach, list the core tooling (Vite, TypeScript, TanStack Router/Query, Axios, Zod, React Hook Form, Tailwind CSS, shadcn/ui, Vitest), and note creation via the --modern flag or ABP Studio. Rename and expand the ABP Studio AI Agent section to 'ABP Agent', describe its three modes (Agent, Plan, Ask) and capabilities (solution-aware coding, build/run tasks, proxies, migrations, runtime inspection), and highlight workflow integrations (runner, task runner, Git/GitHub, AI commit messages, ABP-aware code review). Add the upgrade-abp-packages.png asset used by the post.
Add two demo GIFs (abp-agent-code-generation.gif and abp-agent-ai-review.gif) to the ABP Studio AI Agent announcement and embed them in the markdown article under docs/en/Community-Articles/2026-05-12-Introducing-Abp-Studio-Ai-Agent to illustrate code generation and AI review flows.
Update the image-manipulation reference to list SkiaSharp alongside
ImageSharp and Magick.NET, and add a SkiaSharp Provider section with
installation steps and the SkiaSharpResizerOptions /
SkiaSharpCompressOptions configuration knobs.
Add images for React UI and ABP Studio AI Agent and update documentation to include them. Bold and reflow license-related paragraphs in free-licenses-vs-pro-licenses.md to highlight React UI and AI Agent features. Also fix a minor formatting/whitespace issue in generating-crud-page.md (remove extra space around `CSS`). These changes improve clarity and add visual references for the UI and AI Agent features.
Add a 'Live Demo' section to the ABP Studio AI Agent announcement that embeds a thumbnail linking to the community talk YouTube video and includes an 'Also see' link to the AI Agent page. Also add the cover image asset (community-talk-cover-image.png) used by the embedded link.
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.
* docs(studio): update documentation for release 3.0.2
- Updated release notes for 3.0.2
- Updated version mapping with ABP 10.3.0
Release: 3.0.2
* Revise release notes for version 3.0.2
Updated release notes for version 3.0.2 to include major features and enhancements.
* Update version-mapping.md
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: selman koc <64414348+skoc10@users.noreply.github.com>
- 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
Updated release notes for version 3.0.1 with enhanced project wizard, React admin console improvements, macOS performance optimizations, and stability fixes.