OXYGENHUB

Roadmap: phase H done 3526d339519f

Author
Andy McCall @andymccall <[email protected]>
When
· 2026-09-27 21:51 UTC
Signature
✔ signed by Andy McCall
Hash
3526d339519feac261d467ea056c65093428bd1fc602da82d5fdf44b713a186f
Depends on
132b884b9a8d 75167672ebcd 982864068a59 b0e64e81e4fb eae595568832 f556a3ba8a9d
Depended on by
1ec6fdbc6bcb 028545dfa7a4 f53cbe7a204e f0a517d28237 e5d9b0513f3e 7ba155f20aa0 8349c327fe83
In bookmarks
agents-in-readme bare-hashes carried-not-removed carry-identical doctor-trust identical-sides keyless-tags main merge-remote-bookmark only-help-103 paths-for-resolutions-and-amend push-notes show-stat subrepo-pin-state switch-says
In tags
v0.1.0 v0.10.0 v0.11.0 v0.2.0 v0.3.0 v0.3.1 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.5.0 v0.5.1 v0.6.0 v0.7.0 v0.8.0 v0.9.0
Edits
5 atoms, 0 tree operations, 3 files

Browse the tree at this change

modified crates/oxy-core/src/repo/sync.rs +2 −1
…
1017 unchanged lines
1018 1018
                    .first()
1019 1019
                    .map(|s| s.key)
1020 1020
                    .ok_or_else(|| RepoError::Msg("attestation carries no signature".into()))?;
1021 -
                if !p.authorizes(&signer, &r.name) && !self.delegate_authorized(p, &signer, &r.name) {
1021 +
                if !p.authorizes(&signer, &r.name) && !self.delegate_authorized(p, &signer, &r.name)
1022 +
                {
1022 1023
                    return fail(format!(
1023 1024
                        "{remote_name}/{}: attested by {}, which the policy does not authorize",
1024 1025
                        r.name,
…
485 unchanged lines
modified crates/oxy-core/src/repo/tags.rs +3 −1
…
210 unchanged lines
211 211
            verify_signature(&id, sig, Domain::Attest, &r).map_err(|e| e.to_string())?;
212 212
            if let Some(p) = policy {
213 213
                let reference = format!("tags/{}", t.name);
214 -
                if !p.authorizes(&sig.key, &reference) && !self.delegate_authorized(p, &sig.key, &reference) {
214 +
                if !p.authorizes(&sig.key, &reference)
215 +
                    && !self.delegate_authorized(p, &sig.key, &reference)
216 +
                {
215 217
                    return Err(format!(
216 218
                        "key {} may not create tags/{} under this repository's policy",
217 219
                        sig.key.short(12),
…
25 unchanged lines
modified docs/roadmap.md +1 −0
…
50 unchanged lines
51 51
- 2026-09-27: phase E (hub 0.4, issues and notifications) done and deployed; next is F (hub 0.5 API, webhooks, checks, and the extension's exported API).
52 52
- 2026-09-27: phase F's hub half done (0.5: complete API with generated TypeScript types, webhooks, checks with live status); the extension's exported API and remote-provider hook followed the same day (oxygen-vscode 0.7.0). Phase F is complete.
53 53
- 2026-09-27: phase G: oxygenhub-vscode spec (Draft 0.1) and 0.1.0 built, tested against a real hub, installed and hosted on Earth; its review threads, seal and land run through oxy in a terminal. Next is H (web edits, releases, mirror) after Andy tries the two extensions together.
54 +
- 2026-09-27: phase H done and deployed: oxy's host API and the delegate rule for reference attestations (Draft 0.8g), hub 0.6 (web edits and browser conflict resolution signed by the hub as the user's delegate, landing under a policy, releases with assets and archives, read-only Git mirror, code search, anchored API comments), oxygenhub-vscode 0.1.1. The Git mirror stays off for oxygen itself (it would be a Git repository of the project). Next is I, the runner: spec first, for review.