Skip to content

Commit bc31970

Browse files
committed
chore: prepare wcode 0.4.2 release
Bump the crate version and add bilingual v0.4.2 release notes covering the concurrent background tunnel layer, the Tailscale Funnel provider, per-tunnel retry with exponential backoff, iMessage link delivery, and graceful SIGTERM shutdown. Surface v0.4.2 in the docs sidebar and manual indexes.
1 parent 63c88a9 commit bc31970

7 files changed

Lines changed: 99 additions & 2 deletions

File tree

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "wcode"
3-
version = "0.4.1"
3+
version = "0.4.2"
44
edition = "2021"
55
authors = ["francis-du"]
66
description = "Local-first Software Intelligence Runtime for AI-native development"

docs/_layouts/docs.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
<a {% if page.url contains '/development/' %}class="active"{% endif %} href="{% if is_zh %}{{ '/zh/docs/development/' | relative_url }}{% else %}{{ '/docs/development/' | relative_url }}{% endif %}">{% if is_zh %}开发说明{% else %}Development{% endif %}</a>
6262
<a {% if page.url contains '/releases/v0.4.0/' %}class="active"{% endif %} href="{% if is_zh %}{{ '/zh/docs/releases/v0.4.0/' | relative_url }}{% else %}{{ '/docs/releases/v0.4.0/' | relative_url }}{% endif %}">v0.4.0</a>
6363
<a {% if page.url contains '/releases/v0.4.1/' %}class="active"{% endif %} href="{% if is_zh %}{{ '/zh/docs/releases/v0.4.1/' | relative_url }}{% else %}{{ '/docs/releases/v0.4.1/' | relative_url }}{% endif %}">v0.4.1</a>
64+
<a {% if page.url contains '/releases/v0.4.2/' %}class="active"{% endif %} href="{% if is_zh %}{{ '/zh/docs/releases/v0.4.2/' | relative_url }}{% else %}{{ '/docs/releases/v0.4.2/' | relative_url }}{% endif %}">v0.4.2</a>
6465
</div>
6566
</aside>
6667
<article class="docs-content" id="docs-content">

docs/manual/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ This is the English documentation home. The product site stays focused on the pr
3333
- [CLI & MCP Reference](reference/) — canonical commands, operator controls, transports, and Tool families.
3434
- [Development](development/) — module boundaries, runtime invariants, release gates, and maintenance constraints.
3535
- [v0.4.1 release notes](releases/v0.4.1/) — tunnel URL extraction and Agent Context budget fixes, expanded client matrix, redesigned docs.
36+
- [v0.4.2 release notes](releases/v0.4.2/) — concurrent background tunnels with Tailscale Funnel, iMessage delivery of live links, per-tunnel retry, and graceful shutdown.
3637
- [v0.4.0 release notes](releases/v0.4.0/) — faster Agent Context, architecture-first observability, resilient tunnels, and bounded development CLI automation.
3738
- [v0.3.0 release notes](releases/v0.3.0/) — historical 0.3 product shape and major changes.
3839

docs/manual/README.zh-CN.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ permalink: /zh/docs/
3333
- [CLI 与 MCP 参考手册](reference/) — 命令、操作入口、传输方式与工具族的统一参考。
3434
- [开发说明](development/) — 模块边界、运行时不变量、发布门禁与维护约束。
3535
- [v0.4.1 发布说明](releases/v0.4.1/) — 隧道 URL 提取与 Agent Context 预算修复、扩充的客户端矩阵、文档重设计。
36+
- [v0.4.2 发布说明](releases/v0.4.2/) — 后台并发多隧道与 Tailscale Funnel、iMessage 推送可用链接、单隧道重试与优雅退出。
3637
- [v0.4.0 发布说明](releases/v0.4.0/) — 更快的 Agent Context、Architecture-first 可观测性、Tunnel 回退与有界开发 CLI 自动化。
3738
- [v0.3.0 发布说明](releases/v0.3.0/) — 历史 0.3 系列的产品形态与关键变化。
3839

