Commit Graph

34 Commits

Author SHA1 Message Date
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
gnezim 23db51997b Add HostContract interface per design spec §2.4 2026-04-14 22:03:14 +03:00
gnezim 8a8075972d Seed type-only AnalyticsProviders for Env dependency 2026-04-14 22:02:56 +03:00
gnezim 9acccffe8c Seed type-only Logger surface for HostContract dependency 2026-04-14 22:02:41 +03:00
gnezim 9c5f834334 Migrate ESLint to flat config for v9 compatibility
Replaces the FlatCompat shim (which loaded .eslintrc.cjs via @eslint/eslintrc
and emitted deprecation warnings) with a native ESLint 9 flat config. Adds
typescript-eslint meta-package as the flat-config entrypoint and pins
@eslint/js to v9 to satisfy the eslint@9 peer range. Rule set is preserved
verbatim from the Phase 1A-1 plan (Task 4).
2026-04-14 22:01:10 +03:00
gnezim f7d367a315 Configure Vitest with @/ alias and v8 coverage 2026-04-14 21:57:35 +03:00
gnezim 4d41b46975 Add baseline ESLint config (no boundary rules yet) 2026-04-14 21:56:47 +03:00
gnezim 765174b674 Add strict TypeScript config with @/ and @phase0/ aliases 2026-04-14 21:55:18 +03:00
gnezim 7c99ab069d Tighten Node engine pin, bump pnpm, add pnpm hygiene to gitignore
Align engines.node with the .nvmrc 24.2.0 pin so npm/pnpm warn on
mismatched local toolchains, move packageManager to the current
pnpm 9.15.3 patch, and ignore pnpm's local store and debug log so
stray artefacts never get committed.
2026-04-14 21:52:29 +03:00
gnezim 5cce054f36 Upgrade vitest to v3 to patch transitive esbuild CVE
Vitest 2 pulled Vite 5 + esbuild 0.21 (GHSA-67mh-4wv8-2f99). Bumping
vitest/@vitest/ui to v3 and adding vite ^6 as a direct dev dep forces
peer resolution onto Vite 6 + esbuild 0.25, which also clears the Vite
path-traversal advisory (GHSA-4w7w-66w2-5vf9). pnpm audit is now clean.
2026-04-14 21:52:04 +03:00
gnezim 064436527a Install TypeScript, Vitest, ESLint, Zod base toolchain 2026-04-14 21:45:47 +03:00
gnezim 00d1c9827c Pin Node 24 and seed root package.json for Phase 1A-1 2026-04-14 21:45:15 +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 f41656ce5f Allow autonomous commits in Claude Code workflow
Review and planning iterations commit frequently; asking for permission
on each commit added friction without safety benefit. Destructive git
operations still require explicit approval.
2026-04-14 21:37:02 +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
gnezim b4a41cc801 Add .nvmrc file and update package.json with main, keywords, license, and description fields 2026-04-14 18:21:35 +03:00
gnezim 2342f2e66e Initial commit: Aeroflot Flights Web Angular 12 application 2026-04-03 10:10:52 +03:00