diff --git a/.changeset/action-param-dialog-option-visiblewhen-4758.md b/.changeset/action-param-dialog-option-visiblewhen-4758.md
deleted file mode 100644
index c0335d9f7b..0000000000
--- a/.changeset/action-param-dialog-option-visiblewhen-4758.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-'@object-ui/components': patch
----
-
-`ActionParamDialog` (the `custom` barrel's published dialog) now resolves each
-`select` param's options through `@object-ui/core`'s shared option evaluator, so a
-per-option `visibleWhen` narrows the offered list here exactly as it does on the
-app-shell action dialog and in the object form (objectui#4758).
-
-This surface is the repo's second action-param dialog, and its `select` branch
-rendered `param.options?.map(...)` straight into Radix items. A per-option
-`visibleWhen` was not evaluated wrongly — it was not evaluated at all, so an option
-gated on `record.*` (a sibling param) or on `current_user.*` was offered
-unconditionally, while the app-shell dialog filtered the identical field metadata.
-Triage ruled the governed side authoritative; the dialog rebinds to
-`resolveVisibleOptions`, resolving predicates against the dialog's own in-progress
-values (the objectui#3765 Option B ruling) plus the ambient predicate scope.
-
-Rebind, not removal: the component stays a published export, its props and every
-other branch are untouched, and retiring it remains a separate decision.
-
-A selection the predicate stops offering is now cleared rather than kept as a hidden
-value — the same `isValueStillOffered` clear `SelectField` already performs. Without
-it, filtering alone would let a picked-then-gated-out option vanish from the trigger
-while still riding in the submitted payload. Params whose options declare no
-predicate are untouched.
diff --git a/.changeset/retire-components-action-param-dialog-5685.md b/.changeset/retire-components-action-param-dialog-5685.md
new file mode 100644
index 0000000000..803fed5351
--- /dev/null
+++ b/.changeset/retire-components-action-param-dialog-5685.md
@@ -0,0 +1,39 @@
+---
+'@object-ui/components': minor
+---
+
+Retire `ActionParamDialog`: the `custom` barrel's second action-param dialog is
+removed, and the app-shell dialog is recorded as the surviving implementation
+(objectui#5685, maintainer ruling of 2026-08-22).
+
+**Breaking for any out-of-repo host that imported it** (declared `minor` per the
+repo's version-alignment rule — the major tracks `@objectstack`, never an
+API-break count): `@object-ui/components` no longer exports `ActionParamDialog`
+or `ActionParamDialogProps`. Measured at the branch point, the export had zero
+production consumers — its only in-repo importers were its own five test files,
+which retire with it, and no other repository in the organization imports the
+symbol from this package.
+
+This file was the repo's SECOND implementation of the action-param surface, and
+its audit trail is the reason it retires instead of being maintained: the last
+close look (objectui#4758) found per-option `visibleWhen` not evaluated at all,
+and the five hardcoded English strings this card originally recorded were the
+next drift installment. A dormant second dialect of a governed surface is one
+production import away from being live; removing it removes the whole drift
+class.
+
+FROM → TO for an out-of-repo host:
+
+- `import { ActionParamDialog } from '@object-ui/components'` — no drop-in
+ replacement is published. The surviving implementation is
+ `@object-ui/app-shell`'s `ActionParamDialog` (`src/views/ActionParamDialog.tsx`),
+ rendered by app-shell's action runtime (`useConsoleActionRuntime`,
+ `RecordDetailView`) rather than exported standalone. A host that needs its own
+ param form builds on `@object-ui/fields`' shared field widgets
+ (`resolveFormWidgetType` / `getLazyFieldWidget`, ADR-0059) — the same seam the
+ surviving dialog renders through.
+
+The unreleased objectui#4758 changeset for this component (`select` options
+through the shared option evaluator) is withdrawn in the same change: the
+component retires before that fix ever ships, so the release notes carry the
+removal rather than new behaviour of a surface this release does not contain.
diff --git a/packages/components/src/__tests__/action-param-dialog-aria-required.test.tsx b/packages/components/src/__tests__/action-param-dialog-aria-required.test.tsx
deleted file mode 100644
index 2ecaa75be0..0000000000
--- a/packages/components/src/__tests__/action-param-dialog-aria-required.test.tsx
+++ /dev/null
@@ -1,136 +0,0 @@
-/**
- * ObjectUI
- * Copyright (c) 2024-present ObjectStack Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-/**
- * ActionParamDialog (components/custom) — required must reach each CONTROL as
- * a state, not sit in the label as a bare `*` (objectui#3299; same shape as
- * #3290/#3298).
- *
- * Pre-fix, the five typed branches (textarea / number / select / date / text)
- * each drew `*` inside `