Repository navigation
fix: close adopter defects for 1.2.0 across Python routers, filter query strings, and docs-site assets - #507
Merged
Merged
Conversation
…setBase, and verify/entity doc corrections Python generated routers pass mypy --strict (Protocol list alias, Response-typed delete, typed M:N rows); buildFilterQs sends withCount=1; metaobjects agent-docs help and flags match its redirect; docsSiteFile takes assetBase; per-port verify tables, the README capability matrix and the C#/Python entity samples are corrected.
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md # README.md # server/python/pyproject.toml # server/python/uv.lock
…te routes ignore the field Since #484 the generated create, PATCH and PUT routes drop a value sent for a @formExclude field and reads are unchanged; the description said only that the field is omitted from generated forms. Same sentence in the spec, the TypeScript, Python and C# registry sources, expected-registry.json, the metamodel-docs fixture and the reference site (regenerated).
…rding in field-types.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #485, Fixes #486, Fixes #487, Fixes #489, Fixes #491, Fixes #492, Fixes #493, Fixes #494
What Changed
mypy --strict. The repositoryProtocoluses abuiltins.listalias so itslistmethod no longer shadows the builtin, delete handlers return a 204Response, and M:N traversal handlers bind rows to a typed local. A new test runsmypy --strictover routers generated from the fitness corpus.metaobjects agent-docshelp now says the command only points tonpx meta agent-docs --server pythonand exits 1; its three ignored flags are hidden but still accepted.buildFilterQs({ withCount: true })now sendswithCount=1, which the server reads.false/0send nothing.docsSiteFile({ assetBase })andgenerateSite({ assetBase })let the page chrome load daisyUI, Tailwind, Mermaid and svg-pan-zoom from a base the caller chooses; the default jsDelivr URL and default output are unchanged. The link checker skips root-relative hrefs.dotnet meta verify). The README capability matrix splits DB-drift verify from codegen-drift verify. Entity docs say C# entities are classes and Python entities are Pydantic models. The@formExcludedescription now states that generated create, PATCH and PUT routes ignore the field, across the spec, port registries,expected-registry.json, and the regenerated fixtures and reference site.Testing: which lanes ran where
Run locally before the gate (each green unless noted):
server/python,uv run --extra integration): the full suite apart fromtests/integration, plus the generated-lane integration tests (109 passed), the newmypy --strictrouter test, and the registry conformance test. Two tests fail the same way on an untouchedmain(test_verify_codegen_bare_defaults_to_codegen,test_a_model_with_no_requirement_and_no_generators_selected_still_exits_0_and_says_nothing_new); they are not touched here.runtime-webfilter-qstests,docs-sitetests (59, golden unchanged), thecligen-docs-sitetest, and the metadata registry conformance and completeness tests.@formExcludedescription). No other C# or Java suite was run; this PR changes no C# or Java code.scripts/ci-local.sh --quickwas started but cut off by a local timeout at its mutation step.Run by the no-mistakes gate:
scripts/ci-local.sh --only ts-fast --only ts-unit --strict-toolchains(build and typecheck, TypeScript conformance, TypeScript unit suites, completeness mutation gate), which passed. The CI step was skipped (local CI mode), so no hosted checks ran on this PR.Live validation was inconclusive. The gate's analyzer never drove the product live (its evidence payload was rejected three times), and the test gate was approved on that basis by the maintainer. Nothing here claims a live pass.
Gate runs: 3. Run 1 failed in the test step and run 2 in the rebase step because agent and build processes were killed on an overloaded host; neither failure came from the code. Run 3 is the one that passed.
Validation
Risk Assessment
✅ Low: Changes are bounded: Python router annotation and 204 fixes, a buildFilterQs wire fix, an optional docs-site assetBase that leaves default output byte-identical, and doc corrections. The per-port verify claims match the C#, Java, Python and TypeScript sources.
Testing
The prior submission was a placeholder with no tests, scenarios, or evidence. Nothing was driven live, so no scenario is marked pass or fail. Live validation is required before this change can be judged.
Pipeline
Updates from git push no-mistakes
✅ **Intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
🔧 **Review** - 1 issue found → auto-fixed (2) ✅
examples/showcase/generated/python/subscriber_router.py:261- Router generator changed (builtin_listalias import,-> Responsedelete handler returning a 204 Response,Responseimport) but the committed generated Python showcase was not regenerated.examples/showcase/generated/python/subscriber_router.pystill hasfrom typing import ...withoutfrom builtins import list as _list,filters: list[FilterPredicate]/-> list[Any]at lines 119-121,) -> None:ondelete_subscriberat line 261, andfrom fastapi.responses import JSONResponseat line 20.scripts/ci-local.shgate_showcase_all_portsrunsbun scripts/regen-showcase.ts --check --all-ports, which regenerates the Python port with the current generator and diffs it against the committed file, so that gate fails. The committed example also still demonstrates the shape that failsmypy --strict(Python routers: the repository Protocol's list method shadows the builtin list under mypy --strict #486/Python routers: fix handler return annotations so mypy --strict passes #487). Remedy: runbun scripts/regen-showcase.ts --all-ports(python lane) and commit the updatedsubscriber_router.py.🔧 Fix applied.
1 warning still open:
docs/features/migrations-and-drift.md:377- The new per-port verify docs say a check with no configuration is "skipped with a one-line note, never failed" and list baredotnet meta verifyas running the template check. For C# that is false.server/csharp/MetaObjects.Cli/Program.cs:455-466makes a bare verify run the templates gate, defaults the root toprompts/ortemplates/, and returns exit 2 ("templates directory not found") when neither exists.server/csharp/MetaObjects.Cli.Tests/CliSurfaceTests.cs:96-102(A_bare_verify_with_neither_prompts_nor_templates_fails) pins that behavior. A C# adopter with no prompts directory who follows the new tables runs a baredotnet meta verifyand gets a hard failure the docs say cannot happen. This is the same class of wrong-command-docs defect Docs: per-port verify tables give a Python command that does not run and the wrong C# binary #492 targets. Sites to fix:docs/features/migrations-and-drift.md:377("never failed") and its C# row at:385(Templates column omits the default-root requirement);docs/features/templates-and-payloads.md:718("skips this check with a note") and its C# row at:726. The C# row and the blanket sentence should say a bare C# run needsprompts/ortemplates/(or--templates <root>) to exist, else it exits 2.docs/features/requirements.md:352("runs the requirement gate with the other default gates") should carry the same caveat.🔧 Fix applied.
✅ Re-checked - no issues remain.
scripts/ci-local.sh --only ts-fast --only ts-unit --strict-toolchainsNo tests were executed. The rejected payload recorded none, and this correction turn ran no tools.✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.