Repository navigation
Releases: goft-cloud/cloud-cli-proxy
Releases · goft-cloud/cloud-cli-proxy
Release list
v4.2.20
What's Changed
Backend (Go / API)
- fix(egress): allow duplicate undetected addresses (bb6828e)
- fix(sqlite): scan json text columns safely (25ece82)
- fix(network): auto-detect sing-box egress interface (7db3c4a)
- fix(vnc): reduce desktop resource pressure (a753053)
- feat(vnc): add status controls and auto recovery (64f539f)
- fix(runtime): start SSH before desktop stack (c38189f)
- fix(runtime): re-lock DNS after network attach (c7785c3)
- fix(hosts): harden provisioning and resource limits (acad581)
- fix(runtime): keep prepare host status unchanged (546a323)
- fix(network): reject non-stub DNS traffic (ZaneL1u#6) (8af6b36)
- fix(network): restore supported sing-box DNS stub (ZaneL1u#5) (f855e89)
- fix(network): 修正容器 DNS 劫持与网络校验日志 (bd97e0b)
- Update internal/controlplane/http/admin_hosts.go (698acdf)
- feat(hosts): 支持配置主机 PIDs 限制 (1f07e46)
- fix: strip leading slash in SPA handler and remove standalone managed-user service (e21a6ea)
- fix: correct migration 0019 test to expect DATETIME not TEXT for CURRENT_TIMESTAMP (6bfda7b)
- refactor: remove disk limit from host resource management (904bd03)
- chore: finalize v4.2.1 SQLite migration — consolidate migrations, remove pgx cruft (caee3e1)
- docs: purge all remaining PostgreSQL references across the project (b9c8ac4)
- feat(60): embed sing-box binary in control-plane image, prefer native over Docker (bb4d536)
- feat(59): embed admin UI dist into control-plane binary (b979d6c)
- feat(58-sqlite): 全项目移除pgx,HTTP handlers+runtime改用database/sql (bbcffa8)
- feat(58-sqlite): App初始化改为sql.Open+PRAGMA,移除pgxpool,内嵌迁移文件 (db13722)
- feat(58-02): rewrite queries.go + queries_bypass.go from pgx to database/sql (c3615ea)
- feat(58-02): rewrite 21 migration files from PostgreSQL to SQLite syntax (a69057f)
- feat(58-01): switch migrator to database/sql + modernc.org/sqlite, add SQLite driver dependency (13d5cbc)
- fix: 创建主机选择"无限制"时不再转换为 NULL,与 PATCH 路径保持一致 (b86ff11)
- fix: restart 策略改为 unless-stopped,启动时立即协调恢复容器 (ddbd50a)
- fix: SSH 代理选择容器最后加入的 Docker 网络 IP (3881929)
- feat: CONTAINER_REGISTRY 环境变量统一控制运行时镜像源 (666c928)
- feat: 主机文件浏览支持 Windows 路径与目录选择器 (0a41582)
- feat: v4.1.1 - 出口 IP 检测迁移、bypass 审计面板与前端多项改进 (111ccc6)
- fix: skip TestWorker_CreateHost_CleanupOnFailure when docker unavailable (da698f7)
- fix: add missing UpdateEgressIPAddress to mockWorkerRepo in agent tests (2f6d174)
- feat: v4.0 managed-user image, egress IP auto-correction, and FK fix (bba9090)
- feat(57-02): register PATCH resources route and add --storage-opt to worker (f21b6ea)
- feat(57-02): add three-state pointer semantics to Create endpoint and PatchResources handler (e0b99fe)
- feat(57-02): add DiskLimitGB to HostActionRequest, remove defaultIfZero fallbacks (bc9dd66)
- feat(57-01): change resource limit fields to pointer types, remove defaultIfZero, add UpdateHostResources (a51e055)
- feat(57-01): create migration 0022 to make host resource limit columns nullable (6050b3f)
- refactor: firewall tests, enhance worker container configuration, and add E2E test suites (a2912a0)
- feat(bypass): 域名白名单全链路 + macOS 跨平台 + UI 重构 (2716e0d)
- fix(test): withFakeNsenterRunner 加 mutex 消除 DATA RACE (fad8ec3)
- fix(v4.0.1): macOS dev 环境兼容 + bypass reload 平台拆分 + sing-box DNS 修复 (06d2a6d)
- chore(v4.0): tech debt cleanup + milestone close artifacts (92867a7)
- test(54-02): container_singbox_config_test.go + PrepareGateway darwin chown 降级测试 (b794026)
- feat(54-02): 实装 writeContainerSingBoxConfig 写盘 root:singbox 0640 + darwin chown 降级 (ff8880c)
- feat(54-02): 新增 container_singbox_config.go 容器内 sing-box config builder (8b5115c)
- test(54-03): 加 Phase 54 双绑互斥契约保护测试 (CTRL-04) (c7f3461)
- test(54-01): 同步 container_proxy_provider 测试 + 新增 SingBoxConfigDir / CleanupHost 测试 (3f87815)
- refactor(54-01): worker.buildCreateArgs 加 --restart=on-failure + --device /dev/net/tun 删 v3.5 DNS bind mount (36e9a2f)
- refactor(54-01): 删除 teardownGateway + dead helpers + 改造 CleanupHost 单一职责 (7a4accd)
- refactor(54-01): container_proxy_provider 删 PrepareGateway gw 启动 + PrepareHost host 端网络路径 (46679b7)
- feat(51-09): 双绑互斥 API pre-check + 稳定 error code (c290810)
- feat(51-06): worker cap-drop NET_RAW + 删 SYS_ADMIN (c84c86d)
- feat(51-05): nft 全规则加 counter + 169.254/16 显式 drop (0f5228e)
- feat(51-03): verifyDNS 遍历全部 nameserver (dccebd3)
- feat(51-01): verifyEgressIP 多源轮询 + 多数派投票 (290e5b5)
- feat(51-01): verifyEgressIP 多源轮询 + 多数派投票 (2d51db3)
- feat(51-08): goleak.VerifyTestMain 接入 (1bb7831)
- feat(51-04): GetContainerNetNS 探测窗口参数化 (e146b3f)
- feat(47-01): 到期容器自动停止 + host.stop.expired 审计事件 (MVS-06) (2782167)
- fix(gateway): sing-box 1.13.3 兼容 — 补 route.default_domain_resolver (b921bda)
- fix(260513-kru): 增强 GetContainerNetNS 健壮性,修复 worker netns 获取失败 (d99d0b6)
- fix(260513-gii): align UpsertHost VALUES placeholder count with column list (3bdc4f0)
- test(260513-fjd-01): 调整 SubnetThirdOctet 碰撞抗性阈值至 40 (0def841)
- fix(quick-260513-ezu-01): 修正 worker firewall 测试中多余的 nil 参数 (73deb3c)
- fix(47-V-01): 对齐 bypass_reload 表族为 ip cloudproxy 并加 nsenter (60c9896)
- feat(47-03): 实现 verify.go 3 项新流量检查 + VerifyResult 三字段 (176ae41)
- test(47-03): add failing tests for verify.go 3 项新流量检查 (93c8764)
- feat(47-01): bypass consistency HTTP endpoint + verifyConsistencyHook (e887afb)
- feat(47-01): worker handleReloadHostBypass 真实实现 + 健康检查 3 次 + 自动 rollback (5c596d9)
- feat(47-01): bypass_reload 三件套 —— atomic write + nft -f + sha256 对账 (1385c95)
- feat(47-01): 扩展 HostActionRequest.BypassSnapshotID + QueueHostAction 5 参契约 (c9bf709)
- feat(47-02): ApplyWorkerFirewallRules 接入 ConfigureBypassFirewall + IPv6 双保险 (76688f1)
- feat(47-02): ConfigureBypassFirewall 打包 v3.5 4 类新规则 + whitelist_v4 set (610f757)
- feat(47-02): nft helpers + 常量为 v3.5 bypass-firewall 做准备 (74b65fc)
- fix(46-WR-05): rollback hash suffix uses hex bytes, not ":rollback:" (3de1446)
- fix(46-WR-04): match unique violations via pgconn.PgError 23505 (69402fb)
- docs(46-WR-03): correct misleading async comment in writeBypassAuditLog (396ab82)
- fix(46-WR-02): signal dispatch failure in apply audit action/note (f393ea9)
- refactor(46-WR-01): dedup rules in collectRenderInput by rule.ID (958bd25)
- fix(46-CR-07): guard /v1/admin/sse and /v1/user/sse with auth + token query (1003efd)
- fix(46-CR-06): dispatch on apply idempotent path to unblock UI (7434739)
- feat(46-02): register bypass snapshot/audit-log routes + wire deps (b5329a1)
- feat(46-02): add AdminBypassAuditLogHandler with cursor pagination (2c1ea07)
- feat(46-02): add AdminBypassSnapshotsHandler with preview/apply/rollback/effective (c85304f)
- feat(46-02): add RenderBypassConfig pure function + 8 sub-tests (c6a57db)
- feat(46-02): add source column to host_bypass_snapshots schema + repository (2ebf8c0)
- feat(46-02): add ActionReloadHostBypass constant + worker placeholder dispatch (77fe637)
- feat(46-01): add admin bypass bindings handler + register Phase 46 routes (6ff8614)
- feat(46-01): add admin bypass rules CRUD handler with 5+1 guardrails (a38ab36)
- feat(46-01): 扩展 Repository.GetBypassRuleByID 供 Phase 46 audit log before 字段 (22403c7)
- feat(46-01): 实现 AdminBypassPresetsHandler CRUD + 单元测试 (bf1affb)
- feat(46-01): 落地 Bypass 审计日志 helper(双轨制) (07e98f8)
- feat(46-01): 落地 Bypass 护栏校验模块与错误码常量 (048ea1e)
- docs(45-WR08): Provider docstring 修正并发安全声明与实现对齐 (7be53d4)
- fix(45-WR07): verifyDNS 改为 resolv.conf 整体逐字节相等校验 (44da956)
- test(45-WR06): nsswitch forbidden 列表扩展 resolve/dns_sd/lwres (c690853)
- refactor(45-WR05): mustParseUint → parseUintOrZero 消除 must* 语义误导 (38dc322)
- fix(45-WR04): teardownGateway 全部错误改 Warn 到 p.logger 不再静默吞 (a0324ed)
- fix(45-WR03): waitGatewayHealthy 改为探测容器内 tun0 就绪而非仅看 Running (27cfd3e)
- test(45-WR01,WR02): 扩展 call-order 守护 + 顶层 func 边界精确匹配 (c7625b1)
- fix(45-CR02): createHost 失败路径用 defer 守护 CleanupHost 防止 gateway 泄漏 (b365783)
- fix(45-CR01): bypass *string UUID 空串转 NULL 防止 pgx syntax error (a74d600)
- test(45-02): sync DNS assertions and add container DNS bind-mount tests (b281297)
- feat(45-02): bind-mount /etc/resolv.conf and /etc/nsswitch.conf as read-only into worker container (76f4c67)
- refactor(45-02): split PrepareGateway out of ContainerProxyProvider and reorder createHost (a0db9cf)
- feat(45-03): 实现 19 个 Bypass Repository 方法体(W4 Task 2b) (db42bb7)
- test(45-03): lock bypass Repository signatures and SQL constants (fc18ea9)
- feat(45-01): PrepareHost 写 rule-set placeholder + gateway 容器 ro mount (5d7d9fc)
- feat(45-03): add bypass Repository types and SQL constants (stub bodies) (597c540)
- test(45-01): 扩展 gateway sing-box 配置测试覆盖 6 类断言 (db846e1)
- feat(45-03): add migration 0019 host bypass rules schema (ca81807)
- feat(45-01): 扩展 sing-box 渲染层至 v3.5 两段式配置骨架 (370b14b)
- fix(network): 移除端口映射后同步清理测试文件中的残留参数 (35bc248)
- fix(network): 恢复 singbox_provider 缺失的 IP 转发和 MASQUERADE 函数 (6d099f9)
- fix: 清理 Linux-only 防火墙测试中残留的 allowedPorts 测试、修正前端文案和 uat 脚本 (35a165b)
- feat: 彻底移除端口映射特性 (74c1502)
- test(network): 添加严格的网络隔离单元测试 (8823f94)
- fix(network): 恢复端口映射 + 策略路由保证所有流量走代理隧道 (bf792ec)
- feat(network): route worker traffic through gateway with firewall enforcement (4cc6374)
- feat(network): implement worker firewall rules (1effcae)
- fix(network): 恢复端口映射 + 策略路由保证所有流量走代理隧道 (39322d9)
- fix(network): 恢复 worker 默认路由指向 gateway 容器,修复 DNS 不通 (1d2f921)
- fix(network): 移除 PREROUTING 中的非法 MASQUERADE 规则 (2633d61)
- feat(reconciler): 扩展对账器自动恢复 failed 状态主机 (3de3d6a)
- fix(rejoin): 修复 rejoin-networks 日志误导 (88d223c)
- feat: 升级镜像支持实时 pull 进度展示(SSE + 层详情) (e3404a1)
- feat(sse): add server-sent events broadcast system for real-time updates (e32b004)
- feat(network): Linux iptables 端口转发 + docker compose 预拉取镜像 + Admin 端口 2568 (195584d)
- feat(cli): 认证失败时支持交互式重试用户名密码 (c50ab42)
- fix(local): remove platform-gated SSH port mapping (95773ba)
- feat(44-01): 注册 checkSSHDForwarding 到 doctor ssh 维度 (484e623)
- feat(44-01): 新增 3 个 sshd 转发检查错误码 + parseSSHDForwarding + checkSSHDForwarding + 13 个单元测试 (bc00c7f)
- test(41-02): remote-ssh dimension unit tests + error code coverage (45a73a5)
- feat(41-01): add remote-ssh doctor dimension with 5 checks (a4de2eb)
- feat(...