When an Angular proxy DTO inherits from a generic base type such as
PagedResultDto<TransactionDto> and the type argument lives in the same
namespace, the model generator emitted an invalid self-import inside
models.ts (e.g. `import type { TransactionDto } from './models'`),
breaking the Angular/TypeScript build.
The base-type generic arguments were not filtered by namespace the way
property refs already are: the outer guard only checked the base type's
own namespace (Volo.Abp...PagedResultDto), so every type in the generic
tree was imported, including same-namespace ones.
Skip generic arguments whose namespace equals the model's, mirroring the
existing property handling. The framework base type is still imported
from @abp/ng.core; only the bogus self-import is dropped.
Adds a regression test reproducing the reported scenario.
Resolves#25080
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
AbpDateTimeConverterBase.Normalize converts an Unspecified DateTime to UTC via
`new DateTimeOffset(value, offset).UtcDateTime` when the clock is UTC and a user
timezone is set. For values within the timezone offset distance of
DateTime.MinValue/MaxValue (most notably the DateTime.MinValue placeholder), this
throws ArgumentOutOfRangeException. The exception was swallowed and logged as
"Could not convert DateTime with unspecified Kind using timezone '...'." on every
serialization, flooding logs for positive-offset users (e.g. Asia/Shanghai +08:00).
Catch the boundary ArgumentOutOfRangeException explicitly, keep the value unchanged,
and log it at Debug level instead of Warning so it stays traceable without polluting
production logs. Other unexpected failures still log a warning.
Also make Volo.Docs GitHubDocumentSource return a Utc-kind placeholder
(DateTime.SpecifyKind(DateTime.MinValue, Utc)) and use Author.Date.UtcDateTime, so it
no longer emits Unspecified placeholders in the first place.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
[Community] Caching Strategies in ABP Framework
Community article from ABP.io AI Post Generator.
**Folder:** `2026-06-25-caching-strategies-in-abp-framework`
**Author:** admin
[Community] Implementing Domain Events in ABP Microservices
Community article from ABP.io AI Post Generator.
**Folder:** `2026-06-25-implementing-domain-events-in-abp-microservices`
**Author:** admin
- Close nested add/edit dialogs via Visible binding instead of @if
- Use Large dialog width to match the permission management modal
- Localize the provider key search label
- Bind the target radio group with Value/ValueChanged so the lookup service updates
- Sync the grant-all switch with permission checkboxes
[Community] AI Isn’t Replacing Developers — It’s Changing What Good Developers Spend Time On
Community article from ABP.io AI Post Generator.
**Folder:** `2026-06-25-ai-isnt-replacing-developers-its-changing-what-good`
**Author:** alper