Skip to content

Resolve #2890: improve the React typegen testing loop - #2900

Merged
ayden94 merged 25 commits into
mainfrom
issue-2890-typegen-testing-loop
Aug 4, 2026
Merged

Resolve #2890: improve the React typegen testing loop#2900
ayden94 merged 25 commits into
mainfrom
issue-2890-typegen-testing-loop

Conversation

@ayden94

@ayden94 ayden94 commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Add deterministic check and watch workflows for React page type generation, atomic versioned artifacts, and a canonical consumer testing recipe without introducing a source scanner or client route matcher.

Linked context: Closes #2890

Changes

  • add non-mutating fluo typegen --check behavior with stable results and exit semantics
  • add a bounded typegen watch lifecycle with coalescing, shutdown, failure recovery, and last-valid artifact preservation
  • make generated artifacts versioned and atomic while retaining HandlerDescriptor/createReactPageCatalog(...) ownership
  • expose stable CLI automation contracts and help output
  • add request, hydration, generated-route, and JavaScript-disabled consumer testing guidance and fixtures without adding a React-specific testing helper
  • synchronize CLI, React, Testing, toolchain, testing-guide, example, and context documentation in English and Korean
  • add minor changesets for @fluojs/cli and @fluojs/react

Testing

  • pnpm build && pnpm typecheck
  • isolated pnpm verify:release-readiness
  • focused Vitest: 7 files, 36 tests
  • pnpm verify:public-export-tsdoc
  • pnpm docs:sync-check
  • pnpm verify:platform-consistency-governance
  • pnpm verify:changeset-release-lane -- --lane=stable --base-ref=a7cffb16
  • React example Playwright: 2 tests
  • changed-file Biome, LSP diagnostics, and git diff --check

The optional no-excuse tool could not run because it requires typescript/unstable/* APIs unavailable in the repository's typescript@6.0.2; canonical build, typecheck, tests, docs, governance, public TSDoc, and release-readiness checks passed.

Release impact

  • This PR has consumer-visible release impact and includes a changeset.
  • This PR has no consumer-visible release impact.

Public export documentation

  • Changed public exports include a source-level summary.
  • Changed exported functions document matching @param / @returns tags where applicable.
  • Source @example blocks and README scenario examples still play complementary roles.

Behavioral contract

  • No documented behavioral contracts were removed without migration notes.
  • New behavioral contracts are documented in the affected package README.
  • Intentional limitations are explicitly stated (not silently removed).
  • Runtime invariants are covered by regression tests.

Generation remains based on bootstrapped HTTP descriptors and the React page catalog. Check/watch workflows do not scan source routes or create a runtime matcher.

Platform consistency governance (SSOT)

  • SSOT English/Korean mirror structure remains synchronized for changed governance docs.
  • If platform contract docs changed, companion updates include discoverability/docs index, tooling or CI enforcement, and regression-test evidence.
  • Any package README alignment/conformance claims are backed by the applicable platform harness tests, such as createPlatformConformanceHarness(...) for platform component contracts or createHttpAdapterPortabilityHarness(...) for HTTP adapter portability contracts.

No platform adapter contract changes. EN/KO toolchain and testing contracts remain synchronized and are backed by focused process and browser tests.

@ayden94
ayden94 merged commit ca5fb8d into main Aug 4, 2026
10 checks passed
@ayden94
ayden94 deleted the issue-2890-typegen-testing-loop branch August 4, 2026 03:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[React 0.6.0][Phase 6-3] Improve the typegen and testing development loop

1 participant