Releases: jixoai/opendweb
Release list
v0.6.0
Windows artifacts (dweb-server exe + napi dll) for this tag are built fresh by the release workflow and ship inside the npm tarballs.
npm packages (versions at this tag)
| npm package | version |
|---|---|
| `opendweb` | 0.5.0 |
| `@jixo/opendweb-server-binary` | 0.5.0 |
| `@jixo/opendweb-client-sdk` | 0.6.0 |
| `@jixo/opendweb-example` | 0.5.0 |
| `@jixo/opendweb-config` | 0.1.0 |
| `@jixo/opendweb-ext-cf` | 1.0.3 |
Changes since v0.5.0
opendweb (CLI)
- feat(cli): [server.access] 配置段贯通 —— config-file schema/startServer env/CLI 链(task 1.3 收口)
@jixo/opendweb-client-sdk
- fix(kernel): R3 复核处置 —— install 全路径 closing 闸门 + 条件激活 + watcher 注册竞速闭合
- fix(kernel): R2 复核处置 —— 终态提交条件化 + closing 闸门 + server.close 流式收敛
- fix(kernel): R1 复核处置 —— 七项 P1 全闭(NO-GO 6.2 → 复验)
- feat(kernel): 0.6.0 第二轮 —— fetch 侧取消 + close 传输终结 + canonical 释放
- feat(sdk): 0.6.0 生命周期信号族 —— sessionId/signal/writer 三态 + resume owner 守卫
- feat(sdk): RelayOptions.relays + deny reason 透出(task 2.5)
@jixo/opendweb-server-binary
- feat(cli): [server.access] 配置段贯通 —— config-file schema/startServer env/CLI 链(task 1.3 收口)
- feat(server): Phase1-B 验证链执行点接线 —— on_connect L1/L1b/L2 + callback provider + limits + services server_id(tasks 1.5/1.5b/1.7/1.8)
fabric kernel & server (crates)
- fix(kernel): R3 复核处置 —— install 全路径 closing 闸门 + 条件激活 + watcher 注册竞速闭合
- fix(kernel): R2 复核处置 —— 终态提交条件化 + closing 闸门 + server.close 流式收敛
- fix(kernel): R1 复核处置 —— 七项 P1 全闭(NO-GO 6.2 → 复验)
- test(fabric): s6c 全局旋钮 panic 安全复位(drop guard——断言失败不毒化同二进制后续测试)
- test(fabric): clear_stale_deny_note 提取为可测函数 + 三态单测(复核 P1 补测)
- feat(kernel): 0.6.0 第二轮 —— fetch 侧取消 + close 传输终结 + canonical 释放
- fix(fabric): 残留过期 member capability 阻塞新邀请 join —— load 侧过期丢弃 + join 起点 deny 清零(云端 S4 实证回归)
- feat(sdk): 0.6.0 生命周期信号族 —— sessionId/signal/writer 三态 + resume owner 守卫
- feat(server): Phase3-B unregister 存量断连 —— Clients::disconnect 零 fork 踢存量(task 3.2b)
- feat(server): Phase3-A admin API + per-owner 连接配额(tasks 3.1/3.2a)
- feat(server): 云端走查工具 —— cloud_story example + sap-verify 一键脚本 + 走查手册
- style(fabric): continuity 预存 clippy/fmt 债务清零 —— 全包 -D warnings 门禁可用
- test(server): 故事级 e2e —— restricted 全链路故事 S1-S8(task 2.7)
- feat(sdk): RelayOptions.relays + deny reason 透出(task 2.5)
- style(fabric): Phase2-A 收口 —— clippy/fmt 门禁清零 + 实现裁定回写
- feat(fabric): Phase2-A InviteV2/REDEEM_OK2/root 自签/RelayConfig per-relay capability(tasks 2.1-2.4)
- fix(server): 实现复核 R1 收口 —— disconnect 超时上界/缓存容量门/singleflight 自愈/权限告警 + spec 同步
- feat(server): Phase1-C rendezvous ACL + e2e 集成矩阵 —— restricted 双面 ACL + 黑盒真 relay 矩阵(tasks 1.6/1.9)
- feat(server): Phase1-B 验证链执行点接线 —— on_connect L1/L1b/L2 + callback provider + limits + services server_id(tasks 1.5/1.5b/1.7/1.8)
- feat(server): Phase1-A 访问控制核心数据层 —— identity/registry/capability/配置面(tasks 1.1-1.4)
docker & infra
- docs(spec): Phase3-C 续期/peer_scope 评估结论 + 多平台矩阵 + Docker/WALKTHROUGH 更新(tasks 3.3/3.4)
- feat(server): 云端走查工具 —— cloud_story example + sap-verify 一键脚本 + 走查手册
Upgrade
npx opendweb@0.5.0 server # or: npm i -g opendweb@0.5.0
npm i @jixo/opendweb-client-sdk@0.6.0 # Node SDKDocker
docker run -d -p 8787:8787 -p 3340:3340 ghcr.io/jixoai/opendweb:0.6.0Images for every tag built before the repo rename live under ghcr.io/gaubee/dweb (historical tags remain pullable); current builds publish under ghcr.io/jixoai/opendweb.
v0.5.0
Windows artifacts (dweb-server exe + napi dll) for this tag are built fresh by the release workflow and ship inside the npm tarballs.
npm packages (versions at this tag)
| npm package | version |
|---|---|
| `opendweb` | 0.5.0 |
| `@jixo/opendweb-server-binary` | 0.5.0 |
| `@jixo/opendweb-client-sdk` | 0.5.0 |
| `@jixo/opendweb-example` | 0.5.0 |
| `@jixo/opendweb-config` | 0.1.0 |
| `@jixo/opendweb-ext-cf` | 1.0.3 |
Changes since v0.4.3
opendweb (CLI)
- chore(release): v0.5.0 —— 会话连续性内核(app-protocol-layer R1-R6)+ B1/B2 流式承载面
- test(opendweb): 并发停止回归断言增强——单飞中间态 + 真实 CLI 双信号(复审 6.2)
- fix(opendweb): 近层错身份目录遮蔽外层合法副本时受控转向已验证期望根(复审 6.1)
@jixo/opendweb-ext-cf (Cloudflare Tunnel plugin)
- test(ext-cf): pack:dry 升级 clean-tar 消费者导入门禁 —— tarball 解包进空消费者后双 exports 面真实 import(plugin-marketplace 7.2)
- test(ext-cf): stale-record 生命周期回归 —— _testLifecycle 白盒注入面构造「active 记录指向已退出 child」(plugin-marketplace 7.1)
@jixo/opendweb-client-sdk
- chore(release): v0.5.0 —— 会话连续性内核(app-protocol-layer R1-R6)+ B1/B2 流式承载面
- fix(fabric): 复评 7.2 三项修复 —— head 超时 RESET 真正上线(async 化)/ RESET 唤醒注册前竞态 / RecvWindow 按段交付(分块边界不变量落实)
- fix(fabric): B1/B2 复评 P0 修复 —— RESET 即时唤醒挂起响应流 + head 超时发 RESET + 分块边界契约冻结
- feat(sdk+fabric): B1/B2 承载面 —— respondStreaming 流式响应 / per-request abort(RESET 链) / headTimeoutMs 可配
- fix(fabric): R6 收尾 —— 两阶段 RESUME_OK 提交 / cached 恢复 Active / INIT_OK 零值校验 / tombstone 有界 / send 侧名额完整性(Codex max 实现 + 编排者收尾)
- fix(fabric): R5 恢复事务收口 —— decision/install CAS 绑定 / lease 外有界发送 / RESUME wire 全载荷+epoch CAS / gap 字节硬上限 / 生命周期回收+single-flight / 发送面 Session 视图(Codex max 实现轮)
- fix(fabric): R4 恢复硬化收口 —— transition lease 串行化/InstallPolicy 接线/INIT canonical 收敛/wire 校验/previous 回归冻结设计(Codex max 实现轮)
- fix(fabric): R3 硬化轮 —— 恢复单胜 ResumeCtl 单锁/epoch fencing/INIT wire 全载荷/入站资源门(Codex 5.5/10 四 P0 闭合)
- fix(sdk): B6 —— close 后晚到 handler 结算幂等静默(§3.4 late completion)
- fix(fabric): Phase 2 硬化轮 —— Codex 4.5/10 复核全部阻塞项闭合
- feat(sdk): SessionHandle/fetchHttp/serveHttp N-API 绑定 + 五子路径 exports(Phase 3 task 4.2)
@jixo/opendweb-server-binary
- chore(release): v0.5.0 —— 会话连续性内核(app-protocol-layer R1-R6)+ B1/B2 流式承载面
@jixo/opendweb-example
- chore(release): v0.5.0 —— 会话连续性内核(app-protocol-layer R1-R6)+ B1/B2 流式承载面
fabric kernel & server (crates)
- fix(fabric): 复评 7.2 三项修复 —— head 超时 RESET 真正上线(async 化)/ RESET 唤醒注册前竞态 / RecvWindow 按段交付(分块边界不变量落实)
- fix(fabric): B1/B2 复评 P0 修复 —— RESET 即时唤醒挂起响应流 + head 超时发 RESET + 分块边界契约冻结
- feat(sdk+fabric): B1/B2 承载面 —— respondStreaming 流式响应 / per-request abort(RESET 链) / headTimeoutMs 可配
- fix(fabric): R6 收尾 —— 两阶段 RESUME_OK 提交 / cached 恢复 Active / INIT_OK 零值校验 / tombstone 有界 / send 侧名额完整性(Codex max 实现 + 编排者收尾)
- fix(fabric): R5 恢复事务收口 —— decision/install CAS 绑定 / lease 外有界发送 / RESUME wire 全载荷+epoch CAS / gap 字节硬上限 / 生命周期回收+single-flight / 发送面 Session 视图(Codex max 实现轮)
- fix(fabric): R4 恢复硬化收口 —— transition lease 串行化/InstallPolicy 接线/INIT canonical 收敛/wire 校验/previous 回归冻结设计(Codex max 实现轮)
- fix(fabric): R3 硬化轮 —— 恢复单胜 ResumeCtl 单锁/epoch fencing/INIT wire 全载荷/入站资源门(Codex 5.5/10 四 P0 闭合)
- fix(fabric): Phase 2 硬化轮 —— Codex 4.5/10 复核全部阻塞项闭合
- feat(sdk): SessionHandle/fetchHttp/serveHttp N-API 绑定 + 五子路径 exports(Phase 3 task 4.2)
- feat(fabric): HTTP/WS 引擎架在 Session 层(Phase 3 task 4.1)
- feat(fabric): SESSION_INIT/RESUME 会话协议 + 故障注入验收(Phase 2 tasks 3.1-3.5)
- feat(fabric): continuity 连接状态面 + raw transport(Phase 1 tasks 2.1/2.2/2.4)
- feat(fabric): continuity wire 编解码 + 去重/journal 语义模型(Phase 0 task 1.1)
- feat(spike): app-protocol-layer Phase 0 五项 iroh probe —— 全部支持现行设计
docker & infra
- fix(release): npm 钉 11 大版本 —— npm@latest 已升 12.0,pack --json 输出结构变化致 ext-cf pack:dry 空数组崩溃(v0.5.0 首跑实证;OIDC 需 >=11.5 不变)
Upgrade
npx opendweb@0.5.0 server # or: npm i -g opendweb@0.5.0
npm i @jixo/opendweb-client-sdk@0.5.0 # Node SDKDocker
docker run -d -p 8787:8787 -p 3340:3340 ghcr.io/jixoai/opendweb:0.5.0Images for every tag built before the repo rename live under ghcr.io/gaubee/dweb (historical tags remain pullable); current builds publish under ghcr.io/jixoai/opendweb.
v0.4.3
Windows artifacts (dweb-server exe + napi dll) for this tag are built fresh by the release workflow and ship inside the npm tarballs.
npm packages (versions at this tag)
| npm package | version |
|---|---|
| `opendweb` | 0.4.2 |
| `@jixo/opendweb-server-binary` | 0.4.3 |
| `@jixo/opendweb-client-sdk` | 0.4.3 |
| `@jixo/opendweb-example` | 0.4.3 |
| `@jixo/opendweb-config` | 0.1.0 |
| `@jixo/opendweb-ext-cf` | 1.0.3 |
Changes since v1.0.3-cf
opendweb (CLI)
- fix(release): repository.url Gaubee/dweb → jixoai/opendweb — npm provenance 校验要求与 trusted publishing 配置对齐(v0.4.3 发布实测 E422)
@jixo/opendweb-ext-cf (Cloudflare Tunnel plugin)
- fix(release): repository.url Gaubee/dweb → jixoai/opendweb — npm provenance 校验要求与 trusted publishing 配置对齐(v0.4.3 发布实测 E422)
@jixo/opendweb-client-sdk
- fix(release): repository.url Gaubee/dweb → jixoai/opendweb — npm provenance 校验要求与 trusted publishing 配置对齐(v0.4.3 发布实测 E422)
- release: v0.4.3 — fabric relay failover hardening 进入 SDK/服务线
@jixo/opendweb-server-binary
- fix(release): repository.url Gaubee/dweb → jixoai/opendweb — npm provenance 校验要求与 trusted publishing 配置对齐(v0.4.3 发布实测 E422)
- release: v0.4.3 — fabric relay failover hardening 进入 SDK/服务线
@jixo/opendweb-example
- fix(release): repository.url Gaubee/dweb → jixoai/opendweb — npm provenance 校验要求与 trusted publishing 配置对齐(v0.4.3 发布实测 E422)
- release: v0.4.3 — fabric relay failover hardening 进入 SDK/服务线
@jixo/opendweb-config
- fix(release): repository.url Gaubee/dweb → jixoai/opendweb — npm provenance 校验要求与 trusted publishing 配置对齐(v0.4.3 发布实测 E422)
fabric kernel & server (crates)
- fix(fabric): relay failover hardening — invite 携带活 relay + join 拨号候选合并 + 会话自动重连
docker & infra
- ci: one-off ghcr namespace migration workflow (gaubee/dweb → jixoai/opendweb)
- feat: presentation-layer rename dweb → OpenDWeb — site brands/URLs, docker image namespace (ghcr.io/jixoai/opendweb), monorepo+site package names, README/EXAMPLE brand layer; technical identifiers (DWEB_* env, dweb1. prefixes, crates) unchanged pending Owner decision
- fix(ci): derive SITE_CNAME from the mode step — GHA loose equality makes null==false, so inputs-derived flags misfire on push events
- fix(ci): SITE_CNAME expression missed the cname-by-default mode (push events wrote no CNAME)
- feat(release,website): post-publish GitHub Release job + release-current dispatch (v0.4.2 cut); logical-network narrative bilingual copy
- feat(website): Chinese locale mirror (/zh/), language-switcher locked, zh-aware deploy checks
- fix(ci): the opendweb rename missed the workflow's subpath default (site_base)
- fix(website): track the opendweb repo rename — base path /opendweb, Pages URL, llms siteUrl
- feat(website): official dweb site — registry-bootstrapped static site (hue 95, Owner-pinned direct logo), base-path Pages workflow, llms.txt export
Upgrade
npx opendweb@0.4.2 server # or: npm i -g opendweb@0.4.2
npm i @jixo/opendweb-client-sdk@0.4.3 # Node SDKDocker
docker run -d -p 8787:8787 -p 3340:3340 ghcr.io/jixoai/opendweb:0.4.3Images for every tag built before the repo rename live under ghcr.io/gaubee/dweb (historical tags remain pullable); current builds publish under ghcr.io/jixoai/opendweb.
v0.4.2
Current release of the opendweb CLI and the dweb application-level networking stack. This is the first GitHub Release on this repository — it documents the published state of all npm packages; automated release notes (.github/workflows/release.yml) take over from the next tag.
npm packages (published versions)
| npm package | version | role |
|---|---|---|
opendweb |
0.4.2 | Server CLI — npx opendweb server starts the self-hosted gateway (8787) + relay (3340); plugin marketplace host |
@jixo/opendweb-server-binary |
0.3.2 | Server binary wrapper used by the CLI; also exposes a programmatic startServer() |
@jixo/opendweb-client-sdk |
0.3.2 | Node SDK for embedding fabrics in your own app (napi-rs; darwin-arm64 / win32-x64) |
@jixo/opendweb-example |
0.3.2 | Reference two-process client CLI (init / invite / join / chat) |
@jixo/opendweb-config |
0.1.0 | definePlugin helper for local plugin files (runtime-agnostic: deno / bun / node) |
@jixo/opendweb-ext-cf |
1.0.3 | Cloudflare Tunnel plugin: ingress push via API, DNS routing, end-to-end verification, optional cloudflared co-spawn |
Windows artifacts (dweb-server exe + napi dll) are built fresh by the tag workflow (mingw cross-compilation) and ship inside the npm tarballs — no separate download needed.
What this stack does
Multi-device applications form logical networks — like game rooms, not a system-level VPN:
- Identity — Ed25519 EndpointId: stable identity decoupled from network addresses (z-base-32 display form)
- Roster — signed facts (Genesis/Grant/Join/Revoke), content-addressed (BLAKE3), union-merge convergence; controlled, invite-based joins (issuer-online single redemption: challenge-response PoP +
invite_idCAS consumption) - Session — iroh 1.1: QUIC direct + NAT traversal, self-hostable relay fallback; dual ALPN (regular/redeem); gating on both sides (gate before data); per-frame resource caps
- Sync — opaque envelopes, bidirectional (Automerge adapter planned as a separate change)
Highlights of the 0.4.x line
opendweb@0.4.2(tagv1.0.1-clicontent): plugin installs pin@latestexplicitly — an ancestor-directorypackage.jsonwith a stale dependency range can no longer hijack version resolution@jixo/opendweb-ext-cf1.0 (tagsv1.0.0-cf…v1.0.3-cf): discovery-driven rewrite — browser login / one API token, SDK-backed control plane, managed cloudflared, whole-block/single-entry token paste UX; Codex-reviewed remediation round (SDK leaf imports, config-merge PUT, OAuth persistence contract, install-path and race fixes);v0.4.0split connector vs management credentials (live 401 fix)
Upgrade
npx opendweb@0.4.2 server # or: npm i -g opendweb@0.4.2
npm i @jixo/opendweb-client-sdk@0.3.2 # Node SDKDocker
docker run -d -p 8787:8787 -p 3340:3340 ghcr.io/jixoai/opendweb:0.4.2ghcr.io/jixoai/opendweb is the image home: v0.4.2 originally shipped from the pre-rename namespace ghcr.io/gaubee/dweb, and every historical tag has since been migrated there (digests unchanged). The old location still resolves, but point pulls at the new one.
Verify a running server
curl http://localhost:8787/healthz # -> 200
curl http://localhost:8787/services.json # -> service manifest (relay auto-discovery)End-to-end regression manual: EXAMPLE.md (中文版).