Skip to content

Delivery plan ​

The milestone tracker for the terminal specification. Requirements live in the topic pages; this page owns order, gates, exclusions and delivery state, so that progress does not have to live in their prose. The Android app was delivered in slices of its own before these milestones. One branch, one pull request (D8).

Order (D11): specs and mockups first; everything that needs no layout decision in parallel; visual surfaces only once their mockup is chosen.

MilestoneDeliverableObligationsPrerequisitesGate (acceptance)ExcludesStatus
M0This tree; the mockups——ci --check-docs-sidebar, --check-spec-evidence, yarn docs:build; a mockup per surface in designchoosing among the mockupsdone — every surface has a chosen mockup (design)
M1TerminalConfig, its layers, located errors, config show/write, the shared JSONC reader; extra-keys visibility as a settingTCF1–TCF8M0layering fixtures (TCF2/TCF3), a malformed-file test (TCF4), the reflection test (TCF1); a reload on the phonethe settings pagedone — TCF8 (the font family applies at the next start) and TCF9 (no tooltip for an icon-only button) partial
M2The command table and the guide machinery; the MENU token; tappable guide rowsTKM1–TKM5, TKM7–TKM9; TKM6 behaviourM1the KEY agreement test, the reserved-keys test, a recording-pty sweep for TKM2the guide's touch layoutdone — TKM2 partial (the recording-pty half of the sweep)
M3Protocols: titles/icons/cwd, notifications (events, policy, log), scheme following and reports, OSC 4/10–12 answers, kitty text encoding, paste guard, OSC 52TPR1–TPR4, TPR8–TPR11, TPR13–TPR21; TPG9M1byte fixtures from the authorities (not our encoder) for every sequence; a recording pty for every reply; the paste-injection fixture (TPR18)confirm/toast layouts; deep linkdone — TPR3, TPR11, TPR13, TPR16, TPR17, TPG9 partial, each naming its gap
M4Logging: ring and file sinks, TraceLog routing; build infoTPG2, TPG4–TPG7—ring wrap and drop count, rotation, the marker test (TPG6)the log pagedone — TPG2, TPG6 partial with named gaps (ledger)
M5Android plumbing and spikes: notifications, the deep-link spike, the system scheme, share, autofill spike, the termios probeTPR10, TPR12, TPR13 (Android), TSE8, TSE9M3spike results recorded in testing whatever they are; on the phone: a notification while backgrounded, a scheme togglethe chip and menu layoutsdone — spikes recorded in testing; TSE9 partial, each naming its gap
M6Sessions model: respawn, the pane pool, the workspace over DockLayout, pane-local routing, restoreTSS1, TSS3–TSS10, TSS14, TSS15M2respawn/pool/workspace unit tests; serialize round-trip; restore after a force-stop on the phonestrip, prompt and header layoutsdone — TSS2, TSS4, TSS8, TSS14 partial, each naming its gap
M7The settings pane lifted into sparkles:ui; hue on itTSP1–TSP4M1hue's SET tests and GUI goldens unchangedthe terminal's page layoutdone
M8Visual surfaces, each after its mockup is chosenevery open row; TPR5–TPR7, TSE1–TSE7, TSE10, TPG1, TPG3, TPG8, TPG10, TPG11, TSP5, TSP6, TSS2, TSS11–TSS13, TKM6M0 choice; M1–M7slot declarations, monochrome focus, theme swap = cold render, placement tests; screenshots on the desktop (xvfb) and the phone for every surface—delivered — TSP5, TSS2, TSS11 partial, each naming its gap
M9hue: VitePress @include and <<< snippet import in the markdown previewhue VIW5–VIW7—fixtures for every form (relative, @/, @/../, line range, region, label, code-group), the confinement and cycle cases; docs/libs/event-horizon/tutorial/ previews with its snippets—done — VIW5 and VIW7 full, VIW6 partial (line highlights are not drawn)
M10The credits document, licence staging and the completeness checkTPG12–TPG14, TPG16M9ci --check-credits passes and fails on a removed part; yarn docs:build renders every licencethe in-app pagedone
M11hue's GPU document viewer extracted into a library; the terminal opens files in ithue UIA14; TDV1–TDV11; TPG15, TPG17M6, M9hue goldens and A/B oracles unchanged; xdg-open / termux-open of markdown, source, CSV and an image open panes on the desktop and the phonethe viewer pane chrome before its mockupdelivered, gaps named in the rows: TDV1 OSC 8 / selection Open, TDV5 icon, TDV6 long-press copy, TDV9 links, TPG17 hue on Android, UIA14 hue mounting the pane
M12Large screens and keyboard covers: the tablet run's fixesTCF14, TKM10, TSS16, TPG19; re-verifies TKM6, TSE3, TSE6, TSP6, TSS11, TSS12, TPG7 on a tabletM8, M11host tests per fix; screenshots on the phone and the tablet (both orientations, soft keyboard up and down)the desktop's window chromedone

Each milestone's commits flip their rows and append to the evidence ledger in testing. A milestone is not done while any of its rows is partial without a named gap.

Android slices ​

The Android app (android) was delivered in these slices.

SliceContentState
ABionic build fixes, zero-timer fix, sparkles:android (logcat, assets, JNI worker, clipboard, text), spawn optionsshipped
Bterminal.nix builder + plain-mode APK (NOD1–4, NOD8, NOD12, NOD14), soft keyboard, focus/stop handling (NOD9)shipped
CBootstrap mode (NOD5–7): installer, download, extractionshipped
DExtra keys and ~/.termux appearance (NOD10, NOD11)shipped
Enix-on-droid side: app-id option, bootstrap for the new app, flake output building the APK, docsshipped
FRequests (NOD13) and the emulator test portshipped
GAndroid integration on from first boot; a socket path that fits a long package id (NOD15–NOD22)partial

→ Overview · Testing