Commit Graph

96 Commits

Author SHA1 Message Date
gnezim fc03c08278 Add Phase 2A UI adapter implementation plan
Covers data model types, datetime utilities, dictionary hook,
and flight display components for the online board feature.
2026-04-15 07:52:23 +03:00
gnezim bd9cc92766 Add Phase 2 Online Board master plan with 8 sub-plans 2026-04-15 07:46:33 +03:00
gnezim 7db39cbeec Fix type errors and lint warnings in health and shutdown modules
Use proper type-safe interfaces instead of Node.js http types for the
health handler, and avoid vi.spyOn type issues in shutdown tests by
directly intercepting process.on.
2026-04-15 00:59:59 +03:00
gnezim 56cc9e1af2 Add operational runbook covering incident response and failure playbooks
Covers incident decision tree, canary rollout, rollback procedures,
health-check interpretation, log query cookbook, and 6 known-failure
playbooks per master plan requirements.
2026-04-15 00:56:24 +03:00
gnezim ca6ae0eea2 Add graceful shutdown handler with TDD
registerGracefulShutdown drains in-flight requests for 30s on SIGTERM,
flushes logs, then exits cleanly. Force-exits with code 1 on timeout.
2026-04-15 00:55:09 +03:00
gnezim f0e540aa3f Add health endpoint factory with TDD
healthMiddleware returns 200 if upstream was reachable within 60s, 503 otherwise.
Exports a factory function — registration in modern.config.ts is a future step.
2026-04-15 00:55:08 +03:00
gnezim 8c8b8b985e Add deploy workflow template for CI/CD pipeline
Stub workflow triggered on push to main: build, test, Docker image build.
Registry URLs and deployment targets are placeholders pending customer config.
2026-04-15 00:53:42 +03:00
gnezim 9b1fb7388f Add Dockerfile.react and Dockerfile.remote for React build targets
Standalone SSR image (Node 24 slim) and remote MF static image (nginx alpine),
coexisting with legacy ASP.NET Dockerfile.
2026-04-15 00:53:36 +03:00
gnezim 0f4180de14 Add Phase 1I (Deploy pipeline + runbook) implementation plan 2026-04-15 00:53:10 +03:00
gnezim 59d5a7314e Fix lint: exempt storage test from no-restricted-globals, remove non-null assertion 2026-04-15 00:50:46 +03:00
gnezim 5d041cc4c6 Implement security headers middleware for HSTS, COOP, CORP, and more 2026-04-15 00:49:07 +03:00
gnezim 4f93d0a9bf Implement SSR stream nonce injection as workaround for React #24883 2026-04-15 00:48:54 +03:00
gnezim 10b97339bf Implement CSP middleware with per-request nonce and React context 2026-04-15 00:48:02 +03:00
gnezim 2742568a85 Implement safe storage abstraction with Zod validation and namespace prefix 2026-04-15 00:47:22 +03:00
gnezim 726db20f89 Add Phase 1H security hardening implementation plan 2026-04-15 00:46:29 +03:00
gnezim ebe6c38713 Fix lint warnings in SignalR wrapper and hook tests
Remove unused imports, eliminate non-null assertions,
drop invalid eslint-disable comment for missing rule.
2026-04-15 00:44:31 +03:00
gnezim 4c52bb4032 Add useLiveFlights SSR-safe hook with tests
Generic hook wrapping SignalR subscription with SSR guard
(typeof window check). Includes tests for subscribe, data
updates, cleanup, and SSR path.
2026-04-15 00:42:51 +03:00
gnezim 7052052742 Add SignalRConnection ref-counted wrapper with tests
Reference-counted connection management with grace period,
dynamic import to keep @microsoft/signalr out of SSR bundle,
and singleton sharing via getSharedConnection.
2026-04-15 00:41:28 +03:00
gnezim b6a007d3b6 Add @microsoft/signalr dependency for live flight data 2026-04-15 00:39:31 +03:00
gnezim b431010241 Add Phase 1E SignalR wrapper implementation plan 2026-04-15 00:39:14 +03:00
gnezim b6da51fce5 Add smoke route exercising logger, i18n, and locale display 2026-04-15 00:36:54 +03:00
gnezim 6d3e3ae986 Add error pages for 404, 500, 503 codes 2026-04-15 00:35:05 +03:00
gnezim 858b8e1d1f Wire root layout provider stack and locale-scoped layout with i18n
Root layout wraps children with LoggerProvider, ApiClientProvider, and
ErrorBoundary. Locale layout validates lang param against 9 supported
languages and provides a request-scoped I18nProvider.
2026-04-15 00:34:16 +03:00
gnezim fc57556010 Add errorToResponse mapper with TDD tests covering all mapping rules 2026-04-15 00:31:37 +03:00
gnezim 2eb118cb8b Add ErrorBoundary class component with retry support 2026-04-15 00:30:34 +03:00
gnezim 1409df458b Add 1F-layout implementation plan for root layout, error routes, smoke route 2026-04-15 00:29:46 +03:00
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