Files
ELYTerminal/AGENTS.md
T
ZacharyZhang-NY 4e2f3c9daa
CI / platforms (windows-latest) (push) Failing after 9s
CI / macos (push) Successful in 10m19s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s
T01: crate, window, check script, CI
2026-10-14 11:09:50 -04:00

1.7 KiB

AGENTS.md

ELYTerminal. A terminal on GPUI and Ely components. PRD.md says what it does; TASKS.md says how far it is.

Stack

  • Rust 1.95, edition 2024. One binary crate, elyterminal.
  • Ely (ely-gpui-component) from git.zacharyzhang.com, pinned by rev. gpui and gpui_platform from crates.io's gpui-pre, the exact version Ely pins, under their crate names through package.
  • alacritty_terminal 0.26: grid, parser, pseudo-terminal, event loop.
  • serde, serde_json: settings. dirs: the config folder. log, env_logger: logs to stderr.

Commands

  • cargo run opens the app. RUST_LOG=elyterminal=debug cargo run logs more.
  • scripts/check.sh: fmt, clippy -D warnings, tests, the 500-line rule.

Layout

  • src/main.rs: start, window.

Rules

  • Files stay at or under 500 lines. Comments are one short line, and rare.
  • Fail fast. No silent fallbacks. An error names its owner and what failed.
  • Log every state change on a key path with log: spawn, exit, folder change, settings load and save, blur path.
  • No dead code, no versioned names, no compatibility shims.
  • Colors, sizes and radii come from Ely's theme. Gaps use gpui's rem helpers.
  • No credential in any file. Pushes pass the token as an http.extraHeader on the command line.

Decisions

  • 2026-10-14: ELYTerminal owns its terminal engine on alacritty_terminal. Ely's Terminal lacks mouse reporting, IME, kitty keys and style settings, and a library widget should not carry an app's engine.
  • 2026-10-14: the working directory comes from OSC 7, read by a tap on the pty reader, sent by injected shell integration. vte drops OSC 7.
  • 2026-10-14: Git through the git command line, not libgit2.
  • 2026-10-14: license MIT, as Ely.