Skip to content

Releases

dsh-0.1.5-alpha.1-1.3.0

Choose a tag to compare

@github-actions github-actions released this 10 Sep 00:02
c4bab83

dsh-termux runtime dsh-0.1.5-alpha.1-1.3.0

Built on arm64 Linux (GitHub Actions ubuntu-24.04-arm) with:

  • dsh requested: @deepseek-ai/dsh@0.1.5-alpha.1
  • dsh bundled: 0.1.5-alpha.1
  • project version: 1.3.0 (VERSION)
  • project source: c4bab83
  • Node.js: linux-arm64 24.19.0
  • all Android patches from DSH_PATCH_SET applied and verified

Release tags are dsh-<bundled dsh version>-<project VERSION>.

The runtime tarball is self-contained: it bundles the installer, update-dsh.sh (+ its helpers) and the patch files, so you can keep following upstream dsh without cloning this repository.

Compatibility note

This release artifact is a snapshot built at release time.
It was tested against the dsh version it bundles only.
Upstream dsh evolves and may change the patched libs; if the patches drift, this artifact may not work.

Install (on Termux, arm64)

One-liner:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/latest/download/install.sh | bash -s -- -y

Or manually:

  1. Download dsh-termux-runtime.tar.gz and install.sh (both attached).
  2. Ensure glibc is available:
pkg install glibc-repo && pkg install glibc glibc-runner
  1. Run: bash install.sh -y (or bash install.sh -p dsh-termux-runtime.tar.gz)
  2. New shell, then dsh --version and dsh web --port 3080.

Install a specific release, or go back to an older one

DSH_RELEASE picks which release the installer downloads from; without it the installer resolves latest, which by definition never points at a pre-release:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/download/<tag>/install.sh \
  | DSH_RELEASE=<tag> bash -s -- -y

Run that from a directory with no leftover *-runtime.tar.gz:
without -p, install.sh first looks for a runtime tarball next to itself, and under curl | bash that means the current directory — it would unpack the leftover instead of the release you asked for.

Installing rewrites ~/.local/opt/dsh-termux-runtime, the dsh symlink in ~/.local/bin and one # dsh-termux PATH line in ~/.bashrc.
It never reads or writes ~/.dsh, so sessions and settings survive installs, updates and rollbacks alike.

Update later (no repo clone needed)

dsh update -t next -y        # npm update + automatic patch-set refresh
dsh update --self            # refresh the patch set and apply it
                             # directly (no npm download)
dsh update --patch-set <dir|tar.gz>   # same, from a local patch set

What's Changed

  • feat(test-install): add the maintainer tools/ directory and pr-merge.sh by @ErEbusE in #34
  • ci(release): release on push only when VERSION changes by @ErEbusE in #35
  • ci(release): reject an existing release tag before the build by @ErEbusE in #36
  • feat: make --self apply the patch set directly (no npm) by @ErEbusE in #37

Full Changelog: dsh-0.1.5-alpha.1-1.2.10...dsh-0.1.5-alpha.1-1.3.0

dsh-0.1.5-alpha.1-1.2.10

Choose a tag to compare

@github-actions github-actions released this 09 Sep 13:19
d49f768

dsh-termux runtime dsh-0.1.5-alpha.1-1.2.10

Built on arm64 Linux (GitHub Actions ubuntu-24.04-arm) with:

  • dsh requested: @deepseek-ai/dsh@alpha
  • dsh bundled: 0.1.5-alpha.1
  • project version: 1.2.10 (VERSION)
  • project source: d49f768
  • Node.js: linux-arm64 24.19.0
  • all Android patches from DSH_PATCH_SET applied and verified

Release tags are dsh-<bundled dsh version>-<project VERSION>.

The runtime tarball is self-contained: it bundles the installer, update-dsh.sh (+ its helpers) and the patch files, so you can keep following upstream dsh without cloning this repository.

Compatibility note

