Closes security loopholes and updates docs: - installs seccomp filter for blocking naughty syscalls - tightens macos seatbelt profile - fetch tool responses that redirect are now constrained by allowed domains list Also adds a few "Learn More" buttons that link to the new docs. Also fixes a bug where the agent would try to create a `~/.config/zed/AGENTS.md` directory Also adds unicode confusable detection to URL/path privilege escalation prompts. --- Release Notes: - N/A or Added/Fixed/Improved ... --------- Co-authored-by: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>
121 lines
3.0 KiB
Rust
121 lines
3.0 KiB
Rust
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 DiffReviewFeatureFlag;
|
|
|
|
impl FeatureFlag for DiffReviewFeatureFlag {
|
|
const NAME: &'static str = "diff-review";
|
|
type Value = PresenceFlag;
|
|
|
|
fn enabled_for_staff() -> bool {
|
|
false
|
|
}
|
|
}
|
|
register_feature_flag!(DiffReviewFeatureFlag);
|
|
|
|
/// Gates the `create_thread` and `list_agents_and_models` tools, which let
|
|
/// the agent spawn independent sibling threads that show up in the agent
|
|
/// panel sidebar.
|
|
pub struct CreateThreadToolFeatureFlag;
|
|
|
|
impl FeatureFlag for CreateThreadToolFeatureFlag {
|
|
const NAME: &'static str = "create-thread-tool";
|
|
type Value = PresenceFlag;
|
|
|
|
fn enabled_for_staff() -> bool {
|
|
true
|
|
}
|
|
}
|
|
register_feature_flag!(CreateThreadToolFeatureFlag);
|
|
|
|
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 RenameToolFeatureFlag;
|
|
|
|
impl FeatureFlag for RenameToolFeatureFlag {
|
|
const NAME: &'static str = "rename-tool";
|
|
type Value = PresenceFlag;
|
|
|
|
fn enabled_for_staff() -> bool {
|
|
true
|
|
}
|
|
}
|
|
register_feature_flag!(RenameToolFeatureFlag);
|
|
|
|
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);
|