Skip to content

fix(publishing): set or clear one content list description (#5249) - #5259

Merged
natechadwick-intsof merged 3 commits into
mainfrom
fix/issue-5249-content-list-description
Oct 5, 2026
Merged

natechadwick-intsof merged 3 commits into
mainfrom
fix/issue-5249-content-list-description

Conversation

@natechadwick-intsof

@natechadwick-intsof natechadwick-intsof commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Publishing Design can set or clear one content list description without changing the name, type, generator or legacy URL, or item filter. Parent #4531 slice 83. Fixes #5249.

Save sends a description-only body on the existing content-list PUT (PUT /services/sitemanage/publishingdesign/contentlists/{id}). A non-null description is trimmed; a blank value clears the stored description. Descriptions longer than 255 characters (RXCONTENTLIST.DESCRIPTION) are rejected with HTTP 400 before any field is written. HTTP 403 and a conflicting rename (409) also leave the previous description. Cancel does not call the server.

Operator: Grok: night-issue-prs (model grok-4.6)

Test plan

  1. Open Publishing, Design, Content lists as Admin on an H2 QA cell.
  2. On a modern list, choose Description, enter a short description, and Save. After reload the new description is shown. Name, type, generator, and item filter are unchanged. The PUT body contains only description.
  3. Clear the description and Save. After reload the description is blank. Name, type, generator, and item filter stay.
  4. On a legacy list (URL, no generator), set a description. The legacy URL stays and is not sent on the PUT.
  5. Cancel closes the form and does not PUT.
  6. A description longer than 255 characters is rejected in the form and is not sent. The server also returns HTTP 400 and writes nothing.
  7. Forced HTTP 400, 403, and 409 responses leave the previous description on screen.

Checklist

  • Product documentation — updated product-docs/8.2/admin/publishing.md (Set a content list description)
  • Unit / module tests — PSPublishingDesignRestServiceTest description-only / blank-clear / 400 / 403 / 409; Vitest contentListDescription.test.ts (7) and DesignSection.contentListDescription.test.tsx (9)
  • WebUI + Playwright — modules/perc-qa-automation/frontend/tests/publishing/designContentListDescription.spec.js (3 passed on H2)
  • Build gates — standalone clean install for projects/sitemanage and WebUI. No final / signature change, so no reverse-dep install.
  • Cross-platform — no new filesystem path construction

Build evidence

modules_built: projects/sitemanage, WebUI

downstream_checked: none (no type made final or sealed; no public or protected signature change)

cd projects/sitemanage && JAVA_HOME=/usr/lib/jvm/java-21-openjdk rtk mvn clean install
BUILD SUCCESS
Tests run: 3596, Failures: 0, Errors: 0, Skipped: 125
Finished 2026-10-05T18:43:29-04:00

cd WebUI && JAVA_HOME=/usr/lib/jvm/java-21-openjdk rtk mvn clean install
BUILD SUCCESS
Finished 2026-10-05T18:45:07-04:00
Vitest: Test Files 695 passed, Tests 6381 passed
Java Tests run: 69, Failures: 0

Preexisting javadoc, dependency-plugin, vite chunk-size, and npm EBADENGINE warnings were already on the branch baseline. None are in the new content-list description code.

UI proof (H2 QA)

python3 docker/scripts/perc-devctl.py qa-up
# RESULT:OK TEST_CMS_URL=http://127.0.0.1:9993 CONTAINER:perc-matrix-cms-h2
python3 docker/scripts/perc-devctl.py qa-health
# RESULT:OK HTTP:200 after qa-up (docker/logs/qa-health-20261005-224724.log)
python3 docker/scripts/perc-devctl.py qa-deploy-webui
# RESULT:OK
python3 docker/scripts/hot-deploy-rhythmyx-war-jars.py --restart-jetty
# WEB-INF/lib: perc-system, rest, sitemanage, extensions-workflow,
# commons-email2-core, commons-email2-jakarta, jakarta.mail
# in-cell StopJetty / truncate server.log / detached StartJetty
# (no docker restart). A sitemanage-only copy first failed startup
# (NoClassDefFoundError PSExplorerRelationshipEdge on the image rest jar).
python3 docker/scripts/perc-devctl.py qa-health
# RESULT:OK HTTP:200 HEALTH:healthy
# URL:http://127.0.0.1:9993/Rhythmyx/rest/mimetypes
# docker/logs/qa-health-20261005-225047.log

cd modules/perc-qa-automation/frontend
TEST_CMS_URL=http://127.0.0.1:9993 ADMIN_USERNAME=Admin TEST_DB_TYPE=h2 TEST_PRODUCT=cms \
  rtk npm run test:surface -- --path tests/publishing/designContentListDescription.spec.js
# 3 passed (5.8s)

console-clean=yes (spec asserts no pageerror / console error on the exercised paths).

server.log-clean=yes (no ERROR, FATAL, or SEVERE lines in /opt/Percussion/jetty/base/logs/server.log for this boot, including the Playwright window).

Pre-push local code review

Erlang review — PR #5259

Scope

  • Persona: erlang 0.1.1
  • Persona source: ~/.local/share/mkd/agents/erlang
  • Status: mkd-code-review 0.1.18, pack percussion, --gate advisory, --git-base origin/main
  • PR: fix(publishing): set or clear one content list description (#5249) #5259
  • Base: origin/main
  • Head: d26bc07
  • Independent of the author. In-diff bugs: 0. A description-only PUT leaves name, type, generator or legacy URL, and item filter stored. Blank clears. A description longer than 255 characters is rejected before any field is written. The list updates from a refresh after success. Ollama dev-coder CUDA OOM is not a product bug. No rule-file changes.

CLI stdout (mkd-code-review analyze --format markdown)

Summary

Machine analysis found 1 finding(s), 0 bug(s).

Scope

  • Base: origin/main
  • Head: HEAD
  • Files: 11 analyzed
  • Persona: erlang 0.1.1
  • Persona source: /home/nate/.local/share/mkd/agents/erlang

Recommendation

approve

Gate

  • Blocking bugs: 0
  • May commit/push: yes

Issues

Issue 1 -- Severity: suggestion

  • File: review

  • Rule: llm.error

  • Tool: llm

  • Description: model ollama-dev-coder failed: http: status 500 Internal Server Error body {"error":{"message":"llama-server process has terminated: exit status 1: cudaMalloc failed: out of memory\nalloc_tensor_range: failed to allocate CUDA0 buffer of size 5064192000\nerror loading model: unable to allocate CUDA0 buffer","type":"api_error","param":null,"code":null}}

  • Status: open

Co-Authored by Grok Build 1.0.46 using grok-4.6 with agent night-issue-prs-erlang.

Description-only updateContentList leaves the name, type, generator or
legacy URL, and item filter stored. A blank description clears it.
Text longer than 255 characters is HTTP 400 and does not write.

Parent: #4531

> Co-Authored by Grok Build 1.0.46 using grok-4.6 with agent night-issue-prs.
> Co-Authored by Grok Build 1.0.46 using grok-4.6 with agent night-issue-prs.
@natechadwick-intsof natechadwick-intsof added operator:grok Changes authored by Grok operator:night-issue-prs night-issue-prs workflow model:grok-4.6 Session model grok-4.6 labels Oct 5, 2026
Independent mkd-code-review of the PR head: 0 in-diff bugs. Recommendation approve. Ollama CUDA OOM is not a product defect.

> Co-Authored by Grok Build 1.0.46 using grok-4.6 with agent night-issue-prs-erlang.
@natechadwick-intsof

Copy link
Copy Markdown
Collaborator Author

LGTM. Independent Erlang review (mkd-code-review 0.1.18, pack percussion, gate advisory, base origin/main). Persona: erlang 0.1.1. Persona source: ~/.local/share/mkd/agents/erlang. In-diff bugs: 0. Recommendation: approve. Same-login APPROVE is not available; squash-merge follows. Preexisting rows do not block. Ollama dev-coder CUDA OOM is not a product defect.

Co-Authored by Grok Build 1.0.46 using grok-4.6 with agent night-issue-prs-erlang.

@natechadwick-intsof
natechadwick-intsof merged commit 8972620 into main Oct 5, 2026
6 checks passed
@natechadwick-intsof
natechadwick-intsof deleted the fix/issue-5249-content-list-description branch October 5, 2026 23:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

model:grok-4.6 Session model grok-4.6 operator:grok Changes authored by Grok operator:night-issue-prs night-issue-prs workflow

Projects

None yet

Development

Successfully merging this pull request may close these issues.

issue 4531 slice 83: PublishingShell set a content list description

1 participant