← board

Eliah / Ilja — single-window IDE (GUI + TUI)

Motivation

A graphical (GTK) and TUI (ANSI) IDE, Lazarus/Delphi-inspired but deliberately stripped: single sizable window, no multi-window, no modal forms, no scattered subwindows — everything tiled in one window. Codenames: Eliah = GUI (posix+gtk), Ilja = CLI/TUI (posix + ANSI). They share render-agnostic data models; rendering/input/layout is reimplemented per target at micro scale.

This is a real-world test case for the compiler on purpose: PXX crafts it, dialect features welcome (no FPC-compat constraint). Compiler gaps that should work → file a Track A ticket, no workarounds. App may depend on any of our libraries (lib/rtl, lib/pcl); it is supermeta to the compiler.

Design decisions (locked with user 2026-06-22)

Tree (final, confirmed 2026-06-22)

apps/ide/
  garin/   # core (גרעין = kernel/core): docmodel, buffer, project, builder
  eliah/   # GTK face   (Eliah = Elijah)
  ilja/    # ANSI face  (Ilja  = Elijah)

Naming scheme = Hebrew. eliah + ilja both transliterate Elijah (the two faces); garin is both a real given name and the word for kernel/core — the seed both faces grow from. apps/ide/README.md carries the one-line decoder.

Plan (this is the epic; each milestone has its own ticket)

Acceptance

M0: Eliah compiles with the pinned stable compiler and opens a single tiled window. Each later milestone green where it matters (Track B: builds + runs).

Log

Closing 2026-07-05

M0 through M5 all shipped (see devdocs/progress/done/feature-eliah-{m0-window, m1-designer,m2-builder,layout-tree,pane-reflow,component-palette,perspectives, selection-link,from-lfm,shell}.md). Re-verified this session: apps/ide/build.sh builds clean, apps/ide/test.sh (headless garin/bochan/eduth gate) 162/162, tools/gui_suite.sh all green including eliah_ide, and the built binary opens a single tiled GTK window under Xvfb with no regressions.

Remaining scope from this epic is tracked in its own tickets, not blocking the epic itself: feature-ilja-tui (the ANSI/TUI face — backlog), feature-eliah-pane-header-strip (labelled collapse strip, filed today), feature-eliah-component-tabbar and feature-eliah-ai-command-rail (backlog). Closing this epic done — Eliah (the GTK face) is a working, tested IDE; further work continues under the milestone/feature tickets above.