Skip to content

Phase 3 RFC: Trusted executable provider runtime and sandbox #1105

Closed as not planned

Description

@tamirdresher

Goal

Design and implement a trusted executable provider runtime only after an explicit RFC/security gate. This is the track for plugins that need real code, tools, assemblies, package installs, or supervised MCP processes.

Non-negotiable guardrails

  • Trust tiers: executable plugins must be local/trusted only; community executables rejected initially.
  • Explicit permissions: binaries, network domains, filesystem reads/writes, timeouts, and concurrency are declared and enforced.
  • No wildcard allowlists.
  • Sandbox/isolation before first executable runs.
  • Two-step approval: dry-run disclosure plus explicit --approve/grant.
  • Artifact provenance: generated artifacts record plugin id, timestamp, SHA-256, and stale status.
  • Full audit for every execution attempt, denial, timeout, artifact write, and provider call.

Acceptance criteria

  • RFC documents trust model, permission schema, sandbox strategy, and rollback behavior.
  • Manifest validator rejects executable capability without trust tier and explicit grants.
  • Runtime blocks enable/start without user approval.
  • Negative tests cover untrusted executables, wildcard grants, forbidden binaries, path escape, network escape, timeout, and artifact tampering.
  • Worf security review and Picard architecture review are required before implementation merge.

Explicitly out of scope until approved

  • Silent package installs.
  • Arbitrary plugin scripts.
  • Dynamic provider assemblies.
  • Unsandboxed MCP server startup.
  • Network access not declared in grants.

Depends on #1092 and should not block the MVP PR.

Parent epic: https://github.com/bradygaster/squad/issues/1102

Activity

  1. github-actions commented on Sep 10, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  2. github-actions commented on Sep 10, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  3. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  4. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  5. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  6. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  7. github-actions commented on Sep 13, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: security-reviewer
    Reason: Matched routing keyword(s): Security review, security, review
    Source: routing-rule

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  8. bradygaster commented on Nov 5, 2026

    @bradygaster
    Collaborator

    Closing as not planned for the 2.0 line during board triage (owner decision). Plugin extensibility phase 2 is out of scope for 2.0; reopen if it returns to the roadmap.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    go:needs-researchNeeds investigationpriority:p2Next sprintsquadSquad triage inbox — Lead will assign to a membersquad:security-reviewerAssigned to security-reviewer (Security Reviewer)status:backlogBacklog itemtriagedIssue has been triagedtype:featureNew capabilitywave:3-laterWave 3 — backlog, future

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions