Repository navigation
BREAKING CHANGE
Before 1.0.0 a minor may break the API (versioning-release.md §1). Compared with v0.2.0-rc.1, the contract (api/openapi.yaml) breaks a client in six places. None of the commits that made these changes was marked, so the generated notes below do not show them. oasdiff breaking v1.33.0 finds the same six with and without --flatten-allof; since v0.2.0-rc.2 the contract only gained new values in response enums. New values in response enums are compatible (versioning-release.md §2) and are not listed.
| Endpoint | Change | What a client does |
|---|---|---|
POST /backups |
A request body is now required. | Send a body as the contract describes. |
POST /backups/{backupId}:verify |
backupId must be a UUID (format: uuid). |
Send only the identifiers that GET /backups returns. |
GET /items/{itemId}/comments |
data[].body can be null. |
Handle a comment without a body. |
POST /items/{itemId}/comments |
The response's body can be null. |
The same. |
POST /items:bulk |
operations needs at least one entry (minItems: 1). |
Do not send an empty list. An empty list is refused. |
GET /meta/health |
dependencies is optional. |
Do not rely on the field being there. |
A behaviour change that the contract does not show: the identity-provider endpoints changed in feat(identity)!: (#1114). That commit is marked and appears in the list below.
Reported in #1255. New values in response enums since v0.2.0-rc.1 (for example status ANONYMIZED/RESTRICTED, role AUDITOR, a webhook delivery's FILTER_FAILED) are compatible and a client must accept unknown values (versioning-release.md §2).
The list below covers the changes since v0.2.0-rc.2; the earlier ones are in the notes of v0.2.0-rc.2 and v0.2.0-rc.1.
What's Changed
- docs(identity): a new start password reaches a private hub the account holds a role in by @Jersyfi in #1482
- fix(webapp): a failed Show more on the runs and jumble lists says so by @Jersyfi in #1481
- fix(expression): a runtime error is not reported as a timeout by @Jersyfi in #1483
- fix(webapp): Create hub is offered to who may create one by @Jersyfi in #1485
- fix(expression): compiling a condition is bounded in depth and time by @Jersyfi in #1486
- fix(webapp): the personal directory is refused in the provider form, before the save by @Jersyfi in #1487
- fix(webapp): the token form offers admin:tenants only to an operator by @Jersyfi in #1490
- fix(lifecycle): the rule sweep counts what a hold keeps as held, not as unfinished by @Jersyfi in #1489
- test(rest): the idle-streams measurement waits for every first read, not the clock by @Jersyfi in #1495
- docs(backlog): cut milestone CP against its use cases by @Jersyfi in #1499
- fix(lifecycle): the rule sweep reads past what it cannot act on by @Jersyfi in #1496
- fix(privacy): an installation-wide request is carried out by its own job by @Jersyfi in #1503
- fix(backup): an archive opens after the database is lost by @Jersyfi in #1500
- feat(identity): a person is told when a way into their account changes by @Jersyfi in #1506
- fix(queue): finished jobs go after seven days by @Jersyfi in #1508
- fix(lifecycle): webhook deliveries go after thirty days by @Jersyfi in #1509
- feat(audit): the trail is kept for its period and no longer by @Jersyfi in #1512
- feat(privacy): a recovery re-applies the erasures of the rewound period by @Jersyfi in #1516
- docs: the owner's decisions of 2026-10-15 on the boundary, retention rules, connections and four checks by @Jersyfi in #1519
- feat(identity): connect a provider from a signed-in session by @Jersyfi in #1510
- feat(integration): a webhook subscription can be narrowed by a condition and a scope by @Jersyfi in #1514
- feat(privacy): a case counts one calendar month from the day of receipt by @Jersyfi in #1504
- docs(backlog): cut milestone PK against its use cases by @Jersyfi in #1527
- docs(backlog): release milestone PK by @Jersyfi in #1528
- feat(admin): a workspace in multi-tenant operation exports to an installation-wide target by @Jersyfi in #1517
- fix(postgres): the doors through the boundary answer on a database the operator brings by @Jersyfi in #1492
- fix(identity): a provider's admission settings bound which identities may be connected by @Jersyfi in #1529
- feat(hubctl): invite, place people and create managed accounts by @Jersyfi in #1543
- feat(deploy): integration's database in production's shape by @Jersyfi in #1518
- fix(deploy): integration's operations workspace has an address by @Jersyfi in #1558
- docs(evidence): integration's first restore drill passed by @Jersyfi in #1559
- docs(usecases): the recovery codes stay while a key remains by @Jersyfi in #1567
- docs: the owner's decision on workspace addresses, renaming, own domains and switching by @Jersyfi in #1569
- fix(chart): the master keyring reaches the pods, and integration answers HTTP with HTTPS by @Jersyfi in #1566
- feat(identity): a person adds a passkey by @Jersyfi in #1547
- docs(backlog): cut and release milestone PL against its use cases by @Jersyfi in #1542
- feat(admin): plans and a workspace's plan through the control plane by @Jersyfi in #1570
- feat(identity): rename and remove a passkey, and count it as a second factor by @Jersyfi in #1557
- feat(admin): a purchase platform finds its workspaces by @Jersyfi in #1572
- feat(identity): the sign-in rule and the legal links resolve through the plan by @Jersyfi in #1576
- fix(lifecycle): a retention rule whose condition fails is seen, and stops no other rule by @Jersyfi in #1501
- feat(plan): what a plan leaves out rests, and the screens say so by @Jersyfi in #1580
- fix(lifecycle): a long retention read-past continues across passes instead of starving by @Jersyfi in #1578
- feat(admin): the installation's events, written and read forward by @Jersyfi in #1581
- feat(identity): sign in with a passkey by @Jersyfi in #1575
- test(webapp): the passkey walk waits for the removed row before counting by @Jersyfi in #1593
- feat(quota): the workspace's own installation events, once per crossing by @Jersyfi in #1586
- feat(quota): limits and the AI rule resolve through the plan by @Jersyfi in #1579
- fix(suggestion): an AI ask ends its pending state, and a job says what it came to by @Jersyfi in #1574
Full Changelog: v0.2.0-rc.2...v0.2.0