Repository navigation
feat(publishing): change one location scheme parameter value - #5372
Conversation
PUT updateParameterValue updates exactly one stored parameter value on an existing location scheme. Name, type, sequence, other parameters, and scheme identity stay. A blank value does not clear the stored value. Fixes #5360 > Co-Authored by Grok Build 1.0.46 using grok-4.7 with agent night-issue-prs.
Machine review of the issue 5360 branch diff. Complexity on updateScheme is advisory. The LLM stage ran out of CUDA memory. > Co-Authored by Grok Build 1.0.46 using grok-4.7 with agent night-issue-prs.
> Co-Authored by Grok Build 1.0.46 using grok-4.7 with agent night-issue-prs-erlang.
|
Request changes. Do not merge. In-diff machine bug (mkd-code-review 0.1.18, pack percussion, gate advisory, base
The value-update behavior itself is correct: one stored parameter, blank value does not clear, unknown name is HTTP 409, stored type/sequence/id and the other parameter stay, and add/remove cannot be combined. Tests cover that. Extract the new value-change path (or the surrounding field updates) so Suggestions, not blockers: Full report:
|
Move location-scheme parameter mode checks and apply out of updateScheme so the method stays within the percussion complexity gate. Add, remove, value change, and full replace behave as before. > Co-Authored by Grok Build 1.0.46 using grok-4.7 with agent night-issue-prs-erlang-fix.
The complexity bug on updateScheme is gone. Suggestions stay under the bug line. > Co-Authored by Grok Build 1.0.46 using grok-4.7 with agent night-issue-prs-erlang.
|
LGTM. Re-review after Independent Erlang review found no in-diff behavioral bug, missing behavioral test, non-portable path, or change-class gap. The previous blocking
|
Summary
Publishing Design can change one stored location scheme parameter value on the existing scheme PUT (
updateParameterValue), the same one-parameter shape as add and remove. The stored name, type, and sequence stay. Other parameters stay. Scheme identity fields stay unless those fields are present. A blank value does not clear the stored value. Cancel does not write. HTTP 400, 403, and 409 leave the previous value in place. A name that is not on the scheme is HTTP 409.This is slice 94 of parent #4531. Type (#5361) and sequence (#5362) stay out of scope.
Fixes #5360
Operator: Grok: night-issue-prs (model grok-4.7)
Test plan
H2 proof:
TEST_CMS_URL=http://127.0.0.1:9993,npm run test:surface -- --path tests/publishing/designLocationSchemeParameterValue.spec.js— 2 passed. console-clean=yes. server.log-clean=yes.Checklist
product-docs/8.2/admin/publishing.md(Change one location scheme parameter value)PSPublishingDesignRestServiceTestvalue cases, Jackson flag bind, VitestlocationSchemeParameterValue.test.tsandContextsPanel.schemeParameterValue.test.tsxmodules/perc-qa-automation/frontend/tests/publishing/designLocationSchemeParameterValue.spec.js(2 passed on H2)projects/sitemanage,WebUI, andmodules/perc-qa-automation(no skipTests). Nofinal/ signature change, so no reverse-dep install.Build evidence
modules_built: projects/sitemanage, WebUI, modules/perc-qa-automation
downstream_checked: none (no final, sealed, or public signature change; grep found no
extends PSLocationSchemeSummary)cd projects/sitemanage && JAVA_HOME=/usr/lib/jvm/java-21-openjdk rtk mvn clean install— Tests run: 3761, Failures: 0, Errors: 0, Skipped: 125, BUILD SUCCESS, Total time 36.613 s, Finished 2026-10-07T21:08:15-04:00cd WebUI && JAVA_HOME=/usr/lib/jvm/java-21-openjdk rtk mvn clean install— Java Tests run: 69, Failures: 0, Errors: 0, Skipped: 0; Vitest Test Files 727 passed (727), Tests 6868 passed (6868); BUILD SUCCESS, Total time 01:47 min, Finished 2026-10-07T21:10:33-04:00cd modules/perc-qa-automation && JAVA_HOME=/usr/lib/jvm/java-21-openjdk rtk mvn clean install— No tests to run (Playwright is the C5 surface, not the default Maven profile); BUILD SUCCESS, Total time 1.634 s, Finished 2026-10-07T21:15:36-04:00UI proof (C5)
python3 docker/scripts/perc-devctl.py qa-up --skip-image-build— RESULT:OK, TEST_CMS_URL=http://127.0.0.1:9993, QA_CMS_HOST_PORT=9993python3 docker/scripts/perc-devctl.py qa-health— RESULT:OK HTTP:200 HEALTH:healthypython3 docker/scripts/perc-devctl.py qa-deploy-war-jars --restart-jetty— copied perc-system, sitemanage, rest, extensions-workflow, and utils SNAPSHOT jars into/opt/Percussion/jetty/base/webapps/Rhythmyx/WEB-INF/liband ran in-cell StopJetty/StartJetty. RESULT:OKpython3 docker/scripts/perc-devctl.py qa-health— RESULT:OK HTTP:200 HEALTH:healthypython3 docker/scripts/perc-devctl.py qa-deploy-webui— copiedWebUI/target/generated-webui/cm/modern(publishing bundle containslocation-scheme-parameter-value). RESULT:OKpython3 docker/scripts/perc-devctl.py qa-health— RESULT:OK HTTP:200 HEALTH:healthycd 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/designLocationSchemeParameterValue.spec.js— 2 passed (3.8s)Pre-push local code review
Erlang review — PR #5372
Scope
Verdict
Recommendation: approve. Blocking bugs: 0. May merge: yes.
Re-review after
8142d5f027extracted scheme-parameter mode checks and apply out ofupdateScheme. That was the only in-diff bug on the previous head (updateSchemecognitive=36, over the pack 2× line of 30). It is gone.Independent read: the extraction preserves the value-one contract. Exactly one stored parameter is updated. A blank or null value is HTTP 400 and does not clear the stored value. A name that is not stored is HTTP 409. Request type and sequence are ignored, so the stored type, sequence, and parameter id stay, and the other parameter stays. Add or remove combined with a value change is HTTP 400 before load. Identity fields change only when present. Sitemanage tests, Jackson binding, Vitest, product docs, and the H2 Playwright spec still match that contract. No filesystem path joins. No agent rule files.
Suggestions, not blockers:
prepareSchemeParameterValueChangecognitive=19 andapplySchemeParameterscognitive=16, both under the bug line.llm.erroris Ollama CUDA out of memory, not a product defect.CLI stdout (
mkd-code-review analyze --format markdown)Summary
Machine analysis found 3 finding(s), 0 bug(s).
Scope
Recommendation
approve
Gate
Issues
Issue 1 -- Severity: suggestion
complexity.cognitivearborist-metricsprepareSchemeParameterValueChangecognitive=19 (max 15), cyclomatic=15 (max 15)Issue 2 -- Severity: suggestion
complexity.cognitivearborist-metricsapplySchemeParameterscognitive=16 (max 15), cyclomatic=13 (max 15)Issue 3 -- Severity: suggestion
File: review
Rule:
llm.errorTool:
llmDescription: model
ollama-dev-coderfailed: 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