Skip to content

Feature: Embedded terminal is not a real terminal: no PTY, 30s hard timeout, 4KB output cap #329

Description

@henryz78

Summary

The embedded terminal can only execute one bounded command at a time. It is unusable for normal terminal work (running a dev server, following logs, answering an interactive prompt, interrupting with Ctrl+C). I'd like the on-device terminal to behave like a normal shell — the way the agent CLI itself is usable from any terminal.

Current behavior

  • Each submitted line runs as a single sh -lc process (--kill-on-exit) that is force-killed after 30s (TerminalViewModel.kt:72, LocalRuntimeCommandRunner.kt:68-72).
  • Output is redirected to a temp file and only the last 4,000 characters are read back (LocalRuntimeCommandRunner.kt:12,76).
  • No stdin after start, no streaming, no Ctrl+C/signals, no job control, no ANSI/cursor handling.
  • The working directory is a fixed /root and is tracked by regex-parsing cd out of the input line (TerminalViewModel.kt:26,111-125).
  • Opening the terminal from a workspace does not pass that workspace in, so it never starts in the folder you are working on (WorkspaceNavGraph.kt:170,180-196).
  • A terminal tab exists in the workspace tab manager but renders a static placeholder (WorkspaceExplorerScreen.kt:318,327-360), so multi-terminal was planned but never finished.

Expected

  • A persistent shell session (PTY) with real, streaming output.
  • Interactive stdin (y/n prompts, REPLs, password prompts).
  • Ability to send Ctrl+C / interrupt and to run long-lived processes (dev servers, watchers).
  • Full scrollback (or no arbitrary cap) instead of a 4KB tail.
  • Terminal opens in the currently selected workspace by default.

Notes

I understand the PRoot environment cannot run the JVM (docs/LOCAL_RUNTIME.md:236-246), so this is not a request to run Gradle inside the sandbox. It is only a request for a real, interactive shell process.

Environment

  • Android version / device:
  • App version:
  • Runtime: Android local (OpenCode / Claude Code / Antigravity)

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions