Skip to content

Add first-class Factory Droid harness support (presence & active tab) #852

Description

@Villarreal24

What problem does this solve?

Supacode provides presence badges (busy, idle, awaiting input) and dynamic sidebar active-tab hoisting for supported coding agents like Claude Code, Codex, Antigravity, Kiro, and OpenCode.

However, developers running Factory Droid (droid CLI by Factory.ai) inside Supacode terminal panes currently lack agent awareness:

  • Tabs running active Droid sessions do not get hoisted to the "Active" section in the left sidebar.
  • No presence badges or status indicators are displayed for Droid turns.
  • Sessions return no visual feedback when awaiting user input or running long tasks.

Proposed solution

Add first-class agent harness integration for Factory Droid, mirroring the existing agent integrations (e.g. Kimi, Jcode, and Claude):

  1. Roster & Identity:

    • Add SkillAgent.droid / AgentIntegration.droid with display name "Factory Droid" and config path ~/.factory.
    • Add a full-color vector mark asset (droid-mark).
  2. Hook Settings & Installer:

    • Provide DroidHookSettings and DroidSettingsInstaller managing hooks in ~/.factory/hooks.json.
    • Idempotently merge presence hooks without clobbering user-defined hooks.
    • Emit standard OSC 3008 sequences (\x1b]3008;start=droid;event=...\x1b\) across Droid lifecycle events (session_start, turn_start, turn_end, session_end).
  3. Settings UI:

    • Expose a row in Developer settings: "Hooks in ~/.factory/hooks.json and skill in ~/.factory/skills/".
  4. Safety & Non-Breaking Design:

    • Purely additive change to SupacodeSettingsShared.
    • Zero changes to unrelated harnesses.
    • Hooks check SUPACODE_SURFACE_ID so they remain inert outside of Supacode.

Alternatives considered

Running custom terminal wrapper scripts or aliases that manually emit OSC 3008 sequences before and after droid. However, native integration inside Supacode provides a seamless one-click install/uninstall experience in Developer Settings, consistent with the rest of the supported CLI agents.

Supacode version

0.8.1

Are you planning to build this yourself?

  • I intend to open a pull request once this is approved and marked ready.

Before submitting

  • I searched existing issues and this is not a duplicate.
  • I understand feature pull requests are closed until the issue is marked ready.
  • I agree to follow this project's Code of Conduct.

Activity

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

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions