Commit Graph

32 Commits

Author SHA1 Message Date
gnezim a072cd3bd2 Add schedule route pages and feature components (Phase 3C)
Four Modern.js routes: start page, one-way search, round-trip search,
and catch-all multi-flight details. Components wire hooks for data
fetching and render flight results with calendar navigation.
2026-04-15 09:26:42 +03:00
gnezim 7ad61554cb Add schedule API functions and React hooks (Phase 3B)
POST schedule/1 for search, GET schedule/details with indexed query
params, GET days/.../schedule/v1 for calendar. Three hooks wrap the
API functions with loading/error state management.
2026-04-15 09:22:50 +03:00
gnezim f7813b04b1 Add Phase 3 (Schedule) master plan and 3A sub-plan 2026-04-15 09:18:16 +03:00
gnezim 728193e8b0 Add Phase 2H integration test plan
Defines scope, test inventory, mocking strategy, and exit criteria
for component-level integration tests of the Online Board feature.
2026-04-15 08:55:02 +03:00
gnezim 1e9523088b Add Phase 2G parity harness implementation plan
Defines tasks for URL parity harness (table-driven + fast-check fuzz),
SEO parity harness, and Online Board registration against both.
2026-04-15 08:40:59 +03:00
gnezim c68d53dfa6 Add Phase 2F SEO builders with EN locale translations
SEO builder pure functions for all 6 Online Board route types,
each returning SeoHeadProps with title, description, canonical,
hreflang, OG, and Twitter card. Populated empty EN locale SEO
keys with English translations matching the Russian pattern.
2026-04-15 08:32:24 +03:00
gnezim 98971cab26 Add Phase 2E routes implementation plan
Covers 6 route pages, 3 feature components, barrel updates, and MF expose.
2026-04-15 08:18:12 +03:00
gnezim 3bed4f9173 Add Phase 2D SignalR wiring implementation plan 2026-04-15 08:12:08 +03:00
gnezim 8218dffcd9 Add Phase 2C: Online Board API functions and React hooks
Pure API functions (searchFlights, getFlightDetails, getCalendarDays)
with dependency-injected ApiClient, plus three thin React hooks
(useOnlineBoard, useFlightDetails, useCalendarDays) for search,
details, and calendar pages. 17 TDD tests for API layer covering
URL construction, response mapping, and error handling.
2026-04-15 08:09:53 +03:00
gnezim 73d724f76a Add Phase 2B URL serializer implementation plan
TDD plan for porting Angular OnlineBoardUrlBuilder/Parser to pure
TypeScript functions covering all 6 URL types (start, flight, departure,
arrival, route, details) with roundtrip and edge case tests.
2026-04-15 08:00:12 +03:00
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 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 0f4180de14 Add Phase 1I (Deploy pipeline + runbook) implementation plan 2026-04-15 00:53:10 +03:00
gnezim 726db20f89 Add Phase 1H security hardening implementation plan 2026-04-15 00:46:29 +03:00
gnezim b431010241 Add Phase 1E SignalR wrapper implementation plan 2026-04-15 00:39:14 +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 8e7adef5e3 Add implementation plans for 1G-metrics, 1G-analytics, and 1F-seo 2026-04-15 00:05:48 +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 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 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 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 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 59a94b50b9 Add Phase 1A-1 project skeleton implementation plan
TDD-granular plan with 12 tasks covering Node 24 pinning, TypeScript
strict config, baseline ESLint, Vitest setup, type-only seeds for
HostContract plan-cycle resolution, Zod-validated env reader, frozen
feature/UI barrels, and the A1 rename-pass rework stub.
2026-04-14 21:42:49 +03:00
gnezim f309f62553 Swap server LRU cache to lru-cache v10 for byte-based cap
@isaacs/ttlcache has no byte cap (only count). A 100MB hard limit needs
lru-cache v10's maxSize + sizeCalculation. Aligns design spec with
Phase 1 master plan contract revision.
2026-04-14 21:37:43 +03:00
gnezim 03bab8d7f8 Revise Phase 1 master plan with 25 review decisions
Scope: defer 1J parity harnesses to Phase 2 (design against real
feature); split 1A, 1F, 1G into smaller sub-plans; split Phase 0 gate
into hard blockers vs stub-allowed; add A9 for Node 24 availability.

Contracts: fix three-cache model (lru-cache v10 for byte-capped server
LRU), add undici RetryAgent retry config, generic useLiveFlights, CSP
nonce stream transform workaround for React #24883, type-only Logger
extraction to break HostContract plan cycle, error-to-HTTP mapper,
RemoteLoader for consuming other customer remotes, JsonLdRenderer.

Requirements: add runbook, responsive baseline assertions, A4-trigger
log format swap task, rename-pass rework rule, analytics stub sink.
2026-04-14 21:37:35 +03:00
gnezim 4ba4159723 Add Phase 1 Foundation MASTER plan
Index of 10 sub-plans (1A-1J) with dependency graph, exported contracts
between sub-plans, shared-file ownership table, spec-coverage matrix,
and global exit gate. Each sub-plan gets its own TDD-granular plan
document written on demand via the writing-plans skill.
2026-04-14 20:03:44 +03:00
gnezim 013fad6236 Add Phase 0 (Preflight) implementation plan
16 tasks covering URL corpus extraction, SEO + hreflang + VRT baseline
capture from Angular prod, PrimeNG/SCSS/i18n inventories, and the
customer confirmation checklist. Phase 0 is discovery-only; no
production change. Output is the fixture + inventory set Phase 1
sub-plans consume.
2026-04-14 19:47:54 +03:00
gnezim 75dbec0737 Add design spec for Angular-to-React MF remote rewrite
Captures the dual-mode Modern.js architecture, strangler-fig phasing,
parity contracts, and customer-requirement mapping so implementation
plans can be derived per phase without re-litigating architectural
decisions.
2026-04-14 19:35:31 +03:00