Skip to content

fix(publish): map item history 400/403/404 (#4740) - #4744

Merged
natechadwick-intsof merged 2 commits into
mainfrom
fix/issue-4740-item-publish-history
Sep 22, 2026
Merged

natechadwick-intsof merged 2 commits into
mainfrom
fix/issue-4740-item-publish-history

Conversation

@natechadwick-intsof

@natechadwick-intsof natechadwick-intsof commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Parent: #4531 (slice 19 / ITM-06).

PublishingShell already shows item publish history (status, delivery server, location, time) on Status and Logs via GET /services/itemmanagement/item/pubhistory/{id}. This slice maps the lookup failures the panel was collapsing into a generic error:

  • HTTP 400 when the item id is blank or not a content id
  • HTTP 403 when the caller has no workflow assignment on the item
  • HTTP 404 when the item does not exist

Those responses stay errors in the panel. They are not empty history and not success. Schedule dates (#4741) and takedown (#4742) are unchanged.

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

Fixes #4740

Test plan

  • PSItemServicePublishingHistoryTest covers 400, 403, 404, 500, and a reader success row
  • Vitest maps 400/403/404 in itemHistoryErrorMessage and the history panel
  • H2 Playwright tests/publishing/itemPublishingHistory.spec.js — 3 passed, pageerror listeners empty
  • Manual: Publish → Status, look up a real item and a missing id

Product documentation

  • Updated product-docs/8.2/admin/publishing.md (item publishing history error states)

Maven

  • modules_built: projects/sitemanage, WebUI, modules/perc-qa-automation
  • cd projects/sitemanage && rtk mvn clean install — BUILD SUCCESS. Tests run: 2972, Failures: 0, Errors: 0, Skipped: 125
  • cd WebUI && rtk mvn clean install — BUILD SUCCESS. Java tests run: 69, Failures: 0. Vitest: Test Files 517 passed, Tests 4786 passed
  • cd modules/perc-qa-automation && rtk mvn clean install — BUILD SUCCESS. No tests to run
  • downstream_checked: none (no public signature, final, or sealed type change)

UI proof (H2 QA)

  • python3 docker/scripts/perc-devctl.py qa-up — TEST_CMS_URL=http://127.0.0.1:9993, container perc-matrix-cms-h2
  • qa-health RESULT:OK HEALTH:healthy
  • qa-deploy-war-jars --restart-jetty (sitemanage + perc-system SNAPSHOT into WEB-INF/lib, in-cell StopJetty/StartJetty) and qa-deploy-webui
  • qa-health again RESULT:OK HEALTH:healthy
  • npm run test:surface -- --path tests/publishing/itemPublishingHistory.spec.js — 3 passed
  • console-clean=yes (pageerror assertions)
  • server.log-clean=yes (no ERROR/FATAL lines)

Pre-push local code review

Erlang review — PR #4744

Scope

  • Persona: erlang 0.1.1
  • Persona source: /home/nate/.local/share/mkd/agents/erlang
  • Status: mkd-code-review 0.1.18, pack percussion, --gate advisory, --git-base origin/main
  • PR: fix(publish): map item history 400/403/404 (#4740) #4744
  • Base: origin/main
  • Head: 04724f9
  • Files analyzed: 8
  • In-diff bugs: 0 (preexisting rows do not block)
  • Reviewer: independent Erlang pass. Recommendation: approve.

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

Summary

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

Scope

  • Base: origin/main
  • Head: HEAD
  • Files: 8 analyzed
  • In-diff: 0 finding(s); preexisting: 6
  • 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: bug

  • File: projects/sitemanage/src/main/java/com/percussion/itemmanagement/service/impl/PSItemService.java:1767 (preexisting)
  • Rule: paths.hardcoded_sep
  • Tool: paths.hardcoded_sep
  • Pattern-id: paths.hardcoded-sep
  • Description: Possible non-portable path construction (line 1767)
  • Suggestion: Use Path/PathBuf, path.join, File.separator, or pathSeparator — not literal / or \ joins.
  • Status: open

Issue 2 -- Severity: bug

  • File: projects/sitemanage/src/main/java/com/percussion/itemmanagement/service/impl/PSItemService.java:1902 (preexisting)
  • Rule: paths.hardcoded_sep
  • Tool: paths.hardcoded_sep
  • Pattern-id: paths.hardcoded-sep
  • Description: Possible non-portable path construction (line 1902)
  • Suggestion: Use Path/PathBuf, path.join, File.separator, or pathSeparator — not literal / or \ joins.
  • Status: open

Issue 3 -- Severity: bug

  • File: projects/sitemanage/src/main/java/com/percussion/itemmanagement/service/impl/PSItemService.java:1903 (preexisting)
  • Rule: paths.hardcoded_sep
  • Tool: paths.hardcoded_sep
  • Pattern-id: paths.hardcoded-sep
  • Description: Possible non-portable path construction (line 1903)
  • Suggestion: Use Path/PathBuf, path.join, File.separator, or pathSeparator — not literal / or \ joins.
  • Status: open

Issue 4 -- Severity: bug

  • File: projects/sitemanage/src/main/java/com/percussion/itemmanagement/service/impl/PSItemService.java:1907 (preexisting)
  • Rule: paths.hardcoded_sep
  • Tool: paths.hardcoded_sep
  • Pattern-id: paths.hardcoded-sep
  • Description: Possible non-portable path construction (line 1907)
  • Suggestion: Use Path/PathBuf, path.join, File.separator, or pathSeparator — not literal / or \ joins.
  • Status: open

Issue 5 -- Severity: bug

  • File: projects/sitemanage/src/main/java/com/percussion/itemmanagement/service/impl/PSItemService.java:1908 (preexisting)
  • Rule: paths.hardcoded_sep
  • Tool: paths.hardcoded_sep
  • Pattern-id: paths.hardcoded-sep
  • Description: Possible non-portable path construction (line 1908)
  • Suggestion: Use Path/PathBuf, path.join, File.separator, or pathSeparator — not literal / or \ joins.
  • Status: open

Issue 6 -- Severity: bug

  • File: projects/sitemanage/src/main/java/com/percussion/itemmanagement/service/impl/PSItemService.java:1914 (preexisting)
  • Rule: paths.hardcoded_sep
  • Tool: paths.hardcoded_sep
  • Pattern-id: paths.hardcoded-sep
  • Description: Possible non-portable path construction (line 1914)
  • Suggestion: Use Path/PathBuf, path.join, File.separator, or pathSeparator — not literal / or \ joins.
  • Status: open

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

PublishingShell item history already listed status, server, and time.
GET pubhistory now returns 400 for a bad id, 404 when the item is missing,
and 403 when the caller has no assignment, and the panel maps those
statuses instead of treating them as empty history.

> Co-Authored by Grok Build 1.0.40 using grok-4.6 with agent night-issue-prs.
Record the pre-push mkd-code-review advisory report. In-diff bugs: 0.

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

Copy link
Copy Markdown
Collaborator Author

LGTM. Erlang 0.1.1 / mkd-code-review 0.1.18 (pack percussion, gate advisory, base origin/main). In-diff findings: 0. Preexisting rows are outside the diff and do not block. Tests cover the new 400/403 (and 404 on #4744) paths. Same-login APPROVE is rejected by GitHub; this comment is the review.

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

@natechadwick-intsof
natechadwick-intsof merged commit 987c340 into main Sep 22, 2026
8 checks passed
@natechadwick-intsof
natechadwick-intsof deleted the fix/issue-4740-item-publish-history branch September 22, 2026 21:26
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 19: PublishingShell item publish history

1 participant