[runtime] Port terminal, shell, TRAMP, direnv, Docker/Podman, and environment behavior #7

Open
opened 2026-09-16 04:13:22 +00:00 by nsaspy · 0 comments
Owner

Parent: #1

RAGE contract

Consume only this issue on rage/<issue>-<slug>. Initialize the run log with the canonical RAGE helper and preserve the immutable full start SHA. Load the canonical rage and adadr skills from lost-rob0t/skills before architecture or implementation. Blocked by the control-plane decision in #2.

Queue blockers: #9

Analyze

  • Cover vterm, eshell, tmux helpers, shell commands, TRAMP, direnv/envrc, Docker tooling, exec-path-from-shell, upload, make, and terminal Emacs expectations.
  • Separate embedded terminal behavior from external terminal launch behavior.

Gate

  • Environment inheritance must be deterministic under Home Manager and GUI/TTY launches.
  • No shell command may interpolate untrusted buffer text without structured arguments.

Execute

  • Implement terminal buffers/process supervision, cwd/project inheritance, direnv gating, remote command boundaries, and container command surfaces.
  • Use Lem's async process facilities without blocking the editor.

Evaluate

  • Test exit, signal, resize, reconnect, huge output, invalid UTF-8, missing executable, direnv denial, remote timeout, and concurrent processes.

Recurse

  • Process API limitations return to ADADR; do not paper over them with blocking calls.

Acceptance

  • Terminal/shell workflows are responsive and recoverable.
  • GUI and TTY receive the expected environment.
  • Command construction is injection-safe.

Durable evidence

  • Update the relevant facts in .prolog/kb/lem_migration.pl and .prolog/kb/issues.pl in the same change.
  • Record focused red/green evidence, the full local gate, packaging checks, and exact-head CI status.
  • Keep failed iterations and architecture contradictions visible.

Stop conditions

  • A command needs interactive secrets exposed to logs.
  • The editor loop blocks.
  • Remote/container target is ambiguous.
Parent: #1 ## RAGE contract Consume only this issue on `rage/<issue>-<slug>`. Initialize the run log with the canonical RAGE helper and preserve the immutable full start SHA. Load the canonical `rage` and `adadr` skills from `lost-rob0t/skills` before architecture or implementation. Blocked by the control-plane decision in #2. Queue blockers: #9 ## Analyze - Cover vterm, eshell, tmux helpers, shell commands, TRAMP, direnv/envrc, Docker tooling, exec-path-from-shell, upload, make, and terminal Emacs expectations. - Separate embedded terminal behavior from external terminal launch behavior. ## Gate - Environment inheritance must be deterministic under Home Manager and GUI/TTY launches. - No shell command may interpolate untrusted buffer text without structured arguments. ## Execute - Implement terminal buffers/process supervision, cwd/project inheritance, direnv gating, remote command boundaries, and container command surfaces. - Use Lem's async process facilities without blocking the editor. ## Evaluate - Test exit, signal, resize, reconnect, huge output, invalid UTF-8, missing executable, direnv denial, remote timeout, and concurrent processes. ## Recurse - Process API limitations return to ADADR; do not paper over them with blocking calls. ## Acceptance - [ ] Terminal/shell workflows are responsive and recoverable. - [ ] GUI and TTY receive the expected environment. - [ ] Command construction is injection-safe. ## Durable evidence - Update the relevant facts in `.prolog/kb/lem_migration.pl` and `.prolog/kb/issues.pl` in the same change. - Record focused red/green evidence, the full local gate, packaging checks, and exact-head CI status. - Keep failed iterations and architecture contradictions visible. ## Stop conditions - A command needs interactive secrets exposed to logs. - The editor loop blocks. - Remote/container target is ambiguous.
Sign in to join this conversation.
No description provided.