chore(dev): harden Community JCEF local runtime - #2714
Conversation
There was a problem hiding this comment.
Reviewed 5cf7dbe. Findings: 0 critical, 0 high, 1 medium. Merge recommendation: non-blocking; address the macOS temporary app-image cleanup to prevent persistent build artifacts and disk growth. Coverage was limited to the current GitHub diff, pull request metadata, existing review history, and relevant repository packaging sources; no tests or runtime checks were run.
Warning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
awmgmcpg
To allow these domains, add them to the
network.allowedlist in your workflow frontmatter:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
Generated by AI Pull Request Reviewer for #2714 · 25.1 AIC · ⌖ 0.786 AIC · ⊞ 17K
| jpackage "${args[@]}" | ||
| rm -rf "${MAC_DEV_OUTPUT_DIR}" | ||
| mkdir -p "$(dirname "${MAC_DEV_OUTPUT_DIR}")" | ||
| mv "${output_dir}" "${MAC_DEV_OUTPUT_DIR}" |
There was a problem hiding this comment.
[medium] The macOS launcher moves the generated app image out of the staging directory into jpackage/output/dev-community-jcef, but cleanup() only removes MAC_DEV_STAGING_DIR. Every successful macOS launch, timeout, or later process exit therefore leaves the full generated app image in the working tree, contrary to the temporary-image lifecycle and consuming substantial disk space until the next run. Keep the app image inside the staging directory, or explicitly remove MAC_DEV_OUTPUT_DIR from the exit trap after the launched process has terminated.
Related issue
Closes #2709
Depends on #2711. Review and merge #2711 first.
Summary
This PR makes the Community JCEF development launcher wait for the actual desktop window instead of stopping at HTTP health checks. On macOS it creates a temporary app image with the configured JBR and JCEF frameworks, launches that executable, and waits for a ready marker written after the JFrame becomes visible.
Community CORS accepts arbitrary origins only under the Spring dev profile so an isolated frontend can connect to the local backend. Release behavior keeps the existing origin allowlist. Task lifecycle and application-exit coordination are intentionally excluded from this PR.
Affected surfaces
Verification
Risk and compatibility
Reviewer map
Contributor declaration
AI assistance: Substantial AI assistance was used for implementation, debugging, tests, and review. The contributor manually reviewed and tested the resulting behavior.