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