This release artifact is a snapshot built at release time.
It was tested against the dsh version it bundles only.
Upstream dsh evolves and may change the patched libs; if the patches drift, this artifact may not work.

Install (on Termux, arm64)

One-liner:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/latest/download/install.sh | bash -s -- -y

Or manually:

  1. Download dsh-termux-runtime.tar.gz and install.sh (both attached).
  2. Ensure glibc is available:
pkg install glibc-repo && pkg install glibc glibc-runner
  1. Run: bash install.sh -y (or bash install.sh -p dsh-termux-runtime.tar.gz)
  2. New shell, then dsh --version and dsh web --port 3080.

Install a specific release, or go back to an older one

DSH_RELEASE picks which release the installer downloads from; without it the installer resolves latest, which by definition never points at a pre-release:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/download/<tag>/install.sh \
  | DSH_RELEASE=<tag> bash -s -- -y

Run that from a directory with no leftover *-runtime.tar.gz:
without -p, install.sh first looks for a runtime tarball next to itself, and under curl | bash that means the current directory — it would unpack the leftover instead of the release you asked for.

Installing rewrites ~/.local/opt/dsh-termux-runtime, the dsh symlink in ~/.local/bin and one # dsh-termux PATH line in ~/.bashrc.
It never reads or writes ~/.dsh, so sessions and settings survive installs, updates and rollbacks alike.

Update later (no repo clone needed)

dsh update -t next -y        # npm update + automatic patch-set refresh
dsh update --self -y         # force a patch-set refresh only

What's Changed

  • fix(patches): session v0-to-v3 migration publish falls back to rename on Android by @ErEbusE in #32
  • ci(release): skip conditional patch targets absent from the bundled tree by @ErEbusE in #33

Full Changelog: dsh-0.1.2-rc.1-1.2.9...dsh-0.1.5-alpha.1-1.2.10

pre-dsh-0.1.5-alpha.1-g5dda764-1.2.10

Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Sep 13:14
d49f768

Pre-release — built from upstream source, not from npm

This is not the stable channel. It is built from
deepseek-ai/deepseek-harness at dsh-v0.1.5-alpha.1
(5dda764), which is typically ahead of the
npm release
the stable artifacts bundle. Expect upstream
breaking changes. Install it only if you want to test that.

  • upstream ref: dsh-v0.1.5-alpha.1 -> 5dda764
  • dsh version: 0.1.5-alpha.1 (built from source)
  • project version: 1.2.10 (VERSION)
  • all Android patches from DSH_PATCH_SET applied and verified
  • assets: runtime tarball + install.sh only — deliberately no dsh-termux-patches.tar.gz, so dsh update --self keeps refreshing from the stable channel

Install (Termux, arm64)

Once per device, if glibc is not there yet:

pkg install glibc-repo && pkg install glibc glibc-runner

Then, in a directory that holds no other runtime tarball:

mkdir -p ~/dsh-pre && cd ~/dsh-pre
curl -fLO https://github.com/ErEbusE/dsh-termux/releases/download/pre-dsh-0.1.5-alpha.1-g5dda764-1.2.10/install.sh
curl -fLO https://github.com/ErEbusE/dsh-termux/releases/download/pre-dsh-0.1.5-alpha.1-g5dda764-1.2.10/dsh-termux-runtime.tar.gz
bash install.sh -y -p dsh-termux-runtime.tar.gz

Or let the installer fetch this exact release — DSH_RELEASE selects it; without it the installer resolves latest, which by definition never points at a pre-release:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/download/pre-dsh-0.1.5-alpha.1-g5dda764-1.2.10/install.sh \
  | DSH_RELEASE=pre-dsh-0.1.5-alpha.1-g5dda764-1.2.10 bash -s -- -y

Open a new shell, then check what you got:

dsh --version        # 0.1.5-alpha.1
dsh web --port 3080

