Repository navigation
Tier-3 batch: pagination helper, single scaffolder, AuditLink.for_model/independent_session, FastAPI bound, durable-transport docs (#513 #509 #523 #516 #502) - #567
Merged
Conversation
…st (#516); file_storage tasks extra and transport-neutral durable docs (#502) Claude-Session: https://claude.ai/code/session_01M9neheZZEe3sVpDi2S3zT4
…e list call sites (#513) Claude-Session: https://claude.ai/code/session_01M9neheZZEe3sVpDi2S3zT4
# Conflicts: # CHANGELOG.md
…LI templates (#509) make new-module now calls create_module(framework_repo=True) from the CLI instead of ~980 lines of f-string templates. Both scaffolders share templates/module/ and emit constants.py, models, contracts, service, deps, guarded endpoints, Browse/Create/Edit pages, menu item with label_key, permissions and locales, so a fresh module passes make lint. The in-repo overlay adds workspace-sourced pyproject metadata, LICENSE, README and i18n-keyed pages; framework_repo.wire_module wires host/root pyproject and the publish-pypi matrix. Scaffold tests consolidated in framework/cli/tests. Claude-Session: https://claude.ai/code/session_01M9neheZZEe3sVpDi2S3zT4
# Conflicts: # CHANGELOG.md
…fix scaffold migration hint Claude-Session: https://claude.ai/code/session_01M9neheZZEe3sVpDi2S3zT4
…nd scaffold description Claude-Session: https://claude.ai/code/session_01M9neheZZEe3sVpDi2S3zT4
… outbox view (QA) Claude-Session: https://claude.ai/code/session_01M9neheZZEe3sVpDi2S3zT4
…view round 2 pass 1) Claude-Session: https://claude.ai/code/session_01M9neheZZEe3sVpDi2S3zT4
independent_session rolls back explicitly only on Exception; on cancellation closing the session discards the transaction without an await that could mask the original error. Claude-Session: https://claude.ai/code/session_01M9neheZZEe3sVpDi2S3zT4
…-523 # Conflicts: # CHANGELOG.md # modules/api_tokens/api_tokens/resolver.py # modules/file_storage/file_storage/endpoints/views.py
Deploying simple-module-python with
|
| Latest commit: |
0f93657
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://4d6359b8.simple-module-python.pages.dev |
| Branch Preview URL: | https://chore-tier3-batch-502-523.simple-module-python.pages.dev |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
…est (Postgres keeps it) Claude-Session: https://claude.ai/code/session_01M9neheZZEe3sVpDi2S3zT4
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.
Summary
Closes #513
Closes #509
Closes #523
Closes #516
Closes #502
simple_module_db.PageParams,Pageandpaginate.paginatecounts the same statement as a subquery and keeps its execution options, soinclude_deletedandall_tenantsare respected. It clamps to the last page before computing the offset. Pages are capped atMAX_PAGE = 1_000_000.simple_module_hostingprovidespage_params(n)(strict) andlenient_page_params(n)(clamps), each taking a route's own default page size.PaginationBarinpackages/ui, translated.page≤ 0 orpage> 1,000,000, andper_pagemust be between 1 and 200. Browser view routes clamp instead. The tenants admin list uses a fixed page size.make new-modulenow calls thesmpyCLI'screate_module(framework_repo=True). An overlay adds the in-repo wiring: hostpyproject,testpaths/extra-paths, therelease.ymlmatrix, and i18n pages.scripts/_templates_*.pyf-string templates and their tests are deleted, leaving one test suite.make lintandmake doctor.statusscaffolds asStatus.AuditLink.for_model(Model, …), with all 7 sites ported.simple_module_db.independent_session(app): commits on success and rolls back on error. Ported where the semantics match exactly: the api_tokens last-used touch and the permissions startup.fastapi>=0.115pin #516: FastAPI boundfastapi>=0.140,<0.157. The locked 0.156.4 stays.DurableTransportas the extension point.file_storagedeclaresbackground_tasksas an optionaltasksextra, and a test proves uploads degrade cleanly without it.bump_version.pynow bumps optional-dependency pins on sibling packages.uv.lockis refreshed.Verification
main:make lintpasses.make test-py: 5112 passed, 22 skipped.make test-js: 672 passed.make ci-doctorandmake ci-css-buildpass./ship(2 rounds):Known limitations (accepted)
moviesandhousesare not singularised correctly when scaffolding.PaginationBar: users, settings, the file storage selection footer, and tenants (which only knows whether there is a next page).paginatedoes not supportjoinedloadon collections.Test plan
PaginationBarhttps://claude.ai/code/session_01M9neheZZEe3sVpDi2S3zT4