OXYGENHUB

OxygenHub and oh 0.6.0 9c04c779f032

Pins OxygenFlow 0.2.0 and oxy 0.5.0. Landing over checks and when checks
pass, newest run wins, push protection, the transparency log with
witnesses and trusted time, Insights and metrics, Terraform state with
versions, roles and the event bus, bucket repositories without a LIST per
lookup, and the security fixes. The changes are in CHANGELOG.md under
0.6.0.
Author
Andy McCall @andymccall <[email protected]>
via
agent agent:claude@andymccall <[email protected]> · keyless, under your grant for changes,refs,seal · key 5499df9912c0
When
· 2026-10-20 00:23 UTC
Signature
◈ sealed by agent:claude@andymccall
Hash
9c04c779f03283ab78d451bc81e324acdb2ff5c60f391768a6a187405490e6d8
Depends on
1c4ad601ef9d 1f78655a0466 33d98147511b 380996db84e5 42fa95540468 5c6e92fd8d71 7ebb7052bc7f 92a797b20912 965b950f9b96 a7e6e8e6094c b5668108487f d23464c0ac60
Depended on by
ab2d8b40f9f4 a549ddd5941f ea55fb62f919 cb7b3cd45dc0 b5c199bd6b1a 3571c519ada6
In bookmarks
api-unknown-fields diffusion-pin-bookmark draft-ready main proposal-list-fast
In tags
v0.6.0 v0.6.1 v0.7.0 v0.8.0 v0.9.0 v0.9.1 v0.9.11 v0.9.15 v0.9.16 v0.9.19 v0.9.2 v0.9.20 v0.9.21 v0.9.22 v0.9.23 v0.9.24 v0.9.3 v0.9.4 v0.9.5 v0.9.6 v0.9.7 v0.9.8 v0.9.9
Edits
13 atoms, 0 tree operations, 4 files

Browse the tree at this change

modified CHANGELOG.md +2 −0
…
3 unchanged lines
4 4
5 5
## Unreleased
6 6
7 +
## 0.6.0 (2026-10-20)
8 +
7 9
- **An event bus between the hub's processes (#273):** on PostgreSQL, what one process publishes (a push, a check, a run's jobs, a comment, a waiting webhook delivery, a choice in the conflict resolver) reaches every other process over `LISTEN/NOTIFY`, so live pages on any web process see a push made through another, and a separate worker delivers a push's webhooks at once instead of on its once-a-minute pass. Nothing to configure; on SQLite the bus stays in process. Events say "look now" and are delivered at most once; a process that loses its listening connection listens again on a new one and logs that events may have been missed. A live page that reconnects with an event id its process never gave (another web process's, or one from before a restart) is now told to reload instead of waiting for newer ids. In the conflict resolver, choices and landings cross processes; who is present stays per process. See docs/roles.md.
8 10
- **Run the hub as web and worker processes (#272):** `oxygenhub serve --role web,worker` (or `[server] roles`, `OXYHUB_SERVER_ROLES`; both by default, so one process works as before). A web process serves pages, the API, the wire protocol and the runner API; a worker runs the background tasks and serves only `/health` and `/metrics`. On PostgreSQL each singleton task (Flow's scheduler, reaper and placement pass, webhooks, nightly upkeep, backups, Diffusion's index, the log's checkpointer) runs in one process at a time under an advisory lock, and another takes it over within seconds when that process stops or loses its connection. `/health` reports the process's `roles` and the locks it is `leading`. Until the transparency log has a cluster-wide writer (#274), run one web process per data directory. See docs/roles.md.
9 11
- **Repositories kept in a bucket need far fewer requests (oxygen#116):** the hub reads a repository's signatures and index entries from a journal and entry lists instead of a LIST per lookup, and stops asking for the old one-list keys once its nightly gc has folded them. Another writer's new entry is seen within 30 seconds. Every writer of a bucket repository should run oxy 0.5.0 or later: until it does, entries it writes after the first fold are seen only after the next nightly gc.
…
250 unchanged lines
modified Cargo.lock +8 −8
…
1111 unchanged lines
1112 1112
1113 1113
[[package]]
1114 1114
name = "flow-core"
1115 -
version = "0.1.0"
1115 +
version = "0.2.0"
1116 1116
dependencies = [
1117 1117
 "blake3",
1118 1118
 "globset",
…
339 unchanged lines
1458 1458
1459 1459
[[package]]
1460 1460
name = "hub-api"
1461 -
version = "0.5.2"
1461 +
version = "0.6.0"
1462 1462
dependencies = [
1463 1463
 "schemars",
1464 1464
 "serde",
…
284 unchanged lines
1749 1749
1750 1750
[[package]]
1751 1751
name = "jet"
1752 -
version = "0.1.0"
1752 +
version = "0.2.0"
1753 1753
dependencies = [
1754 1754
 "blake3",
1755 1755
 "hex",
…
506 unchanged lines
2262 2262
2263 2263
[[package]]
2264 2264
name = "oh"
2265 -
version = "0.5.2"
2265 +
version = "0.6.0"
2266 2266
dependencies = [
2267 2267
 "anyhow",
2268 2268
 "axum",
…
33 unchanged lines
2302 2302
2303 2303
[[package]]
2304 2304
name = "oxy-core"
2305 -
version = "0.4.6"
2305 +
version = "0.5.0"
2306 2306
dependencies = [
2307 2307
 "blake3",
2308 2308
 "ed25519-dalek",
…
18 unchanged lines
2327 2327
2328 2328
[[package]]
2329 2329
name = "oxy-server"
2330 -
version = "0.4.6"
2330 +
version = "0.5.0"
2331 2331
dependencies = [
2332 2332
 "axum",
2333 2333
 "axum-server",
…
4 unchanged lines
2338 2338
2339 2339
[[package]]
2340 2340
name = "oxy-strata"
2341 -
version = "0.4.6"
2341 +
version = "0.5.0"
2342 2342
dependencies = [
2343 2343
 "async-trait",
2344 2344
 "bytes",
…
10 unchanged lines
2355 2355
2356 2356
[[package]]
2357 2357
name = "oxygenhub"
2358 -
version = "0.5.2"
2358 +
version = "0.6.0"
2359 2359
dependencies = [
2360 2360
 "ammonia",
2361 2361
 "anyhow",
…
2512 unchanged lines
modified Cargo.toml +1 −1
…
6 unchanged lines
7 7
resolver = "2"
8 8
9 9
[workspace.package]
10 -
version = "0.5.2"
10 +
version = "0.6.0"
11 11
edition = "2021"
12 12
license = "MIT OR Apache-2.0"
13 13
authors = ["Andy McCall <[email protected]>"]
…
60 unchanged lines
replaced deps/oxygenflow +0 −0

No line changes.