Installing rewrites ~/.local/opt/dsh-termux-runtime (wiped and re-extracted), the dsh symlink in ~/.local/bin, and one # dsh-termux PATH line in ~/.bashrc. It never reads or writes ~/.dsh, so sessions and settings survive both directions — but a newer dsh may write session records an older dsh will not read back.

Going back to stable

cd ~ && rm -rf ~/dsh-pre     # see the caveat below
curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/latest/download/install.sh | bash -s -- -y
dsh --version

releases/latest excludes pre-releases by definition, so that one-liner always lands on stable — no flag, no tag to remember.

Caveat that bites exactly here: without -p, install.sh first looks for a *-runtime.tar.gz next to itself, and under curl | bash that means the current directory. Run the rollback from a directory with no leftover pre tarball, or the installer will unpack that tarball again instead of the stable one it downloaded.

Updating from here

dsh update -t <npm dist-tag> -y follows npm, and dsh update --self -y refreshes the updater and patch set from the latest stable release — so a pre install converges back to the stable channel rather than tracking upstream twice. Neither one re-downloads this pre-release: to move to a newer pre, install it the same way you installed this one.

dsh-0.1.2-rc.1-1.2.8

Choose a tag to compare

@github-actions github-actions released this 08 Sep 18:28
52faeba

dsh-termux runtime dsh-0.1.2-rc.1-1.2.8

Built on arm64 Linux (GitHub Actions ubuntu-24.04-arm) with:

  • dsh requested: @deepseek-ai/dsh@latest
  • dsh bundled: 0.1.2-rc.1
  • project version: 1.2.8 (VERSION)
  • project source: 52faeba
  • Node.js: linux-arm64 24.19.0
  • all Android patches from DSH_PATCH_SET applied and verified

Release tags are dsh-<bundled dsh version>-<project VERSION>.

The runtime tarball is self-contained: it bundles the installer, update-dsh.sh (+ its helpers) and the patch files, so you can keep following upstream dsh without cloning this repository.

Compatibility note

This release artifact is a snapshot built at release time.
It was tested against the dsh version it bundles only.
Upstream dsh evolves and may change the patched libs; if the patches drift, this artifact may not work.

Install (on Termux, arm64)

One-liner:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/latest/download/install.sh | bash -s -- -y

Or manually:

  1. Download dsh-termux-runtime.tar.gz and install.sh (both attached).
  2. Ensure glibc is available:
pkg install glibc-repo && pkg install glibc glibc-runner
  1. Run: bash install.sh -y (or bash install.sh -p dsh-termux-runtime.tar.gz)
  2. New shell, then dsh --version and dsh web --port 3080.

Install a specific release, or go back to an older one

DSH_RELEASE picks which release the installer downloads from; without it the installer resolves latest, which by definition never points at a pre-release:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/download/<tag>/install.sh \
  | DSH_RELEASE=<tag> bash -s -- -y

Run that from a directory with no leftover *-runtime.tar.gz:
without -p, install.sh first looks for a runtime tarball next to itself, and under curl | bash that means the current directory — it would unpack the leftover instead of the release you asked for.

Installing rewrites ~/.local/opt/dsh-termux-runtime, the dsh symlink in ~/.local/bin and one # dsh-termux PATH line in ~/.bashrc.
It never reads or writes ~/.dsh, so sessions and settings survive installs, updates and rollbacks alike.

Update later (no repo clone needed)

dsh update -t next -y        # npm update + automatic patch-set refresh
dsh update --self -y         # force a patch-set refresh only

What's Changed

  • Generate the release notes already in their edited shape by @ErEbusE in #27
  • Anchor the hard-link patch on the publish call, not the import line by @ErEbusE in #28

Full Changelog: dsh-0.1.2-alpha.3-1.2.7...dsh-0.1.2-rc.1-1.2.8

pre-dsh-0.1.3-alpha.2-g82a5fd6-1.2.8

Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Sep 19:14
0987091

Pre-release — built from upstream source, not from npm

