Skip to content

Add Browser UI#311

Merged
iMattPro merged 34 commits into
phpbb:masterfrom
iMattPro:webui
Jul 14, 2026
Merged

Add Browser UI#311
iMattPro merged 34 commits into
phpbb:masterfrom
iMattPro:webui

Conversation

@iMattPro

Copy link
Copy Markdown
Member

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds a new local “Dashboard UI” (browser-based) workflow for the QuickInstall sandbox, alongside several cross-platform (notably Windows) robustness improvements to the CLI runtime and workspace handling.

Changes:

  • Add a PHP-built-in-server-backed Dashboard UI (src/QuickInstall/Sandbox/Web/*, public/assets/*) with AJAX actions for boards, sources, and customisation mounts.
  • Introduce update-check caching + notifications (UpdateService) and a new doctor command to diagnose host requirements (DoctorService).
  • Improve workspace safety and Windows compatibility (workspace locking, path normalization, process execution, compose/seeding/runtime file handling).

Reviewed changes

Copilot reviewed 51 out of 54 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/Unit/VersionMatrixTest.php Adjust tests for new PHP runtime resolution and exact 3.3.x tag handling.
tests/Unit/UpdateServiceTest.php Add unit coverage for update-check caching, failures, and URL sanitization.
tests/Unit/UiServerServiceTest.php Add unit coverage for UI server lifecycle, Windows quoting, IPv6 formatting, and log reset.
tests/Unit/SourceServiceTest.php Add unit coverage for git fetch ensuring/rollback behavior.
tests/Unit/SourceProviderTest.php Add unit coverage for git URL validation, runtime detection, and case-insensitive keys.
tests/Unit/SeederWriterTest.php Assert seeder output includes memory-limit and GC handling.
tests/Unit/ProjectTest.php Add unit coverage for Windows path normalization, case-insensitive containment, JSON errors, and cache dir creation.
tests/Unit/ProcessRunnerTest.php Add unit coverage for timeouts, Windows batch handling, deadlock avoidance, and credential redaction.
tests/Unit/ExtensionManagerTest.php Add coverage for rejecting traversal components in composer package names.
tests/Unit/DockerComposeWriterTest.php Add coverage ensuring generated runtime files use Unix line endings.
tests/Unit/CustomisationMountServiceTest.php Add unit coverage for recursive mount aggregation and per-item error collection.
tests/Unit/BoardServiceTest.php Add coverage for case-insensitive board names and safer replacement semantics.
tests/Unit/BoardRunnerTest.php Add coverage for seeder memory-limit flag and container state checks.
tests/Integration/WebApplicationTest.php Add integration coverage for HTML render, CSRF, AJAX JSON behavior, and UI workflows.
tests/Integration/BinQiTest.php Add smoke coverage for doctor, ui:status, and service-loading commands.
tests/Integration/ApplicationTest.php Add coverage for CLI update notice and UI command exposure/behavior.
tests/bootstrap.php Switch test bootstrap to use the new sandbox bootstrap + web app class.
style/assets/js/scripts.js Extend codeblock copy support to PowerShell and batch code blocks.
style/assets/css/qi_style.css Style additional codeblock types (PowerShell/batch) consistently.
src/QuickInstall/Sandbox/Web/templates/layout.php Add base HTML layout for the Dashboard UI shell.
src/QuickInstall/Sandbox/Web/templates/dashboard.php Add Dashboard UI markup for boards/sources/customisations/activity log/update banner.
src/QuickInstall/Sandbox/Web/templates/csrf.php Add a reusable CSRF hidden-field template.
src/QuickInstall/Sandbox/Web/Application.php Implement Dashboard UI controller: local-only checks, CSRF, AJAX JSON rendering, and actions.
src/QuickInstall/Sandbox/VersionMatrix.php Update selector notes and refine git/custom runtime resolution and exact-tag PHP mapping.
src/QuickInstall/Sandbox/UpdateService.php Add update-check fetch + cache with TTLs and URL sanitization.
src/QuickInstall/Sandbox/UiServerService.php Add background UI server management (start/stop/status/restart) with Windows + Unix support.
src/QuickInstall/Sandbox/StyleManager.php Enforce case-insensitive mount name conflicts; normalize discovered paths via realpath.
src/QuickInstall/Sandbox/StreamOutput.php Use binary-safe stream modes (wb) for stdout/stderr fallbacks.
src/QuickInstall/Sandbox/SourceService.php Add provider factory + git fetch rollback behavior on ensure failure.
src/QuickInstall/Sandbox/SourceProvider.php Add git URL validation, case-insensitive keys, better FS error messages, runtime detection, and Windows PATH resolution.
src/QuickInstall/Sandbox/SeederWriter.php Raise memory limit and add periodic cache/GC cleanup during heavy presets.
src/QuickInstall/Sandbox/Project.php Add operation/file locking, atomic JSON writes, Windows path normalization, and name validation hardening.
src/QuickInstall/Sandbox/ProcessRunner.php Add timeouts, Windows-safe execution path, output handling improvements, and redaction/hints.
src/QuickInstall/Sandbox/ExtensionManager.php Harden extension name validation; normalize discovered paths via realpath.
src/QuickInstall/Sandbox/DoctorService.php Add environment diagnostics for PHP/Docker/Git/Composer and key extensions/settings.
src/QuickInstall/Sandbox/DockerComposeWriter.php Normalize runtime file line endings and migrate volume entries to long syntax bind mounts.
src/QuickInstall/Sandbox/CustomisationMountService.php New service to unify single vs recursive mount flows and board refresh behavior.
src/QuickInstall/Sandbox/bootstrap.php Centralize sandbox class requires into one bootstrap file.
src/QuickInstall/Sandbox/BoardService.php Add safer replacement workflow (backup/restore), case-insensitive handling, and runtime resolution improvements.
src/QuickInstall/Sandbox/BoardRunner.php Factor container removal, include stopped-container checks, harden writes/unlinks, and raise seeder memory limit.
src/QuickInstall/Sandbox/BoardRefreshService.php New service to rewrite runtime and refresh running containers after mount/unmount changes.
src/QuickInstall/Sandbox/Application.php Add doctor + ui:* commands, workspace locking, and CLI update notices.
README.md Update docs to mention Dashboard UI, requirements, and cross-platform usage.
public/sandbox-ui.php Add PHP built-in server router for Dashboard UI and static assets.
public/assets/sandbox-ui.js Add Dashboard UI AJAX handling, toast rendering, and update banner dismissal.
public/assets/sandbox-ui.css Add Dashboard UI styling (layout, cards, buttons, terminal/log, etc.).
public/assets/phpbb-logo.svg Add phpBB logo asset for Dashboard UI branding.
package.json Mark package as private (avoid accidental publishes).
docs/sandbox-cli.md Document Dashboard UI commands and Windows-specific invocation details.
build.xml Stop deleting composer.phar during build packaging.
bin/qi.cmd Add Windows CMD launcher wrapper for bin/qi.
bin/qi Switch to sandbox bootstrap include.
.github/workflows/cli-tests.yml Add a Windows CI job (PHP 8.3) and launcher smoke test.
.github/CONTRIBUTING.md Add Windows testing guidance and expectations for CLI/UI changes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/QuickInstall/Sandbox/Application.php
Comment thread src/QuickInstall/Sandbox/DoctorService.php Outdated
@iMattPro iMattPro merged commit c7582b8 into phpbb:master Jul 14, 2026
5 checks passed
@iMattPro iMattPro deleted the webui branch July 14, 2026 01:59
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