Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
5a5dab9
Docs: v0.21 design, acceptance and ledger
raiseCatError Oct 18, 2026
d7ece44
Docs: v0.21 design names the Fish test-home helper as built
raiseCatError Oct 18, 2026
8b55e27
Reliability: Fish test homes, superseded classifications and multi-ro…
raiseCatError Oct 18, 2026
74ebea5
Reliability slice: changelog, physical QA checklist and ledger
raiseCatError Oct 18, 2026
b20d81c
Native /view: a read-only viewer for files and completed output (#397)
raiseCatError Oct 18, 2026
d51593b
/view slice: changelog, physical QA checklist and ledger
raiseCatError Oct 18, 2026
5ebdd29
/view: file names are drawn inert; a late load never opens over anoth…
raiseCatError Oct 18, 2026
46700b5
Native /edit: a small, safe editor for one text file (#402)
raiseCatError Oct 18, 2026
f5f65a9
/edit slice: changelog, physical QA checklist and ledger
raiseCatError Oct 18, 2026
9458815
Semantic Output, first phase: test and build readings in their blocks…
raiseCatError Oct 18, 2026
9dce263
Semantic Output: recognition is linear in what it reads
raiseCatError Oct 18, 2026
f3ca778
Semantic Output: the Setup transcript step lists its new row
raiseCatError Oct 18, 2026
6cd9dd1
/track: one live result of a finite command, refreshed in place (#393)
raiseCatError Oct 18, 2026
847fe69
Native modules: Bun, Nix shell and container; /modules explain and ti…
raiseCatError Oct 18, 2026
a6a3068
Theme families: Ayu, Kanagawa, Everforest, Flexoki and Night Owl (#401)
raiseCatError Oct 18, 2026
7d8e152
Theme families: copyright lines as the upstream LICENSE files state them
raiseCatError Oct 18, 2026
53ecbf4
/track: a transcript without trackers skips the per-line live-row lookup
raiseCatError Oct 18, 2026
d2d0b76
Merge branch 'feature/v021-track' into feature/v021-modules
raiseCatError Oct 18, 2026
8bb85d5
Merge branch 'feature/v021-modules' into feature/v021-themes
raiseCatError Oct 18, 2026
f4174e9
v0.21 ledger: stacked PRs, integration verification, performance and …
raiseCatError Oct 18, 2026
f458099
v0.21 ledger: final CI state and a third flake seen once
raiseCatError Oct 18, 2026
b420e67
fix(track): signal refresh start to live presenter
raiseCatError Oct 18, 2026
6832fec
fix(track): release stopped tracker presentation state
raiseCatError Oct 18, 2026
4197487
test(track): assert finalizer releases presentation state
raiseCatError Oct 18, 2026
ed16fa1
test(track): verify refreshing state notifies presenter immediately
raiseCatError Oct 18, 2026
4d76bac
/track: a stricter gate for repeated commands; every redirect judged …
raiseCatError Oct 18, 2026
b4eb409
/track: a sample's leftover processes never outlive it; refresh event…
raiseCatError Oct 18, 2026
4cdf971
/track: one summary row for many trackers, Safe-glyph marks, cached r…
raiseCatError Oct 18, 2026
24af7d4
/track docs: the repetition gate, process cleanup, the summary row an…
raiseCatError Oct 18, 2026
9780d4d
/track: keep refusing `&>`, a background job in the POSIX sh that run…
raiseCatError Oct 18, 2026
8401275
Background tasks: an exit is reported once the group's fate is known,…
raiseCatError Oct 18, 2026
9d046cc
Configured completion: its private directory is gone when a startup t…
raiseCatError Oct 18, 2026
cd5fafc
Test runner: a test that stalls with a process running fails visibly …
raiseCatError Oct 18, 2026
25759ce
Native capture test: bound the early-reap window, not the owner's col…
raiseCatError Oct 18, 2026
8bb9464
#388: rows are the terminal's rows, so a redraw over a wrapped line n…
raiseCatError Oct 18, 2026
af475c3
Command colors survive a slow zsh configuration: lookups are timed fr…
raiseCatError Oct 18, 2026
19f5a36
/modules explain says when the Rail or Strip left a module out, or sh…
raiseCatError Oct 18, 2026
8f57e6a
removeDirectoryNow: remove the renamed copy entry by entry while anot…
raiseCatError Oct 18, 2026
bb210ce
Merge branch 'fix/v021-flaky-tests' into fix/v021-bugs
raiseCatError Oct 18, 2026
c350057
Codex adapter test: wait for what the fake server has recorded, not t…
raiseCatError Oct 18, 2026
d39059c
Merge branch 'fix/v021-flaky-tests' into HEAD
raiseCatError Oct 18, 2026
50cdf02
Native capture tests: the owner's cold start is waited for before the…
raiseCatError Oct 18, 2026
e8411e1
Merge branch 'fix/v021-flaky-tests' into fix/v021-bugs
raiseCatError Oct 18, 2026
18715a5
v0.21 ledger: stabilization findings, verification, ordered integrati…
raiseCatError Oct 18, 2026
3056d8e
Two timing-bound tests stop measuring cold starts they do not test
raiseCatError Oct 18, 2026
0b3c3b4
Merge branch 'fix/v021-flaky-tests' into fix/v021-bugs
raiseCatError Oct 18, 2026
2ce9ff1
Merge branch 'fix/v021-bugs' into docs/v021-stabilization
raiseCatError Oct 18, 2026
06bc203
v0.21 ledger: the second local release run
raiseCatError Oct 18, 2026
a412fe5
Merge pull request #411 from raiseCatError/docs/v021-design
raiseCatError Oct 18, 2026
3282ad4
Merge pull request #412 from raiseCatError/fix/v021-reliability
raiseCatError Oct 18, 2026
e945c75
Merge pull request #413 from raiseCatError/feature/v021-view
raiseCatError Oct 18, 2026
934ba7c
Merge pull request #414 from raiseCatError/feature/v021-edit
raiseCatError Oct 18, 2026
a97b3f7
Merge pull request #415 from raiseCatError/feature/v021-semantic
raiseCatError Oct 18, 2026
a5f2fd6
Merge pull request #416 from raiseCatError/feature/v021-track
raiseCatError Oct 18, 2026
ac543bd
Merge pull request #417 from raiseCatError/feature/v021-modules
raiseCatError Oct 18, 2026
0ea7ca3
Merge pull request #418 from raiseCatError/feature/v021-themes
raiseCatError Oct 18, 2026
f8e5354
Merge pull request #419 from raiseCatError/docs/v021-checkpoint
raiseCatError Oct 18, 2026
d612f12
Merge pull request #420 from raiseCatError/fix/v021-track-review-hard…
raiseCatError Oct 18, 2026
0eca52d
Merge pull request #421 from raiseCatError/fix/v021-stabilize
raiseCatError Oct 18, 2026
ac0f780
Merge pull request #422 from raiseCatError/fix/v021-flaky-tests
raiseCatError Oct 18, 2026
7cb857f
Merge pull request #423 from raiseCatError/fix/v021-bugs
raiseCatError Oct 18, 2026
433af8f
Merge pull request #424 from raiseCatError/docs/v021-stabilization
raiseCatError Oct 18, 2026
cefa484
/edit: a new file in a symlinked folder saves again without a false c…
raiseCatError Oct 18, 2026
917d025
Input ownership test: type the follow-up after the answered command c…
raiseCatError Oct 18, 2026
31ea80f
v0.21 release audit: integrated state, verification, QA walkthrough a…
raiseCatError Oct 18, 2026
debbffb
llms.txt: the latest published stable release is v0.20.0, not v0.18.0
raiseCatError Oct 18, 2026
d9e0839
Release v0.21.0 candidate: changelog, version and release status
raiseCatError Oct 18, 2026
6b3a06e
v0.21 QA walkthrough: name the folder for 4.5 and the no-color 4.7
raiseCatError Oct 18, 2026
54370ca
Merge pull request #427 from raiseCatError/fix/v021-ownership-test-race
raiseCatError Oct 18, 2026
b4fe824
Merge pull request #425 from raiseCatError/fix/v021-edit-new-file-path
raiseCatError Oct 18, 2026
a8b383c
Merge pull request #428 from raiseCatError/docs/v021-release-audit
raiseCatError Oct 18, 2026
86bb3a6
Merge pull request #430 from raiseCatError/dev
raiseCatError Oct 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@ Input awareness (waiting-for-input state, hidden and single-key input routed to
## Surfaces released in v0.20.0
Workspace sidebar and detail panel (`/sidebar`, `/panel`, `/keys`, `keymap.json`; one column plan in `src/app/workspaceHost.ts`/`workspaceFrame.ts`), background tasks (`/background`, `/bg`, task bar; session-owned `SessionTasks`, protocol feature `background-tasks`), native modules for .NET, Swift, Zig, Deno, Elixir, Dart, Flutter, build systems, Mercurial and Jujutsu, managed Claude `/model`, `/effort` and mod toggles, related PRs in `/worktrees`; the first-run starting point (`/startup`, `src/setup/startup/`), the guided setup, the shared optional-tools flow (`src/tools/ToolsPanel.ts`), the execution timeline and Queue settings, queue history and typed summaries (`/queue history`, `/queue save-summary`), queued output folding, multi-line paste choices, `/copy` output navigation and `/actions`, the custom color editor and the per-installation update notice. Physical QA status: [v0.20 record](docs/testing/v020-physical-qa.md).

## Release candidate surfaces (v0.21.0, not published)
`/view` (read-only viewer for files and completed output; `src/viewer/document.ts`, `ViewerPanel.ts`), `/edit` (a small editor for one text file with atomic, conflict-checked saves; `src/viewer/fileEdit.ts`, `EditorPanel.ts`, `textBuffer.ts`), Semantic Output first phase (deterministic recognizers in `src/output/semantic.ts`; presentation rows only, raw output and plain `/copy` unchanged; `/copy --semantic|--both`), `/track` (one live result of a finite command on the `/watch` scheduler, window-owned; `src/tasks/WatchTasks.ts`, `repeatSafety.ts`, `trackBlock.ts`), Bun, Nix shell and container modules, `/modules explain` and `/modules timings`, five theme families, and the parser's bounded live region for multi-row progress (#388). State: [v0.21 ledger](docs/development/v021-ledger.md).

## Testing / verification
During implementation, run focused affected tests. Use `npm run verify:fast` for
ordinary iteration (build, an explicit core test subset, and diff checks); it is
Expand Down
52 changes: 52 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,58 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [Unreleased]

## [0.21.0] - Unreleased (release candidate)

**Native viewing and editing, Semantic Output and `/track`.** NMSh still runs your real zsh, Bash or Fish in one persistent session. This release reads files and completed output without leaving it (`/view`) and makes a quick edit to a small text file (`/edit`). Semantic Output puts a test run's or a build's counts and failures in one row above its raw output, and `/track` keeps one live, refreshed result of a command in the transcript. Bun, Nix shell and container modules come with `/modules explain` and `/modules timings`, plus five more theme families. Multi-row progress displays now redraw in place.

This is a release candidate: it is published only after its physical-terminal QA passes ([v0.21 physical QA](docs/testing/v021-physical-qa.md); state and evidence in the [v0.21 ledger](docs/development/v021-ledger.md)).

### Added

- **`/view`, a native read-only viewer** for files and completed output ([#397](https://github.com/raiseCatError/notMyShell/issues/397)). `/view README.md` opens a file relative to the shell's directory (`~` for home): Markdown renders (`m` shows the source), source files get syntax colors and line numbers, `.diff`/`.patch` files and `git diff`/`git show` output read as diffs. `/view N` opens completed output N (numbered as `/copy` numbers it) and `/view` the latest; Actions → View output does the same for a block. Find with `/` and `n`/`N`, go to a line with `:`, `w` toggles wrapping (Left/Right scroll sideways), `l` line numbers, `c` copies the whole text, Esc closes. Viewing never changes the file or the transcript.
- Limits: regular files only (directories, devices and pipes are refused), at most 8 MiB and 200,000 lines (the rest is named, with `less` or an editor as the way to read it), binary and UTF-16 files are refused, invalid UTF-8 is shown with `�` and a note. Control characters, escape sequences and invisible format characters are shown as visible marks, never interpreted. Open in pager, `less`, `bat` and Glow are unchanged.
- **`/edit`, a small native editor** for one text file ([#402](https://github.com/raiseCatError/notMyShell/issues/402)). `/edit notes.md` (or `e` in `/view`) opens the file in a panel: type, select with Shift, Ctrl+Z / Ctrl+Y undo and redo, Ctrl+F find, Ctrl+C / Ctrl+X copy and cut, Ctrl+S save, Esc close (it asks about unsaved changes). A path that does not exist yet is created on the first save. It is for quick edits, not an IDE: `vim`, `nano`, `micro` and your `$EDITOR` still run as usual.
- Safe saving: the new text is written beside the file and renamed over it, keeping its mode, group, line endings, BOM and final newline; a symlink stays a symlink. If the file changed, was replaced or was deleted since you opened it, nothing is written until you choose Keep editing, Overwrite or Reload. A new file never replaces one that appeared meanwhile.
- Limits: your own regular UTF-8 text files up to 1 MiB with one hard link, writable, with one kind of line ending. Others are refused with the reason and stay readable in `/view`. Extended attributes and ACLs are not carried over by a save. Unsaved text is lost if the NMSh window itself is closed.
- **Semantic Output** for test runs and builds ([#386](https://github.com/raiseCatError/notMyShell/issues/386), first phase). A completed block whose output NMSh recognizes gets one overview row with the counts the tool printed (`✔ node --test · 1,772 passed · 0 failed · 25 skipped`, `✘ TypeScript · 3 errors in 2 files`) and, when it listed failures or diagnostics, a details row that opens them, taken verbatim from the output. Recognized: Node's test runner (spec and TAP), Jest, Vitest, pytest, `cargo test`, `go test`, TypeScript, Rust and GCC/Clang diagnostics; anything else stays raw only, and short passing output gets nothing. Details start open when the raw output is folded; click the details row or use Actions → Show or hide details. The output itself, its folding, search, selection and plain `/copy` are unchanged. `/copy --semantic` copies the reading (raw for an output without one, as the note says) and `/copy --both` the raw output and the reading under labelled NMSh separators. Settings → Transcript → Semantic Output turns it off.
- **Native modules: Bun, Nix shell and container** ([#364](https://github.com/raiseCatError/notMyShell/issues/364)). Bun's requested version comes from `.bun-version` or `package.json` (`packageManager`, `engines.bun`) and the active one from its install location; the Nix shell module shows `pure`/`impure` from `IN_NIX_SHELL`; the container module names Docker, Podman, a dev container or Codespaces from marker files and host variables. None runs anything; all are off until enabled in `/modules`, which recommends Bun and Nix when their files are present.
- **`/modules explain` and `/modules timings`** ([#365](https://github.com/raiseCatError/notMyShell/issues/365)) write a plain-text report into the transcript: each configured module's surface, whether it is on screen and why (including when the Context Rail or Status Strip left it out, or shortened it, to fit the width in the last frame), and its sources' state, age and last collection time; or the slowest last collections. They read what the Context Engine already has and collect nothing.
- **Five more bundled theme families** ([#401](https://github.com/raiseCatError/notMyShell/issues/401)): Ayu (Dark, Mirage, Light), Kanagawa (Wave, Dragon, Lotus), Everforest (Dark, Light), Flexoki (Dark, Light) and Night Owl (Night Owl, Light Owl), with colors copied exactly from each project's MIT-licensed source at a recorded revision. They theme NMSh's own prompt fills and chrome only; the terminal's own colors and configuration are never changed. Existing theme ids and saved choices are unchanged, and Lavender stays the default. Theme Studio's Built-in list gains `/` to filter by name, family, or `dark`/`light`.
- **`/track`** keeps one live result of a finite command in the transcript, refreshed in place ([#393](https://github.com/raiseCatError/notMyShell/issues/393)). `/track df -h` or `/track --every 5s -- docker system df` writes the command once, then shows a status row (`live · every 5s · updated 13:49:25 · exit 0`, a failing exit, a timeout, paused, stale, refreshing) and the latest result under it, with a stable height. The shell stays free; nothing accumulates per refresh, and find, selection and `/copy` never include the live rows. `/track copy` copies the latest result, `/track refresh`, `pause`, `resume` and `stop` control it, and stopping leaves the last result in the transcript once. Samples run `sh -c` from the starting directory with your shell's PATH (not its aliases or functions), never overlap, and are bounded (200 kB, a timeout, at most 8 trackers); destructive and unknown commands are refused or need a Yes, as for `/watch`. Trackers stop with the window that started them. `/watch` keeps its manager and its behavior; both share one scheduler, which gains stricter interval parsing, refusals for substitutions, background jobs and heredocs, UTF-8-safe bounded capture, visible timeouts and a stop grace period (from draft #394).

### Fixed

- Multi-line progress displays that redraw their own rows (cursor up and erase line, as concurrent downloads and container pulls do) now update in place instead of leaving a copy of every frame in the transcript ([#388](https://github.com/raiseCatError/notMyShell/issues/388)). A program can redraw only its own recent rows, at most a screen height up, never NMSh's lines or earlier commands; `/copy` copies the final rows once. Rows are the terminal's rows: a line wider than the window counts as the rows it occupies, so a display that redraws over its own wrapped line no longer erases the log lines above it at narrow widths. A status row an installer reserves below a scroll region is not written into the log. Absolute cursor positioning is not mapped.
- A queued command whose command word was still being classified when the next prompt reported new shell knowledge no longer keeps the unclassified color ([#408](https://github.com/raiseCatError/notMyShell/issues/408)).
- With a slow zsh configuration (one that takes longer than a second and a half to load, as nvm or a large framework can), command colors no longer stop for the rest of the session: the first lookup waited on the configuration, timed out, and ended the helper that tells known commands from unknown ones.
- Paste review and `/track`: a redirect into a file is recognized wherever `>/dev/null` also appears (`echo x > ~/.zshrc 2>/dev/null` was labelled read-only), and `>|` is a redirection, not a pipe.
- `/track` and `/watch` no longer start, without asking, commands that change things through the network or another command: `env <command>`, `NAME=value` prefixes, git's `-c`/`--ext-diff`, `npm publish`/`login`/`x`, `pnpm dlx`, `ssh`, `curl -X POST`/`-d`/`-o file`, plain `wget`; options that write files (`git … --output`, `sort -o`, `jest -u`, `--fix`) are refused. Read-only probes (`ping`, `dig`, `nc -z`, a curl GET) still start at once, and `npm test 2>&1` is no longer refused as a background job ([#393](https://github.com/raiseCatError/notMyShell/issues/393)).
- `/track stop` and a closing window end every process a tracked command left in its process group, including one that ignored TERM; a tracker whose directory disappeared names it instead of reporting `spawn /bin/sh ENOENT`.
- A background task that exits cleanly no longer shows "exited, processes left" (with Delete refused) while its own guard checks that the task's process group is empty; the task finishes on the guard's verdict.
- Configured completion: a helper that times out at startup no longer leaves its private folder behind, or throws from a timer (`ENOTEMPTY` on macOS), when its shell writes late.

### Compatibility
- Node.js 22 or newer; zsh, Bash 4.4+ and Fish, as in v0.20.0. CI covers Node 22 and 26 on Ubuntu, Node 26 on macOS, and a Linux portability subset on Fedora.
- The session protocol is unchanged (version 2): a session service started by v0.20.0 keeps serving the sessions it owns, and new windows attach to it. `/view`, `/edit`, `/track`, Semantic Output, the new modules and themes work at once. The background-task fix above needs a session service from this release.
- `/track` needs `sh` and POSIX process groups (macOS, Linux, WSL 2).

### Upgrade notes
- **From v0.20.0:** settings, themes, modules, sessions and history carry over; existing theme ids and saved choices are unchanged, and Lavender stays the default.
- Semantic Output is on for every configuration that has not turned it off (Settings → Transcript → Semantic Output). The Bun, Nix shell and container modules are off until enabled in `/modules`.
- End the sessions of a v0.20 session service (or restart it once they end) to get the background-task fix.
- Homebrew: `brew upgrade raiseCatError/tap/nmsh` installs whatever version the tap's formula points to; check `nmsh --version`.

### Known limitations
- `/track` is window-owned: trackers stop with the window that started them, and a resumed session shows the last result, not a live one. Samples run `sh -c` with the shell's PATH, not its aliases or functions.
- Semantic Output is a first phase: built-in recognizers only (no `jc`, `delta` or other external providers), the raw output is not fully collapsed behind the reading, and find searches the raw output only.
- `/edit` does not carry over extended attributes or ACLs, and unsaved text is lost if the window itself closes; the size and file-kind limits are listed under Added.
- Progress redraws: absolute cursor rows (`CSI H`/`f`/`d`) are not mapped and scroll regions are not emulated ([#388](https://github.com/raiseCatError/notMyShell/issues/388)).
- `/modules explain` covers the Context Rail and Status Strip; the Main Prompt has no per-segment truncation trace ([#365](https://github.com/raiseCatError/notMyShell/issues/365)).
- Oxocarbon, GitHub Primer, Material/Palenight and Monokai are deferred, with reasons in `docs/design/theme-families.md` ([#401](https://github.com/raiseCatError/notMyShell/issues/401)).
- Keys typed *during* a Fish `read` stay subject to Fish's own editor queries ([#356](https://github.com/raiseCatError/notMyShell/issues/356)).
- On a heavily loaded machine, a reply typed within about a second of starting a command that reads without a prompt can be queued instead of answering it ([#426](https://github.com/raiseCatError/notMyShell/issues/426); also in v0.20.0).
- Linux stays beta: automated CI on Ubuntu and Fedora, no physical pass. Everything listed under v0.20.0's known limitations still applies.

## [0.20.0] - 2026-10-18

**Terminal workflow, first-run setup, background tasks & native modules.** The first stable release since v0.18.0. A new first run lets you pick a starting point under a live aurora and review it before anything applies; queued commands read as a chronological timeline with saved summaries; completed output can be selected, copied and acted on from the keyboard; optional tools are discovered, reviewed and installed through one flow; long-running commands can run as background tasks beside the shell; and the native module catalog covers twelve more runtimes and build tools. Every new control is reached through an explicit command, key or review, and the persistent shell, the queue and program input keep their behavior.
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@

Latest stable release: [v0.20.0 — Terminal workflow, first-run setup, background tasks & native modules](https://github.com/raiseCatError/notMyShell/releases/tag/v0.20.0), the first stable release since v0.18.0. It includes the terminal workflow from the v0.19.0 candidate, which was never published separately. The `master` branch includes this released work; see the [changelog](CHANGELOG.md#0200---2026-10-18) for its scope, upgrade notes and known limitations.

Release candidate: v0.21.0 (`/view`, `/edit`, Semantic Output, `/track`, more native modules and theme families) is on `release/v0.21.0` and is not published until its physical-terminal QA passes; see the [changelog](CHANGELOG.md).

## See notMyShell in motion

https://github.com/user-attachments/assets/7f2cbe74-ad86-4d13-bbe3-04e334cff81b
Expand Down Expand Up @@ -171,6 +173,7 @@ Type `/` in the composer for the full list, or `/help` for everything grouped by
| Look and motion | `/appearance`, `/theme`, `/theme-bridge`, `/chroma`, `/motion`, `/chrome`, `/glyphs`, `/strip`, `/screensaver` |
| Tools | `/tools`, `/providers`, `/configure`, `/tmux`, `/integrations`, `/dotfiles` |
| Sessions and history | `/resume`, `/sessions`, `/history`, `/find`, `/filter`, `/copy`, `/clear` |
| Files and output (v0.21 candidate) | `/view` (files and completed output), `/edit` (a small text file), `/track` (one live result of a command), `/copy --semantic` |
| Agents and repositories | `/claude` (`/claude new`), `/ai`, `/mods` (`/extensions`), `/worktrees`, `/github` (`/prs`, `/issues`) |
| Shells | `/shell` (switch zsh / Bash / Fish in place), `/zsh` (hand off to an ordinary shell) |
| Everyday extras | `/btw`, `/watch`, `/open`, `/zoomies` (`/caffeinate`, `/awake`), `/update`, `/doctor` |
Expand Down
Loading
Loading