You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f95ca4d
Browse filesBrowse the repository at this point in the historyBrowse files
docs(s001): ADR-0004's second appended correction — still proposed, for a different reason
Q2, answered yes at G4. Supersedes two rows of the first correction's table and nothing else:
macOS is now built natively and serves on a runner, and Windows builds here and on a runner
since the owner installed 7z. The ADR's literal exit condition — a running smoke build on macOS
and Windows — is satisfied for the sidecar.
The status still does not move, because the condition was written about the wrong thing. This
ADR chooses a desktop SHELL, and a Burrito binary that boots and serves says nothing about that
choice: every alternative in its table would pass, since they all wrap the same BEAM.
What is established about the shell: it opens a real window on exactly one OS, Linux, run by
the owner, with a screenshot. It compiles on three. It has never been launched on macOS or
Windows. One shell running on one OS is not a decision about a cross-platform shell, and the
fallback stays untriggered rather than eliminated.
New lift condition replaces the first correction's: a window on macOS and on Windows, and the
sidecar observed dying with its window by a mechanism this project owns. The build-and-launch
half is done and was never the question.
Caught while writing the G3 repost, which claimed this correction existed before it did —
the fifth claim-ahead-of-tree this slice, and the first I caught before it left the machine.
mix gate exit=0.
Signed-off-by: Ayla Croft <aylacroft@proton.me>
Copy file name to clipboardExpand all lines: docs/adr/0004-desktop-shell-ex-tauri.md
+74Lines changed: 74 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -88,3 +88,77 @@ half on both. It does not satisfy the window half on any OS, and no runner will.
88
88
89
89
No date is set on this, because the condition is a machine becoming available and I do not know
90
90
when that is.
91
+
92
+
---
93
+
94
+
## Second correction, 2026-09-07 — Slice 001 G4. **Still `proposed`, and now for a different reason.**
95
+
96
+
**This supersedes two lines in the first correction's table above**, and nothing else in it. That
97
+
table read:
98
+
99
+
> | Running smoke build on **macOS**|**not done**| The `macos_aarch64` target cross-compiles under Zig, unsigned. Nothing here can execute it. |
100
+
> | Running smoke build on **Windows**|**not built**| Burrito unpacks the Windows ERTS `.exe` with 7z; none is installed and installing one needs root. |
101
+
102
+
**Both are now done, and neither is what this ADR is about.**
103
+
104
+
### What changed
105
+
106
+
**macOS**: the `package` workflow builds it natively on `macos-latest` — 12 435 992 bytes — and
107
+
it serves HTTP 200 under `--no-halt --smoke`, exiting on its own with the process list unchanged
108
+
either side.
109
+
110
+
**Windows**: the owner installed 7z, so it now cross-builds here as well —
111
+
`desktop_windows_x86_64.exe`, 27 316 224 bytes — and it builds natively on `windows-latest` and
112
+
runs under `--smoke`. **It has not been observed serving**; that step has been blocked by three
113
+
Windows-only defects in the workflow, all now fixed, and the answer is not yet in.
114
+
115
+
**So this ADR's literal exit condition — "a running smoke build on macOS and Windows" — is
116
+
satisfied for the sidecar.** The status still does not move, and the reason is that the
117
+
condition was written about the wrong thing.
118
+
119
+
### Why `proposed` is still right
120
+
121
+
**This ADR chooses a desktop shell.** Its subject is `ex_tauri` versus a hand-rolled Tauri
122
+
sidecar versus elixir-desktop versus Electron versus local-server-plus-tray. A Burrito binary
123
+
that boots and serves says nothing about any of them: **every alternative in the table would
124
+
pass that test**, because they all wrap the same BEAM.
125
+
126
+
What has been established about the *shell*, as opposed to the sidecar:
127
+
128
+
***`mix ex_tauri.dev` opens a real window showing the scaffold** — on **one** operating system,
129
+
Linux, run by the owner on 2026-09-07, with a screenshot at
130
+
`slices/001-packaging-spike/proof/ac4-linux-window.png`. That is the first evidence in this
131
+
project that the chosen shell does the thing it was chosen for.
132
+
* The shell **compiles** on all three targets in CI. Compiling is not running, and no job claims
133
+
otherwise.
134
+
* On macOS and Windows the shell has **never been launched**. Those are AC2 and AC3, both
135
+
`[manual]`, both needing a desktop that does not exist here.
136
+
137
+
**One shell running on one OS is not a decision about a cross-platform shell.** The fallback
138
+
path remains **untriggered**, not eliminated: its trigger is "Windows fails with `ex_tauri`",
139
+
and the Windows *shell* has still never been attempted.
140
+
141
+
### And a defect the choice has to answer for
142
+
143
+
Slice 001 G4 measured the sidecar's death when its parent dies, which is what "closing the
144
+
window stops the sidecar" means in practice:
145
+
146
+
* dev path, through a real window: **14–19 ms**, six runs — but **not** by `ex_tauri`'s
147
+
heartbeat, whose 1500 ms timer never fired. `SIGKILL` matches `SIGTERM`, so it is the stdio
148
+
pipe closing, which is the OS and not this library.
149
+
* production shape, three runs: **orphaned past 7.6 s, still answering HTTP 200**, with
150
+
`ExTauri.ShutdownManager` compiled in.
151
+
152
+
**Across every measurement in slice 001 the heartbeat has never been observed to fire.** The
153
+
mechanism this ADR's chosen shell provides for the problem is present and unexercised. That is
154
+
not a reason to reject `ex_tauri` — no alternative has been shown to do better — but it is a
155
+
reason not to write `accepted` beside it yet.
156
+
157
+
### Lift condition, replacing the first correction's
158
+
159
+
**Owner: Ayla Croft.** This ADR is confirmed or amended when **`mix ex_tauri.dev` has opened a
160
+
window on macOS and on Windows**, and when the sidecar has been observed dying with its window
161
+
on at least one of them **by a mechanism this project owns**. The build-and-launch half is done
162
+
and was never the question.
163
+
164
+
No date: the condition is two machines becoming available, and I do not know when that is.
0 commit comments