Forums Feature Requests Thread

[Enhancement] Engagement: Removal candidate (policy-disabled): DIY Projects subsystem (ProjectController, 1287 lines + 7 templates)

Patrick Bass · Jun 6 · 10 · 1 Locked
[Normal Priority] [Feature Enhancement] [Deployed to Production]
🚀 OP Jun 6, 2026 6:54pm

Area: Engagement (audit p9) · Surface: src/Controllers/ProjectController.php + templates/projects/* · Dimension: dead-code · Severity: enhancement

The entire DIY Projects feature (controller + 7 templates + project-categories admin + vote/follow API) is intentionally disabled for every tenant via POLICY_DISABLED. The code is present and wired but unreachable in production. Reporting as a removal candidate per the policy-disabled rule, not as a bug. If the projects feature is permanently shelved, this is ~1300 lines of controller plus templates that could be removed.

Evidence

FeatureCatalog.php:78 lists 'projects' in POLICY_DISABLED. ProjectController.php:27 `$this->features->require('projects');` runs in the constructor, so every one of its ~28 routed actions 404s for any tenant (the flag never auto-enables). routes.php:513-521, 897-914 register the full /projects/* route surface. Templates: projects/index, show, create, edit, following, releases/create, releases/show — all rendered only from this 404-gated controller.

Suggested fix. Leave as-is if 'projects' may be re-enabled per-tenant in future (it remains in CATALOG for an explicit opt-in). If permanently retired, remove ProjectController, templates/projects/*, and the /projects routes together.

Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.


Patrick Bass
@mobieus

🚀 Jun 7, 2026 12:18pm

Shipped and deployed to production. Commit fddecc6472.

All /projects/* routes (9 public + 18 auth-group) removed from routes.php. Controller kept.

Closed as: deployed.


Patrick Bass
@mobieus

Log in or register to reply to this thread.