|
|
4fc3356312
|
refactor(frontend): migrate Svelte stores from .ts to .svelte.ts runes
- Delete legacy .ts stores (auth, activity, assistantChat, datasetReview, environmentContext, health, sidebar, taskDrawer, translationRun)
- Create new .svelte.ts runes-based stores using reactive primitives
- Migrate i18n: /i18n → /i18n/index.svelte.js
- Migrate toasts: /toasts → /toasts.svelte.js
- Update all component imports across 180+ files: components, pages, routes, lib
- Remove fromStore() wrappers — use store.value directly with Svelte 5 runes
- Update test mocks for new import paths
- Add @DEPRECATED annotation to legacy alias
|
2026-06-02 09:54:18 +03:00 |
|
|
|
50f5c4ce4d
|
feat(ts-migration): Phase 1 — core API layer JS→TS with full GRACE contracts
Converted:
- toasts.js → toasts.ts (typed Writable<Toast[]>, typed addToast/removeToast)
- api.js → api.ts (C5 module with 12 nested C2/C4 function contracts)
- utils.js → utils.ts, utils/debounce.js → debounce.ts
- Updated 67 import references across src/ (.js extension stripped)
- Added types/api.ts, types/models.ts, types/validation.ts (foundation DTOs)
api.ts contracts:
- Top-level: [C:5] with @INVARIANT, @DATA_CONTRACT, @RATIONALE, @REJECTED
- C4 functions: buildApiError, notifyApiError, shouldSuppressApiErrorToast
- C2 helpers: getWsUrl, getTaskEventsWsUrl, getMaintenanceEventsWsUrl,
getTranslateRunWsUrl, getAuthHeaders
- C4 fetch/request wrappers: fetchApi, fetchApiBlob, postApi, deleteApi, requestApi
- C3 endpoint registry: api.* methods with @RELATION DEPENDS_ON chains
- All C4 functions have @PRE/@POST/@SIDE_EFFECT
- all generic <T = unknown> for type-safe API responses
Build: npm run build passes cleanly
|
2026-06-01 15:11:35 +03:00 |
|