Skip to content

feat(publishing): set one modern content list generator - #5290

Merged
natechadwick-intsof merged 3 commits into
mainfrom
fix/issue-5269-content-list-generator
Oct 6, 2026
Merged

natechadwick-intsof merged 3 commits into
mainfrom
fix/issue-5269-content-list-generator

Conversation

@natechadwick-intsof

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

Copy link
Copy Markdown
Collaborator

Summary

Publishing design can set the generator on one modern content list without changing the name, description, type, or item filter. Generator sends the existing content-list update with only generator. A legacy row has no generator action, so a legacy URL is not changed. Cancel does not write. A blank or overlong generator does not write. HTTP 400, 403, and 409 leave the previous generator in place.

Parent: #4531. Slice: #5269.

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

Fixes #5269

Test plan

  1. Open Publish → Design → Content lists (spa.jsp?entry=publish&section=design).
  2. On a modern content list, choose Generator. Confirm name, description, type, and item filter are shown and not editable.
  3. Change the generator and Save generator. After reload, the row shows the new generator and the same name, description, type, and item filter.
  4. Open Generator again, change the value, and Cancel. The row keeps the saved generator.
  5. Clear the generator (or enter only spaces) and save. The form stays open with an error and the stored generator is unchanged.
  6. Enter more than 256 characters and save. The form rejects it and does not call the server.
  7. Confirm a legacy content list row has no Generator button and its URL is unchanged.
  8. H2 QA: tests/publishing/designContentListGenerator.spec.js (3 passed).

Checklist

  • Product documentation — updated product-docs/8.2/admin/publishing.md (Set a content list generator)
  • Unit / module tests — sitemanage PSPublishingDesignRestServiceTest generator cases; WebUI Vitest contentListGenerator.test.ts and DesignSection.contentListGenerator.test.tsx
  • WebUI + Playwright — modules/perc-qa-automation/frontend/tests/publishing/designContentListGenerator.spec.js
  • Build gates — standalone clean install for projects/sitemanage and WebUI (no skipTests). No public signature change, so no reverse-dep compile.
  • Cross-platform — no new filesystem path construction

Build evidence

modules_built: projects/sitemanage, WebUI, modules/perc-qa-automation

downstream_checked: none (no final/sealed type and no public or protected signature change)

  • cd projects/sitemanage && rtk mvn clean install — BUILD SUCCESS. Tests run: 3644, Failures: 0, Errors: 0, Skipped: 125
  • cd WebUI && rtk mvn clean install — BUILD SUCCESS. Java tests run: 69, Failures: 0. Vitest: Test Files 704 passed, Tests 6491 passed
  • cd modules/perc-qa-automation && rtk mvn clean install — BUILD SUCCESS. No Java tests (Playwright is the surface run below)

UI proof (C5)

  • python3 docker/scripts/perc-devctl.py qa-up --skip-image-build --then-qa-deploy-webui — RESULT:OK. TEST_CMS_URL=http://127.0.0.1:9993. Deployed generated cm/modern and WAR jars (perc-system, rest, sitemanage, extensions-workflow) with in-cell Jetty restart.
  • python3 docker/scripts/perc-devctl.py qa-health after that restart — RESULT:OK HTTP:200 HEALTH:healthy
  • 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 npm run test:surface -- --path tests/publishing/designContentListGenerator.spec.js — 3 passed
  • console-clean=yes (spec fails on pageerror / console error)
  • server.log-clean=yes (no new ERROR/FATAL lines in the test window)
  • python3 docker/scripts/perc-devctl.py qa-down — RESULT:OK

Pre-push local code review

Independent Erlang review (persona erlang 0.1.1). Full mkd-code-review analyze report:

<!--
Copyright (c) 2026 Intersoft Data Labs, Inc.
Licensed under the Apache License, Version 2.0.
-->

# Erlang review — PR #5290

## Scope

- Persona: erlang 0.1.1
- Persona source: /home/nate/.local/share/mkd/agents/erlang
- Tool: mkd-code-review 0.1.18 (`analyze --pack percussion --format markdown --gate advisory --git-base origin/main`)
- Models: `/home/nate/workspaces/mkd-workspace/mkd-code-review/config/models.ollama-dev-coder.toml`
- PR: https://github.com/intersoftdatalabs-in/percussioncms/pull/5290
- Head: b241f4c9a192ca7b014d08365aa2bf49c6f6a10e
- Reviewer is independent of the implementer.
- Ollama `dev-coder` returned HTTP 500 (CUDA out of memory). Machine findings kept. Not a merge block.

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

## Summary

Machine analysis found **2** finding(s), **0** bug(s).

## Scope

- Base: origin/main
- Head: HEAD
- Files: 11 analyzed
- In-diff: 0 finding(s); preexisting: 1
- 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: projects/sitemanage/src/main/java/com/percussion/publishingdesign/impl/PSPublishingDesignRestService.java:1463 (preexisting)
- Rule: `complexity.cognitive`
- Tool: `arborist-metrics`
- Description: Function `applyContentListFields` cognitive=24 (max 15), cyclomatic=18 (max 15)
- Suggestion: Extract helpers, reduce nesting, use guard clauses (see CODE_STANDARDS).
- Status: open

### Issue 2 -- 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 1879048192\nllama_init_from_model: failed to initialize the context: failed to allocate buffer for kv cache","type":"api_error","param":null,"code":null}}

- Status: open

## Independent reading

A generator-only update trims and rejects a blank or overlong generator, and a generator on a legacy list, before any field is written. Name, description, type, URL, and item filter are not set on that path. The Design action is limited to modern rows. Vitest, sitemanage tests, the H2 Playwright spec, and `product-docs/8.2/admin/publishing.md` are in the diff. The cognitive-complexity row is preexisting and is not an in-diff bug. No blocking bug.

Publishing design saves the generator alone on a modern content list.
Name, description, type, and item filter stay stored, and a legacy list
URL is not changed. A blank or overlong generator does not write.

Fixes #5269

> 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 6, 2026
> 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

Erlang review LGTM. Same-login APPROVE is rejected by GitHub, so this comment is the review. mkd-code-review 0.1.18, persona erlang 0.1.1, base origin/main, head b241f4c. Machine gate: 0 blocking bugs. Preexisting cognitive complexity on applyContentListFields is not an in-diff bug. Ollama dev-coder HTTP 500 (CUDA OOM) is not a gate. Full report is in the PR body and docs/ai-generated/code-reviews/pr-5290-erlang.md.

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

@natechadwick-intsof
natechadwick-intsof merged commit 35658ff into main Oct 6, 2026
6 checks passed
@natechadwick-intsof
natechadwick-intsof deleted the fix/issue-5269-content-list-generator branch October 6, 2026 19:22
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 86: PublishingShell set a content list generator

1 participant