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 13c5b3f
Browse filesBrowse the repository at this point in the historyBrowse files
Four changes from the G1 review.
Line 1: all three arms pre-registered before any is run, with the command for
each -- (a) default configuration on the pinned toolchain, (b) otp_release
overridden to 28.5.0.5, (c) whether ~> 27.0 is a hard guard in ex_tauri's code or
a default it downloads against. A refusal is (a) AND (b) both failing. If (b)
works there is no refusal and ADR-0004 is confirmed with the override recorded as
the configuration. Output and exit code per arm.
Line 3: packaging brings a Rust toolchain and the Tauri CLI, and neither is a hex
package, so the mix.lock derivation cannot mark them. Both get pinned and both
get VERSIONS.md rows whose marks come from rustc --version and cargo tauri
--version, stated as such. Otherwise the generator's rule reads as if it covered
the whole table, which is the defect B3 caught in a different costume.
Line 9: the ubuntu runner has no display, so its job states which of two claims it
is making -- the shell under xvfb-run, or the sidecar smoked alone. macOS and
Windows runners have desktop sessions and launch the shell there. A claim that
does not say which will be sent back.
Line 12: an amendment to ADR-0004 is an appended correction naming what it
supersedes, with a status word from the vocabulary docs/03 allows, and the
alternatives table stays either way because the next person to hit R1 needs it.
Rule 11's own comment now records that the main half passed vacuously on the first
attempt, and how to demonstrate it properly, so the next person does not repeat it.
Signed-off-by: Ayla Croft <aylacroft@proton.me>
Copy file name to clipboardExpand all lines: slices/001-packaging-spike/NOTES.md
+14-4Lines changed: 14 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,18 +5,18 @@
5
5
Posted 2026-09-06 against `537bd3a`, branch cut from `main` at `de95666`. Fifteen lines, execution order, one
6
6
sentence each, each naming what it produces and the red it fails on first. **No code until this is approved.**
7
7
8
-
1.**The `ex_tauri`refusal measurement runs before any packaging work**, adding `{:ex_tauri, "~> 0.2", only: :dev}`to`mix.exs` and recording `mix deps.get` and `mix deps.compile ex_tauri` with their full output and exit codes on the pinned 28.5.0.5 / 1.20.4 — the red being `ex_tauri`'s own `otp_release: "~> 27.0"` refusing the pinned OTP, in which case I stop after this line and post the refusal, ADR-0004's five alternatives and a recommendation as a Question on the slice issue, because the pin was decided at 000 and does not move.
8
+
1.**The `ex_tauri` measurement runs before any packaging work, and all three arms are pre-registered here before any is run**: **(a)** default configuration on the pinned toolchain — `mix deps.get` then `mix deps.compile ex_tauri` with `{:ex_tauri, "~> 0.2", only: :dev}`in`mix.exs`; **(b)** the same with `otp_release` overridden to `28.5.0.5` in this project's config; **(c)** whether `~> 27.0` is a hard guard in `ex_tauri`'s own code or a default it downloads against, read from the unpacked source with `mix hex.package fetch ex_tauri 0.2.0 --unpack` and `grep -rn "otp_release\|27" <src>` — output and exit code recorded per arm, **a refusal being (a) and (b) both failing**, and if (b) works there is no refusal, ADR-0004 is confirmed and the override is recorded as the configuration.
9
9
2.**The acceptance-criteria tag review** produces a corrected `slices/001-packaging-spike/SLICE.md` and its Manual verification queue, failing first on the mistags this slice was predicted to carry: AC4 and AC5 claim `[auto]` for things needing a desktop session or a machine that does not exist, and AC6 mixes an auto half with a manual one.
10
-
3.**Burrito wiring**produces the `releases:` block in `mix.exs` and `lib/trinity/release.ex` running migrations explicitly, red on `MIX_ENV=prod mix release` failing before the release assembles at all.
10
+
3.**Burrito wiring and the non-hex toolchain**produce the `releases:` block in `mix.exs`, `lib/trinity/release.ex` running migrations explicitly, a **Rust pin in `.tool-versions`** and the **Tauri CLI pinned at its measured version**, plus their two `VERSIONS.md` rows whose marks come from `rustc --version` and `cargo tauri --version` rather than from `mix.lock` — red on `MIX_ENV=prod mix release` failing before the release assembles, and on `mix versions.gen --check` if those rows are emitted as if lock membership had answered for them.
11
11
4.**`lib/trinity/paths.ex`** resolves the per-OS data directory with `test/paths_test.exs` red first on each of the three branches returning the wrong root under a stubbed `:os.type/0`.
12
12
5.**`lib/trinity/smoke.ex` and the `--smoke` flag** boot the endpoint on `127.0.0.1:0`, print the assigned port, and exit 0, red first on a smoke run that stays alive past its own exit call.
13
13
6.**The linux x86_64 Burrito build** produces `burrito_out/trinity_linux_x86_64`, a single binary, launched and exited under `--smoke`, with `ps -eo pid,ppid,comm` captured before and after — **a leaked sidecar surviving the exit is the red**, and it is the criterion this line exists for.
14
14
7.**AC1's serving proof** captures `curl -sS -o /dev/null -w '%{http_code}'` against the port the smoke run printed, red first on a binary that starts but serves nothing.
15
15
8.**`docs/packaging.md`'s measurement table** records binary size from `stat -c %s` and cold-start-to-serving from a timed loop on linux x86_64 only, red on `plan_check` check 6 if it cites a path the tree does not have.
16
-
9.**`.github/workflows/package.yml`** adds macos-latest and windows-latest jobs that build the artifact and run it under `--smoke`, red first on a job that reports success without an artifact in its upload step.
16
+
9.**`.github/workflows/package.yml`** adds macos-latest and windows-latest jobs that build the artifact, launch the **shell** on their real desktop sessions and exit under `--smoke`, and a ubuntu-latest job that **states which of two it is** — the shell under `xvfb-run`, or the sidecar smoked alone because the runner has no display — red first on a job reporting success with no artifact in its upload step, and on any runner claim that does not say which of those two it made.
17
17
10.**What a runner proves and what it cannot** is written into `docs/packaging.md` as two explicit lists — it proves the artifact builds, launches and exits clean, and it produces a launch log; it cannot produce a screenshot of a real window on a real desktop, and nothing will claim it did.
18
18
11.**Every criterion needing a real desktop is tagged `[manual]` with "no machine available — Ubuntu is the only machine" as its stated reason**, never silently dropped, and the slice's exit condition names them as unproven rather than counting them.
19
-
12.**ADR-0004 is confirmed or amended** from what lines 1 to 9 actually measured, red on `plan_check` check 6 if the amendment cites an alternative with no ADR of its own.
19
+
12.**ADR-0004 is confirmed or amended** from what lines 1 to 9 measured, as an **appended correction that names what it supersedes** and carries a status word from the vocabulary `docs/03` allows — `accepted`, since this slice is what its current `proposed → to be confirmed by Slice 001` was waiting on — with **the alternatives table kept either way**, because the next person to hit R1 needs it; red on `plan_check` check 6 if the amendment cites an alternative with no ADR of its own.
20
20
13.**`coverage.tsv` gains slice 001's row** and the drop rule does real work for the first time, red first by seeding a row more than three points under 000's **27.01** and watching `mix trinity.coverage` fail, then green at the real figure or with a reason named here.
21
21
14.**`mix gate` and `scripts/plan_check.sh` both exit 0 on this branch**, with `mix phx.server` still starting without Tauri, red on either gate or on the plain server needing the desktop shell to boot.
22
22
15.**The manual queue holds only what the tree cannot answer**, each item naming the machine or account it needs: a macOS desktop for AC2, a Windows desktop for AC3, a Linux desktop session for AC4's window, and the same three for AC6's window-close check — **all four are the same missing thing, a machine that is not this one.**
@@ -31,6 +31,16 @@ outside packaging, that is a Question on the slice issue, not a commit.
31
31
index. If `ex_tauri` refuses it, that is ADR-0004's decision to make under its alternatives, which is what line 1
32
32
routes to.
33
33
34
+
## Two VERSIONS.md rows the generator's rule does not cover
35
+
36
+
Packaging brings a **Rust toolchain** and the **Tauri CLI** into the tree. Neither is a hex package, so the
37
+
`✅ in mix.lock` derivation slice 000 built **cannot mark them** — lock membership has nothing to say about either.
38
+
39
+
Their rows carry their own stated derivation instead: `rustc --version` and `cargo tauri --version`, named in the
40
+
row the way the toolchain rows name `.tool-versions`. Without that, the generator's rule reads as if it covered
41
+
the whole table, which would be the same defect finding B3 caught — a mark whose meaning is assumed rather than
42
+
stated.
43
+
34
44
## The tag review, done now rather than at G3
35
45
36
46
`SLICE.md` carries seven criteria. Three are tagged `[manual]` and four `[auto]`. **Three of the four `[auto]`
0 commit comments