Skip to content

feat(aspire): first-party deno desktop app type in the generator (folds #375) #452

Description

@rickylabs

Part of #327 · folds #375

Handle: #E2 · Milestone: 0.0.1-beta.8 · Depends on: nothing (option (b), zero SDK/tursodb change). Blocks: #E4 (shell to host single-process wiring).

Fold note: this issue folds #375 (desktop app-type, promoted from Backlog/Triage p3). No closing keyword on this issue — the resolving PR body carries Closes #375 so the merge auto-closes the folded issue (closing keywords live in PR bodies, never issue bodies).

Scope — first-party deno desktop app type in the Aspire generator

4th branch (desktop) in packages/cli/src/kernel/templates/aspire/helpers/register/generate-register-apps.ts beside app/tauri/task; extend the AppEntry type (@netscript/aspire/types) with Type:"desktop".

Acceptance (each maps to a #375-evidenced POC finding)

  1. Build-order gate baked in — desktop registration waitFor/predev the Fresh build so _fresh/ exists before packaging (no hand-edit).
  2. --backend cef emitted (WebView2 default broken on Windows bare-metal; desktop.backend config silently ignored). CEF, not config.
  3. Service-discovery injection, no HTTP endpoint — same services__<name>__http__0 wiring as app, but no withHttpEndpoint (window binds its own internal Deno.serve port).
  4. Opt-in gating (Enabled:false default) so headless/CI aspire start is unaffected; random internal 127.0.0.1 port (no collision with a co-running web dashboard).
  5. Generator unit tests mirror the existing generators-*_test.ts pattern; scaffold.plugins/scaffold.runtime unaffected for non-desktop configs.

Design source: design/E-desktop/epic-and-issues.md (#E2).

RFC #820 amendment (owner-ratified 2026-07-17 — PR #822)

Scope = the dev-stack desktop resource (extends the in-tree buildTauriBlock pattern) plus the single-artifact packaging hook consumed by #456. Graph packaging → SD-2 #831. Note: extends the PUBLIC @netscript/aspire ./types surface (AppType/AppEntry gain "desktop") — full jsr rubric + consumer-compile gate required.

Now also part of the Desktop Frontend epic #840 (Option A, 2026-07-17): its packaging hook feeds the native-format pipeline in #456.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions