Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
154af8a
feat(review): expose readable taxonomy and media changes
hsxk Sep 28, 2026
c8c4db0
feat(admin): add branch list view and clearer branch identity
hsxk Sep 28, 2026
7f397ee
feat(editor): improve branch cards and merge review values
hsxk Sep 28, 2026
5f5b22c
fix(editor): render branch count dynamically
hsxk Sep 28, 2026
24c8a8f
style(editor): refine branch cards and image review
hsxk Sep 28, 2026
1178117
test: cover readable review values and branch list management
hsxk Sep 28, 2026
f06d626
fix(review): use localized core labels safely
hsxk Sep 28, 2026
479e34c
chore(admin): document safe branch-list query exceptions
hsxk Sep 28, 2026
e110e25
test: restore global query after branch-view checks
hsxk Sep 28, 2026
4e3156a
test(browser): verify review values and branch metadata
hsxk Sep 28, 2026
a1b882e
fix(review): use WordPress comment status labels
hsxk Sep 28, 2026
30c6596
test: cover Pages branch list view
hsxk Sep 28, 2026
5f34e91
ci: temporarily refresh 2.1.1 build asset
hsxk Sep 28, 2026
b9285cf
style: satisfy editor source formatting
hsxk Sep 28, 2026
175f397
style: align translated branch metadata
hsxk Sep 28, 2026
a46f734
build: refresh editor asset for 2.1.1
github-actions[bot] Sep 28, 2026
422f5b5
ci: remove temporary build refresh workflow
hsxk Sep 28, 2026
704b157
style: align admin assignments
hsxk Sep 28, 2026
e4aff33
style: align review value assignments
hsxk Sep 28, 2026
e2a7a3e
style: separate featured image review assignment group
hsxk Sep 28, 2026
bed3afb
ci: temporarily refresh 2.1.1 translations
hsxk Sep 28, 2026
96ee383
i18n: refresh 2.1.1 translation artifacts
github-actions[bot] Sep 28, 2026
7f8bd66
ci: remove temporary translation refresh workflow
hsxk Sep 28, 2026
cad730b
test(browser): accept branch count in docs heading
hsxk Sep 28, 2026
340b9b2
fix: align branch list filtering with user permissions
hsxk Oct 2, 2026
5de08a1
test: cover 2.1.1 review values and branch permissions
hsxk Oct 2, 2026
e9402c9
test: exercise 2.1.1 branch management UI
hsxk Oct 2, 2026
3fc060d
ci: keep integration test label version-agnostic
hsxk Oct 2, 2026
14131a5
fix: keep featured-image review labels localized
hsxk Oct 2, 2026
0863527
test: enable comment and ping status fixtures
hsxk Oct 2, 2026
67eae60
style: align featured-image review assignments
hsxk Oct 2, 2026
2c8d229
test: isolate comment and ping review coverage
hsxk Oct 2, 2026
cd01b08
test: verify readable review values in tutorial UI
hsxk Oct 2, 2026
727dded
fix: protect private original titles in branch states
hsxk Oct 2, 2026
4a66130
test: protect unreadable original titles
hsxk Oct 2, 2026
6665734
fix: localize review statuses and sync translations
hsxk Oct 2, 2026
9b51b79
fix: use core translations for review status labels
hsxk Oct 2, 2026
8028410
docs: sync 2.1.1 validation evidence
hsxk Oct 2, 2026
48da3f9
ci: keep hidden files out of release validation
hsxk Oct 2, 2026
896ea18
docs: prepare 2.1.1 changelog
hsxk Oct 2, 2026
6482a3b
fix: restore release ZIP workflow syntax
hsxk Oct 2, 2026
c503713
test: close 2.1.1 branch review coverage gaps
hsxk Oct 3, 2026
57bc3c8
test: verify branch list post-type isolation
hsxk Oct 3, 2026
8dee9fd
chore: prepare v2.1.1 release
hsxk Oct 3, 2026
8443a81
chore: refresh 2.1.1 translation template metadata
hsxk Oct 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ jobs:
mkdir -p dist/wp-branches-for-post
rsync -a ./ dist/wp-branches-for-post/ \
--exclude='.git' \
--exclude='.gitignore' \
--exclude='.github' \
--exclude='.wordpress-org' \
--exclude='node_modules' \
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:
--admin_email=admin@example.test
ln -s "$GITHUB_WORKSPACE" /tmp/wordpress/wp-content/plugins/wp-branches-for-post
wp plugin activate wp-branches-for-post --path=/tmp/wordpress
- name: Run 104-check real WordPress integration suite
- name: Run real WordPress integration suite
run: wp eval-file "$GITHUB_WORKSPACE/tests/wp-real-2.1.php" --path=/tmp/wordpress

