fix(labels): gate Studio module on remote feature - #1041
Conversation
sfmskywalker
left a comment
There was a problem hiding this comment.
Round 1 — APPROVE (HIGH)
Tip: d2d1aee9b51691e39d34da92c43e7ef059460884 → main (#1038)
Code Review gate: APPROVE + HIGH
(Formal GitHub event COMMENT — cannot approve an own-authored PR.)
The Labels module now declares the exact Core shell-feature name, the menu uses the existing fail-closed helper, and the tests cover enabled/disabled plus authentication, cancellation, and prerender failures. The existing Administration placement assertion was updated with an enabled provider; widget registration remains covered. Root verification: exact four-file diff reviewed, signed commit verified, worker reported 8/8 focused and 44/44 full Administration tests, and git diff --check is clean.
Merge only after exact-head Copilot is clear, Greptile is 5/5 with zero unresolved threads, and hosted checks are terminal green.
There was a problem hiding this comment.
🟢 Approved
The focused change follows established remote-feature patterns and includes appropriate coverage.
Pull request overview
Gates the Labels Studio module on the optional backend Labels feature.
Changes:
- Adds canonical remote-feature metadata.
- Hides Labels navigation when unavailable.
- Adds metadata, initialization, and failure-path tests.
File summaries
| File | Description |
|---|---|
Module.cs |
Declares the required remote feature. |
LabelsMenu.cs |
Adds fail-closed feature gating. |
LabelsMenuTests.cs |
Covers gating and feature initialization. |
AdministrationNavigationTests.cs |
Updates construction for the new dependency. |
Review details
- Files reviewed: 4/4 changed files
- Comments generated: 0
- Review effort level: Balanced (auto)
Note
Copilot is running an experiment and ran this review at Balanced.
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
|
Purpose
Close #1038 by making the Studio Labels module follow the optional backend feature contract.
Scope
Changes
[RemoteFeature(RemoteFeatureName)]to the LabelsFeature.RemoteFeatureNameasElsa.Labels.ShellFeatures.Labels.IRemoteFeatureProviderintoLabelsMenuand gate it withIsEnabledOrDefaultAsync.Verification
Elsa.Studio.Administration.Tests: 44 passed.git diff --check: clean.