feat(client): migrate to @inertiajs/react v3 - #326
Merged
Merged
Conversation
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. |
Deploying simple-module-python with
|
| Latest commit: |
6825d79
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://7d0b58de.simple-module-python.pages.dev |
| Branch Preview URL: | https://feat-inertia-v3-client.simple-module-python.pages.dev |
antosubash
added this pull request to stack #327
September 10, 2026 20:55
antosubash
disabled the stack merge
September 10, 2026 21:02
Sixteen pin sites — host/client_app, packages/ui peers, every module's peers, both scaffold templates and the flat-mode _APP_NPM_DEPS dict — and the regression test that guards the flat scaffold's pin now asserts ^3. The lockfile drops 37 transitive packages, axios and lodash-es among them, which v3 no longer needs. Claude-Session: https://claude.ai/code/session_01CwgTb8hULSfHoW2DrFrQAW
Array-form persistent layouts on all 21 pages, the invalid -> httpException event rename in spa-links, and data-inertia as the head marker in the host template. The scaffold's index.html had no marker at all — every scaffolded app was getting a second <title> appended and losing <Head title> — so it gains data-inertia rather than a rename. Claude-Session: https://claude.ai/code/session_01CwgTb8hULSfHoW2DrFrQAW
antosubash
force-pushed
the
feat/inertia-v3-client
branch
from
September 10, 2026 21:05
9e41012 to
6825d79
Compare
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
Moves this repo's client from
@inertiajs/react2.3.27 (npm taglegacy) to 3.7.0, on top of the v3-capable adapter in #325. Based onfeat/inertia-v3-adapterso it lands second.Spec:
docs/superpowers/specs/2026-09-10-inertia-v3-adapter-design.md§8 · Plan:docs/superpowers/plans/2026-09-10-inertia-v3-adapter.mdTasks 14–16Changes
host/client_app,packages/uipeers, every module's peers, both scaffoldpackage.json.tpls and the flat-mode_APP_NPM_DEPSdict. The regression test guarding the flat scaffold's pin now asserts^3.. The lockfile drops 37 transitive packages (axios and lodash-es among them — v3 ships its own XHR client).Page.layout = [AdminLayout](×17),[AuthenticatedLayout](×3),[PublicLayout](×1). Every layout already tookchildren, so this is a direct translation.packages/ui/src/lib/spa-links.ts:router.on('invalid', …)→router.on('httpException', …).host/templates/index.html:<title inertia="">→<title data-inertia="">.index.htmlhad no head marker at all — every scaffolded app was getting a second<title>appended and<Head title>never took effect. It gainsdata-inertiarather than a rename.Found by this PR's e2e run, fixed in #325
The first e2e run failed at mount with
Cannot read properties of null (reading 'component'). Inertia 3 reads the initial page only from<script data-page="app" type="application/json">; the attribute form v2 used is gone from the 3.x bundle. The adapter now emits both forms (d0936ec8on #325) so v2 and v3 clients both work.Verification
make lintgreen · 3024 pytest · 463 vitest ·tscclean for host andpackages/ui· client build green<Head title>sets "Welcome — SimpleModule" / "Dashboard — SimpleModule" through the new marker;PublicLayout,AuthenticatedLayoutandAdminLayoutarray forms all render (landing hero, dashboard, admin sidebar + navigation); login → dashboard →/admin/users/→ back works andhistory.state.page.urlis the root-relative/dashboard/— the adapter's relative-url fix and v3'spushStatetogether, which is what GH Host should honor X-Forwarded-Proto (proxy headers): Inertia pushState SecurityError behind a TLS-terminating proxy #223 needed.Observation, not a regression: two Vite HMR websocket reconnect failures appeared in the dev session log; every page load and navigation succeeded regardless, and this is dev-server tooling outside the migration's scope.
Test plan
/and/admin/users/and sees no console errorssmpy newand confirms the generated app's<title>updates per pagehttps://claude.ai/code/session_01CwgTb8hULSfHoW2DrFrQAW