release-zip:
Expand Down Expand Up @@ -116,6 +116,7 @@ jobs:
done
forbidden=(
'/\.git/'
'/\.gitignore$'
'/\.github/'
'/\.wordpress-org/'
'/node_modules/'
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

WP Branches For Post lets editors create an isolated working branch from an existing WordPress post, page, or supported custom post type, edit without changing the public original, review the difference against a saved baseline, and merge safely when the work is ready.

Version **2.1.0** turns the plugin into a true three-way editorial workflow rather than a simple duplicate-and-replace tool.
Version **2.1.1** builds on the three-way editorial workflow with clearer merge review values, stronger branch management, tighter privacy boundaries, and broader release validation.

<p align="center">
<img src=".wordpress-org/screenshot-3.png" alt="WP Branches For Post three-way merge review" width="920">
Expand All @@ -30,7 +30,7 @@ This plugin models the problem explicitly:

The result is an editorial workflow closer to source control, while still using normal WordPress posts, permissions, metadata, taxonomies, and editors.

## What 2.1.0 can do
## What 2.1.1 can do

- Create an isolated draft branch from published, private, or scheduled content.
- Review **Base / Original / Branch** before merging.
Expand Down Expand Up @@ -84,12 +84,12 @@ See [ARCHITECTURE.md](./ARCHITECTURE.md) and [SECURITY.md](./SECURITY.md) for th

## Validation depth

The 2.1.0 release was promoted only after the same candidate passed the following gates:
The 2.1.1 release extends the 2.1.0 validation baseline and has passed the following gates:

| Layer | Release validation |
| --- | --- |
| Real WordPress service/integration suite | **104 / 104 checks** |
| Real Chromium + Gutenberg E2E | **33 / 33 checks** |
| Real WordPress service/integration suite | **130 / 130 checks** |
| Real Chromium + Gutenberg E2E | **42 / 42 checks** |
| Semantic UI/tutorial coverage | **35 / 35 cases** |
| WordPress compatibility | **6.6 + 7.1.1** |
| PHP compatibility | **8.2 / 8.3 / 8.4** |
Expand Down
14 changes: 13 additions & 1 deletion README.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
=== WP Branches For Post ===
Contributors: haokexin, alkesh7
Tags: post branch, editorial workflow, staging, revision, gutenberg
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.2
Stable tag: 2.1.0
Stable tag: 2.1.1
License: GPLv3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Expand Down Expand Up @@ -267,6 +267,18 @@

== Changelog ==

= 2.1.1 =
* Improved merge review with readable Base / Original / Branch values for menu order, comment status, ping status and password state.
* Added readable taxonomy term names and featured-image identity with thumbnail previews to the three-way review.
* Kept post passwords masked and arbitrary custom-meta values private in the REST review payload.
* Expanded Existing branches cards with branch ID, creator, modified time, state, change count and conflict count.
* Added dedicated Existing branches views to the Posts and Pages list tables, including legacy branch relationships.
* Kept branch-list counts and filtering aligned with WordPress author capabilities so users without edit_others_posts see only their own branches.
* Prevented private original titles from being exposed in branch list states when the current user cannot read the original.
* Localized readable Open / Closed review values through WordPress core translations.
* Expanded real WordPress integration coverage to 130 checks and real Gutenberg browser coverage to 42 checks, while retaining the 35-case semantic UI/tutorial contract.
* Tightened release-tree and ZIP hygiene so development hidden files remain outside the distributable plugin.

= 2.1.0 =
* Added a three-way branch/original/baseline review instead of treating every newer original edit as the same kind of conflict.
* Added detailed branch changes, original changes, exact conflicts and preserved identity changes to the Block Editor merge review.
Expand Down
9 changes: 7 additions & 2 deletions TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ The disposable CI laboratory is:
- Repository: `time2analyze/wp-branch`
- Branch: `main`
- Source repository: `hsxk/WP-Branches-For-Post`
- 2.1 development source: `feat/2.1-merge-review-safety`
- 2.1 baseline source: `feat/2.1-merge-review-safety`
- 2.1.1 release-candidate source: `feat/2.1.1-review-branch-management`
- Lab workflow: `.github/workflows/lab-full-validation.yml`

The lab repository uses the second GitHub account so validation does not consume the Actions quota of the formal plugin repository.
Expand Down Expand Up @@ -43,7 +44,7 @@ The release candidate must report the same version in all public package metadat
- `README.txt` Stable tag
- `package.json`

For the 2.1 release candidate these must all be `2.1.0`.
For the 2.1.1 release these values are all `2.1.1`. Any future release must advance all four values together and rerun the complete release validation before tagging.

### JavaScript and CSS

Expand Down Expand Up @@ -92,6 +93,8 @@ wp eval-file wp-content/plugins/wp-branches-for-post/tests/wp-real-2.1.php

The suite exercises real WordPress posts, metadata, taxonomies, users, capabilities, REST objects and the plugin's service classes. Test data is deleted at the end.

The 2.1.1 release passes **130 / 130** checks across WordPress 6.6 / PHP 8.2, WordPress 7.1.1 / PHP 8.2, and WordPress 7.1.1 / PHP 8.4.

Important covered scenarios include branch creation, forced-draft protection, three-way merge, non-conflicting original changes, rebase, real conflicts, force-merge permission checks, hierarchical URL identity preservation, rollback after injected write failures, synced-pattern detection, REST review payloads, legacy compatibility and discard behavior.

## Real Gutenberg browser test
Expand Down Expand Up @@ -119,6 +122,8 @@ The browser test verifies the real admin/editor experience:
11. Return to the original.
12. Verify the merged branch content is present.

The current 2.1.1 browser contract contains **42 / 42** passing checks, including the Existing branches list view, branch-card metadata, stale-review protection, rebase, force-merge confirmation and discard behavior.

This is a real browser + WordPress + MySQL test, not a DOM fixture or mocked REST test.

## Screenshots
Expand Down
36 changes: 35 additions & 1 deletion assets/css/editor.css
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,33 @@
margin-bottom: 5px;
}

.wbfp-branch-card__head > a {
.wbfp-branch-card__identity {
display: grid;
gap: 2px;
min-width: 0;
}

.wbfp-branch-card__identity > a {
font-weight: 600;
text-decoration: none;
overflow-wrap: anywhere;
}

.wbfp-branch-card__id {
color: #646970;
font-size: 11px;
}

.wbfp-branch-card__meta {
display: flex;
flex-wrap: wrap;
gap: 4px 10px;
}

.wbfp-branch-card__meta > span + span::before {
content: "·";
margin-right: 10px;
color: #a7aaad;
}

.wbfp-meta {
Expand Down Expand Up @@ -155,6 +179,16 @@
text-transform: uppercase;
}

.wbfp-compare__thumbnail {
display: block;
width: 72px;
height: 72px;
margin: 2px 0 8px;
border: 1px solid #dcdcde;
border-radius: 4px;
object-fit: cover;
}

.wbfp-compare__version pre {
max-height: 180px;
margin: 0;
Expand Down
2 changes: 1 addition & 1 deletion build/index.asset.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@
'wp-i18n',
'wp-plugins'
),
'version' => 'a2856ab2d5e1df34f1e6'
'version' => 'c22cc7f1a4434d352365'
);
Loading
Loading