Skip to content

fix(FOUR-33127): Screen modeler doesn't display pages selector after saving draft - #9052

Open
rodriquelca wants to merge 2 commits into
developfrom
bugfix/FOUR-33127
Open

fix(FOUR-33127): Screen modeler doesn't display pages selector after saving draft#9052
rodriquelca wants to merge 2 commits into
developfrom
bugfix/FOUR-33127

Conversation

@rodriquelca

Copy link
Copy Markdown
Contributor

Issue & Reproduction Steps

Expected behavior: In the screen designer, FORM screens show the page selector dropdown (Create Page, See all pages, page list).

Actual behavior: On Octane, the page selector is missing in the screen builder. FPM works correctly.

Reproduction steps:

  1. Run ProcessMaker with Octane.
  2. Visit any page that loads DISPLAY screen scripts (e.g. process catalogue).
  3. Open a FORM screen in the designer: /designer/screen-builder/{id}/edit.
  4. The page selector (file icon dropdown in the tab bar) is not rendered.

Solution

  • Add ProcessMaker\Managers\ScreenBuilderManager::class to the flush array in config/octane.php.
octane_Screnn_type_issue.mov

How to Test

  1. Deploy/restart Octane with the config change.
  2. Visit a DISPLAY page, then open a FORM screen: /designer/screen-builder/{id}/edit.
  3. Verify the page selector dropdown appears in the tab bar.
  4. In browser console: document.querySelector('[data-test="page-dropdown"]') returns an element (not null).
  5. Confirm page selector still works on a fresh Octane worker (direct navigation to screen builder, no prior DISPLAY page).

Related Tickets & Packages

Code Review Checklist

  • I have pulled this code locally and tested it on my instance, along with any associated packages.
  • This code adheres to ProcessMaker Coding Guidelines.
  • This code includes a unit test or an E2E test that tests its functionality, or is covered by an existing test.
  • This solution fixes the bug reported in the original ticket.
  • This solution does not alter the expected output of a component in a way that would break existing Processes.
  • This solution does not implement any breaking changes that would invalidate documentation or cause existing Processes to fail.
  • This solution has been tested with enterprise packages that rely on its functionality and does not introduce bugs in those packages.
  • This code does not duplicate functionality that already exists in the framework or in ProcessMaker.
  • This ticket conforms to the PRD associated with this part of ProcessMaker.

@cursor

cursor Bot commented Sep 10, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
The Octane flush change is targeted but affects screen-builder bootstrapping on every request; lowering default FrankenPHP memory from 3072M to 512M may cause OOM on heavy workloads that relied on the old default.

Overview
Fixes the screen designer page selector missing on Octane by adding ProcessMaker\Managers\ScreenBuilderManager to Octane’s flush list so its mutable script registry is reset each request instead of reusing state warmed from prior DISPLAY-screen traffic.

FrankenPHP / Octane defaults are also aligned: default worker memory_limit drops from 3072M to 512M in Caddyfile and config/octane.php (caddy.env), and the documented/default max_execution_time moves to 120 seconds in Caddyfile and .env.example (Octane config still defaults execution time to 90 unless env overrides).

Reviewed by Cursor Bugbot for commit 494126e. Bugbot is set up for automated code reviews on this repo. Configure here.

@decisions-sonarqube

Copy link
Copy Markdown

Quality Gate passed Quality Gate passed

Issues
0 New issues
0 Fixed issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
No data about Duplication

See analysis details on SonarQube

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 494126e. Configure here.

Comment thread Caddyfile
php_ini memory_limit {$OCTANE_MEMORY_LIMIT:3072M}
php_ini max_execution_time {$OCTANE_MAX_EXECUTION_TIME:90}
php_ini memory_limit {$OCTANE_MEMORY_LIMIT:512M}
php_ini max_execution_time {$OCTANE_MAX_EXECUTION_TIME:120}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Execution time defaults disagree

Low Severity

Caddyfile and .env.example now default OCTANE_MAX_EXECUTION_TIME to 120, but config/octane.php still defaults both max_execution_time and caddy.env to 90. When Octane injects caddy.env, the 90 value wins and the intended timeout increase does not apply.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 494126e. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants