## Summary
Refactored the authentication flow to correctly separate traffic between the
Auth service and Blog service. Added post-registration author creation and
switched all `/auth/*` calls to the dedicated `auth` Axios client.
## Changes
### AuthProvider
- Replaced `api.post('/auth/register')` with `auth.post('/register')`
- Replaced `api.post('/auth/login')` with `auth.post('/login')`
- Added automatic author creation after user registration (`POST /authors`)
- Switched user identity lookup from `api.get('/auth/me')` to `auth.get('/me')`
- Replaced `/authors/{id}` lookup with `/authors/me`
- Updated imports to use `{ api, auth }`
### Axios Client Layer
- Introduced a new `auth` Axios instance using `VITE_AUTH_BASE_URL`
- Added shared token attachment and 401 handling logic
- Applied interceptors to both `auth` and `api` clients
- Removed inline auth logic from `api.ts`
### Types
- Added `VITE_AUTH_BASE_URL` to `vite-env.d.ts`
## Impact
- Correctly routes authentication traffic to the Auth microservice
- Ensures an Author document is created automatically after registration
- Simplifies identity loading via `/authors/me`
- Improves token handling consistency across both services
Summary
Introduced ArticlesModel abstraction with list + map store for fast lookup and clean CRUD operations.
Replaced all array-based article access with model methods (readById, create, update, refresh).
Added utils/articles.ts with pure functions for list/map operations.
Updated ArticleProvider to use the new model API and avoid mutation issues.
Added URL-synced navigation (pushState) + VIEW_URL mapping for deep-linkable routes.
Implemented route parsing on load (/articles/:id) to auto-open article view.
Standardized openArticle to pass full ArticleModel instead of index.
Updated all ArticleCard components to use article object instead of index.
Added navigationMap to view router for custom child navigation names.
Extracted shared styles to types/styles.ts and replaced old inline styled components.
Updated props definitions for Login, Register, Profile, ArticleView, MainContent, ArticleGrid.
Removed React.StrictMode wrapper to avoid double-effects during development.
Release: 0.2.5
Type: Feature + Refactor + Routing upgrade
- Introduce unified View hierarchy (VIEW_TREE) with parent/child relationships
- Add useViewRouter for navigate(), goBack(), openArticle(), and dynamic child navigation
- Replace legacy boolean-based view flags with single ui.view state
- Implement dynamic component rendering via VIEW_COMPONENTS map
- Add HomeView wrapper and integrate dynamic navigation props
- Update ArticleView to use open_editor and new ArticleViewProps
- Adjust ArticleEditor props type to accept null article
- Normalize navigation prop naming (open_* passed as onBack/onEdit via router)
- Enforce validation: prevent article updates without logged-in user
- Remove old conditional rendering/switch blocks and simplify Blog.tsx
- Version bump: 0.2.3 → 0.2.4