Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

Dev app: reload action and reporting an open launch that exits early

未關閉
#97 13 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
62/100
Issue 類型
功能
描述清晰度
基本清楚
活躍度
活躍
技術堆疊
macos, typescript
領域
desktop

研究方向

Start at apps/host/src/health.ts, the source of "uses an incompatible protocol; restart it", and trace where the conflicting helper is detected so the error can name that helper's bundle id and path instead of advising a restart. Then read apps/host/src/config.ts desktop() and apps/desktop/src/helper.ts to see how dev ports, profiles and listeners are assigned — the loopback-only test host and the dev-app reload action live in the same area. Done when conflict errors identify the other helper without telling the user to restart an unrelated one, and each remaining bullet has a test or manual check.

由索引模型根據 Issue 內容生成。

描述

Status (Oct 15)

  • githubnext/ace#112: bun desktop dev runs a checkout's source host and app together on their own port and data profile, refuses existing listeners, never registers or restarts Ace Helper, and stops host and app together.
  • githubnext/ace#118: dev runs give their source host and workers the checkout's signed native client.
  • githubnext/ace#123: all checkouts deliberately share one dev.ace.desktop.dev identity and Apple Development signature, so one permission grant covers every dev run; separate profiles keep data, settings, Keychain services, ports and WebKit storage apart. Source dev runs coexist with installed Canary, not with an installed Ace-dev managed helper (details).
  • githubnext/ace#386: conflict errors name the Ace holding a port (bundle, path, PID), and ace serve --loopback keeps test hosts off the tailnet; bun desktop dev uses it.

The original expectation of a per-lane helper identity running side by side with an installed Ace-dev is superseded by githubnext/ace#123.

Remaining

  • A reload action in the dev app, so a UI rebuild doesn't require relaunching the client (also hit in githubnext/ace#55).
  • An open launch that exits before showing a window reports why (not verified on current main).

Original report

A desktop build made from a lane cannot be exercised in isolation: every development build shares one helper identity, port, and data directory, so the new client connects to whichever older Ace-dev helper is already installed and running. Validating a UI change in the shipped desktop shell then requires replacing the user's installed development helper.

Reproduction (dogfooding githubnext/ace#91 from Ace Canary 0.0.11)

  1. In a lane at origin/main (1ab91be, desktop 0.0.11) plus the githubnext/ace#91 UI change, run bun scripts/build.ts dev in apps/desktop. This builds apps/desktop/dist/dev-macos-arm64/Ace-dev.app (bundle id dev.ace.desktop.dev) and warns that native desktop inspection needs an Apple Development signature.
  2. open that bundle. The client process (PID 35146) exited before showing a window, with no dialog or log.
  3. Run its Contents/MacOS/launcher directly. The client (PID 35598) shows: "Could not connect to Ace Helper. Ace Helper on port 4141 uses an incompatible protocol; restart it".
  4. Port 4141 belongs to /Applications/Ace-dev.app/Contents/MacOS/Ace Helper (PID 2326, launchd dev.ace.desktop.dev.helper, running since the previous day), an older installed development build. Its host also listens on the tailnet.
  5. The only offered remedy is to restart that helper. That would replace the user's installed development helper and its channel host, so the lane build was never connected and the new UI code was not exercised.

During the same session the supervisor reported that Canary was trying to use an old Ace instance, and stopped validation.

Cause

apps/host/src/config.ts desktop() gives every dev build the same port (4141), ~/.local/state/ace-dev home, settings directory, and keychain service. apps/desktop/src/helper.ts connects to whatever answers on that port and registers the same launchd identifier. Nothing ties a client to the helper built from the same bundle or lane.

Blocks UI validation for githubnext/ace#91. Related to githubnext/ace#55 ("Keep a working installed Ace separate from the source build under development"). Part of githubnext/ace#5.

主要語言
TypeScript
星號
1
分支
0
PR 合併指標
30 天內沒有已合併 PR

環境準備

  • 沒有 Dockerfile 或 Docker Compose 檔案
  • 有 Pull Request 範本
  • 沒有貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

githubnext/ace2 的其他 Issue

查看 githubnext/ace2 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。