Skip to content

fix: page_by_*_in order default + README first-screen restructure - #139

Merged
allmonday merged 2 commits into
masterfrom
feat/mcp-er-diagram-and-selection-validation
Aug 19, 2026
Merged

fix: page_by_*_in order default + README first-screen restructure#139
allmonday merged 2 commits into
masterfrom
feat/mcp-er-diagram-and-selection-validation

Conversation

@allmonday

Copy link
Copy Markdown
Collaborator

Follow-ups on top of #138 (that PR closed before these two commits landed).

fix(federation): default_order flows into page_by_*_in signature and body

Root cause (note 37): the synthesized page_by_<key>_in root claimed
order was optional in SDL, but the function body hard-read
kwargs["order"]KeyError for any SDL-direct caller that omits it.
The mounter always sent order explicitly, so federation e2e tests never
exercised the omission path.

  • body: kwargs.get + is None fallback to page_config.default_order
    (is None, not truthiness — invalid strings still hit the
    Unknown-order-profile check; GraphQL null lands as None too)
  • __signature__: order Parameter carries default=, matching
    direction/limit/offset
  • regression test: SDL-direct query omitting order returns the package
    sorted by default_order (crashed before)

SDL output is unchanged; rendering parameter defaults into SDL is a
separate follow-up.

docs(readme): first-screen restructure

Feedback: readers could not tell what the library was from the README.
First screen now leads with the category anchor ("Python library for
SQLModel applications"), an input→output slogan, the
"You declare → nexusx generates" table moved up from line 235, and the
full Quick start folded into <details>; positioning slogans moved to
"Three ideas".

🤖 Generated with Claude Code

allmonday and others added 2 commits August 19, 2026 21:00
… front

First screen now answers "what is this" in reader-known terms: Python
library for SQLModel apps, input→output slogan, the "You declare →
nexusx generates" table moved up from line 235, and a "What it removes"
contrast against typical per-transport re-declaration.

Reorder: Why nexusx (five-stage narrative + mermaid) moved before Quick
start; Quick start shows entities + handler only, full runnable file
folded into <details>. The old slogan and semantic-level isomorphism
lines moved to the "Three ideas" intro where they land after context.

Feedback-driven: readers could not tell what the library was for.

Co-Authored-By: Claude <noreply@anthropic.com>
…body

The synthesized page_by_<key>_in root claimed ``order`` was optional in
SDL (enum types render without ``!``) but the function body hard-read
kwargs["order"] — KeyError for any SDL-direct caller that omits it. The
mounter always sent ``order`` explicitly (path B), so federation e2e
tests never exercised the omission path.

- body: kwargs.get + is None fallback to page_config.default_order
  (is None, not truthiness, keeps invalid strings hitting the
  Unknown-order-profile check; GraphQL null lands as None too)
- __signature__: order Parameter now carries default= so introspection
  sees the real contract, matching direction/limit/offset

Regression test: SDL-direct query omitting order returns the package
sorted by default_order — the exact path that crashed before.

Note: SDL output is unchanged by this commit (enum args render without
"!" either way); rendering parameter defaults into SDL is a separate
follow-up.

Co-Authored-By: Claude <noreply@anthropic.com>
@allmonday
allmonday merged commit cc3bec7 into master Aug 19, 2026
6 checks passed
allmonday added a commit that referenced this pull request Aug 20, 2026
Version bump for PR #138 (pre-execution selection validation, resolver
error null-propagation) and PR #139 (page_by_*_in order default fallback).
Updates docs/changelog.md, pyproject.toml, uv.lock.

Co-Authored-By: Claude <noreply@anthropic.com>
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