M8 — Linux support

未关闭
#56 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
功能
描述清晰度
需要澄清
活跃度
活跃
技术栈
rust, swift

调研方向

阅读 docs/superpowers/specs/2026-07-31-clowder-m7-remote-daemon-design.md 中的 M7 远程 daemon 设计,然后审查 clowder-daemon、clowder-client 和 clowder-workspace 的 Linux 可移植性。验证 Rust daemon 是否能在 Linux 上构建和运行,并能使用现有的 M7d 远程传输;对于此 issue,“完成”意味着在制定特定于各个 slice 的规范和计划之前,已将子项目拆分,并确定了约定的顺序。

由索引模型根据 Issue 内容生成。

描述

enhancement priority: medium rust

Context

clowder is macOS-centric today: the frontend is a SwiftUI app embedding libghostty (macos/), and packaging/signing/Homebrew are all macOS. The Rust core is cross-platform in principle:

  • clowder-daemon (agent PTYs, control/hook sockets, worktrees) — Rust + portable-pty + unix sockets; likely portable to Linux with modest work.
  • clowder CLI (clowder attach, clowder connect, spawn) — Rust, raw-mode terminal; likely portable.
  • The macOS app is the hard part — there is no equivalent on Linux.

The M7 remote-daemon spec gestured at this (docs/superpowers/specs/2026-07-31-clowder-m7-remote-daemon-design.md, "the M8 Linux …" is listed as out-of-scope/future).

Needs scoping (its own brainstorm first)

This is a large, new direction that should be decomposed before committing to a plan. Open questions:

  • Frontend on Linux: no SwiftUI/libghostty app. Options: (a) a pure-CLI / terminal-multiplexer client (run clowder attach <pane> panes inside tmux/zellij or a plain terminal), (b) a native Linux GUI embedding ghostty's GTK path, (c) rely on the M7 remote path — a Linux box runs clowder-daemon, the user drives it from the macOS app over TLS (already shipped in M7d, #53).
  • Daemon portability: audit clowder-daemon/clowder-client/clowder-workspace for macOS-isms (paths, signals, PTY specifics); confirm the socket/runtime-dir logic ($XDG_RUNTIME_DIR already handled) and worktree provisioning work on Linux.
  • CI/packaging: a Linux job (currently CI is runs-on: macos-15 only) + a Linux distribution story.

First step

Brainstorm → decompose into sub-projects (which pieces, what order), then spec → plan → SDD per slice. The cheapest early win may be (c): verify the Rust daemon builds+runs on Linux and is drivable from the existing macOS app via the M7d remote transport, deferring a native Linux frontend.

主要语言
Rust
星标
0
派生
0
PR 合并指标
30 天内没有已合并 PR

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

richardcase/clowder 的其他 Issue

查看 richardcase/clowder 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。