synartesis 0.6.0 → 0.6.2

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.
Files changed (3) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +22 -4
  3. package/package.json +7 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,57 @@
2
2
 
3
3
  What changed, and why it mattered. Dates are release dates.
4
4
 
5
+ ## 0.6.2 — 2026-09-12
6
+
7
+ ### Fixed
8
+
9
+ - **The application could not be built on Windows or Linux at all**, which the
10
+ first release build found out the hard way. On Windows, pnpm compiles
11
+ better-sqlite3 from source -- ignoring the `gypfile: false` that tells npm
12
+ not to bother -- and a runner whose Visual Studio is newer than node-gyp
13
+ knows about simply fails. It never needed compiling: the package ships a
14
+ prebuilt binary for every platform it supports, and its loader prefers one
15
+ over anything built locally, so what node-gyp produced here was never
16
+ loaded. On Linux, dpkg refuses to build a `.deb` without a maintainer, and
17
+ nothing named one.
18
+
19
+ - **The release workflow can be rehearsed.** Run with the tag box empty, it
20
+ builds the branch on all three platforms and publishes nothing. Finding out
21
+ whether a build works should not cost a version number each time.
22
+
23
+ ## 0.6.1 — 2026-09-12
24
+
25
+ ### Added
26
+
27
+ - **A `release` workflow** builds the application on macOS, Windows and Linux --
28
+ each on its own machine, since an installer cannot honestly be built anywhere
29
+ else -- and attaches the `.dmg`, `.exe`, AppImage and `.deb` to the release
30
+ for a `v*` tag. It signs and notarises where the secrets exist and produces
31
+ unsigned builds where they do not, so a fork of this repository can still
32
+ build it.
33
+
34
+ ### Fixed
35
+
36
+ - **The packaging script could not have run on Windows.** It started
37
+ electron-builder through the shim in `node_modules/.bin`, which is a `.cmd`
38
+ there and something node will not spawn without a shell. It runs the
39
+ builder's own entry file instead -- the same file on every platform -- and
40
+ the check that refuses a stale bundle now knows where Windows and Linux keep
41
+ the archive as well as where macOS does.
42
+
43
+ - **An empty secret is not a certificate.** A CI job passes every secret it was
44
+ told about whether the repository holds one or not, so a build with no
45
+ signing certificate was handed `CSC_LINK=""`. electron-builder reads
46
+ "defined" as "use it": it took the empty string for the path to a
47
+ certificate, resolved it against the project directory, and stopped with
48
+ "`<repo>/app not a file`" -- a message with no visible relationship to its
49
+ cause. Blank credentials are dropped before the builder starts, so a build
50
+ without a certificate is simply unsigned.
51
+
52
+ - **A `.DS_Store` could make a current bundle look stale.** Finder leaves one in
53
+ any directory somebody has looked at, and the staleness check was counting it
54
+ as input to the bundle even though nothing packs it.
55
+
5
56
  ## 0.6.0 — 2026-09-12
6
57
 
7
58
  ### Added
package/README.md CHANGED
@@ -110,8 +110,25 @@ the journal or a log. There is a parchment and a dark setting:
110
110
  **Getting it.** `synartesis desktop` opens it, and says where to get it if it is
111
111
  not installed. It is a separate download on purpose: shipping a browser engine
112
112
  inside a CLI would put 200 MB into every install of a command that is a few
113
- hundred kilobytes. Until there is a signed build to download, it is built from a
114
- clone:
113
+ hundred kilobytes.
114
+
115
+ On macOS it installs the way anything does — open the `.dmg`, drag Synartesis to
116
+ Applications — and on Windows the `.exe` installer puts it where the Start menu
117
+ can find it. After that, either the icon or `synartesis desktop` opens it; the
118
+ command looks where each platform actually installs things rather than asking
119
+ you to remember a path.
120
+
121
+ **The builds are not signed yet, and the first launch says so.** macOS refuses
122
+ an application it cannot check with Apple: open System Settings → Privacy &
123
+ Security and press *Open Anyway*, or `xattr -dr com.apple.quarantine
124
+ /Applications/Synartesis.app` to say the same thing in one line. Windows shows
125
+ a SmartScreen warning, behind *More info*. Both of those are the operating
126
+ system telling you the truth — nobody has vouched for this binary — and the
127
+ honest fix is a Developer ID certificate rather than a page telling you to
128
+ click past it. Building from the clone below avoids the question entirely,
129
+ since an application you built is one you have already vouched for.
130
+
131
+ To build it yourself instead:
115
132
 
116
133
  ```bash
117
134
  pnpm install && pnpm app:dist
@@ -121,8 +138,9 @@ That writes an installer for the machine it runs on to `app/release` — a `.dmg
121
138
  and a `.app` on macOS, an `.exe` on Windows, an AppImage and a `.deb` on Linux.
122
139
  It is unsigned, so it runs where it was built and Gatekeeper refuses it
123
140
  anywhere it has been downloaded to: signing and notarisation need an Apple
124
- developer account, and [`app/README.md`](app/README.md) lists the two
125
- environment variables that turn them on. Both the window and the terminal share
141
+ developer account, and [`app/README.md`](app/README.md) lists exactly what they
142
+ want. The `release` workflow builds all three platforms on their own machines
143
+ and attaches the installers to the release for a tag. Both the window and the terminal share
126
144
  one journal, so either can undo what the other did.
127
145
 
128
146
  ## What it can and cannot do
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synartesis",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "An undo layer for AI agents.",
5
5
  "type": "module",
6
6
  "private": false,
@@ -66,6 +66,12 @@
66
66
  "yaml": "^2.9.0",
67
67
  "zod": "^4.4.3"
68
68
  },
69
+ "//pnpm": "better-sqlite3 ships a prebuilt binary for every platform it supports, and its loader prefers one over anything compiled locally -- so what node-gyp builds here is never loaded. npm knows not to bother, because the package sets gypfile: false; pnpm builds it anyway, which needs a C toolchain on every machine that installs this and fails outright on a Windows runner whose Visual Studio is newer than node-gyp.",
70
+ "pnpm": {
71
+ "neverBuiltDependencies": [
72
+ "better-sqlite3"
73
+ ]
74
+ },
69
75
  "devDependencies": {
70
76
  "@anthropic-ai/sdk": "^0.125.0",
71
77
  "@electron/notarize": "^3.1.1",