oxy 0.5.0 6f06d9f912b4
Trusted time and witnesses, fetches that survive an unverifiable side bookmark and carry attestation signers, bucket stores without a LIST per lookup (#116), identical additions unify (#101), resolutions by path and amend PATH, oxy doctor's trust check, show --stat, merging a remote's bookmark, and a server hook to refuse a push by its content. The changes are in CHANGELOG.md under 0.5.0.
- Author
- Andy McCall @andymccall <[email protected]>
- via
- agent
agent:claude@andymccall <[email protected]> · keyless, under your grant for changes,refs,seal · key 897633a12276
- When
- · 2026-10-19 23:52 UTC
- Signature
- ◈ sealed by agent:claude@andymccall
- Hash
6f06d9f912b4c91ac91bc5ff3c5b3bf96d46f7e5201f2eb053f46b981fa12885- Depends on
- 2b95bc24d7d6 68dcf21fe055 750251b21a96 8d80356371c5 8fd78eb52ad2 e4595038502a ff0af1ee299d
- Depended on by
- 82202a4d0025 1ec6fdbc6bcb
- In bookmarks
- identical-sides keyless-tags main push-notes subrepo-pin-state
- In tags
- v0.10.0 v0.11.0 v0.5.0 v0.5.1 v0.6.0 v0.7.0 v0.8.0 v0.9.0
- Edits
- 8 atoms, 0 tree operations, 3 files
Browse the tree at this change
modified CHANGELOG.md +2 −0
| … | 1 unchanged lines |
||
| 2 | 2 | ||
| 3 | 3 | ## Unreleased |
|
| 4 | 4 | ||
| 5 | + | ## 0.5.0 (2026-10-20) |
|
| 6 | + | ||
| 5 | 7 | - **A repository kept in a bucket finds signatures and seals without a LIST each (#116).** Every lookup of an object's signatures, seals, receipts, approvals or certificate listed a prefix in the bucket, and most of these lookups found nothing. Writers now also add each such entry to a journal (`pack-entries`, updated by compare-and-swap), and `oxy gc` folds them all into one list. Once a store has been folded, a reader reads the lists and the journal when it opens it, and again after 30 seconds (as long as the pack listing is kept), and looks everything up from them. Another writer's entry is seen within 30 seconds, as its pack would be, even by a handle a server keeps open. The first `oxy gc` also copies the one-list keys of much older stores (`sigs/`, `seals/`, `certs/`, …) into the current layout and marks them folded, so readers stop requesting them; until now nearly every lookup made one of these requests and found nothing. On the test store, 40 lookups went from 85 requests (40 LISTs) to 7 (one journal read and no LIST). Older readers are unaffected, because every entry still has its own key. Entries written by oxy 0.4.6 or older after the fold are missed until the next `oxy gc`, so upgrade every client that writes to the bucket first, then run `oxy gc` once. A server's `/health` counts journal reads as `read_journal`. A repository's own directory works as before. |
|
| 6 | 8 | ||
| 7 | 9 | - **A server can refuse a push by what it adds (oxygenhub#268).** `oxy-server`'s `Backend` has a `vet_push` step, called with the push's changes before anything is stored or moved; OxygenHub uses it for push protection (secret scanning). The refusal reaches `oxy push` as the server's own text, several lines included, and a refusal that mentions a certificate or a timeout no longer picks up a misleading hint. |
|
| … | 246 unchanged lines |
modified Cargo.lock +4 −4
| … | 1469 unchanged lines |
||
| 1470 | 1470 | ||
| 1471 | 1471 | [[package]] |
|
| 1472 | 1472 | name = "oxy" |
|
| 1473 | - | version = "0.4.6" |
|
| 1473 | + | version = "0.5.0" |
|
| 1474 | 1474 | dependencies = [ |
|
| 1475 | 1475 | "anyhow", |
|
| 1476 | 1476 | "clap", |
|
| … | 11 unchanged lines |
||
| 1488 | 1488 | ||
| 1489 | 1489 | [[package]] |
|
| 1490 | 1490 | name = "oxy-core" |
|
| 1491 | - | version = "0.4.6" |
|
| 1491 | + | version = "0.5.0" |
|
| 1492 | 1492 | dependencies = [ |
|
| 1493 | 1493 | "blake3", |
|
| 1494 | 1494 | "ed25519-dalek", |
|
| … | 18 unchanged lines |
||
| 1513 | 1513 | ||
| 1514 | 1514 | [[package]] |
|
| 1515 | 1515 | name = "oxy-server" |
|
| 1516 | - | version = "0.4.6" |
|
| 1516 | + | version = "0.5.0" |
|
| 1517 | 1517 | dependencies = [ |
|
| 1518 | 1518 | "axum", |
|
| 1519 | 1519 | "axum-server", |
|
| … | 6 unchanged lines |
||
| 1526 | 1526 | ||
| 1527 | 1527 | [[package]] |
|
| 1528 | 1528 | name = "oxy-strata" |
|
| 1529 | - | version = "0.4.6" |
|
| 1529 | + | version = "0.5.0" |
|
| 1530 | 1530 | dependencies = [ |
|
| 1531 | 1531 | "async-trait", |
|
| 1532 | 1532 | "bytes", |
|
| … | 1419 unchanged lines |
modified Cargo.toml +1 −1
| … | 2 unchanged lines |
||
| 3 | 3 | resolver = "2" |
|
| 4 | 4 | ||
| 5 | 5 | [workspace.package] |
|
| 6 | - | version = "0.4.6" |
|
| 6 | + | version = "0.5.0" |
|
| 7 | 7 | edition = "2021" |
|
| 8 | 8 | license = "MIT OR Apache-2.0" |
|
| 9 | 9 | ||
| … | 37 unchanged lines |