Skip to content

Define Compose Mode product behavior and safety rules #69

@FuJacob

Description

@FuJacob

Problem

Tabby needs a clear product boundary between normal inline autocomplete and a new Compose Mode that can draft a whole comment, reply, or email. Without that boundary, long completions could feel surprising or risky because the current product teaches users that Tab accepts a small continuation.

Goal

Define the first Compose Mode behavior, trigger model, and safety rules before implementation work spreads across UI, prompt construction, runtime, and input handling.

Proposed Scope

  • Define how users enter and leave Compose Mode.
  • Decide whether Compose Mode is global, temporary, per app, or command-driven.
  • Specify what Tab accepts in this mode and how cancellation works.
  • Define maximum output length and when long insertion should require stronger confirmation.
  • Identify apps or text surfaces where Compose Mode should be disabled initially.
  • Write user-facing language that distinguishes Compose from autocomplete.

Acceptance Criteria

  • Compose Mode has a short product spec with mode states, trigger behavior, and acceptance behavior.
  • Safety rules cover accidental insertion, stale focus, unsupported fields, and app-disabled state.
  • The spec names the first target writing scenarios, such as comments, replies, or email drafts.
  • Follow-up implementation issues can reference this behavior instead of making separate product decisions.

Open Questions

  • Should Compose Mode use the same Tab key or a separate shortcut?
  • Should a preview be required before inserting longer drafts?
  • Should the first version be hidden behind an experimental setting?

Parent: #66

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:promptPrompt rendering, model catalog, completion behaviorarea:uiMenu bar, overlay, settings surfacesenhancementNew feature or request

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions