ld
a18f96912d
feat(repository): refactor query/mutation ports with capability-safe
...
interfaces
- refactor: split UserRepository into AuthUserRepository and
AdminUserRepository capabilities
- refactor: split SessionRepository into AuthSessionRepository and
repository-owned CLI/admin methods
- refactor: replace generic Repository Update/Delete with
operation-specific params and ownership predicates
- refactor: replace CredentialRepository generic CRUD with
passkey-specific methods
- refactor: replace FileRepository generic Create/Update/Delete with
UploadedFileParams, DirectoryParams, and owned soft-delete
- refactor: remove repository fields from WebApp struct; repositories
are now composition-time wiring only
- feat: add domain error kinds ErrParentNotFound, ErrParentNotDir,
ErrDirectoryNotEmpty, ErrInvalidMove
- feat: add CredentialTypeAppPasskey constant
- feat: add testutil.SetUserAdmin for test fixture setup that bypasses
production service ports
- test: add architecture test banning GORM Save in repository package
- test: add capability interface contract tests ensuring each service
receives the minimal interface
- test: add blockingStorage helper for concurrent promotion tests
- test: add preserved DSN parameter test for sqliteImmediateDSN
- docs: update architecture decisions with repository write rules and
capability separation
- docs: update roadmap to clarify atomic single-use refresh sessions
- docs: add -race test target to development docs
2026-07-16 12:24:36 +08:00
ld
63ede5c237
refactor(api): enforce protocol-neutral service boundaries
...
- refactor: move HTTP status and DTO concerns out of model and service
layers into API and handler code.
- feat: add admin service boundary and route auth through services
instead of direct repository access.
- test: add architecture and error tests covering package boundaries,
redaction, and service behavior.
- docs: record the protocol-neutral boundary decision and update
architecture and roadmap notes.
2026-07-05 23:30:17 +08:00