@byollm/relay 0.1.0-alpha.17 → 0.1.0-alpha.18

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 (2) hide show
  1. package/README.md +25 -4
  2. package/package.json +5 -5
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  > [!WARNING]
2
- > **Alpha (`0.1.0-alpha.17`) — under active development. Don't use this yet.**
2
+ > **Alpha (`0.1.0-alpha.18`) — under active development. Don't use this yet.**
3
3
  >
4
4
  > This is a walking skeleton. It routes real jobs between real daemons and real
5
5
  > sites, and it is the fixture byollm_009 freezes against — but it keeps its
@@ -31,7 +31,28 @@
31
31
  > cancellations instead of an empty list. `WireErrorCode` gains `forbidden`
32
32
  > for 403, leaving `unauthorized` at exactly 401. The relay gained a
33
33
  > site-plane `cancel` endpoint, honours `stub.deadlineAt`, honours
34
- > `stub.audience`, and remembers a refusal.
34
+ > `stub.audience`, and remembers a refusal.>
35
+ > **`alpha.17` is additive** — no wire change. It exports `ReleaseReason`,
36
+ > which `RoutingStore.releaseLeases` names and the package did not export, so
37
+ > the interface was unimplementable outside this repo.>
38
+ > **`alpha.18` is a breaking wire change — daemons and relays, not app
39
+ > authors.** `app.enqueue(...)` and reading results are unchanged. All five
40
+ > packages move together.
41
+ >
42
+ > The **bearer token is gone**: off `PairPollResponse`, off the runner row,
43
+ > off the daemon's pairings file, out of the adapter's schema. It was minted,
44
+ > hashed and stored on two disks and never sent, looked up or compared —
45
+ > `REQUESTS_SIGNED_NOT_BEARER` was enforced by signatures the whole time. If
46
+ > you run the Supabase adapter, apply
47
+ > `20260819000000_drop_runner_token.sql`; `byollm_approve_pairing` now takes
48
+ > one argument. A pairings file written by an older daemon still loads.
49
+ >
50
+ > `model`, `backendClass` and `durationMs` moved **inside** the sealed result
51
+ > (`SealedOutcome = { outcome, ran }`), so a daemon cannot declare a model it
52
+ > did not sign and a relay carries none of them. Writing a `RoutingStore`?
53
+ > `releaseLeases` takes an optional `reason` and `complete` requires
54
+ > `leaseId`, and **an implementation that ignores either still typechecks** —
55
+ > run the store contract tests.
35
56
 
36
57
  # `@byollm/relay`
37
58
 
@@ -108,7 +129,7 @@ daemons pin at pairing, verified against the `sites` half of the projection.
108
129
  Nothing here trusts a `siteId` in a body or a query string.
109
130
 
110
131
  That is newer than the rest of this package. The site plane took the caller's
111
- word for who it was until `0.1.0-alpha.17`, which on a relay reachable from the
132
+ word for who it was until `0.1.0-alpha.18`, which on a relay reachable from the
112
133
  internet is an open enqueue endpoint into consenting users' machines and an
113
134
  open read of who is online. It was blind the whole time — nothing could open a
114
135
  payload — and blind is not the same as safe.
@@ -116,7 +137,7 @@ payload — and blind is not the same as safe.
116
137
  If you are running this: the site plane is authenticated but this is still a
117
138
  single-tenant relay with in-memory state. One site, one replica.
118
139
 
119
- ## Breaking in `0.1.0-alpha.17`: `RelayState` is async
140
+ ## Breaking in `0.1.0-alpha.18`: `RelayState` is async
120
141
 
121
142
  Every method on `RelayState` now returns a `Promise`, and `Relay.sweep()` and
122
143
  `debugPage()` with it. `RelayState.requeue` is private — it was only ever a
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@byollm/relay",
3
- "version": "0.1.0-alpha.17",
3
+ "version": "0.1.0-alpha.18",
4
4
  "type": "module",
5
5
  "description": "The reference relay: routes sealed byollm jobs between sites and daemons, holding no decryption keys by construction.",
6
6
  "license": "MIT",
@@ -27,16 +27,16 @@
27
27
  ],
28
28
  "dependencies": {
29
29
  "zod": "^4.1.13",
30
- "@byollm/protocol": "0.1.0-alpha.17"
30
+ "@byollm/protocol": "0.1.0-alpha.18"
31
31
  },
32
32
  "publishConfig": {
33
33
  "access": "public"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@supabase/supabase-js": "^2.112.2",
37
- "@byollm/server": "0.1.0-alpha.17",
38
- "byollm": "0.1.0-alpha.17",
39
- "@byollm/conformance": "0.1.0-alpha.17"
37
+ "byollm": "0.1.0-alpha.18",
38
+ "@byollm/server": "0.1.0-alpha.18",
39
+ "@byollm/conformance": "0.1.0-alpha.18"
40
40
  },
41
41
  "scripts": {
42
42
  "build": "tsup"