1use crate::FeatureFlag;
2
3pub struct NotebookFeatureFlag;
4
5impl FeatureFlag for NotebookFeatureFlag {
6 const NAME: &'static str = "notebooks";
7}
8
9pub struct PanicFeatureFlag;
10
11impl FeatureFlag for PanicFeatureFlag {
12 const NAME: &'static str = "panic";
13}
14
15/// A feature flag for granting access to beta ACP features.
16///
17/// We reuse this feature flag for new betas, so don't delete it if it is not currently in use.
18pub struct AcpBetaFeatureFlag;
19
20impl FeatureFlag for AcpBetaFeatureFlag {
21 const NAME: &'static str = "acp-beta";
22}
23
24pub struct AgentSharingFeatureFlag;
25
26impl FeatureFlag for AgentSharingFeatureFlag {
27 const NAME: &'static str = "agent-sharing";
28}
29
30pub struct DiffReviewFeatureFlag;
31
32impl FeatureFlag for DiffReviewFeatureFlag {
33 const NAME: &'static str = "diff-review";
34
35 fn enabled_for_staff() -> bool {
36 false
37 }
38}
39
40pub struct StreamingEditFileToolFeatureFlag;
41
42impl FeatureFlag for StreamingEditFileToolFeatureFlag {
43 const NAME: &'static str = "streaming-edit-file-tool";
44
45 fn enabled_for_staff() -> bool {
46 true
47 }
48}
49
50pub struct UpdatePlanToolFeatureFlag;
51
52impl FeatureFlag for UpdatePlanToolFeatureFlag {
53 const NAME: &'static str = "update-plan-tool";
54
55 fn enabled_for_staff() -> bool {
56 false
57 }
58}
59
60pub struct ProjectPanelUndoRedoFeatureFlag;
61
62impl FeatureFlag for ProjectPanelUndoRedoFeatureFlag {
63 const NAME: &'static str = "project-panel-undo-redo";
64
65 fn enabled_for_staff() -> bool {
66 true
67 }
68}