Skip to content

feat: e2e UI review - #170

Merged
patrickleet merged 10 commits into
tasks--graphql-qs-epicfrom
feat/e2e-ui-home-continue
Aug 2, 2026
Merged

feat: e2e UI review#170
patrickleet merged 10 commits into
tasks--graphql-qs-epicfrom
feat/e2e-ui-home-continue

Conversation

@patrickleet

Copy link
Copy Markdown
Collaborator

No description provided.

Expand How-it's-built overlays with ReadModel structs, aggregate shapes,
domain event samples, and projection GraphQL mutations. Replace the home
system-flow monospace list with a full-width circular dotted diagram.
Show Todos and Blob in nav for guests; requireAuth on page loads so
client-side navigation redirects to /login?callbackUrl=… and returns after
sign-in. Remove the standalone /public demo (lobby chat already covers
anonymous). Honor callbackUrl on login/signup when already signed in;
hero copy mentions realtime applications.
Ship one mutation IR with two proofs: Eventual (async projector +
delta/expects) and Atomic (handler row + records). Rename wire/protocol
states and APIs from causal/projected to eventual/atomic with no aliases.

Direct placements export .applies previews for client optimism while
still sealing from the atomic response. Command ledger migrations use
atomic state (0004 + CHECK updates).

Fix chat list optimism regressions: belongs_to joins are GraphQL/client
nullable so missing author edges materialize, and full first-page offset
indexes accept local optimistic inserts (re-sort + truncate).

Regenerate e2e-ui clients, demos/docs, and JS tests for the new contract.
Add a shared hold-mutation helper and optimism.user.spec that requires
chat post (including full first page), todos create/complete, and blob
move continuity to paint before a delayed GraphQL response.

Offline optimism-artifacts.test.mjs locks preview IR, atomic
directProjection, nullable ChatMessages.author, and local first-page
insert policy so gen/compiler regressions fail without a browser.

Todos create under the delayed-route order test now asserts list paint
before the wire returns.
Wire blob.move like todos/chat: command input carries the optimistic
board outcome (map_json, score, status, …) and state_preview maps those
fields into the client optimistic layer. A pure TypeScript twin of
blob_domain::simulate_move fills the input; the handler still recomputes
authority from game_id + direction only.

Regenerate clients (full upsert preview), unit-test simulate_move parity,
and require paint-before-wire on the player cell in optimism.user.spec.
No back-compat renames. Call sites and docs use .applies. Wire
vocabulary test expects eventual/atomic only (rejects causal/projected).
Capture the accepted DX direction: same packages re-cut as monolith or
microservices; Eventual projectors may split; Atomic seals stay collocated.
Runtime pairs persistence, locks, and bus; process role selects outbox,
consumer, and GraphQL. Implementation order and e2e-ui collapse targets
included. Linked from usage skill and e2e-ui README.
@coderabbitai

coderabbitai Bot commented Aug 2, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a40776c4-dd89-4c53-8b9c-e97d38235f65

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Update generated-commands fixture, dctl client_compiler/cli_manifest
expectations, GraphQL protocol tests, and e2e-ui behavioral suite to the
eventual/atomic wire vocabulary (no causal/projected aliases).
Preserve applied migration history, register migration 4, complete the Eventual/Atomic rename, refresh generated contracts, and repair the affected e2e behavior.

Resolves [[pr-170-eventual-atomic-rename-and-migration-failur]]
@patrickleet
patrickleet merged commit 1121690 into tasks--graphql-qs-epic Aug 2, 2026
20 checks passed
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.

1 participant