This is not the stable channel. It is built from
deepseek-ai/deepseek-harness at dsh-v0.1.3-alpha.2
(82a5fd6), which is typically ahead of the
npm release
the stable artifacts bundle. Expect upstream
breaking changes. Install it only if you want to test that.

  • upstream ref: dsh-v0.1.3-alpha.2 -> 82a5fd6
  • dsh version: 0.1.3-alpha.2 (built from source)
  • project version: 1.2.8 (VERSION)
  • all Android patches from DSH_PATCH_SET applied and verified
  • assets: runtime tarball + install.sh only — deliberately no dsh-termux-patches.tar.gz, so dsh update --self keeps refreshing from the stable channel

Install (Termux, arm64)

Once per device, if glibc is not there yet:

pkg install glibc-repo && pkg install glibc glibc-runner

Then, in a directory that holds no other runtime tarball:

mkdir -p ~/dsh-pre && cd ~/dsh-pre
curl -fLO https://github.com/ErEbusE/dsh-termux/releases/download/pre-dsh-0.1.3-alpha.2-g82a5fd6-1.2.8/install.sh
curl -fLO https://github.com/ErEbusE/dsh-termux/releases/download/pre-dsh-0.1.3-alpha.2-g82a5fd6-1.2.8/dsh-termux-runtime.tar.gz
bash install.sh -y -p dsh-termux-runtime.tar.gz

Or let the installer fetch this exact release — DSH_RELEASE selects it; without it the installer resolves latest, which by definition never points at a pre-release:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/download/pre-dsh-0.1.3-alpha.2-g82a5fd6-1.2.8/install.sh \
  | DSH_RELEASE=pre-dsh-0.1.3-alpha.2-g82a5fd6-1.2.8 bash -s -- -y

Open a new shell, then check what you got:

dsh --version        # 0.1.3-alpha.2
dsh web --port 3080

Installing rewrites ~/.local/opt/dsh-termux-runtime (wiped and re-extracted), the dsh symlink in ~/.local/bin, and one # dsh-termux PATH line in ~/.bashrc. It never reads or writes ~/.dsh, so sessions and settings survive both directions — but a newer dsh may write session records an older dsh will not read back.

Going back to stable

cd ~ && rm -rf ~/dsh-pre     # see the caveat below
curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/latest/download/install.sh | bash -s -- -y
dsh --version

releases/latest excludes pre-releases by definition, so that one-liner always lands on stable — no flag, no tag to remember.

Caveat that bites exactly here: without -p, install.sh first looks for a *-runtime.tar.gz next to itself, and under curl | bash that means the current directory. Run the rollback from a directory with no leftover pre tarball, or the installer will unpack that tarball again instead of the stable one it downloaded.

Updating from here

dsh update -t <npm dist-tag> -y follows npm, and dsh update --self -y refreshes the updater and patch set from the latest stable release — so a pre install converges back to the stable channel rather than tracking upstream twice. Neither one re-downloads this pre-release: to move to a newer pre, install it the same way you installed this one.

dsh-0.1.2-rc.1-1.2.7

Choose a tag to compare

@github-actions github-actions released this 03 Sep 21:31
1875cba

dsh-termux runtime dsh-0.1.2-rc.1-1.2.7

Built on arm64 Linux (GitHub Actions ubuntu-24.04-arm) with:

  • dsh requested: @deepseek-ai/dsh@alpha
  • dsh bundled: 0.1.2-rc.1
  • project version: 1.2.7 (VERSION)
  • project source: 1875cba
  • Node.js: linux-arm64 24.19.0
  • all Android patches from DSH_PATCH_SET applied and verified

Release tags are dsh-<bundled dsh version>-<project VERSION>.

The runtime tarball is self-contained: it bundles the installer, update-dsh.sh (+ its helpers) and the patch files, so you can keep following upstream dsh without cloning this repository.

Compatibility note

This release artifact is a snapshot built at release time.
It was tested against the dsh version it bundles only.
Upstream dsh evolves and may change the patched libs; if the patches drift, this artifact may not work.

Install (on Termux, arm64)

One-liner:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/latest/download/install.sh | bash -s -- -y

Or manually:

  1. Download dsh-termux-runtime.tar.gz and install.sh (both attached).
  2. Ensure glibc is available:
pkg install glibc-repo && pkg install glibc glibc-runner
  1. Run: bash install.sh -y (or bash install.sh -p dsh-termux-runtime.tar.gz)
  2. New shell, then dsh --version and dsh web --port 3080.

Install a specific release, or go back to an older one

DSH_RELEASE picks which release the installer downloads from; without it the installer resolves latest, which by definition never points at a pre-release:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/download/<tag>/install.sh \
  | DSH_RELEASE=<tag> bash -s -- -y

Run that from a directory with no leftover *-runtime.tar.gz:
without -p , install.sh first looks for a runtime tarball next to itself , and under curl | bash that means the current directory — it would unpack the leftover instead of the release you asked for.

Installing rewrites ~/.local/opt/dsh-termux-runtime, the dsh symlink in ~/.local/bin and one #dsh-termux PATH line in ~/.bashrc.
It never reads or writes ~/.dsh, so sessions and settings survive installs, updates and rollbacks alike.

Update later (no repo clone needed)

dsh update -t next -y        # npm update + automatic patch-set refresh
dsh update --self -y         # force a patch-set refresh only

What's Changed

  • Update dsh to 0.1.2-rc.1

dsh-0.1.2-alpha.4-1.2.7

Choose a tag to compare

@github-actions github-actions released this 01 Sep 20:31
1875cba

dsh-termux runtime dsh-0.1.2-alpha.4-1.2.7

Built on arm64 Linux (GitHub Actions ubuntu-24.04-arm) with:

  • dsh requested: @deepseek-ai/dsh@alpha
  • dsh bundled: 0.1.2-alpha.4
  • project version: 1.2.7 (VERSION)
  • project source: 1875cba
  • Node.js: linux-arm64 24.19.0
  • all Android patches from DSH_PATCH_SET applied and verified

Release tags are dsh-<bundled dsh version>-<project VERSION>.

The runtime tarball is self-contained: it bundles the installer, update-dsh.sh (+ its helpers) and the patch files, so you can keep following upstream dsh without cloning this repository.

Compatibility note

This release artifact is a snapshot built at release time.
It was tested against the dsh version it bundles only.
Upstream dsh evolves and may change the patched libs; if the patches drift, this artifact may not work.

Install (on Termux, arm64)

One-liner:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/latest/download/install.sh | bash -s -- -y

Or manually:

  1. Download dsh-termux-runtime.tar.gz and install.sh (both attached).
  2. Ensure glibc is available:
pkg install glibc-repo && pkg install glibc glibc-runner
  1. Run: bash install.sh -y (or bash install.sh -p dsh-termux-runtime.tar.gz)
  2. New shell, then dsh --version and dsh web --port 3080.

Install a specific release, or go back to an older one

DSH_RELEASE picks which release the installer downloads from; without it the installer resolves latest, which by definition never points at a pre-release:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/download/<tag>/install.sh \
  | DSH_RELEASE=<tag> bash -s -- -y

Run that from a directory with no leftover *-runtime.tar.gz:
without -p , install.sh first looks for a runtime tarball next to itself , and under curl | bash that means the current directory — it would unpack the leftover instead of the release you asked for.

Installing rewrites ~/.local/opt/dsh-termux-runtime, the dsh symlink in ~/.local/bin and one #dsh-termux PATH line in ~/.bashrc.
It never reads or writes ~/.dsh, so sessions and settings survive installs, updates and rollbacks alike.

Update later (no repo clone needed)

dsh update -t next -y        # npm update + automatic patch-set refresh
dsh update --self -y         # force a patch-set refresh only

What's Changed

  • Update dsh to 0.1.2-alpha.4

dsh-0.1.2-alpha.3-1.2.7

Choose a tag to compare

@github-actions github-actions released this 01 Sep 08:55
1875cba

dsh-termux runtime dsh-0.1.2-alpha.3-1.2.7

Built on arm64 Linux (GitHub Actions ubuntu-24.04-arm) with:

  • dsh requested: @deepseek-ai/dsh@alpha
  • dsh bundled: 0.1.2-alpha.3
  • project version: 1.2.7 (VERSION)
  • project source: 1875cba
  • Node.js: linux-arm64 24.19.0
  • all Android patches from DSH_PATCH_SET applied and verified

Release tags are dsh-<bundled dsh version>-<project VERSION>.

The runtime tarball is self-contained: it bundles the installer, update-dsh.sh (+ its helpers) and the patch files, so you can keep following upstream dsh without cloning this repository.

Compatibility note

This release artifact is a snapshot built at release time.
It was tested against the dsh version it bundles only.
Upstream dsh evolves and may change the patched libs; if the patches drift, this artifact may not work.

Install (on Termux, arm64)

One-liner:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/latest/download/install.sh | bash -s -- -y

Or manually:

  1. Download dsh-termux-runtime.tar.gz and install.sh (both attached).
  2. Ensure glibc is available:
pkg install glibc-repo && pkg install glibc glibc-runner
  1. Run: bash install.sh -y (or bash install.sh -p dsh-termux-runtime.tar.gz)
  2. New shell, then dsh --version and dsh web --port 3080.

Install a specific release, or go back to an older one

DSH_RELEASE picks which release the installer downloads from; without it the installer resolves latest, which by definition never points at a pre-release:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/download/<tag>/install.sh \
  | DSH_RELEASE=<tag> bash -s -- -y

Run that from a directory with no leftover *-runtime.tar.gz:
without -p , install.sh first looks for a runtime tarball next to itself , and under curl | bash that means the current directory — it would unpack the leftover instead of the release you asked for.

Installing rewrites ~/.local/opt/dsh-termux-runtime, the dsh symlink in ~/.local/bin and one #dsh-termux PATH line in ~/.bashrc.
It never reads or writes ~/.dsh, so sessions and settings survive installs, updates and rollbacks alike.

Update later (no repo clone needed)

dsh update -t next -y        # npm update + automatic patch-set refresh
dsh update --self -y         # force a patch-set refresh only

What's Changed

  • Update dsh to 0.1.2-alpha.3

dsh-0.1.1-rc.2-1.2.7

Choose a tag to compare

@github-actions github-actions released this 01 Sep 08:02
102c6e0

dsh-termux runtime dsh-0.1.1-rc.2-1.2.7

Built on arm64 Linux (GitHub Actions ubuntu-24.04-arm) with:

  • dsh requested: @deepseek-ai/dsh@latest
  • dsh bundled: 0.1.1-rc.2
  • project version: 1.2.7 (VERSION)
  • project source: 102c6e0
  • Node.js: linux-arm64 24.19.0
  • all Android patches from DSH_PATCH_SET applied and verified

Release tags are dsh-<bundled dsh version>-<project VERSION>.
Bumping VERSION in the repository and pushing main triggers a
new release; nothing changed means the workflow exits early without
publishing.

The runtime tarball is self-contained: it bundles the installer,
update-dsh.sh (+ its helpers) and the patch files, so you can keep
following upstream dsh without cloning this repository.

Compatibility note

This release artifact is a snapshot built at release time. It was
tested against the dsh version it bundles only. Upstream dsh evolves
and may change the patched libs; if the patches drift, this artifact
may not work.

Install (on Termux, arm64)

One-liner:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/latest/download/install.sh | bash -s -- -y

