|
|
… |
3 unchanged lines |
| 4 |
4 |
|
|
| 5 |
5 |
|
## Unreleased |
| 6 |
6 |
|
|
|
7 |
+ |
## 0.4.0 (2026-10-04) |
|
8 |
+ |
|
|
9 |
+ |
- **Who did the work.** A change an AI agent signed for its author says so wherever the author is shown: `via NAME` with an `agent` badge in history rows, a `via` row under the author on the change page (the agent's identity, the delegation it acted under and its expiry, its key), a count under the author in Contributors, and `via` in the API's change summaries. The author stays the human; a revoked delegation turns the badge red. |
|
10 |
+ |
|
|
11 |
+ |
- **Rotated identities link themselves.** A push that brings changes authored by a successor of a linked identity, where every step kept the key pair (a renewal, a delegation added or removed), links the successor to the same account: delegating to an agent no longer leaves your changes unattributed until you re-upload a key. |
|
12 |
+ |
|
|
13 |
+ |
- **A Flow badge.** `/{owner}/{name}/flow/badge.svg` is the latest run on the default bookmark as a small SVG for a README (`passing`, `failing`, `running`, `no runs`). |
|
14 |
+ |
|
|
15 |
+ |
- **History by revset.** `GET /repos/{o}/{n}/history/{ref}?r=REVSET` answers the changes a revset selects (Oxygen's `docs/revset_query_language.md`), under a two-second budget. |
|
16 |
+ |
|
|
17 |
+ |
- **The hub garbage-collects every repository nightly (#94).** `oxy gc` runs for each repository in turn at `retention.gc_hour` UTC (default 3; 24 or more turns it off), under its write lock, logging what was pruned and packed; `oxygenhub gc` runs the same pass by hand. The oxygen repository had 1.45 GB of loose objects when this was found. |
|
18 |
+ |
|
|
19 |
+ |
- **Milestones over the API, and `oh milestone` (#91).** `POST /milestones` creates one (title, description, due date) or changes the one with that title, `PATCH /milestones/{title}` changes title, description, due date or state; `oh milestone list|create|edit|close|reopen`. |
|
20 |
+ |
|
|
21 |
+ |
- **`oh issue edit` (#95).** Title, body (`-F` for a file), labels and assignees as whole sets (`--no-labels`, `--no-assignees`), milestone (`""` clears); `oh issue label` keeps adding and removing. |
|
22 |
+ |
|
|
23 |
+ |
- **`oh` dies quietly on a closed pipe (#92),** as `oxy` does: `oh issue list | head -1` no longer panics. |
|
24 |
+ |
|
|
25 |
+ |
- **The trust report prints the tagged state once (#93):** "The tagged state has N heads" with the short heads, and each asset's line names the run that built it. |
|
26 |
+ |
|
|
27 |
+ |
- **A runner busy with its only job stays online (#78).** Its log batches and finish call mark it seen, where only claims did. |
|
28 |
+ |
|
|
29 |
+ |
- **The hub signs for you only with `changes,refs`.** Delegating to the hub key now takes `--scope changes,refs`; the recipes and the trust page say so. |
|
30 |
+ |
|
|
31 |
+ |
- **Web workspaces, designed (#69).** Spec §13.3 has the design to review before anything is built: data, the runner's `workspace` job kind with flow-casfs, the owner-only proxy, delegate-signed pushes to `ws/{account}/{id}`, security, costs, open questions. |
|
32 |
+ |
|
| 7 |
33 |
|
- **What starts a job: `on` (oxygenflow#24).** A pipeline's or a job's `on { push "main" "feature/*"; tag "v*"; manual }` decides which events run it: pushing a tag now runs the jobs that name it, on the tagged state; a run has only the jobs its event starts (and what they need), and an event that starts none starts no run. A rerun repeats its run's event. A bookmark sent again unchanged starts no run. `schedule "0 3 * * *"` lines run their jobs on the default bookmark when due (UTC), checked each minute. |
| 8 |
34 |
|
|
| 9 |
35 |
|
## 0.3.1 (2026-10-02) |
|
|
… |
57 unchanged lines |