Commit Graph

70 Commits

Author SHA1 Message Date
gnezim bb50e63866 Add SeoHead component with canonical, hreflang, OG, Twitter, and JSON-LD 2026-04-15 00:20:40 +03:00
gnezim 599f35f14a Add JsonLdRenderer and serializeJsonLd with schema-dts typing 2026-04-15 00:20:07 +03:00
gnezim 8abe8acf70 Add buildHreflangSet for 9 languages + x-default 2026-04-15 00:18:35 +03:00
gnezim ad9b35f725 Add schema-dts dependency for typed JSON-LD generation 2026-04-15 00:17:29 +03:00
gnezim 6a4be07911 Add useAnalytics hook with server-safe NoopAnalytics fallback 2026-04-15 00:15:43 +03:00
gnezim 8878dcb6c8 Add AnalyticsLoader component with idle-callback initialization 2026-04-15 00:15:43 +03:00
gnezim 515151ed81 Add analytics facade with adapter fan-out and consent gating 2026-04-15 00:15:11 +03:00
gnezim fe31bbfb65 Add four stub analytics adapters (metrica, ctm, variocube, dynatrace) 2026-04-15 00:13:49 +03:00
gnezim e95781a069 Add test-observable analytics event sink 2026-04-15 00:13:13 +03:00
gnezim 0b25a1a9e7 Add 8 custom metric instruments using OTel proxy meter 2026-04-15 00:10:49 +03:00
gnezim 2dc1a1f194 Add OTel server/browser initializers with getMeter/getTracer accessors 2026-04-15 00:10:21 +03:00
gnezim ddedddd15d Add OpenTelemetry and web-vitals dependencies for metrics pipeline 2026-04-15 00:07:38 +03:00
gnezim 8e7adef5e3 Add implementation plans for 1G-metrics, 1G-analytics, and 1F-seo 2026-04-15 00:05:48 +03:00
gnezim dfa9e0283d Add LoggerProvider React context with useLogger hook 2026-04-14 23:57:56 +03:00
gnezim 498d049acd Add createRootLogger factory with transport selection by env 2026-04-14 23:57:30 +03:00
gnezim 9a1b4bace1 Add JsonLinesHttpTransport with batching, backpressure, and redaction 2026-04-14 23:55:12 +03:00
gnezim 98414ee4af Add dev-mode ConsoleTransport for logger 2026-04-14 23:54:01 +03:00
gnezim 1a40686490 Add LoggerImpl with transport dispatch and child context propagation 2026-04-14 23:53:13 +03:00
gnezim c095fad7ad Add Phase 1G-logger runtime implementation plan
6 tasks: TDD LoggerImpl, ConsoleTransport, JsonLinesHttpTransport
with batching/backpressure/redaction, createRootLogger factory with
env-based transport selection, LoggerProvider React context.
2026-04-14 23:51:04 +03:00
gnezim 7992d2705a Add ApiClient React context provider with useApiClient hook 2026-04-14 23:46:20 +03:00
gnezim 04c5432aef Add CachedApiClient decorator layered above ApiClient 2026-04-14 23:45:56 +03:00
gnezim 65c8c8b55f Add ApiClient with retry, timeout, and error mapping 2026-04-14 23:42:22 +03:00
gnezim cb5e5b0106 Add three cache types (request-scoped, client TTL, server byte-capped LRU) 2026-04-14 23:39:35 +03:00
gnezim fd62d6f123 Add circuit breaker with closed/open/half-open state machine 2026-04-14 23:30:53 +03:00
gnezim 6ef9ce4ed7 Add typed API error classes (ApiHttpError, ApiTimeoutError, ApiNetworkError) 2026-04-14 23:30:00 +03:00
gnezim 454fb0bdb9 Add Phase 1D API client implementation plan
7 tasks: TDD error classes, circuit breaker, three cache types
(request-scoped, client TTL, server byte-capped LRU via lru-cache),
ApiClient with retry+timeout, CachedApiClient decorator, provider.
2026-04-14 23:27:50 +03:00
gnezim 7103b9ffb1 Add I18nProvider with useTranslation re-export for feature code 2026-04-14 23:21:25 +03:00
gnezim a8c648c818 Add SSR↔client i18n hydration serializer 2026-04-14 23:21:01 +03:00
gnezim 1fd2788c35 Add createI18nInstance factory with ICU and resource backend 2026-04-14 23:18:22 +03:00
gnezim bf3087d45e Add locale resolver with Language type and URL prefix parsing 2026-04-14 23:17:08 +03:00
gnezim 33d4c94298 Install i18n deps and port 9 locale JSON files from Angular 2026-04-14 23:15:00 +03:00
gnezim 3067f8f111 Add Phase 1C i18n runtime implementation plan
6 tasks: port 9 locale JSONs, TDD resolver with Language type, TDD
createI18nInstance factory with ICU, TDD SSR↔client hydration
serializer, I18nProvider with useTranslation re-export.
2026-04-14 23:13:35 +03:00
gnezim 050f311a60 Add fabricated violation tests for restricted import rules 2026-04-14 23:07:18 +03:00
gnezim 8459e1661b Add fabricated violation tests for boundary rules
Fix eslint.config.js: add import/resolver settings so boundaries plugin
can resolve .ts/.tsx imports, and merge no-restricted-imports blocks to
prevent ESLint 9 flat config from overriding earlier rule definitions.
2026-04-14 23:06:57 +03:00
gnezim e9640b17fd Add no-restricted-imports for OTel SDK, react-i18next, SignalR SSR, localStorage 2026-04-14 22:47:53 +03:00
gnezim f1acf7827d Add eslint-plugin-boundaries with layered dependency rules 2026-04-14 22:47:26 +03:00
gnezim 7bbda35041 Add Phase 1A-3 ESLint boundaries implementation plan
5 tasks: install eslint-plugin-boundaries, configure layered dependency
rules matching design spec §1.2, add no-restricted-imports for OTel
SDK, react-i18next, SignalR SSR, localStorage. Each rule has a
fabricated-violation test asserting it fires.
2026-04-14 22:46:12 +03:00
gnezim 826758f03d Add typed loadRemoteModule wrapper around MF runtime 2026-04-14 22:40:49 +03:00
gnezim 604ed75498 Wire build:standalone/build:remote/dev to Modern.js CLI 2026-04-14 22:37:56 +03:00
gnezim 4fd7ae3f94 Add modern.config.ts with standalone/remote BUILD_TARGET branching 2026-04-14 22:37:12 +03:00
gnezim 5881f9ed72 Declare MF 2.0 config with 4 feature exposes and React singleton 2026-04-14 22:37:07 +03:00
gnezim 2bdfde43f6 Seed MF expose stubs and host-entry for 4 features 2026-04-14 22:35:19 +03:00
gnezim c41089e5c8 Add stub root route for standalone build (replaced by 1F-layout) 2026-04-14 22:34:41 +03:00
gnezim 4eede82961 Install Modern.js, MF 2.0 plugin, and React 18 at pinned versions 2026-04-14 22:34:14 +03:00
gnezim 2eda0a675e Land Modern.js + MF 2.0 spike report with pinned versions 2026-04-14 22:31:07 +03:00
gnezim e200256fdc Add Phase 1A-2 MF 2.0 + dual build targets implementation plan
10 tasks led by a timeboxed Modern.js + MF 2.0 spike that pins
versions and validates the dual-build approach before committing to
it. Covers module-federation.config.ts with 4 feature exposes, React
18 singleton, BUILD_TARGET branching in modern.config.ts, and a
typed loadRemoteModule wrapper around @module-federation/enhanced
runtime for consuming other customer remotes in Phase 2+.
2026-04-14 22:18:17 +03:00
gnezim 5b67aa25fa Correct 1A-1 plan for 4 bugs found during execution
- Task 3: dotfile placeholder (src/.typecheck-placeholder.ts) is ignored
  by TypeScript's glob; use non-dotfile name.
- Task 4: replace legacy .eslintrc.cjs with ESLint 9 flat config.
  ESLint 9 requires flat config natively; the legacy format triggers
  deprecation warnings and needs a FlatCompat shim.
- Task 9: env impl cannot unconditionally assign undefined to optional
  fields under exactOptionalPropertyTypes; build base object then
  conditionally assign the three optional URL/header fields.
- Task 12 Step 5: defer coverage check to 1B, which owns the
  @vitest/coverage-v8 dep per the master plan shared-files table.
2026-04-14 22:12:26 +03:00
gnezim 9d5898e8d5 Document frozen-barrel rule and A1 rename-pass rework plan 2026-04-14 22:07:58 +03:00
gnezim 0b9ea74617 Seed frozen public barrels for 4 features + UI adapter 2026-04-14 22:07:26 +03:00
gnezim 9c29091b58 Add Zod-validated getEnv() reader with module-level cache 2026-04-14 22:05:36 +03:00