- Clear configuration entry when Region or ServiceURL is set to null
- Annotate DeleteObjectsAsync prefix and continuationToken as nullable
- Replace vague Region placeholder in aws.md example
- Skip container wiring in test module when AWS credentials are absent
- Dispose AmazonS3Client in test cleanup
- Validate Region or ServiceURL early in DefaultAmazonS3ClientFactory
- Normalize trailing slash in ServiceURL test assertions
- Clarify Region and ServiceURL coupling in XML docs and aws.md
- Add DisablePayloadSigning configuration to send UNSIGNED-PAYLOAD instead of streaming chunked signature, required by R2
- Make CreateS3ClientConfig async to allow subclasses to do I/O
- Document trailing-slash behavior of ServiceURL
- Extend test module to use external bucket with per-run prefix cleanup
- Document DisablePayloadSigning in aws.md and link from index.md
- Clarify that Delete is host-only for the global account while Remove from tenant is the tenant-level soft removal available to tenant admins
- Note in the migration guide that host-side shadow rows must use a new primary key Id different from the tenant user's Id
- 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`
Add a new English community article 'ABP Agent Vibe Architecting' and three supporting images (abp-agent-ai-review.gif, abp-agent-analyze-engine.png, abp-agent-code-generation.gif). The article explains the concept of "vibe architecting", outlines a three-layer governance framework, and describes ABP Studio AI Agent features (Plan mode, Analyze engine, ABP-aware review) that mitigate architecture drift in enterprise .NET.
Clarify Blazor UI entry by listing Blazorise and MudBlazor, mark React UI as supported in the comparison table, and fix the ABP Studio AI Agent cell by adding a proper external link (target="_blank") to resolve a malformed/stray anchor.
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 a new community article (post.md) describing the React Native template refresh — migration to NativeWind v4, token-based theming and dark mode, navigation updates, removal of legacy screens, and two sample apps — and include all accompanying screenshots and demo images.
Update docs/en/index.md to mention React availability and link to the UI options page; replace/update the UI image (images/ui-options.png) with a larger width and improved alt text; and fix the ABP CLI link to ./cli/index.md. These changes clarify UI framework support and correct internal documentation links.