@stacksjs/defaults 0.70.208 → 0.70.209

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: stacks-desktop
3
- description: Use when building desktop applications with Stacks — Tauri integration, dev windows, system tray, or desktop-specific features. Covers @stacksjs/desktop (currently stubbed, Tauri integration pending).
3
+ description: Use when building or publishing desktop applications with Stacks — Craft native windows, system tray, desktop packaging, or Mac App Store delivery.
4
4
  license: MIT
5
5
  compatibility: Bun >= 1.3.0, TypeScript
6
6
  allowed-tools: Read Edit Write Bash Grep Glob
@@ -15,6 +15,17 @@ allowed-tools: Read Edit Write Bash Grep Glob
15
15
  - System tray layouts: `storage/framework/defaults/resources/layouts/`
16
16
  - Package: `@stacksjs/desktop`
17
17
 
18
+ ## Runtime
19
+
20
+ Stacks desktop applications use the native [Craft](https://github.com/home-lang/craft)
21
+ runtime. `buddy dev:desktop` hosts the dashboard/application and opens it in a
22
+ Craft window. `buddy build:desktop` compiles a small Stacks launcher and places
23
+ the launcher, pinned Craft runtime, manifest, provenance, and checksums in
24
+ `storage/framework/desktop-dist`.
25
+
26
+ Set `CRAFT_BIN` to an executable Craft binary in CI or when Craft is not checked
27
+ out at `~/Code/Tools/craft`.
28
+
18
29
  ## API
19
30
 
20
31
  ```typescript
@@ -35,7 +46,7 @@ interface OpenDevWindowOptions {
35
46
  async function openDevWindow(port: number, options?: OpenDevWindowOptions): Promise<boolean>
36
47
  ```
37
48
 
38
- ### Desktop Interface (Tauri API surface)
49
+ ### Desktop Interface
39
50
 
40
51
  ```typescript
41
52
  interface Desktop {
@@ -54,25 +65,61 @@ interface Desktop {
54
65
  }
55
66
  ```
56
67
 
57
- ## Current Status
58
-
59
- **The Tauri integration is currently stubbed.** `openDevWindow()` returns `false` — the actual Tauri API calls are commented out pending implementation.
60
-
61
68
  ## CLI Commands
62
69
 
63
70
  ```bash
64
- buddy dev:desktop # Start desktop dev server
65
- buddy build:desktop # Build desktop application
71
+ buddy dev:desktop # start the desktop development server
72
+ buddy build:desktop # build the launcher + Craft runtime payload
73
+ buddy desktop:apple:init # generate the reusable GitHub Actions caller
74
+ buddy desktop:apple:doctor # validate Apple tooling, identities, profile, and API key
75
+ buddy desktop:apple:package # build, sandbox, sign, and create a Store .pkg
76
+ buddy desktop:apple:publish # validate or upload the package to App Store Connect
66
77
  ```
67
78
 
68
- ## Related Files
69
- - System tray views use STX templates in `storage/framework/defaults/views/system-tray/`
70
- - System tray has its own router type definitions
71
- - Desktop layouts in `storage/framework/defaults/views/system-tray/`
79
+ ## Mac App Store
80
+
81
+ Run `buddy desktop:apple:init`, then configure the repository variables and
82
+ secrets named by the generated workflow. The reusable Stacks workflow builds
83
+ Craft from an immutable revision, imports signing material into an ephemeral
84
+ keychain, embeds the provisioning profile, applies App Sandbox entitlements,
85
+ signs the helper before the parent app, creates a signed installer package, and
86
+ uses App Store Connect API-key authentication for validation/upload.
87
+
88
+ Start with `validate-only: true`. Upload only after the signed artifact passes
89
+ local launch and UI QA.
90
+
91
+ Human-owned prerequisites that Buddy does not pretend to automate:
92
+
93
+ - Apple Developer Program enrollment and agreement acceptance
94
+ - App Store Connect API access approval and initial key download
95
+ - banking, tax, pricing, privacy, age rating, and export-compliance answers
96
+ - final App Review submission/release policy
97
+
98
+ ## Required Apple configuration
99
+
100
+ Repository variables:
101
+
102
+ - `APPLE_APP_NAME`
103
+ - `APPLE_BUNDLE_ID`
104
+ - `APPLE_TEAM_ID`
105
+ - `DESKTOP_URL`
106
+ - `APPLE_APP_SIGNING_IDENTITY`
107
+ - `APPLE_INSTALLER_SIGNING_IDENTITY`
108
+
109
+ Repository secrets:
110
+
111
+ - `APPLE_APP_CERTIFICATE_BASE64`
112
+ - `APPLE_INSTALLER_CERTIFICATE_BASE64`
113
+ - `APPLE_CERTIFICATE_PASSWORD`
114
+ - `APPLE_PROVISIONING_PROFILE_BASE64`
115
+ - `APP_STORE_CONNECT_API_KEY`
116
+ - `APP_STORE_CONNECT_API_KEY_ID`
117
+ - `APP_STORE_CONNECT_API_ISSUER_ID`
72
118
 
73
119
  ## Gotchas
74
- - **Currently incomplete** — `openDevWindow()` is a stub that returns `false`
75
- - **Tauri integration pending** — the Desktop interface maps to Tauri's API but imports are commented out
76
- - **System tray is separate** — system tray views and routing have their own type definitions
77
- - **Platform-specific builds** — desktop builds require platform-specific Tauri compilation
78
- - **Dev window options exist but aren't functional** — `OpenDevWindowOptions` is defined but not yet wired to Tauri
120
+ - App Store packaging runs on macOS with Xcode command-line tools.
121
+ - The embedded Craft runtime must inherit the parent App Sandbox.
122
+ - A Mac App Distribution identity and Mac Installer Distribution identity serve different signing steps.
123
+ - The provisioning profile must match the team ID, bundle ID, and requested entitlements.
124
+ - App Store upload is not notarization. Outside-Store distribution uses Developer ID signing and notarization instead.
125
+ - A Store build number is immutable. Retry upload with the same signed artifact; rebuild with a new number only when the binary changes.
@@ -2,7 +2,7 @@
2
2
  "publisher": "Stacks",
3
3
  "name": "vscode-stacks",
4
4
  "displayName": "Stacks",
5
- "version": "0.70.208",
5
+ "version": "0.70.209",
6
6
  "description": "A modern Stacks development environment.",
7
7
  "license": "MIT",
8
8
  "funding": "https://github.com/sponsors/chrisbbreuer",
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@stacksjs/defaults",
3
3
  "type": "module",
4
4
  "sideEffects": false,
5
- "version": "0.70.208",
5
+ "version": "0.70.209",
6
6
  "description": "The complete managed Stacks application scaffold, including runtime defaults, AI guidance, editor metadata, and npm-backed project support files.",
7
7
  "author": "Chris Breuer",
8
8
  "license": "MIT",