Skip to content

8A. Claim a merge only where the standalone really went away - #66

Open
nikolaystrikhar wants to merge 2 commits into
47-lifecycle-actionsfrom
49-merge-notice-tells-the-truth
Open

8A. Claim a merge only where the standalone really went away#66
nikolaystrikhar wants to merge 2 commits into
47-lifecycle-actionsfrom
49-merge-notice-tells-the-truth

Conversation

@nikolaystrikhar

Copy link
Copy Markdown
Contributor

What: Conflict\Resolver queues the merge notice from the branch where the post-deactivation re-check confirms the standalone is gone, at plugins_loaded priority 5.

Usage: a site whose mu-plugin filters option_active_plugins back, or a host that bound Plugin\Contracts\Deactivator_Interface to a no-op, now gets no notice at all instead of "the standalone has been deactivated" about a plugin still visibly running.

Why this way:

The notice waits for the answer the redirect already waited for. The re-check existed and fed the redirect alone, so the request correctly stayed put and incorrectly reported a merge — re-queued on every admin GET. One if moves it in front of the writer.

One notice per plugin lost is unchanged. It is still queued per sub-plugin as each deactivation is confirmed, and still before the redirect that would otherwise carry it off.

Nothing is reported on the other branch. That outcome is DEFER by another route — the standalone runs, its guard constant stands the bundled copy down, nothing re-declares — and every route to it is site configuration, not a mistake in the host's code that _doing_it_wrong() addresses.

The merge notice was queued as the deactivation was made, and the re-check
that asks whether the standalone actually went off ran afterwards and fed
the redirect alone. A site whose mu-plugin filters `option_active_plugins`,
or a host that bound `Plugin\Contracts\Deactivator_Interface` to a no-op --
which that interface invites by name -- therefore got no redirect, correctly,
and a notice saying a plugin they can watch still running had been
deactivated, re-queued on every admin GET.

The re-check moves in front of the notice, so the sentence is written on the
branch that confirms it. One notice per plugin lost is unchanged: it is still
queued per sub-plugin, as each deactivation is confirmed, and still before
the redirect that would otherwise carry it off.

Nothing is reported through `report_error()` on the other branch. This is
the DEFER outcome reached by another route -- the standalone is running, so
its own guard constant stands the bundled copy down and nothing re-declares
-- and DEFER announces nothing. Every route here is a site's own
configuration rather than a mistake in the host's code, which is who
`_doing_it_wrong()` addresses, and the conflict is re-detected on every admin
GET, so a report would print the same sentence on every screen of a debugging
site for a site behaving as its owner set it up to.
@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Enterprise

Run ID: ae2cce75-af3f-42ae-81ba-125ac77be5f8

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

Container failure moved from read-time to build-time when the reader took its registrar
as a constructor argument: a pass that exists has already resolved everything it needs.
The hook prefix is what is left, and it is read when a notice is worded.
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.

1 participant