Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
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
Prev Previous commit
Next Next commit
chore(release): 0.0.12
  • Loading branch information
codejunction committed Oct 10, 2026
commit 96e22667f6ecf5ca5142a925954fb5252444d385
11 changes: 9 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,21 @@ All notable changes to shelldeck are listed here. The format follows [Keep a Cha

## [Unreleased]

## [0.0.12] - 2026-10-11

### Added

- Standalone build: Windows x64 and Linux x64 archives on every GitHub release, no Python or uv needed. The one-line installers install it by default; `-Pip` / `--pip` (or `SHELLDECK_PIP=1`) installs with `uv tool` instead. `SHELLDECK_VERSION` picks a release, release candidates included.
- In-place updates: the standalone build downloads a new release (checked against its `.sha256`), unpacks it next to the running one and restarts only its UI process, so terminals keep running. Host browsers get an *Update now* toast, and Settings has an *Updates* section. uv installs are told to run `uv tool upgrade shelldeck`.
- Two processes: the server runs as `shelldeck` with `sd-pty` (the shells) and `sd-ui` (web UI) under it. Restarting or updating the UI (`sd restart`) keeps every shell and its scrollback. `sd stop` ends both.
- Radio: a top-bar button plays cliamp radio's channels (radio.cliamp.stream) in the browser, with a volume slider.

### Changed

- The background server shows as shelldeck in Task Manager (Windows) and in process lists (Linux), not as Python.
- Lower idle CPU: terminal process trees come from one shared process snapshot per second, not several per terminal on every poll.
- The boot screen shows for at most 0.6s (was 2s), and hidden tabs stop refreshing the sidebar.
- The boot screen shows for about 1s (was 2s) and finishes its logo animation before the page appears; hidden tabs stop refreshing the sidebar.
- Settings is split into sections (Appearance, Terminal, AI agents, Updates, Password) with a side navigation.
- After a server restart, terminals show their previous text as plain lines above the new shell (under a "restored" line), not a replayed screen snapshot.

### Fixed
Expand Down Expand Up @@ -212,7 +218,8 @@ First public release.
- Mandatory password with per-browser logins, idle lock, and HTTPS or SSH-tunnel remote access.
- `sd` CLI with a startup banner, `sd search` (LLM-free code search), and one-line installers for Windows and Linux.

[Unreleased]: https://github.com/codejunction/shelldeck/compare/v0.0.11...HEAD
[Unreleased]: https://github.com/codejunction/shelldeck/compare/v0.0.12...HEAD
[0.0.12]: https://github.com/codejunction/shelldeck/releases/tag/v0.0.12
[0.0.11]: https://github.com/codejunction/shelldeck/releases/tag/v0.0.11
[0.0.10]: https://github.com/codejunction/shelldeck/releases/tag/v0.0.10
[0.0.9]: https://github.com/codejunction/shelldeck/releases/tag/v0.0.9
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ uv tool install --force -e . # global sd/shelldeck from this checkout (th
- `vendor/`: pinned xterm.js 5.5 + fit + web-links + webgl + search.
- `tests/`: `test_shelldeck.py` (API, security, settings, tasks, scheduler, static caching, real PTY round trip), `test_cli.py` (banner, web, browser/app window, serve guards, render, search), `test_gitgraph.py`.
- **Release plumbing.**
- `install.ps1` / `install.sh`: one-line installers (uv, then `uv tool install shelldeck`; `SHELLDECK_SOURCE` overrides the source and CI feeds it the built wheel; `UV_NO_MODIFY_PATH` skips PATH edits).
- `install.ps1` / `install.sh`: one-line installers. Default is the standalone build from the GitHub release (`SHELLDECK_VERSION`, `SHELLDECK_ARCHIVE`, `SHELLDECK_ROOT`, `SHELLDECK_NO_MODIFY_PATH`; macOS and non-x64 fall back to uv); `-Pip` / `--pip` / `SHELLDECK_PIP=1` installs with uv then `uv tool install shelldeck` (`SHELLDECK_SOURCE` overrides the source and CI feeds it the built wheel; `UV_NO_MODIFY_PATH` skips PATH edits).
- `.github/workflows/ci.yml`: lint, a Windows+Ubuntu × py3.12–3.14 test matrix, and an installer smoke test.
- `release.yml`: on a `v*` tag, reuses CI, checks the tag matches the pyproject version, then builds, publishes to PyPI (trusted publishing, environment `pypi`) and creates the GitHub release.
- Manual run (`workflow_dispatch`, input `version`) publishes a release candidate from a `feature/` or `fix/` branch: `x.y.zrcN` only, newer than pyproject, patched into pyproject in the build (never committed), no git tag pushed, but a GitHub prerelease `v<rc>` on the branch's commit with the wheel and standalone assets (`releases/latest` skips prereleases, so OTA never offers an rc). It lives in `release.yml` because the PyPI trusted publisher is bound to that file.
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "shelldeck"
version = "0.0.11"
version = "0.0.12"
description = "Project-first multi-terminal for Windows and Linux: real shells, grouped by project, in your browser"
readme = "README.md"
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading