Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
b41cd84
docs: add opencode-native-ui feasibility and plan
linletian Jun 21, 2026
496be94
docs: add opencode-web spec to PRD/API/ARCH/CHANGELOG
linletian Jun 21, 2026
0a9e88e
feat(instance): add Kind/Extra fields, opencode-web helpers, default tag
linletian Jun 21, 2026
7e8ea49
feat(instance): add opencode-web Kind dispatch in Manager.Start
linletian Jun 21, 2026
420b940
feat(api): add opencode-web endpoint + /__opencode/ reverse proxy
linletian Jun 21, 2026
134d3e2
feat(ui): add opencode-web iframe panel + OC badge in tabs
linletian Jun 21, 2026
aa405e0
feat(opencode-web): embed opencode SPA via reverse proxy + iframe
linletian Jun 25, 2026
de27d23
chore: add Unreleased placeholder after v0.4.0
linletian Aug 12, 2026
b66f25b
feat(opencode-web): single-worktree isolation (iframe + scope monitor…
linletian Aug 13, 2026
946cefc
feat(opencode-web): harden full-page embed (home list hide + URL/Work…
linletian Aug 13, 2026
e4158fa
fix(opencode-web): hide project list via CSS to avoid SSE-time render…
linletian Aug 13, 2026
9448517
fix(framework,opencode-web,pty): address REVIEW-e4158fa + runLifecycl…
linletian Aug 13, 2026
28ec484
style(ui): polish modal tab styles and opencode-web hint copy
linletian Aug 13, 2026
49b18a1
fix(opencode-web): keep iframe page alive across tab switches
linletian Aug 13, 2026
598621b
fix(opencode-web): keep per-instance iframe alive across cross-instan…
linletian Aug 13, 2026
4a72fb8
fix(opencode-web): preserve current worktree's project-switch button
linletian Aug 13, 2026
a0c6d55
fix(opencode-web): disable (not hide) cross-worktree switch entries +…
linletian Aug 14, 2026
aeebd80
fix(opencode-web): hide iframe on deactivate + keep polling during st…
linletian Aug 14, 2026
977d86c
docs(opencode-web): add workdir debug analysis (2026-08-13)
linletian Aug 14, 2026
73a9d16
docs(opencode-web): record E.7.5 single-server preseed + review fixes…
linletian Aug 14, 2026
8424e33
fix(opencode-web): single-server preseed + per-instance server store …
linletian Aug 14, 2026
cce0e6f
fix(opencode-web): prefix URL at Request construction (Safari streami…
linletian Aug 14, 2026
9c1a00a
chore: ignore .reasonix/ (agent task state dir, like .gitnexus / .cla…
linletian Aug 14, 2026
0c58e0d
fix(opencode-web): keep pty WS alive while hidden + renderer single a…
linletian Aug 14, 2026
f506d12
chore: ignore .playwright-mcp/ (local Playwright MCP artifacts)
linletian Aug 14, 2026
0c150a4
Merge main (reasonix-native-ui v0.4.0) into feature/opencode-native-ui
linletian Aug 14, 2026
07bd8e5
refactor(ui): drop template picker from Reasonix start tab (decision B)
linletian Aug 14, 2026
53f6de8
fix(ui): load reasonix renderer; fix(openx-web): defaults survive exi…
linletian Aug 14, 2026
d080f0f
fix(ui): unstack web panels + reasonix single-shared-frame renderer
linletian Aug 14, 2026
de7fba5
fix(ui): restore per-instance reasonix frames with keep-alive + self-…
linletian Aug 14, 2026
540b43c
fix(remote-access): carry ?token= into embeds; defuse blocking font s…
linletian Aug 14, 2026
ae387ee
refactor(auth): centralize ?token= stripping; sync mw_token cookie in…
linletian Aug 14, 2026
9d1e025
fix(opencode-web): stop waits for process reap; make normalizeDir tes…
linletian Aug 14, 2026
09a0693
Merge pull request #60 from linletian/feature/opencode-native-ui
linletian Aug 14, 2026
5b3bf54
docs(readme): refresh intro with ORCA-style positioning
linletian Aug 14, 2026
4ff7972
Merge main (v0.4.2 + install/README refresh) into develop
linletian Aug 16, 2026
648af1d
feat(dsh-native-ui): dsh-web 实例类型 + 原生 UI 渲染器 (#74)
linletian Aug 16, 2026
0827372
fix(opencode-web): force explicit loopback entries in child no_proxy …
linletian Sep 10, 2026
6877b10
Merge main (v0.4.3 release) into develop
linletian Sep 10, 2026
89eb54a
docs: add RELEASING.md release runbook
linletian Sep 10, 2026
a016a9a
feat(dsh-web): remote access via WS↔SSE bridge + dsh ≥0.1.2 auth rela…
linletian Sep 11, 2026
cd484db
Merge main (v0.5.0 release) into develop
linletian Sep 11, 2026
1417692
fix(terminal): serve log replay from the ring-buffer tail (issue #81)…
linletian Oct 3, 2026
0c92e2d
fix(terminal): a new instance could show [Process Stopped] over a liv…
linletian Oct 3, 2026
35393c9
feat(dsh-web): adapt the embedded DSH UI to dsh 0.2.x + --no-open (is…
linletian Oct 4, 2026
0bf3b36
fix(terminal): WS handshake replayed the 64KB tail on every reconnect…
linletian Oct 5, 2026
ab4e7cf
fix(pty): an overflowing output subscriber was silently skipped (issu…
linletian Oct 5, 2026
488b38c
fix(terminal): a half-open TTY WebSocket read as live (issue #83) (#92)
linletian Oct 6, 2026
630d89a
fix(terminal): a stripped X-Log-Offset replayed the tail twice (issue…
linletian Oct 6, 2026
17b971c
chore(release): beta prerelease flow from develop
linletian Oct 6, 2026
c589437
fix(install): honour NO_MODIFY_PATH=1 / MYWORKTREE_BETA=1 env spellings
linletian Oct 6, 2026
1d487df
fix(ui): hide all cached frames when switching to a stopped same-kind…
linletian Oct 6, 2026
8cd4d0d
fix(dsh-web): overlay L2 check tolerated the YAML dump's folded stora…
linletian Oct 6, 2026
1cbbaa4
fix(install): detect alias-started daemons in the running-daemon Head…
linletian Oct 6, 2026
d78bc25
Merge main (v0.5.1 release) into develop
linletian Oct 6, 2026
5f91c63
fix(ui): switching to an instance-less worktree left the dsh-web ifra…
linletian Oct 8, 2026
acd13e0
fix(terminal): gate the TEXT ping heartbeat and sync echo behind clie…
linletian Oct 8, 2026
2456254
fix(worktree): the delete refusal now details the dirty state, warns …
linletian Oct 8, 2026
75c9562
test(ui): the node-test count guard checks every claim occurrence, no…
linletian Oct 8, 2026
4391ba5
feat(terminal): publish the replay's real start offset so mid-replay …
linletian Oct 9, 2026
0272442
docs(terminal): discussion draft on terminal instance survival and re…
linletian Oct 9, 2026
e74273b
chore(release): prepare v0.5.2
linletian Oct 9, 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
25 changes: 24 additions & 1 deletion CHANGELOG.md

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ PATH is auto-appended to `~/.zshrc` / `~/.bashrc` (open a new shell to pick it u
Pin a version, change the install location, or skip PATH modification:

```bash
curl -fsSL .../install.sh | bash -s -- -v v0.5.1 # pin a version
curl -fsSL .../install.sh | bash -s -- -v v0.5.2 # pin a version
INSTALL_ALIAS=mwt bash install.sh # avoid the Debian/Ubuntu `mw` clash
INSTALL_DIR=~/bin bash install.sh # install elsewhere
curl -fsSL .../install.sh | bash -s -- --no-modify-path # do not touch rc files
Expand Down Expand Up @@ -132,17 +132,17 @@ Example:
```bash
# Pick the archive that matches your platform, then verify and unpack it.
# macOS Apple Silicon:
curl -LO https://github.com/linletian/myworktree/releases/download/v0.5.1/myworktree_v0.5.1_macOS_arm64.tar.gz
curl -LO https://github.com/linletian/myworktree/releases/download/v0.5.2/myworktree_v0.5.2_macOS_arm64.tar.gz
# macOS Intel (replace arch in the filename):
# curl -LO .../myworktree_v0.5.1_macOS_amd64.tar.gz
# curl -LO .../myworktree_v0.5.2_macOS_amd64.tar.gz
# Linux amd64:
# curl -LO .../myworktree_v0.5.1_Linux_amd64.tar.gz
# curl -LO .../myworktree_v0.5.2_Linux_amd64.tar.gz
# Linux arm64:
# curl -LO .../myworktree_v0.5.1_Linux_arm64.tar.gz
# curl -LO .../myworktree_v0.5.2_Linux_arm64.tar.gz

curl -LO https://github.com/linletian/myworktree/releases/download/v0.5.1/checksums.txt
curl -LO https://github.com/linletian/myworktree/releases/download/v0.5.2/checksums.txt
shasum -a 256 -c checksums.txt --ignore-missing
tar -xzf myworktree_v0.5.1_macOS_arm64.tar.gz
tar -xzf myworktree_v0.5.2_macOS_arm64.tar.gz

# Optional: install into PATH
sudo install -m 755 ./mw /usr/local/bin/mw
Expand All @@ -161,7 +161,7 @@ mw --version
> Or open **System Settings → Privacy & Security** and click "Allow Anyway" for the
> blocked binaries.

Start from `v0.5.1` or newer for public release binaries. The earlier `v0.1.0` GitHub Release assets were withdrawn after post-release validation uncovered severe terminal interaction issues, and `v0.5.1` is the current recommended public release.
Start from `v0.5.2` or newer for public release binaries. The earlier `v0.1.0` GitHub Release assets were withdrawn after post-release validation uncovered severe terminal interaction issues, and `v0.5.2` is the current recommended public release.

Each release archive contains `mw`, `myworktree`, `README.md`, `LICENSE`, and `CHANGELOG.md`.
If you need a platform we do not publish, follow the source build steps below.
Expand Down
16 changes: 8 additions & 8 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ curl -fsSL https://raw.githubusercontent.com/linletian/myworktree/main/scripts/i
可指定版本、改安装路径、跳过 PATH 修改:

```bash
curl -fsSL .../install.sh | bash -s -- -v v0.5.1 # 指定版本
curl -fsSL .../install.sh | bash -s -- -v v0.5.2 # 指定版本
INSTALL_ALIAS=mwt bash install.sh # 避开 Debian/Ubuntu 的 `mw` 占用
INSTALL_DIR=~/bin bash install.sh # 装到自定义目录
curl -fsSL .../install.sh | bash -s -- --no-modify-path # 不改 rc 文件
Expand Down Expand Up @@ -130,17 +130,17 @@ curl -fsSL .../install.sh | bash -s -- -v vX.Y.Z-beta.N
```bash
# 根据你的平台选择对应压缩包,然后校验并解压
# macOS Apple Silicon:
curl -LO https://github.com/linletian/myworktree/releases/download/v0.5.1/myworktree_v0.5.1_macOS_arm64.tar.gz
curl -LO https://github.com/linletian/myworktree/releases/download/v0.5.2/myworktree_v0.5.2_macOS_arm64.tar.gz
# macOS Intel(替换文件名中的架构字段):
# curl -LO .../myworktree_v0.5.1_macOS_amd64.tar.gz
# curl -LO .../myworktree_v0.5.2_macOS_amd64.tar.gz
# Linux amd64:
# curl -LO .../myworktree_v0.5.1_Linux_amd64.tar.gz
# curl -LO .../myworktree_v0.5.2_Linux_amd64.tar.gz
# Linux arm64:
# curl -LO .../myworktree_v0.5.1_Linux_arm64.tar.gz
# curl -LO .../myworktree_v0.5.2_Linux_arm64.tar.gz

curl -LO https://github.com/linletian/myworktree/releases/download/v0.5.1/checksums.txt
curl -LO https://github.com/linletian/myworktree/releases/download/v0.5.2/checksums.txt
shasum -a 256 -c checksums.txt --ignore-missing
tar -xzf myworktree_v0.5.1_macOS_arm64.tar.gz
tar -xzf myworktree_v0.5.2_macOS_arm64.tar.gz

# 可选:安装到 PATH
sudo install -m 755 ./mw /usr/local/bin/mw
Expand All @@ -157,7 +157,7 @@ mw --version
> ```
> 或在 **系统设置 → 隐私与安全性** 中为被阻止的二进制文件点击"仍要打开"。

建议从 `v0.5.1` 或更新版本开始使用公开发布版二进制。更早的 `v0.1.0` GitHub Release 资产在补充实测中发现严重终端交互问题后已撤回,而 `v0.5.1` 是当前推荐的公开发布版本。
建议从 `v0.5.2` 或更新版本开始使用公开发布版二进制。更早的 `v0.1.0` GitHub Release 资产在补充实测中发现严重终端交互问题后已撤回,而 `v0.5.2` 是当前推荐的公开发布版本。

每个发布压缩包内都包含 `mw`、`myworktree`、`README.md`、`LICENSE` 和 `CHANGELOG.md`。
如果你的平台暂无对应产物,就直接使用下面的源码编译步骤。
Expand Down
2 changes: 1 addition & 1 deletion RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ One commit, `chore(release): prepare vX.Y.Z`, touching **only**:

| File | Change |
|---|---|
| `CHANGELOG.md` | Rename `## Unreleased` → `## vX.Y.Z (YYYY-MM-DD)` with a one-line release summary under it; keep an empty `## Unreleased` placeholder at the top. **Audit the delta for PRs that shipped without a CHANGELOG entry** (`git log --oneline <prev-tag>..develop` / merged PR list) and add the missing entries in house style (bold title — em-dash — detail — `Pinned by TestName`). |
| `CHANGELOG.md` | Rename `## Unreleased` → `## vX.Y.Z (YYYY-MM-DD)` with a one-line release summary under it; keep an empty `## Unreleased` placeholder at the top. **Audit the delta for PRs that shipped without a CHANGELOG entry** (`git log --oneline <prev-tag>..develop` / merged PR list) and add the missing entries in house style (bold title — em-dash — detail — `Pinned by TestName`). House rule (issue #95, also in an HTML comment at the top of the file): the phrase "Pinned by N `node --test` cases" declares the TOTAL case count of `internal/ui/testdata/terminal_status.test.mjs` and EVERY occurrence must equal it — when the count grows, bump them all; use different phrasing for subset counts. |
| `README.md` | Bump every `vA.B.C` string: download URLs, example tarball names, `-v` pin example, "current recommended public release" wording. |
| `README.zh-CN.md` | Same sweep as `README.md`. |
| `scripts/install.sh` | Bump the `-v` example version strings in the header/usage comments. |
Expand Down
Loading
Loading