Parent: #4531
Slice goal
PublishingShell site workspace shows the incremental queue as a list of items (content id and title or name), not only a count. Empty queue stays an empty state. H2 QA can prove the list against a site that has queued items.
Out of scope
Removing a queue item (sibling). Status job detail (sibling). Full/incremental publish buttons already shipped. #1371 UAT. JSF page deletes.
Acceptance criteria
Change class
One vertical increment (REST list only if the SPA cannot read items today, plus PublishingShell, Playwright, product-docs). Do not split layers.
H2 QA: perc-devctl qa-up → qa-health → TEST_CMS_URL → npm run test:surface → qa-down.
Leave unassigned. Do not add In Progress.
Co-Authored by Grok Build 1.0.41 using grok-4.6 with agent night-issue-prs-triage.
Parent: #4531
Slice goal
PublishingShell site workspace shows the incremental queue as a list of items (content id and title or name), not only a count. Empty queue stays an empty state. H2 QA can prove the list against a site that has queued items.
Out of scope
Removing a queue item (sibling). Status job detail (sibling). Full/incremental publish buttons already shipped. #1371 UAT. JSF page deletes.
Acceptance criteria
Change class
One vertical increment (REST list only if the SPA cannot read items today, plus PublishingShell, Playwright, product-docs). Do not split layers.
H2 QA: perc-devctl qa-up → qa-health → TEST_CMS_URL → npm run test:surface → qa-down.
Leave unassigned. Do not add In Progress.