Skip to content

feat!: plan 101 wave 6b (2/2): x exercise, the 21st gate step, both apps unpinned - #989

Merged
sebyx07 merged 4 commits into
mainfrom
feat/plan-101-wave-6b-2
Nov 6, 2026
Merged

sebyx07 merged 4 commits into
mainfrom
feat/plan-101-wave-6b-2

Conversation

@sebyx07

@sebyx07 sebyx07 commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Part 2 of 2, stacked on #988. I'll retarget it to main once #988 merges.

What lands

  • x exercise [<name>] [--seed n] [--json]: every registered action, query and job runs once on a scratch migrated database, and the report is written to .x/exercise.json.
    • It always runs as a test process, pinned before the app loads. A deploy environment is refused (X_CONTRACT_EXERCISE_ENVIRONMENT).
    • Pinning before the load makes an app's store, like social's embedded one, read the seeded scratch database.
    • When the app has no seal key, it uses bun test's throwaway one. CI sets none.
  • x verify has 21 steps: exercise runs after job, as a child process.
    • x db seed --generate writes rows for every registered entity from the declarations alone.
    • The static tenant check raises X_ENTITY_TENANT_UNDECLARED.
  • x new: writes apps/web/exercise.ts and its unit test (218 files, 185 with --no-example), and names exercise in x.verify.json.
  • Both tracked apps: each has overrides in apps/web/exercise.ts and 0 unreached primitives. The expectedRed tables are now {}, and both apps list exercise in x.verify.json.
    • dummy: 40 reached, 20 off, each with its reason.
    • social: 8 reached, 6 off.
  • Docs: 21 steps everywhere, CHANGELOG feat(frontend): the design system renders, islands boot, admin pages register, one row per id #91–feat(tier2-5): a real rate limit, guards an app can write, and two cuts #93, Upgrading, wiki, package docs, status.yml.

Gate

The full tree passed bun run verify locally: 21 steps, every one green except the same two psql pooler tests. The reference-app gate passed social 21/21 and dummy 20/21.

  • dummy's one red is offline-like.e2e, which fails on main the same way with this machine's Playwright Chromium.
  • Scaffold check: a fresh x new app passes x exercise with 5 of 5 reached.

🤖 Generated with Claude Code

@developerz-ai

developerz-ai Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Fix failing CI on #989

Queued — waiting for a free box.


🤖 developerz.ai, an automated agent, not a human — developerz-ai[bot]

Base automatically changed from feat/plan-101-wave-6b to main November 6, 2026 02:40
…pps unpinned

- `x exercise [<name>] [--seed n] [--json]`: every action, query and job once on a scratch
  migrated database, as a test process pinned before the app loads, with the throwaway seal key
  when the app has none; `.x/exercise.json`. Static tenant check (X_ENTITY_TENANT_UNDECLARED).
- `x verify` runs 21 steps: `exercise` after `job`, as a child. `x db seed --generate`.
- `x new` writes apps/web/exercise.ts + its unit test (218 files, 185 with --no-example) and
  names `exercise` in x.verify.json.
- Both tracked apps: apps/web/exercise.ts overrides, 0 unreached, `exercise` unpinned
  (expectedRed {}) and in each x.verify.json.
- Docs: 21 steps everywhere, CHANGELOG #91–#93, Upgrading, wiki, package docs, status.yml.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sebyx07
sebyx07 force-pushed the feat/plan-101-wave-6b-2 branch from 3d5eb24 to 50174f6 Compare November 6, 2026 02:41
sebyx07 and others added 3 commits November 5, 2026 21:54
…its two password actions off

Scaffold smoke went red after every generator: createSession, confirmSession and destroySession
answered X_NO_REQUEST. The pass handed invoke a bare Ctx, and invoke's actor swap rebuilds a plain
child with no request fields. The pass now builds a request context with the actor on it
(withExerciseRequest), so destroySession is reached. createSession needs a real password and
confirmSession a held challenge: x g sign-in writes an off entry for each into apps/web/exercise.ts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…path

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sebyx07
sebyx07 merged commit ec0a9af into main Nov 6, 2026
33 of 37 checks passed
@sebyx07
sebyx07 deleted the feat/plan-101-wave-6b-2 branch November 6, 2026 03:45
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