Skip to content

chore: Node transition clarity and FreeOS release hygiene (P2) - #80

Merged
XYAIStudio merged 2 commits into
mainfrom
cursor/node-transition-release-hygiene-e4ee
Sep 20, 2026
Merged

XYAIStudio merged 2 commits into
mainfrom
cursor/node-transition-release-hygiene-e4ee

Conversation

@XYAIStudio

@XYAIStudio XYAIStudio commented Sep 20, 2026 •

Copy link
Copy Markdown
Owner

Summary

P2:把托管 Node + iframe 明确写成过渡桥(不是终态),并修掉仍把人导向 Octop/腾讯镜像与安全公告的发版卫生问题。uv run / Docker / 默认绿色包装保持零 Node;桌面 CI 仍显式 SHIP_OPENXYOS_RUNTIME=1,现有 Windows 用户不受影响。

已变基到最新 main(含 #78 / #79),无冲突。

不在范围: 重写 App.tsx、在宿主原生组织 UI 未齐之前删除托管运行时、破坏现有桌面组织桥。

Target branch

  • Base is develop(本仓库无 develop 远程)
  • Base is main

Type of change

  • Refactor / chore
  • Documentation
  • Bug fix(备份缺组织树;缺 Node 时宿主不再 abort;Hub secrets 缺失不再让 Docker Publish 变红)

做了什么

1. 发版 / 文档卫生

  • SECURITY.md、Issue 模板改为 XYAIStudio/FreeOS;上游 Octop 公告仅作对照,不要把 FreeOS 漏洞报到腾讯仓库。
  • Docker Publish / FnOS compose / docker/ README / 安装脚本规范镜像:ghcr.io/xyaistudio/freeos(不再写 ghcr.io/tencentcloud/octop)。
  • Docker Hub 登录改为可选:未配置 DOCKERHUB_USERNAME / DOCKERHUB_TOKEN 时只推 GHCR,并打 notice,避免 v0.0.3 那种 Hub 门禁失败。
  • PyPI 包名仍为 octop(有意保留的发行标识;CLI 是 freeos),文档写明。

2. Node 减负路径(过渡,不扩永久捆绑)

  • 默认 SHIP_OPENXYOS_RUNTIME=0(desktop/portable/package.sh、Wails Taskfile),与 Phase 5 测试一致。
  • 桌面工作流 显式 SHIP_OPENXYOS_RUNTIME=1 + SKIP_ORG_SIDECAR=0,注释标明这是过渡 iframe 桥。
  • ManagedOrganizationRuntime.start():找不到 Node / sidecar 时记警告并跳过,不再 RuntimeError 拖垮 uv run / 测试。
  • 新文档 docs/node-runtime.md / docs/node-runtime.zh-CN.md:默认零 Node、标志表、与迁移图 wave E 对齐的拆除顺序。

3. 备份

  • freeos backup 纳入 {FREEOS_HOME}/org/*.sqlite、org-os/、org-skills/、tenants/、asset-packs/、openxyos-mirror/、governance/。
  • 清单增加 includes_org;旧归档缺该键视为 false,恢复时不覆盖现有组织树。

4. CHANGELOG

  • [Unreleased] 已记上述变更 / 修复 / 文档。

5. Typecheck 跟进

Test plan

  • uv run mypy src/octop → Success: no issues found in 584 source files
  • make lint → Ruff check + format check passed(1146 files)
  • 聚焦 pytest:84 passed(desktop defaults / hygiene / managed skip / backup / group mentions)
  • make test → 3638 passed, 15 skipped in 4m51s

新增 / 更新测试:

  • tests/unit/desktop/test_release_hygiene.py:安全公告与 GHCR 不得再指向 TencentCloud/Octop
  • tests/unit/test_managed_runtime_skip.py:缺 Node 时 skip 而非 abort
  • tests/unit/desktop/test_phase5_defaults.py:默认 ship=0;桌面 CI 显式 1
  • tests/unit/backup/test_system_archive.py / test_store.py:组织树打包与旧归档恢复语义

Checklist

  • 更新 CHANGELOG.md
  • README / docs 更新(含 Node 过渡说明与镜像名)
  • 本地 make lint + make typecheck + make test 通过
Open in Web Open in Cursor 

cursoragent and others added 2 commits September 20, 2026 11:11
Keep uv/Docker/default packaging zero-Node (SHIP_OPENXYOS_RUNTIME=0).
Desktop CI still ships the transitional iframe bridge explicitly.
Skip managed Node when missing; include org trees in backup; retarget
SECURITY, Issue templates, and GHCR/FnOS images to XYAIStudio/FreeOS.

Co-authored-by: XYAI Labs <haoboy8@gmail.com>
Use getattr for CREATE_NO_WINDOW so Linux typecheck matches other
launch paths. Narrow group-mention routing after the HumanMessage
scan so make typecheck is green on current main.

Co-authored-by: XYAI Labs <haoboy8@gmail.com>
@cursor
cursor Bot force-pushed the cursor/node-transition-release-hygiene-e4ee branch from f7554fa to 72b7d18 Compare September 20, 2026 11:13
@XYAIStudio
XYAIStudio marked this pull request as ready for review September 20, 2026 11:18
@XYAIStudio
XYAIStudio merged commit a8f256d into main Sep 20, 2026
11 checks passed
@XYAIStudio
XYAIStudio deleted the cursor/node-transition-release-hygiene-e4ee branch September 20, 2026 11:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants