Skip to content

dekit v0.10.3

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Oct 21:43
  • A value tagged !js in dekit.yaml or a fragment is a JavaScript
    expression, computed when the config loads, as in
    FIXTURES: !js std.path.join(ctx.dir, "fixtures"); ctx has the
    file's dir, the runner, and the vars
  • vars: in dekit.yaml names values that !js reads as ctx.vars, in
    order
  • dekit wait <target> waits until tasks are ready, or with --for exit
    until they have exited, and exits 0, 1 for a failure, or 124 when
    --timeout runs out; --timeout 0 checks once
  • --wait on up, start, and restart returns once what they started
    is ready, and on stop, kill, and veto once it is down;
    --wait-timeout bounds it. A failure names the task at the root and
    shows the end of its screen
  • std.dekit.wait(target, {for, timeoutMs}) waits from a script
  • dekit run x --dep db waits for db when it is not ready yet, instead
    of exiting 1 at once
  • A running job shows as running, not ready; ls --json and why
    carry kind
  • A stop dekit gave up on, because the process outlived a kill, shows as
    idle (stop timed out), with reason: "kill_timeout"
  • RPC: the wait method and feature, kind in task-info, and the
    kill_timeout reason
  • A tasks: key that ends in / is a folder: apps/: {collapsed: true}
    lists the apps folder collapsed at first, and a folder stays while it
    is empty
  • dekit rm apps removes a folder or a group with everything in it
  • The console keeps which groups are collapsed across restarts; H and
    L collapse and expand every group, and the fold action opens,
    closes, or toggles the groups a path or glob names
  • ready: {sd_notify: true} counts a task ready when it sends READY=1
    to the socket NOTIFY_SOCKET names, as it would to systemd
  • dekit reload brings what changed in dekit.yaml into a running
    project; the console's header says when the file changed and opens the
    reload dialog
  • A runner restart, down and up, and a live upgrade bring every task
    back as it was; dekit.yaml is read at a fresh start and by reload
  • The console adds, edits, duplicates, moves, and removes tasks: a,
    e, C, J/K or dragging a row, and d; Space or a right click
    opens a task's menu, y copies its command
  • Changes made in the console are written back to dekit.yaml in place,
    keeping its comments; what can't be edited safely goes to a coding
    agent (agent: {cmd: [...]} in the user config) or is copied as a
    prompt
  • Tasks are listed in the runner's order: a task moved in the console
    stays where it was put, across restarts too
  • dekit rm +dynamic removes every task not from dekit.yaml; a
    dynamic tag written in the config is refused
  • dekit spawn --cwd is relative to where the command is typed
  • The terminal emulator and renderer were rewritten: true color,
    underline styles and colors, hyperlinks, the kitty keyboard and
    graphics protocols, sixel, and output shaped to what the attached
    terminal can show
  • Keymap: e opens the edit dialog (show-rename-task still works) and
    C the duplicate dialog; duplicate-task copies without a dialog
  • RPC: reload; the update, move, and set-origin commands; add
    takes the task entry under spec; duplicate takes path and
    start; the changed and bad_config error codes; terminal
    capabilities and the cell size on attach, and input as key,
    mouse, paste, focus, and resize events
  • The console follows the terminal's light or dark background;
    tui.theme: dark | light in the user config pins it