flags.rs

 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}