OXYGENHUB

Releases 1

OxygenHub 0.5.0 v0.5.0 · ✔ signed by Andy McCall · andymccall ·

Trust and audit
  • Mail that works for any site (issue #181, issue #182): Administration › Mail picks a service (Resend, Amazon SES, Mailgun or plain SMTP) and takes its key, STARTTLS by default, with SEND A TEST. Every email is an HTML card with the OxygenHub mark, a button for its link and the site's links, beside a plain-text copy.
  • Notifications by email (issue #183, issue #186): owners hear about their repositories by default; Flow says when a build breaks and when it is fixed; backups say when they fail, when they recover, and once a day what ran; admins hear of sign-ups; proposals reach watchers and reviewers. Subjects say what happened, e.g. [OxygenHub] 🎉 Build Success, 💥 Build Broken, ⚠️ Backup Failed, 🔀 New Proposal.
  • Agent tokens (issue #183, issue #185): a token marked as an agent's (Settings › Tokens, Mark as agent) tells its owner what is done with it, as anyone else's actions would. Settings › Tokens and Keys are cards with their actions beside each row (issue #188).
  • Two-factor sign-in asks only for the code (issue #184): the password is not typed twice.
  • Backups, part two: restore brings the records back and release assets travel (issue #175); Admin › Backups (issue #176); a repository can be left out or given its own schedule (issue #177); Amazon S3 with no key, through STS web identity (issue #178); an API for settings, TEST, back up now and runs, for users and organisations (issue #179); empty files upload to GCS (issue #180).
  • Assistants summarise proposals (issue #190): Summarise with posts its summary of the proposal as a comment via the assistant, under the prompts the site, organisation and repository set.
  • Choose a bookmark or tag on the overview (issue #191): a picker beside the code search; the side bar stays.
  • Wiki pages (issue #192, issue #194): a title row with who edited the page and its revisions, Pages and Contents in the side bar, and a clone box with a copy button.
  • The Markdown editor (issue #193) is laid out like GitLab's: a Preview tab, icon buttons with strikethrough, task lists and tables, fullscreen and a Markdown supported footer.
  • Backdrops on more pages (issue #196): a repository's own sky on its overview, wiki, proposals and Conflicts; the mark on Settings › Keys, Tokens and Backups. Live arrivals on the sky (issue #172).
  • Diffusion auto-land (issue #174), opt-in per repository; image architectures detected on push and learnt from runs (issue #173).
  • Fixes: the proposals list API on a bucket-backed repository (28 s, issue #171); a long list of heads on a proposal (issue #170); Conflicts is the usual width (issue #195); + new is the primary blue (issue #187); Backups' settings are as wide as its runs (issue #189).
  • Backups (issue #169, docs/backups.md): a user (Settings › Backups) or an organisation's owners copy every repository they own, with its wiki, issues, proposals, releases and settings (never a secret value), hourly or daily, to a directory the hub allows or a Google Cloud Storage bucket with no key at all (the hub signs in as backup:OWNER through workload identity federation; TEST checks it). Only what changed travels, runs are kept 7, 30 or 90 days, a failure lands in the owner's inbox, and oxygenhub admin backup restore brings repositories back byte for byte.
  • Diffusion (issue #148, docs/diffusion.md). When a repository that others pin as a subrepo moves on, each consumer that follows it gets a proposal moving the pin, signed by the hub, tested by the consumer's own pipeline, with the upstream's changes listed. One proposal per consumer and subrepo, kept up to date; never landed by itself. Turned on per repository (Settings › Diffusion, PUT /repos/{owner}/{name}/diffusion, or follow in .oxymodules), off by default; green waits for the upstream's run to pass. A repository's page shows who uses it and how far behind each is (Diffusion › Diffuses to, GET /repos/{owner}/{name}/consumers). Consumers are bumped on the bookmark their work lands on, learned from where their proposals land.
  • Jobs go where their build cache is (oxygenflow#51): a runner's claim lists the caches it holds, and the hub holds a job for up to 15 s for the runner holding its cache, ahead of one holding its image; the run page says "holds its build cache".
  • Diffusion has a face (issue #154): the diffusion account's picture is the Diffusion mark (assets/icons/diffusion.svg), ripples from a source out to its consumers, until someone uploads another.
  • Diffusion in the API (issue #153): GET /repos/{owner}/{name}/diffusion gives what a repository takes from and what it diffuses to, each with its pill, for the VS Code extension.
  • The card layout everywhere (issue #159–issue #164): the About card's counts in its heading and its buttons centred; wider repository cards with each Diffusion row on one line; the Code button and + New project in the accent blue; proposal and issue sidebars, profile and organisation pages, search results and the wiki's sidebar as cards; every panel's and form card's heading a shaded bar.
  • Every backdrop scene (issue #167, docs/backgrounds.md): the Oxygen mark's two rings turning behind sign in, register and device sign-in; ripples on a repository's Diffusion tab, its upstreams flowing in and changes flowing out to its consumers in their pills' tones; the swarm on Admin › Runners › Images, chunks streaming to a fetching runner from every holder; and one mark adrift on a page not found or a server error.
  • The hub's sky (issue #165): Explore and the signed-out home draw the same sky from the public repositories listed (a filter narrows it), never a private one, whoever looks.
  • Your sky (issue #157, docs/backgrounds.md): a quiet, moving backdrop behind the dashboard, drawn in Rust compiled to WebAssembly: your repositories as clusters and their last 30 days (every change pushed, proposal and issue events, releases, Flow runs) as marks around them; the cursor lights and links them, and names the cluster it rests by. Settings › Appearance: Moving, Still or Off; still under reduced motion.
  • Signed-in pages are private (issue #158): HTML for a signed-in viewer says Cache-Control: private, no-store, so no proxy or CDN serves one viewer's page to another.
  • The dashboard in cards (issue #155): each section a rounded card with its heading and count in a shaded bar, your repositories a sidebar card with New in its heading.
  • Tidier pages (issue #152). The repository sidebar is a column of cards with shaded headings: Diffusion in one card (Takes from and Diffuses to, each with its pill), the ten most recently moved bookmarks with a link to the rest, and the hub's delegate key shown with the OxygenHub mark. The code tree has a shaded head with the latest change and the history, and folder and file icons; the site bar has icons; the Diffusion tables share one column grid; Help › Coming from GitHub covers submodules and Renovate.
  • Admin › Runners › Images (issue #146): every runner image, where it is and what uses it.
  • Faster pages after a restart (issue #145): bookmark summaries are kept on disk; slow requests are logged.

Assets