Something went wrong. Try again.
WIP restic wrapper
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687# SPDX-FileCopyrightText: Amolith <amolith@secluded.site>## SPDX-License-Identifier: LicenseRef-MutuaL-1.2
Feature: Interactive session shell
The interactive session provides a single, cohesive terminal interface for all of keld's interactive flows. It manages the visual frame — theme, help bar, breadcrumb, and cancellation — so that individual screens do not have to.
Rule: The interface runs as a single continuous terminal session
Scenario: Transitioning between screens Given the user launches keld interactively When they progress from one screen to the next Then the interface transitions directly without returning to the shell
Rule: The terminal background is detected once and determines the colour palette
Scenario: Dark terminal Given the terminal has a dark background When the session starts Then the dark colour palette is used for all screens
Scenario: Light terminal Given the terminal has a light background When the session starts Then the light colour palette is used for all screens
Scenario: Background detection is unavailable Given the terminal background cannot be detected When the session starts Then the dark colour palette is used as a default
Rule: Colour is used intentionally to highlight actionable elements
Scenario: Body text uses the terminal's default foreground Given any screen in the session Then descriptive and body text is not styled with a custom colour
Scenario: No text is rendered in a muted or dim style Given any screen in the session Then all text is rendered at full brightness
Rule: A help bar at the bottom shows available key bindings for the current screen
Scenario: Help bar reflects the current screen Given the user is on any screen Then the help bar shows the key bindings relevant to that screen And the help bar uses the same visual format on every screen
Rule: The highlighted item in any list is indicated with a consistent cursor
Scenario: Cursor on a selectable list Given any screen with a selectable list Then the highlighted item is marked with a consistent visual indicator
Rule: A breadcrumb at the top shows the path of selections made so far
Scenario: No breadcrumb on the first screen Given the user is on the command menu Then no breadcrumb is displayed
Scenario: Breadcrumb builds as selections are made Given the user has selected a command and a preset When they reach a command-specific screen Then the breadcrumb shows their prior selections in order
Scenario: Breadcrumb updates on back navigation Given the user has progressed several screens into a flow When they navigate back one step Then the breadcrumb removes the most recent selection
Rule: The current screen's title is displayed below the breadcrumb
Scenario: Screen title is always visible Given the user is on any screen Then the screen's title is displayed below the breadcrumb
Rule: Ctrl+C exits the session cleanly from any screen
Scenario: Cancelling during a flow Given the user is on any screen When they press Ctrl+C Then the session exits without executing restic