Skip to content

v1.10.0 - #695

Merged
ilicfilip merged 503 commits into
mainfrom
develop
Sep 3, 2026
Merged

v1.10.0#695
ilicfilip merged 503 commits into
mainfrom
develop

Conversation

@aristath

Copy link
Copy Markdown
Member

No description provided.

@github-actions

github-actions Bot commented Oct 30, 2025

Copy link
Copy Markdown
Contributor

Test merged PR on Playground
Test this pull request on the Playground
or download the zip

@github-actions

github-actions Bot commented Nov 4, 2025

Copy link
Copy Markdown
Contributor
Composer package changes
Dev Packages Operation Base Target
composer/ca-bundle New - 1.5.12
composer/class-map-generator New - 1.7.3
composer/composer New - 2.10.0
composer/metadata-minifier New - 1.0.0
composer/spdx-licenses New - 1.6.0
dealerdirect/phpcodesniffer-composer-installer Upgraded v1.2.0 v1.2.1
eftec/bladeone New - 3.52
gettext/gettext New - v4.8.12
gettext/languages New - 2.12.1
justinrainbow/json-schema New - 6.8.2
marc-mabe/php-enum New - v4.7.2
mck89/peast New - v1.17.4
nb/oxymel New - v0.1.0
phpcsstandards/phpcsextra Upgraded 1.5.0 1.5.1
phpcsstandards/phpcsutils Upgraded 1.2.1 1.2.3
seld/jsonlint New - 1.11.0
seld/phar-utils New - 1.2.1
seld/signal-handler New - 2.0.2
squizlabs/php_codesniffer Upgraded 3.13.5 3.13.6
symfony/console Upgraded v7.4.0 v7.4.13
symfony/filesystem Upgraded v7.4.0 v7.4.11
symfony/finder Upgraded v7.4.0 v7.4.8
symfony/polyfill-intl-grapheme Upgraded v1.33.0 v1.38.1
symfony/polyfill-intl-normalizer Upgraded v1.33.0 v1.38.0
symfony/polyfill-mbstring Upgraded v1.33.0 v1.38.1
symfony/polyfill-php73 New - v1.37.0
symfony/polyfill-php81 Upgraded v1.33.0 v1.38.1
symfony/polyfill-php84 Upgraded v1.33.0 v1.38.1
symfony/process Upgraded v7.4.0 v7.4.13
symfony/service-contracts Upgraded v3.6.1 v3.7.0
symfony/string Upgraded v7.4.0 v7.4.13
wp-cli/cache-command New - v2.2.1
wp-cli/checksum-command New - v2.3.2
wp-cli/config-command New - v2.4.0
wp-cli/core-command New - v2.1.22
wp-cli/cron-command New - v2.3.2
wp-cli/db-command New - v2.1.3
wp-cli/embed-command New - v2.1.0
wp-cli/entity-command New - v2.8.4
wp-cli/eval-command New - v2.2.7
wp-cli/export-command New - v2.1.14
wp-cli/extension-command New - v2.1.24
wp-cli/i18n-command New - v2.6.6
wp-cli/import-command New - v2.0.15
wp-cli/language-command New - v2.0.25
wp-cli/maintenance-mode-command New - v2.1.3
wp-cli/media-command New - v2.2.2
wp-cli/mustache New - v2.14.99
wp-cli/mustangostang-spyc New - 0.6.3
wp-cli/package-command New - v2.6.1
wp-cli/php-cli-tools New - v0.12.6
wp-cli/rewrite-command New - v2.0.16
wp-cli/role-command New - v2.0.16
wp-cli/scaffold-command New - v2.5.1
wp-cli/search-replace-command New - v2.1.9
wp-cli/server-command New - v2.0.15
wp-cli/shell-command New - v2.0.16
wp-cli/super-admin-command New - v2.0.16
wp-cli/widget-command New - v2.1.12
wp-cli/wp-cli New - v2.12.0
wp-cli/wp-cli-bundle New - v2.11.0
wp-cli/wp-config-transformer New - v1.4.3
wp-coding-standards/wpcs Upgraded 3.3.0 3.4.1

@github-actions

github-actions Bot commented Nov 4, 2025

Copy link
Copy Markdown
Contributor

✅ Code Coverage Report

Metric Value
Total Coverage 32.28% 📉
Base Coverage 32.28%
Difference 📈 0.00%

⚠️ Coverage below recommended 40% threshold

🎉 Great job maintaining/improving code coverage!

ℹ️ About this report
  • All tests run in a single job with Xdebug coverage
  • Security tests excluded from coverage to prevent output issues
  • Coverage calculated from line coverage percentages

ilicfilip and others added 17 commits August 21, 2026 16:20
The site icon and Yoast organization logo pickers assembled their
preview <img> by concatenating attachment metadata into an HTML string
and assigning it to innerHTML.

Both now build the node with createElement and property assignment, so
no HTML string is parsed and attachment metadata is always handled as
an attribute value rather than as markup. This follows the same
reasoning as the existing textContent usage in updateTaskTitle().

