Oxygen 0.4.0: Strata (a repository on a bucket: S3, GCS, Azure or a directory), the object store on any Store, scoped and expiring delegates with an AI agent signing as itself and shown as via, revsets on log, show, verify and abandon, progress for gc and import, batched large merges, and release builds that link on every target. Every file is built by OxygenFlow and attested on the release's trust page. The bucket layout is not stable before 1.0.
-
Oxygen Strata: a repository on a bucket (issue #63).
oxy remote add NAME s3://BUCKET/PREFIX(--profile,--region,--endpoint),gs://BUCKET/PREFIX(--credentials),az://ACCOUNT/CONTAINER/PREFIX, ordir://PATH, thenpush,pull,cloneandgcagainst it as against any remote, with no server in between: objects are written once, the references record moves by compare-and-swap, and two pushers merge and retry rather than lose each other's work. Credentials come from each cloud's own chain.oxy remote checkruns the conformance suite against a store before it is trusted.docs/strata.mdis the guide; the bucket layout is not stable before 1.0. -
The object store on any Store (issue #68).
.oxy/objectsis now the sameStorea bucket is, with the same keys and the same speed: the first step towards a repository that lives in its owner's bucket with the hub as one client of it. Signatures, seal and receipt entries are written once each, so two writers of a shared store never lose each other's; older repositories still read. -
Scoped, expiring delegates (issue #67).
oxy identity delegate add FILE --scope changes --expires 8hlets an AI agent sign changes for you while it can never move a bookmark or tag, or seal, whatever you may do; a host that lands for you getschanges,refs. You can revoke a key you delegated to. Older identities still read: a bare key means every scope. -
An agent signs as itself, you stay the author. The agent's keys live in its own
$OXY_HOME, andauthor.signer(or$OXY_SIGNER) names its key, sooxy commitin your checkout carries you as author and the agent's signature.oxy logsaysvia NAMEbeside the author,oxy showhas aviarow with the agent's identity and the delegation it acted under,oxy identity shownames each delegate, andoxy log -r 'delegated()'lists what agents did. The guide's §9 has the setup. -
Revsets (issue #65).
oxy log -r,show -r,verify -randabandon -rtake an expression over history: symbols (bookmarks,origin/main, tags, change prefixes,@),::X,X::,X..Y,|,&,~,deps,dependents,heads,roots,latest,independent,author,description,date(-7d..),kind,touches(through renames),conflicts, and the trust predicatessigned_by,delegated,unsigned,revoked,attested,built. Saved revsets:oxy config revset.mine 'author(me) & ::@'makesmine(). A first page takes about 10 ms on this repository; evaluation has a time budget.docs/revset_query_language.md. -
oxy gcandoxy git importsay what they are doing (issue #66, issue #25). Each phase and count of a gc, and every 500 commits of an import with the commit in hand, through the spinner or as lines without a terminal. -
Large merges import in batches (issue #25). A merge touching thousands of files builds and renders its graphs 500 files at a time: a 10 000-commit slice of VS Code imports in 135 s at 1.6 GB (from 140 s at 1.6 GB, and far less for the merges alone). The whole history still needs more than 20 GB at its largest merges, which is the next piece of work.
-
Release builds link on every target. The cloud stores send through
ureq, so macOS and Windows builds no longer pull in a C library the cross-compiler cannot link.