Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Move the embedded desktop tools to the Swift stack (native2) when desktop-tools is ready

Aberta
#532 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
35/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
bun, node.js, swift, typescript
Domínio
desktop, tooling

Direção de pesquisa

Read the root package.json pin and the desktop integration points in apps/desktop/src/native.ts, apps/desktop/scripts/helper.ts, apps/host/src/desktop.ts, and packages/channel/src/desktop.ts. First check desktop-tools#171, #172, and #173, then run the listed native2 checks: the Save sheet flow, desktop_open validation, and any approval prompt and pause flow Ace uses. Done means the dependency is ready and those checks pass before switching Ace to native2.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

desktop-tools is replacing its Node client and the vendored Peekaboo with a single Swift codebase, `native2` (githubnext/desktop-tools#143). Ace pins desktop-tools to a commit, `c3e08eb` in the root `package.json` catalog. Keep that pin until the desktop-tools issues below are closed. Pins at or after desktop-tools v0.16.1 still build and run the existing stack by default, so bumping for other fixes is safe as long as nothing below is turned on.

What changes for Ace

Ace touches desktop-tools in four places:

  • `apps/desktop/src/native.ts` (C ABI through `bun:ffi`): no change. `native2`'s `libDesktopTools.dylib` exports the same functions with the same arguments, including `desktop_tools_start(socket, client identifier)`.
  • `apps/desktop/scripts/helper.ts`: pass `--native2` to `dist/build.js`, then copy the same two outputs (`libDesktopTools.dylib`, and `desktop-tools-client` as `ace-desktop-client`). `sign.ts` signs them as today. The host serves only that client identifier from Ace's team.
  • `apps/host/src/desktop.ts`: `createDesktop({ client, socket, wire: 2 })`.
  • `packages/channel/src/desktop.ts`: `/protocol` and `/tools` imports stay the same.

Waiting on desktop-tools

  • githubnext/desktop-tools#171: ship `native2` in the package, and build it without Peekaboo.
  • githubnext/desktop-tools#172: a persistent client, so `createDesktop` keeps one connection open. Without it, Ace pays a client spawn per call, as today. Not a blocker, but it's where the speed gain is: on desktop-tools' bench, `desktop_windows` takes 115 ms on the shipped stack and 6 ms on native2's MCP server.
  • githubnext/desktop-tools#173: `/tools` generated from `native2`'s contract. Until then, Ace's model reads `desktop_launch` and `desktop_open` as foreground with no `activate`, while native2 launches in the background.

Checks before switching

  • The lane note on `package.json`: insert into Save sheet fields (#390, desktop-tools d1c4304). Run that flow live on native2.
  • The lane note on `packages/channel/src/desktop.ts`: `desktop_open` keeps the file-URL query/fragment sentence. It's still present.
  • #427's desktop tool validation, rerun on native2.
  • The approval prompt and pause, if Ace uses them. They haven't been run end to end through an embedding app on native2.
Linguagem predominante
TypeScript
Estrelas
1
Forks
0
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

  • Sem Dockerfile nem arquivo Docker Compose
  • Tem um modelo de pull request
  • Sem guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de githubnext/ace2

Todas as issues de githubnext/ace2

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.