Verified with jsdom that metadata containing quote characters
round-trips as a value and does not become markup.

Note: the Yoast logo picker's alt fallback still reads "Site icon
preview", which looks like a copy-paste artifact. Left as-is to avoid
mixing a user-visible string change into this commit.

Verified: JS lint clean, PHPCS clean, PHPUnit 404 tests / 1216
assertions passing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…in-check

Fix Plugin Check CI: remove stored Composer credential, bump plugin-check-action
Add year-specific monthly badge names with 2026 names
Two copies of get_post_types_names() existed:
Settings::get_post_types_names() and
Content_Helpers::get_post_types_names().

The Settings version has become the canonical one -- it is what the
newer suggested-task and data-collector classes call, it carries the
init-timing guard, and it is where the exclusion list is maintained.

The Content_Helpers copy had drifted behind, and its filtering logic
differs in three ways:

- It does not exclude elementor_library, which Elementor registers as
  public + viewable, so it passes the viewability check.
- It does not honour the progress_planner_public_post_types filter.
- Its empty-case fallback returns a raw [ 'post', 'page' ] without
  checking those post types are still registered and public.

Each copy holds its own static cache, warmed independently on first
call. In a normal request both warm after init and agree, so the drift
is latent rather than actively breaking sites -- but two functions
answering the same question no longer share filtering rules, and any
future change to the exclusion list or the filter lands in only one.

Point the six remaining Content_Helpers call sites at Settings and
reduce Content_Helpers::get_post_types_names() to a deprecated shim so
external callers keep working. All six run well after init (shutdown,
wp_insert_post, admin widget rendering), so no call site is moved
earlier by this change.

The null guards in Content_Scan and Content are left in place: they
still protect the get_activity_from_post() calls in those methods, and
in Content_Scan::get_total_pages() the guard doubles as a deliberate
circuit-breaker that halts the scan during plugin updates.

Implements #433.
…ypes-names

Consolidate get_post_types_names() into Settings
test_delete_rejects_suggested_term_that_gained_posts created the task row
before attaching posts to the term. By the time the handler ran, no
matching task existed, so the request was rejected by the task-binding
check and never reached the post-count re-check the test is named for.
Removing the count guard entirely left all six tests passing.

Attach the posts first, then record the task, and assert on the specific
rejection message so the test cannot silently drift to a different guard
again.

Verified by mutation: removing any one of the four guards (count
re-check, delete binding, update binding, public-taxonomy) now fails at
least one test.
…-task-handlers

Harden interactive task handlers
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MyrQ9chLywiezXaY9MZz8t
The suggested-tasks list is already filtered per-user by each provider's
capability, and many tasks are actionable at editor level, so gate the
widget on edit_others_posts. Admin-only tasks and actions stay gated by
their own capabilities.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MyrQ9chLywiezXaY9MZz8t
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MyrQ9chLywiezXaY9MZz8t
@ilicfilip ilicfilip mentioned this pull request Sep 2, 2026
ilicfilip and others added 8 commits September 3, 2026 09:38
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MyrQ9chLywiezXaY9MZz8t
The redirect-on-login setting was removed when the Settings page was
converted to interactive tasks, and its user meta is cleaned up by the
1.10.0 update migration. The handler, its wp_login hook, and the unused
setter were left behind and could no longer be reached, so remove them.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MyrQ9chLywiezXaY9MZz8t
get_task_id_from_slug() could receive a null post_name/task_id, which
triggers a deprecation notice from explode() on PHP 8.1+. Cast to string.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MyrQ9chLywiezXaY9MZz8t
Plugin Check flagged autoload.php and the two dashboard-widget views as
missing the ABSPATH direct-access guard the other views already have.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MyrQ9chLywiezXaY9MZz8t
Keep the use declaration as the first statement so the file lints cleanly
across PHP versions; the direct-access guard still runs before any code.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MyrQ9chLywiezXaY9MZz8t
The guard broke the parallel-lint checkstyle CI step; autoload.php is not
web-reachable in practice, so drop the guard rather than fight the linter.
The dashboard-widget view guards are kept.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MyrQ9chLywiezXaY9MZz8t
…flicts

# Conflicts:
#	classes/admin/class-page-settings.php
#	classes/class-suggested-tasks.php
#	classes/utils/class-color-customizer.php
#	composer.lock
#	progress-planner.php
#	readme.txt
#	tests/phpunit/test-class-rest-recommendations-xss.php
ilicfilip and others added 2 commits September 3, 2026 11:23
Resolve 1.10.0 release conflicts (merge main into develop)
CHANGELOG.md had only a one-line 1.10.0 stub and was missing the 1.9.1
entry entirely. Bring it in line with readme.txt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MyrQ9chLywiezXaY9MZz8t
@ilicfilip
ilicfilip merged commit ca1dedc into main Sep 3, 2026
43 checks passed
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 participants