docs/manual/releases/v0.4.2.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
layout: docs
3+
title: wcode v0.4.2
4+
description: wcode v0.4.2 release notes
5+
lang: en
6+
alternate: /zh/docs/releases/v0.4.2/
7+
permalink: /docs/releases/v0.4.2/
8+
---
9+
10+
# wcode v0.4.2
11+
12+
v0.4.2 reworks the managed-tunnel layer around one principle: tunnels must never get in the way of the runtime, and the runtime must never get in the way of the tunnels that are already up. All default providers now start concurrently in the background while the TUI renders immediately, every reachable tunnel is surfaced in the TUI and the setup hub, and a fourth provider — Tailscale Funnel — offers a stable public URL. Live links can additionally be delivered over local iMessage.
13+
14+
## Non-blocking concurrent tunnels
15+
16+
- The TUI no longer waits for a tunnel: the local server and monitor start immediately, the endpoint row shows `◌ CONNECTING` while providers are still connecting, and the first verified tunnel updates the MCP/setup URLs live.
17+
- All default providers (Cloudflare, localhost.run, Pinggy, and now Tailscale) start at the same time instead of one-by-one; the first to become reachable wins primary duty while the others keep running as alternates.
18+
- A provider that missed the first round (slow TLS issuance, flaky DNS) is retried every 15 seconds until it joins — no provider is abandoned after a single startup failure.
19+
20+
## Tailscale Funnel provider
21+
22+
- `--tunnel-provider tailscale` exposes the runtime through `tailscale funnel` at the machine's stable `https://<host>.<tailnet>.ts.net` URL, and it participates in the default `auto` rotation.
23+
- Funnel prerequisites are surfaced directly in diagnostics: missing CLI, not-logged-in, and the tailnet-not-enabled case each print actionable guidance — including Tailscale's one-click enable URL.
24+
25+
## Per-tunnel resilience
26+
27+
- A dead tunnel only takes itself down: wcode respawns that single provider after an exponential backoff (15s → 30s → 60s → 120s → 300s cap) while every other tunnel and the process itself keep running. Whole-process restarts on tunnel failure are gone.
28+
- Reconnected tunnels never hijack the primary endpoint from a live tunnel; if the primary dies, the next live tunnel is promoted without disturbing the rest.
29+
- The setup hub and TUI SETUP panel list every live tunnel with its provider and full MCP URL, and refresh as tunnels join or drop.
30+
31+
## iMessage delivery
32+
33+
- `--imessage-to <phone-or-email>` (macOS) sends each tunnel link the moment it becomes reachable — setup hub URL, MCP URL, Web UI URL with token, and the pairing code.
34+
- Messages are deduplicated per provider link: reconnecting with the same URL never spams, and a refreshed link (for example a new quick-tunnel host) is delivered as news.
35+
36+
## Startup and shutdown behavior
37+
38+
- The setup hub no longer auto-opens on startup; links remain visible in the TUI and setup page, and `--open` opts back in explicitly.
39+
- `SIGTERM` now exits gracefully like Ctrl-C — the terminal is restored, health loops stop, and every tunnel child is reaped, so external stops no longer leave orphaned `ssh`/`cloudflared` processes or a trashed terminal.
40+
41+
## Upgrade
42+
43+
```bash
44+
curl -fsSL https://raw.githubusercontent.com/francis-du/wcode/main/install.sh | sh
45+
```
46+
47+
No Design State, Workspace, or authorization migrations are required. Replace the binary and `wcode restart`; note that `--no-open` is now `--open` (auto-open is off by default), and only one wcode instance per machine can hold the Tailscale Funnel listener.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
layout: docs
3+
title: wcode v0.4.2
4+
description: wcode v0.4.2 中文发布说明
5+
lang: zh-CN
6+
alternate: /docs/releases/v0.4.2/
7+
permalink: /zh/docs/releases/v0.4.2/
8+
---
9+
10+
# wcode v0.4.2
11+
12+
v0.4.2 围绕一个原则重构了托管隧道层:隧道绝不阻塞运行时,运行时也绝不干扰已经在线的隧道。所有默认 provider 现在在后台并发启动,TUI 立即渲染;每条可用的隧道都会展示在 TUI 与 setup 页面上;新增第四个 provider —— Tailscale Funnel —— 提供稳定的公网地址。可用链接还可以通过本机 iMessage 推送。
13+
14+
## 非阻塞并发隧道
15+
16+
- TUI 不再等待隧道:本地服务与监控面板立即启动,连接期间端点行显示 `◌ CONNECTING`,第一条验证通过的隧道会实时刷新 MCP/setup URL。
17+
- 所有默认 provider(Cloudflare、localhost.run、Pinggy,以及新增的 Tailscale)同时启动,不再逐个串行尝试;最先就绪的担任主端点,其余作为备用继续运行。
18+
- 错过首轮的 provider(TLS 证书签发慢、DNS 抖动等)每 15 秒持续重试直至加入——不会再因一次启动失败而被永久放弃。
19+
20+
## Tailscale Funnel provider
21+
22+
- `--tunnel-provider tailscale` 通过 `tailscale funnel` 以机器固定的 `https://<主机名>.<tailnet>.ts.net` 地址暴露服务,并参与默认 `auto` 轮换。
23+
- Funnel 的前置条件会直接体现在诊断信息里:未安装 CLI、未登录、tailnet 未开启各有可执行的指引——包括 Tailscale 的一键开通链接。
24+
25+
## 单隧道自愈
26+
27+
- 某条隧道死亡只影响它自己:wcode 按指数退避(15s → 30s → 60s → 120s → 封顶 300s)单独重拉该 provider,其余隧道与进程完全不受影响;隧道故障不再触发整进程重启。
28+
- 重连的隧道绝不会抢占存活隧道的主端点;主隧道死亡时按序提升下一条存活隧道,互不干扰。
29+
- setup 页面与 TUI SETUP 面板列出每条存活隧道的 provider 与完整 MCP URL,并随隧道加入/退出实时刷新。
30+
31+
## iMessage 推送
32+
33+
- `--imessage-to <手机号或邮箱>`(macOS)在每条隧道就绪的瞬间推送链接——setup 页地址、MCP 地址、带 token 的 Web UI 地址,以及配对验证码。
34+
- 消息按 provider 链接去重:同一地址重连不会刷屏;链接刷新(例如新的 quick-tunnel 域名)才会作为新消息送达。
35+
36+
## 启动与退出行为
37+
38+
- setup 页面不再自动打开;链接始终展示在 TUI 与 setup 页面中,需要时用 `--open` 显式打开。
39+
- `SIGTERM` 现在与 Ctrl-C 一样优雅退出——恢复终端、停止健康检查、回收全部隧道子进程,外部停止不再遗留孤儿 `ssh`/`cloudflared` 进程,也不会打花终端。
40+
41+
## 升级
42+
43+
```bash
44+
curl -fsSL https://raw.githubusercontent.com/francis-du/wcode/main/install.sh | sh
45+
```
46+
47+
无需任何 Design State、Workspace 或授权迁移。替换二进制后执行 `wcode restart` 即可;注意 `--no-open` 已改为 `--open`(默认不自动打开),且每台机器同时只能有一个 wcode 实例占用 Tailscale Funnel 监听。

0 commit comments

Comments
 (0)