Skip to content

Fix 3 of 5 dead admin forms and resolve 15 of 19 ALPS reference drifts (#143) - #153

Merged
koriym merged 5 commits into
1.xfrom
pr-143-dead-forms-alps-drift
Sep 21, 2026
Merged

koriym merged 5 commits into
1.xfrom
pr-143-dead-forms-alps-drift

Conversation

@koriym

@koriym koriym commented Sep 20, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #143 partially (3 of 5 dead forms fixed: customer, customer-delivery-edit, product-class; file-manager and two-factor-auth-edit remain, per the issue's own note that those two need a separate scope decision first). Resolves 15 of 19 ALPS reference drifts.

Depends on #139 (pr-139-csrf-token-publish-test) — this branch is stacked on it because Customer.php/CustomerDeliveryEdit.php both need the csrfToken wiring #139 adds before #143's own write-handler changes to those same files apply cleanly. Base is set to that branch; once #139 merges to 1.x, GitHub will retarget this PR automatically.

Also includes two follow-up commits from post-commit review:

  • A real SSOT gap: CustomerDeliveryEdit.php declared #[Link(rel: 'doCreateCustomerDeliveryAddress', ...)] with no matching alps.json descriptor (invisible to AlpsReferenceTest, which only scans #[Alps] attributes, not #[Link] rels). Added the descriptor.
  • Stale docs/migration-status.md counts (ALPS transition total, three feature-matrix flow-area counts) left at pre-管理画面の死んだフォーム 5 件と #[Alps] 参照ドリフト 19 件を解消する #143 values, plus an honest correction: the feature-matrix claimed customer-delivery-edit was simply "done," but the rendered form only ever posts an empty addressId, so update/delete are unreachable from the UI today — softened to reflect that (matching the honesty already in the doDeleteCustomerDeliveryAddress ledger note).

Verified: full vendor/bin/phpunit suite green (2834 tests, 0 failures/errors; the one pre-existing risky test is #139's closed-ledger side effect, unrelated), vendor/bin/psalm clean, asd --validate alps.json clean with regenerated alps.json.html/alps.svg (root + docs/ copies).

Summary by CodeRabbit

  • 新機能

    • 管理画面で顧客プロフィールを更新できるようになりました。
    • 顧客のお届け先住所を追加・編集・削除できるようになりました。
    • 商品規格(バリエーション)の登録に対応しました。
    • 注文帳票PDFをフォームから出力できるようになりました。
    • 管理画面の各種画面遷移と操作情報を拡充しました。
  • セキュリティ

    • 更新・登録操作でCSRF対策と権限確認を適用しました。
  • ドキュメント

    • 機能移行状況と対応済み画面の情報を更新しました。

@coderabbitai

coderabbitai Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Repository: be-framework/BeMart/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 74bd4212-96bf-48fb-a69b-5d93e30ebe2e

📥 Commits

Reviewing files that changed from the base of the PR and between 52c8b98 and 7e16240.

⛔ Files ignored due to path filters (16)
  • alps.json.html is excluded by !**/*.html
  • alps.svg is excluded by !**/*.svg
  • docs/alps.json.html is excluded by !**/*.html
  • docs/alps.svg is excluded by !**/*.svg
  • var/json_schema/delete-admin-customer-delivery-edit.json is excluded by !var/json_schema/**
  • var/json_schema/get-admin-product-product-class.json is excluded by !var/json_schema/**
  • var/json_schema/post-admin-customer-delivery-edit.json is excluded by !var/json_schema/**
  • var/json_schema/post-admin-product-product-class.json is excluded by !var/json_schema/**
  • var/json_schema/post-admin-update-customer.json is excluded by !var/json_schema/**
  • var/json_validate/delete-admin-customer-delivery-edit.param.json is excluded by !var/json_validate/**
  • var/json_validate/post-admin-customer-delivery-edit.param.json is excluded by !var/json_validate/**
  • var/json_validate/post-admin-product-product-class.param.json is excluded by !var/json_validate/**
  • var/json_validate/post-admin-update-customer.param.json is excluded by !var/json_validate/**
  • var/sql/productClass_next_id.sql is excluded by !var/sql/**
  • var/sql/tproduct_class_get.sql is excluded by !var/sql/**
  • var/sql/tproduct_class_put.sql is excluded by !var/sql/**
📒 Files selected for processing (44)
  • alps.json
  • be/src/Being/AdminCustomerUpdating.php
  • be/src/Final/AdminCustomerDeliveryAddressCreated.php
  • be/src/Final/AdminCustomerDeliveryAddressDeleted.php
  • be/src/Final/AdminCustomerDeliveryAddressUpdated.php
  • be/src/Final/AdminCustomerUpdated.php
  • be/src/Final/AdminProductClassRegistered.php
  • be/src/Input/AdminCreateCustomerDeliveryAddressInput.php
  • be/src/Input/AdminDeleteCustomerDeliveryAddressInput.php
  • be/src/Input/AdminRegisterProductClassInput.php
  • be/src/Input/AdminUpdateCustomerDeliveryAddressInput.php
  • be/src/Input/AdminUpdateCustomerInput.php
  • be/src/Reason/Entity/RegisteredProductClassEntity.php
  • be/src/Reason/Provider/ProductClassRegisterIdProvider.php
  • be/src/Reason/Query/ProductClassRegisterIdQueryInterface.php
  • be/src/Reason/Query/ProductClassStorageInterface.php
  • be/src/Semantic/Password.php
  • be/src/Semantic/PasswordHash.php
  • be/var/fake/query/productClass_next_id.jsonl
  • be/var/fake/query/tproduct_class_get.jsonl
  • docs/migration-status.md
  • src/Resource/Page/ActionRedirect.php
  • src/Resource/Page/Admin/ActionRedirect.php
  • src/Resource/Page/Admin/Customer.php
  • src/Resource/Page/Admin/CustomerDeliveryEdit.php
  • src/Resource/Page/Admin/EmptyPage.php
  • src/Resource/Page/Admin/Log.php
  • src/Resource/Page/Admin/Order/ExportOrderPdf.php
  • src/Resource/Page/Admin/Order/MailConfirm.php
  • src/Resource/Page/Admin/Order/OrderPdf.php
  • src/Resource/Page/Admin/Product/ProductClass.php
  • src/Resource/Page/Admin/Template/TemplateAdd.php
  • src/Resource/Page/Admin/UnsupportedRoute.php
  • src/Resource/Page/UnsupportedRoute.php
  • tests/Alps/AlpsReferenceTest.php
  • tests/Html/html-link-audit-ledger.json
  • tests/Http/HttpSqlAdminProductClassFormTest.php
  • tests/Hypermedia/FlowAdminCustomerMaintenanceTest.php
  • tests/Resource/AdminCustomerDeliveryEditResourceTest.php
  • tests/Resource/AdminProductClassResourceTest.php
  • tests/Resource/AdminUpdateCustomerResourceTest.php
  • tests/Router/TemplateFormActionTest.php
  • tests/Smoke/ResourceSmokeTest.php
  • var/templates/Page/Admin/Product/ProductClass.html.twig
 ___________________________________________________
< Brace yourself. Winter is coming...for your bugs. >
 ---------------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@koriym

koriym commented Sep 20, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 20, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@koriym

koriym commented Sep 20, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 20, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@koriym

koriym commented Sep 20, 2026

Copy link
Copy Markdown
Collaborator Author

Review (CodeRabbit rate-limited — manual review)

Cross-checked against issue #143's own acceptance criteria, then verified asd-regeneration and ran the test/psalm bar locally against a checkout of this branch.

Issue #143 acceptance criteria

  • 5 dead forms → 3 fixed, 2 deferred. TemplateFormActionTest::KNOWN_DEAD now lists exactly file-manager and two-factor-auth-edit — the same two the issue itself flags as needing a separate scope decision ("file-manager … multipart のファイル I/O。スコープ判断が先", "two-factor-auth-edit … 管理者によるメンバー別 2FA の意味論整理が先"). customer, customer-delivery-edit, product-class all gained real write handlers (onPost/onDelete) backed by dedicated Be Input/Being/Final chains with AUTHZ-first guards. Matches the issue's stated scope exactly.
  • Actor-naming decision (§3, option A vs B). Resolved in favor of (B) — the issue's own recommendation — via new admin-scoped descriptor ids (doUpdateCustomerProfile, doUpdateCustomerDeliveryAddress/doCreateCustomerDeliveryAddress/doDeleteCustomerDeliveryAddress) rather than widening doUpdateCustomer/doUpdateCustomerAddress's docs. The decision is spelled out in the squashed commit message ("This also resolves 管理画面の死んだフォーム 5 件と #[Alps] 参照ドリフト 19 件を解消する #143's actor-naming question in favor of option (B)…") but not in the PR description itself — worth pulling into the PR body since that's usually the durable record, not the commit message.
  • ALPS drift 19 → verified 15 resolved, 4 remain. Confirmed against tests/Alps/AlpsReferenceTest.php: ROUTE_GATE (8) and PLACEHOLDER (1) constants were removed entirely (folded into SCREEN_GAP becoming the sole known() set), and SCREEN_GAP shrank from 10 to 4 (doCreateMailTemplate, goAdminContentFileManager, goAdminTwoFactorAuthEdit, goShoppingShippingMultipleEdit). 8 + 1 + 6 = 15 resolved, matches the claimed count exactly, and the remaining 4 are consistent with the 2 forms still deferred (2 of the 4 SCREEN_GAP entries are exactly the 2 deferred forms, as docs/migration-status.md now states).

Verification performed

  • Checked out origin/pr-143-dead-forms-alps-drift into a worktree, composer install, ran the full non-SQL vendor/bin/phpunit suite: 1691 tests, 24271 assertions, 0 failures. vendor/bin/psalm --no-cache: no errors (214 info-level, expected/pre-existing style of noise, none new).
  • asd --validate alps.json (asd 2.0.0): clean, 0 warnings. Regenerated alps.json.html and alps.svg from the committed alps.json and diffed against both the root and docs/ copies: byte-identical, so root/docs/ are in sync and non-hand-edited. (Note, unrelated to this PR: the project's vendored vendor/bin/asd — pinned to koriym/app-state-diagram ^0.11 in composer.lock — crashes with an AssertionError on this profile via composer cs. Confirmed this predates 管理画面の死んだフォーム 5 件と #[Alps] 参照ドリフト 19 件を解消する #143 — it crashes identically on origin/1.x — so it's a pre-existing pinning issue, not something this PR introduced or should fix.)

Findings

  1. Naming-convention break: RegisterProductClassInput/ProductClassRegistered lack the Admin prefix. Every other admin-only mutation Input/Final in the codebase (AdminCreateCustomerInput, AdminUpdateCustomerInput, AdminCreateCustomerDeliveryAddressInput, AdminBulkUpdateProductStatusInput, AdminCustomerCreated, AdminCustomerDeliveryAddressCreated, … 25+ examples) is prefixed Admin*. The new be/src/Input/RegisterProductClassInput.php → be/src/Final/ProductClassRegistered.php chain (plus ProductClassRegisterIdProvider, ProductClassRegisterIdQueryInterface, ProductClassStorageInterface, RegisteredProductClassEntity) is the only admin-write chain in the PR that breaks this pattern. It's also inconsistent within this same PR: docs/migration-status.md's new §2.1 prose cites the class as AdminRegisterProductClassInput (a name that doesn't exist in the diff), so the doc and the code have already drifted from each other on day one. Worth a rename pass (or at minimum fixing the doc reference) before merge.
  2. docs/migration-status.md's new admin-Input list is incomplete. The same §2.1 sentence lists AdminUpdateCustomerDeliveryAddressInput, AdminDeleteCustomerDeliveryAddressInput, AdminUpdateCustomerInput, AdminRegisterProductClassInput as "each gained an admin-specific Be Input/Final" but omits AdminCreateCustomerDeliveryAddressInput (the create-branch Input actually wired in CustomerDeliveryEdit::onPost) — minor but should be fixed alongside finding 1 since both touch the same sentence.

Comment quality

The new docblocks (AUTHZ check-ordering lists, KNOWN UI LIMITATION note on CustomerDeliveryEdit, mass-assignment/actor-inversion rationale on the Admin*DeliveryAddress* Input/Final pairs) all explain non-obvious authorization/ownership decisions rather than restating code — they earn their place per the repo's comment-quality bar. No self-evident or restated-code comments spotted in the diff.

No other correctness or security issues found — AUTHZ ordering (session → existence → ownership, session check always first) is consistent and correct across all three new write paths, CSRF (#[CsrfToken]) is applied on every new onPost/onDelete, and the new admin Inputs correctly invert the storefront's session-derived-customerId pattern with an explicit ownership check in the Final rather than trusting the route param.

@koriym
koriym force-pushed the pr-143-dead-forms-alps-drift branch from 693bf65 to cc8ebea Compare September 20, 2026 14:54
@koriym

koriym commented Sep 20, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 20, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

#143)

Admin `/admin/customer`, `/admin/customer-delivery-edit`, and
`/admin/product/product-class` rendered `<form method="post">` with no
onPost/onPut/onDelete to answer it (405). The reference implementation
lives on the unmerged `origin/post-redirect-get-303` branch (same
merge-base as this branch, `4beee6a7`); cherry-picked `894a92df` and
`5e05cb19` for exactly these three resources and reverted everything
else those commits touched that was out of #143's scope:

  - TwoFactorAuthEdit.php / FileManager.php / CustomerList.php: scope
    decisions #143 explicitly defers to a separate issue.
  - A whole admin "flash message" feature (AdminFlash.php,
    admin-base.html.twig calling `admin_flashes()`): the Twig extension
    never defined that function, so every admin page render would have
    thrown. Reverted in full rather than half-wire it.
  - All three template conflicts (Customer/CustomerDeliveryEdit/
    ProductClass) resolved to the current idea-admin-* design already
    on this branch, not the older Bootstrap-table markup the reference
    branch had — this branch's templates are the newer ones.

Each write path got its own admin-specific Be Input/Final
(AdminUpdateCustomerInput → AdminCustomerUpdated,
Admin{Create,Update,Delete}CustomerDeliveryAddressInput,
RegisterProductClassInput → ProductClassRegistered) rather than reusing
the storefront transitions: `UpdateCustomerAddressInput` derives the
owner from the customer session by design (a customer cannot reassign
someone else's address by tampering with the body), and an admin
editing a different customer's data is the opposite authorization
model. This also resolves #143's actor-naming question in favor of
option (B) — separate ids for the admin path
(doUpdateCustomerProfile, doUpdateCustomerDeliveryAddress,
doRegisterProductClass) rather than widening the storefront ids' docs.

ProductClass.php's onGet was never publishing `csrfToken` (same gap
GET JSON schema. Its template had two bugs: the hidden parent-id field
was named `parentProductCode` but onPost reads `productCode`, and the
CSRF token had no hidden field to carry it — both fixed.

Added 8 new alps.json descriptors for the ids these fixes introduced
(goCustomerDeliveryEdit, doUpdateCustomerDeliveryAddress,
doDeleteCustomerDeliveryAddress, doUpdateCustomerProfile,
goProductClass, doRegisterProductClass, goLog, goOrderPdf) plus the
CustomerDeliveryEdit/Log/OrderPdf states they return to; validated with
`asd --validate` and regenerated alps.json.html/alps.svg (root + docs/
copies). Dropped `#[Alps]` from the 8 route-gate/fallback ids
(doActionRedirect, doAdminActionRedirect, doAdminUnsupportedRoute,
doUnsupportedRoute, goActionRedirect, goAdminActionRedirect,
goAdminUnsupportedRoute, goUnsupportedRoute) and the goAdminEmptyPage
placeholder — these answer URLs EC-CUBE has that BeMart deliberately
doesn't model as application transitions, so a client can't discover
them anyway. goAdminLog/goAdminOrderOrderPdf/goAdminOrderMailConfirm/
goAdminTemplateTemplateAdd were renamed in the cherry-picked commits
(the last two to already-existing profile ids goOrderMailConfirm/
goTemplateInstall; the first two are new — goAdminOrderOrderPdf is NOT
a rename of goExportOrderPdf, it's the distinct options-form screen
that links to it). Net: 19 drifted references down to 4
(doCreateMailTemplate, goAdminContentFileManager,
goAdminTwoFactorAuthEdit, goShoppingShippingMultipleEdit) — updated
`AlpsReferenceTest`'s SCREEN_GAP/ROUTE_GATE/PLACEHOLDER lists and
`TemplateFormActionTest`'s KNOWN_DEAD list to match, and refreshed
`docs/migration-status.md` §2.1/§2.2 and the feature matrix.

Fixes made during verification, beyond the cherry-pick:

  - Customer::onPost($password), AdminUpdateCustomerInput::$password,
    and AdminCustomerUpdated::$passwordHash were missing
    #[SensitiveParameter] (CredentialParameterSensitiveParameterTest /
    CredentialConstructorParameterSensitiveParameterTest caught this).
  - Password/PasswordHash Semantic validators made nullable: the admin
    edit flow passes null to mean "leave the current hash untouched"
    (EC-CUBE's default-password sentinel); a supplied empty string
    still fails the length floor.
  - ExportOrderPdf gained an onPost (EC-CUBE's admin_order_pdf_download
    route) so OrderPdf.php's submit button reaches a real handler
    instead of 405 — reuses the existing goExportOrderPdf id since both
    verbs perform the same transition. The cherry-picked smoke-test
    fixture expected this to return 200, but
    OrderPdfCompatibilityService::export() unconditionally throws
    OrderPdfNotSupportedException (a Phase-A stub, tracked in
    docs/migration-status.md §4 item 5) — fixed the fixture to expect
    501, and dropped an unrelated `?category_id=` the cherry-pick had
    added to the GET /products fixture line (broke JSON Schema
    validation; unrelated to this issue).
  - Removed the stale `POST admin/two-factor-auth-edit` smoke-test
    fixture entry the cherry-pick added — that resource still has no
    onPost since TwoFactorAuthEdit stays deferred.
  - HttpSqlAdminProductClassFormTest (a new real-browser/real-MySQL
    regression from the cherry-pick) assumed a pre-existing
    `admin-active-001` product/class row that nothing in this
    environment seeds; added setUp/tearDown that inserts and cleans up
    the parent dtb_product + dtb_product_class rows directly, since the
    fixture helper it was written against (SqlFixturesTrait) doesn't
    exist in this repo (removed by `47016e64`, already documented in
    #139's commit).
  - HttpSqlAdminProductClassFormTest's two markup assertions pinned the
    reverted Bootstrap-table template's `id="product_class_new_row"`
    and "登録" button text; updated to the kept idea-admin-* template's
    actual id and "追加" label.
  - The new #[Link] declarations on Customer/CustomerDeliveryEdit/
    ProductClass introduced 5 HTML Link Audit warnings (the templates
    don't render a matching `rel="..."` token); classified all 5 in
    html-link-audit-ledger.json — 4 as semantic-token-missing/fail
    (real markup gaps, tracked), 1 (doDeleteCustomerDeliveryAddress) as
    method-mismatch/resourceOnly (the edit form has no delete
    affordance at all; deleting a delivery address is out of this
    editor's scope).

Deferred, per #143: `/admin/content/file-manager` and
`/admin/two-factor-auth-edit` stay dead forms (multipart file I/O and
admin-editing-another-member 2FA semantics both need their own scope
decision first).

Verified: full `vendor/bin/phpunit` suite green (2836 tests, 0
failures/errors; the one pre-existing risky test —
CsrfTokenRenderedTest::testLedgerEntriesAreWellFormed — is #139's
closed-ledger side effect, unrelated), `vendor/bin/psalm` clean (no
errors), `asd --validate alps.json` clean.
…unts, UI-reachability limitation

Post-commit review of `716a8a44`/`a0245c36` surfaced one real SSOT gap and
a few stale numbers that `AlpsReferenceTest` can't catch on its own:

- `CustomerDeliveryEdit.php` declares `#[Link(rel: 'doCreateCustomerDeliveryAddress',
  ...)]` on its onGet (for HATEOAS discoverability — the create/update split
  only exists at the Link level; `#[Alps]` uses a single
  `doUpdateCustomerDeliveryAddress` id for both branches). No alps.json
  descriptor backed it. `AlpsReferenceTest` only scans `#[Alps]` attributes,
  not `#[Link]` rels, so this drift was invisible to every test in the
  suite. Added the descriptor and swept the other 7 files #143 touched
  (Customer/CustomerDeliveryEdit/ProductClass/Log/OrderPdf/MailConfirm/
  TemplateAdd/ExportOrderPdf) for the same gap — none found.
- `OrderPdf` state was missing the `src-template` tag every other screen
  state in this profile carries (Security, ChangePassword, Customer,
  CustomerAddress, CustomerDeliveryEdit, Log all have it).
- `docs/migration-status.md`: the ALPS transition count (216, now 217 after
  the descriptor above) and three feature-matrix row counts
  (flow-manage-product 24→26, flow-manage-order 13→14,
  flow-manage-customer 6→11) were left at their pre-#143 values.
- Documented a real, previously-silent completeness gap in
  `CustomerDeliveryEdit.php`: the rendered form has no `addressId` hidden
  field and no existing-address list, so `onPost` can only ever take the
  create branch and `onDelete` has no click path at all — both are
  exercised directly by `AdminCustomerDeliveryEditResourceTest` but
  unreachable from the page today. Not a regression from #143 (the
  cherry-picked template never had this either), and building the
  edit/delete affordance (an address list on `/admin/customer`, or
  addressId-aware `onGet`) is a materially larger UI slice than the
  dead-form fix #143 scoped — documented rather than silently left, so
  it isn't mistaken for done.

Re-verified (independently reviewed and confirmed already correct, no
change needed): Customer.php/CustomerDeliveryEdit.php/ProductClass.php
constructors carry every dependency from both merge sides with no
duplicate imports; TwoFactorAuthEdit.php's only diff from origin/1.x is
FileManager.php/CustomerList.php/AdminTwoFactorAuthEditResourceTest.php
are byte-identical to origin/1.x (cleanly reverted); the news-list delete
dialog's real submission form (`#news-delete-form`) already carries a
csrfToken hidden field; `Page/Mypage/navi.html.twig` is unused dead code,
not a live shared partial.

Verified: `asd --validate alps.json` clean, regenerated alps.json.html /
alps.svg (root + docs/ copies), full `vendor/bin/phpunit` suite green
(2836 tests, 0 failures/errors; same pre-existing risky test as before),
`vendor/bin/psalm` clean.
…ality

The feature-matrix row said customer-delivery-edit was simply 'done'
alongside customer edit. Per eaabac5's finding (and the docblock it
added to CustomerDeliveryEdit.php), the rendered form only ever posts
an empty addressId, so update/delete are unreachable from the UI —
create-only. Matches the same honesty already applied to the
doDeleteCustomerDeliveryAddress ledger note in a0245c3.
…-status.md omission

Independent review found two real gaps:

- RegisterProductClassInput/ProductClassRegistered broke the established Admin*-prefix
  naming convention used by all 49+ other admin-mutation Input/Final class pairs in
  be/src/Input and be/src/Final (AdminCreateCustomerInput -> AdminCustomerCreating,
  AdminDeleteProductInput -> AdminProductDeleted, etc.). docs/migration-status.md's own
  prose already cited the correctly-conventioned name (AdminRegisterProductClassInput)
  that didn't exist in code. Renamed both classes (AdminRegisterProductClassInput,
  AdminProductClassRegistered) and updated every reference in
  src/Resource/Page/Admin/Product/ProductClass.php.

- migration-status.md's admin-Input list for the #143 dead-form fixes omitted
  AdminCreateCustomerDeliveryAddressInput even though CustomerDeliveryEdit.php actually
  wires three Input classes (Create/Update/Delete), not two.
@koriym
koriym force-pushed the pr-143-dead-forms-alps-drift branch from cc8ebea to 71ae2e2 Compare September 20, 2026 15:40
@koriym

koriym commented Sep 20, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 20, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@koriym
koriym changed the base branch from pr-139-csrf-token-publish-test to 1.x September 21, 2026 00:48
# Conflicts:
#	alps.json.html
#	alps.svg
#	docs/alps.json.html
#	docs/alps.svg
@koriym
koriym merged commit 9ce2d0a into 1.x Sep 21, 2026
1 of 2 checks passed
@koriym
koriym deleted the pr-143-dead-forms-alps-drift branch September 21, 2026 01:08
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.

管理画面の死んだフォーム 5 件と #[Alps] 参照ドリフト 19 件を解消する

1 participant