use crate::{EnumFeatureFlag, FeatureFlag, PresenceFlag, register_feature_flag};pub struct NotebookFeatureFlag;impl FeatureFlag for NotebookFeatureFlag { const NAME: &'static str = "notebooks"; type Value = PresenceFlag;}register_feature_flag!(NotebookFeatureFlag);pub struct PanicFeatureFlag;impl FeatureFlag for PanicFeatureFlag { const NAME: &'static str = "panic"; type Value = PresenceFlag;}register_feature_flag!(PanicFeatureFlag);/// A feature flag for granting access to beta ACP features.////// We reuse this feature flag for new betas, so don't delete it if it is not currently in use.pub struct AcpBetaFeatureFlag;impl FeatureFlag for AcpBetaFeatureFlag { const NAME: &'static str = "acp-beta"; type Value = PresenceFlag;}register_feature_flag!(AcpBetaFeatureFlag);pub struct AgentSharingFeatureFlag;impl FeatureFlag for AgentSharingFeatureFlag { const NAME: &'static str = "agent-sharing"; type Value = PresenceFlag;}register_feature_flag!(AgentSharingFeatureFlag);pub struct DiffReviewFeatureFlag;impl FeatureFlag for DiffReviewFeatureFlag { const NAME: &'static str = "diff-review"; type Value = PresenceFlag; fn enabled_for_staff() -> bool { false }}register_feature_flag!(DiffReviewFeatureFlag);pub struct UpdatePlanToolFeatureFlag;impl FeatureFlag for UpdatePlanToolFeatureFlag { const NAME: &'static str = "update-plan-tool"; type Value = PresenceFlag; fn enabled_for_staff() -> bool { false }}register_feature_flag!(UpdatePlanToolFeatureFlag);pub struct LspToolFeatureFlag;impl FeatureFlag for LspToolFeatureFlag { const NAME: &'static str = "lsp-tool"; type Value = PresenceFlag; fn enabled_for_staff() -> bool { false }}register_feature_flag!(LspToolFeatureFlag);pub struct ProjectPanelUndoRedoFeatureFlag;impl FeatureFlag for ProjectPanelUndoRedoFeatureFlag { const NAME: &'static str = "project-panel-undo-redo"; type Value = PresenceFlag; fn enabled_for_staff() -> bool { true }}register_feature_flag!(ProjectPanelUndoRedoFeatureFlag);/// Controls how agent thread worktree chips are labeled in the sidebar.#[derive(Clone, Copy, PartialEq, Eq, Debug, EnumFeatureFlag)]pub enum AgentThreadWorktreeLabel { #[default] Both, Worktree, Branch,}pub struct AgentThreadWorktreeLabelFlag;impl FeatureFlag for AgentThreadWorktreeLabelFlag { const NAME: &'static str = "agent-thread-worktree-label"; type Value = AgentThreadWorktreeLabel; fn enabled_for_staff() -> bool { false }}register_feature_flag!(AgentThreadWorktreeLabelFlag);pub struct AutoWatchFeatureFlag;impl FeatureFlag for AutoWatchFeatureFlag { const NAME: &'static str = "auto-watch-screens"; type Value = PresenceFlag;}register_feature_flag!(AutoWatchFeatureFlag);
use crate::{EnumFeatureFlag, FeatureFlag, PresenceFlag, register_feature_flag};
pub struct NotebookFeatureFlag;
impl FeatureFlag for NotebookFeatureFlag {
const NAME: &'static str = "notebooks";
type Value = PresenceFlag;
}
register_feature_flag!(NotebookFeatureFlag);
pub struct PanicFeatureFlag;
impl FeatureFlag for PanicFeatureFlag {
const NAME: &'static str = "panic";
type Value = PresenceFlag;
}
register_feature_flag!(PanicFeatureFlag);
/// A feature flag for granting access to beta ACP features.
///
/// We reuse this feature flag for new betas, so don't delete it if it is not currently in use.
pub struct AcpBetaFeatureFlag;
impl FeatureFlag for AcpBetaFeatureFlag {
const NAME: &'static str = "acp-beta";
type Value = PresenceFlag;
}
register_feature_flag!(AcpBetaFeatureFlag);
pub struct AgentSharingFeatureFlag;
impl FeatureFlag for AgentSharingFeatureFlag {
const NAME: &'static str = "agent-sharing";
type Value = PresenceFlag;
}
register_feature_flag!(AgentSharingFeatureFlag);
pub struct DiffReviewFeatureFlag;
impl FeatureFlag for DiffReviewFeatureFlag {
const NAME: &'static str = "diff-review";
type Value = PresenceFlag;
fn enabled_for_staff() -> bool {
false
}
}
register_feature_flag!(DiffReviewFeatureFlag);
pub struct UpdatePlanToolFeatureFlag;
impl FeatureFlag for UpdatePlanToolFeatureFlag {
const NAME: &'static str = "update-plan-tool";
type Value = PresenceFlag;
fn enabled_for_staff() -> bool {
false
}
}
register_feature_flag!(UpdatePlanToolFeatureFlag);
pub struct LspToolFeatureFlag;
impl FeatureFlag for LspToolFeatureFlag {
const NAME: &'static str = "lsp-tool";
type Value = PresenceFlag;
fn enabled_for_staff() -> bool {
false
}
}
register_feature_flag!(LspToolFeatureFlag);
pub struct ProjectPanelUndoRedoFeatureFlag;
impl FeatureFlag for ProjectPanelUndoRedoFeatureFlag {
const NAME: &'static str = "project-panel-undo-redo";
type Value = PresenceFlag;
fn enabled_for_staff() -> bool {
true
}
}
register_feature_flag!(ProjectPanelUndoRedoFeatureFlag);
/// Controls how agent thread worktree chips are labeled in the sidebar.
#[derive(Clone, Copy, PartialEq, Eq, Debug, EnumFeatureFlag)]
pub enum AgentThreadWorktreeLabel {
#[default]
Both,
Worktree,
Branch,
}
pub struct AgentThreadWorktreeLabelFlag;
impl FeatureFlag for AgentThreadWorktreeLabelFlag {
const NAME: &'static str = "agent-thread-worktree-label";
type Value = AgentThreadWorktreeLabel;
fn enabled_for_staff() -> bool {
false
}
}
register_feature_flag!(AgentThreadWorktreeLabelFlag);
pub struct AutoWatchFeatureFlag;
impl FeatureFlag for AutoWatchFeatureFlag {
const NAME: &'static str = "auto-watch-screens";
type Value = PresenceFlag;
}
register_feature_flag!(AutoWatchFeatureFlag);