Or manually:

  1. Download dsh-termux-runtime.tar.gz and install.sh (both attached).
  2. Ensure glibc is available:
    pkg install glibc-repo && pkg install glibc glibc-runner
  3. Run: bash install.sh -y (or bash install.sh -p dsh-termux-runtime.tar.gz)
  4. New shell, then dsh --version and dsh web --port 3080.

Update later (no repo clone needed)

dsh update -t next -y        # npm update + automatic patch-set refresh
dsh update --self -y         # force a patch-set refresh only

What's Changed

  • fix: keep the dsh web browser handoff working on dsh >= 0.1.2 by @ErEbusE in #25

Full Changelog: pre-dsh-0.1.2-alpha.3-gdd6322d-1.2.7...dsh-0.1.1-rc.2-1.2.7

pre-dsh-0.1.2-alpha.4-g4e84901-1.2.7

Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 19:37
1875cba

Pre-release — built from upstream source, not from npm

This is not the stable channel. It is built from
deepseek-ai/deepseek-harness at dsh-v0.1.2-alpha.4
(4e84901), which is typically ahead of the
npm release
the stable artifacts bundle. Expect upstream
breaking changes. Install it only if you want to test that.

  • upstream ref: dsh-v0.1.2-alpha.4 -> 4e84901
  • dsh version: 0.1.2-alpha.4 (built from source)
  • project version: 1.2.7 (VERSION)
  • all Android patches from DSH_PATCH_SET applied and verified
  • assets: runtime tarball + install.sh only — deliberately no dsh-termux-patches.tar.gz, so dsh update --self keeps refreshing from the stable channel

Install (Termux, arm64)

Once per device, if glibc is not there yet:

pkg install glibc-repo && pkg install glibc glibc-runner

Then, in a directory that holds no other runtime tarball:

mkdir -p ~/dsh-pre && cd ~/dsh-pre
curl -fLO https://github.com/ErEbusE/dsh-termux/releases/download/pre-dsh-0.1.2-alpha.4-g4e84901-1.2.7/install.sh
curl -fLO https://github.com/ErEbusE/dsh-termux/releases/download/pre-dsh-0.1.2-alpha.4-g4e84901-1.2.7/dsh-termux-runtime.tar.gz
bash install.sh -y -p dsh-termux-runtime.tar.gz

Or let the installer fetch this exact release — DSH_RELEASE selects it; without it the installer resolves latest, which by definition never points at a pre-release:

curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/download/pre-dsh-0.1.2-alpha.4-g4e84901-1.2.7/install.sh \
  | DSH_RELEASE=pre-dsh-0.1.2-alpha.4-g4e84901-1.2.7 bash -s -- -y

Open a new shell, then check what you got:

dsh --version        # 0.1.2-alpha.4
dsh web --port 3080

Installing rewrites ~/.local/opt/dsh-termux-runtime (wiped and re-extracted), the dsh symlink in ~/.local/bin, and one # dsh-termux PATH line in ~/.bashrc. It never reads or writes ~/.dsh, so sessions and settings survive both directions — but a newer dsh may write session records an older dsh will not read back.

Going back to stable

cd ~ && rm -rf ~/dsh-pre     # see the caveat below
curl -fsSL https://github.com/ErEbusE/dsh-termux/releases/latest/download/install.sh | bash -s -- -y
dsh --version

releases/latest excludes pre-releases by definition, so that one-liner always lands on stable — no flag, no tag to remember.

Caveat that bites exactly here: without -p, install.sh first looks for a *-runtime.tar.gz next to itself, and under curl | bash that means the current directory. Run the rollback from a directory with no leftover pre tarball, or the installer will unpack that tarball again instead of the stable one it downloaded.

Updating from here

dsh update -t <npm dist-tag> -y follows npm, and dsh update --self -y refreshes the updater and patch set from the latest stable release — so a pre install converges back to the stable channel rather than tracking upstream twice. Neither one re-downloads this pre-release: to move to a newer pre, install it the same way you installed this one.