Repository navigation
Release health - unreleased work or an incomplete publish #1255
Copy link
Copy link
Closed
Description
Automated release-health check. This issue is rewritten in place on every run and closed automatically once every gap below is closed; it is never duplicated.
Last evaluated: 2026-10-18T16:11:48.943368+00:00 (run)
unreleased-work — 97 releasable commit(s) unpublished for 19h 17m
main has been carrying 97 releasable commit(s) for 19h 17m past v1.17.0. main CI is green and no release run is in flight, so nothing is going to publish these on its own.
Next version would be a minor bump.
| commit | bump | age | subject |
|---|---|---|---|
7c73ea42 |
patch | 19h 17m | fix(qualify): a fault passes only if nothing landed and the engine halted; refusal paths carry only ids |
9b38e4a6 |
patch | 19h 17m | fix(qualify): mypy narrowing, register the verify.yaml files, use the web observer in the MockMed CLI test |
54d02beb |
patch | 19h 17m | fix(compile): attach identity evidence only where the step's surface can verify it |
c7c0ebe8 |
minor | 19h 13m | feat(approval): approver identity, approver policy, approval record and read-back ladder |
cc7ade81 |
minor | 19h 13m | feat(approval): align approver identity and read-back tiers with RFC-0002 |
272a8d34 |
patch | 19h 13m | fix(approval): independent_readback means a read that skips the UI |
d016558e |
minor | 19h 12m | feat(decision): add save features, the v0 clean rule and the provider boundary |
eaa8fdd8 |
minor | 19h 12m | feat(decision): triage verified saves into per-item review and one batch approval |
7b851843 |
minor | 19h 12m | feat(cli): add openadapt-flow triage, a synthetic evaluation and docs |
b6cc9421 |
minor | 19h 12m | feat(approval): delegated approvers, read-back field checks and eligibility |
939f9158 |
patch | 19h 12m | fix(cli): read the run's policy name when the command has no --policy |
111386e5 |
minor | 19h 8m | feat(repair): propose a branch after a step is repaired more than once |
349bc198 |
patch | 19h 8m | fix(repair): a failed branch proposal never loses the single-step candidate |
518e080d |
minor | 19h 8m | feat(mcp): read the approval mode; answer a waiting save as a delegated agent |
22aac880 |
patch | 19h 6m | perf(demo): use the installed browser and one browser process |
2f06e6b9 |
minor | 19h 6m | feat(ocr): native OCR backend and an OpenCV-free replay path (opt-in) |
f4c4e4ae |
patch | 19h 6m | perf(demo): load OpenCV while the browser starts; show stage progress |
e64f305e |
patch | 19h 6m | fix(demo): keep progress on one terminal line |
973077d5 |
patch | 19h 6m | fix(vision): a flat template matches nowhere on the numpy path |
4e49380a |
patch | 19h 6m | fix(browser): launch the same browser on every web path |
6155bf94 |
patch | 19h 6m | fix(identity): require a second identifying field when OCR evidence is thin |
3767053f |
minor | 18h 51m | feat(verify-run): read the same verify.yaml qualify reads |
812b7b40 |
patch | 18h 37m | perf(demo): load Vision without PyObjC wrappers; start prewarm earlier |
2784d6ff |
patch | 18h 37m | fix(prewarm): warm the OCR engine with a PNG it can decode |
2d620eb2 |
minor | 17h 42m | feat(shadow): local, opt-in detection of repeated work (#156) |
66b99c99 |
patch | 17h 21m | fix(recorder): keep late progress updates from rewriting the state being sealed (#158) |
0df2fde1 |
patch | 17h 14m | fix: point CLI help and built-in URLs at the docs glossary and the monorepo (#1200) |
5bb638e2 |
patch | 17h 10m | fix(capture): validate the changelog without the launcher's tags in the monorepo |
01b75c2f |
minor | 16h 51m | feat(flow): read-back verifiers taught by demonstration, with assurance grades (#1203) |
6bc01275 |
patch | 16h 51m | fix(flow): list the folded contract schemas in public-artifacts.json and gate it in CI |
95854456 |
minor | 16h 45m | feat(distill): prune dead-end spans that leave screen and record unchanged |
ba9048fd |
minor | 16h 45m | feat(compiler): opt-in param binding for mined effects; SoR reader in AuthoringSession |
f365d811 |
minor | 16h 45m | feat(jit): compile_agent wraps a computer-use agent with a compiled, admitted Flow program |
2ed5087d |
minor | 16h 45m | feat(jit): generic action dialect and register_dialect for other CUA formats |
2efa74ec |
minor | 16h 45m | feat(jit): DRAFT to ADMITTED lifecycle, customer model keys, recording warning |
af4dd177 |
patch | 16h 45m | fix(jit): close draft and admission gaps found in review |
d10c5ad6 |
patch | 16h 45m | fix(jit): refuse an unadmitted draft on every execution path |
3f0df219 |
minor | 16h 45m | feat(jit): admit by registered key or by an agent under a signed policy |
35764dcb |
patch | 16h 45m | fix(jit): admit() by name needs an interactive terminal |
cf8ec35c |
patch | 16h 45m | fix(jit): print the jit register hint through cli_hints.command() |
d194744c |
minor | 16h 27m | feat(notary): RFC 3161 timestamps and salted field commitments |
c8289c71 |
minor | 16h 27m | feat(notary): notarize, countersign, and verify Seals with executor and tier shown |
746c70c8 |
minor | 16h 27m | feat(notary): offline dispute dossier, tests, and docs |
6174a1b0 |
minor | 16h 27m | feat(notary): Sigstore TSA by default, with its root pinned |
41779f20 |
patch | 16h 27m | fix(countersign): harden RFC 3161 checks, never keep an unchecked token |
dbc6cc92 |
minor | 16h 27m | feat(countersign): local exception queue with two terminal states |
77265092 |
minor | 16h 27m | feat(countersign): timestamp skew warning, TSA facts, counsel wording |
57b1dd07 |
minor | 16h 27m | feat(countersign): dossier lists every exception with bucket totals |
26371563 |
patch | 15h 58m | fix(countersign): require ESS signing-certificate-v2, refuse SHA-1 ESS v1 |
58ddb136 |
minor | 15h 21m | feat(flow): offline Seals by default, batched timestamps, strict no-outbound mode |
74e59f22 |
patch | 15h 17m | fix(flow): the drift oracle never rescues a postcondition on an irreversible or effect-bearing step |
2261f5ae |
patch | 15h 12m | fix(flow): type the local Seal schema constants as Final literals for mypy |
c7c62189 |
minor | 15h 12m | feat(flow): unattended on-prem service with health checks, restart and egress audit |
e71fde3d |
minor | 15h 8m | feat(flow): lift look-alike identity stops against a complete known-ID list |
0340a30f |
minor | 14h 44m | feat(flow): detect font and layout drift and halt with a named reason |
fa90454d |
minor | 14h 40m | feat(flow): headless FreeRDP transport with fixed session profile and session pool |
67eb4b81 |
patch | 14h 33m | fix(flow): keep a program's own handler for a write step whose check failed |
7bc98a43 |
minor | 14h 9m | feat(flow): qualify on the deployment surface and halt when lookups are missing |
fdca5a8b |
minor | 13h 47m | feat(flow): derive the no-outbound allow list from the session profile |
caa0c1c4 |
patch | 13h 44m | fix(flow): close five fail-open gaps in JIT admission, approvals and fix-up passes |
3562f676 |
minor | 13h 42m | feat(flow): record --verify reads the system of record around a recording and proposes its checks |
dcacd2ab |
minor | 13h 40m | feat(flow): session-derived allow list, restart policy and pf rules for the on-prem service |
f03800cb |
minor | 13h 32m | feat(flow): person-signed approver grants, no self-approval, one-tap phone approval |
92ce90af |
minor | 13h 30m | feat(flow): SMART Backend Services token source for fhir record checks |
00e6bd81 |
minor | 13h 23m | feat(flow): run the layout-drift check in the replayer, on by default for remote desktop |
80c3c996 |
minor | 13h 16m | feat(flow): confirm the known-ID export at admission and read a fresh screenshot |
8e186a9a |
minor | 13h 14m | feat(flow): save and load a FreeRDP session file |
8f0a0c2e |
minor | 12h 44m | feat(repair): fleet_patch source and policy pre-approval in the lifecycle |
5e3d7a43 |
minor | 12h 44m | feat(fleet): signed structural patches for app UI drift across tenants |
bfd89f61 |
patch | 12h 44m | fix(fleet): refuse data-* values, URLs in frame paths, and generated class names |
11c16bdd |
minor | 12h 44m | feat(fleet): offline root key, short-lived signer certificates, and signed fleet status |
dfc87338 |
minor | 12h 44m | feat(fleet): hub re-signing, three-tenant rule, and opt-in export and import |
e7603ec3 |
minor | 12h 44m | feat(fleet): role-separated signed policy and fail-closed auto-promotion |
de24f7da |
minor | 12h 44m | feat(cli): add the fleet command for opt-in, roles and policy signing |
d9491799 |
minor | 12h 44m | feat(fleet): allow static values on test-hook attributes |
c624c444 |
minor | 12h 44m | feat(fleet): refuse replayed fleet status with a persisted sequence high-water mark |
903fa322 |
patch | 12h 44m | fix(fleet): a malformed kill-switch entry no longer hides the others |
d6a3d496 |
patch | 12h 44m | fix(fleet): revoked contributors no longer count toward the three-tenant rule |
494ae3b9 |
patch | 12h 44m | fix(fleet): catch names written together and name-like ids and classes |
61b4421c |
patch | 12h 44m | fix(fleet): honour a revoked root key, and check revocation in one place |
953d0d13 |
patch | 12h 44m | fix(fleet): remove the bundle copy when registering an import fails |
e81919e1 |
patch | 12h 44m | fix(fleet): validate approver keys, person ids and policy app families |
fb388e68 |
patch | 12h 44m | fix(repair): approve_under_policy verifies the policy and fleet status itself |
330ed40f |
patch | 12h 44m | fix(fleet): lock status-state.json and hub state during read-modify-write |
41b06cae |
patch | 12h 44m | fix(fleet): encrypt the policy approver key, or refuse without --unencrypted |
15838177 |
patch | 12h 34m | fix(flow): name approver-grant through command() in the refusal hint |
500e0290 |
patch | 10h 19m | fix(flow): don't start the OCR prewarm for --help, and wait for it at exit |
4eed4bce |
patch | 10h 12m | fix(approval): a phone answer reaches a run that stopped waiting |
66739590 |
patch | 10h 6m | fix(manifest): pin openadapt-privacy v1.1.2 to its rewritten commit |
cbef0df6 |
minor | 10h 1m | feat(jit): let the recording agent admit its own draft when the policy allows it |
91547b8a |
minor | 9h 58m | feat(flow): one check-level ladder for how well a save was checked |
57fa0912 |
patch | 9h 47m | fix(flow): a known-ID lift must resolve to the recorded identifier |
c260111e |
patch | 9h 40m | fix(identity): a read of a different record is final |
26f6d299 |
patch | 9h 21m | fix(record): never print a verifier config's secrets in an error |
e485fdad |
patch | 9h 20m | fix(smart): TLS verification can be off only for a loopback host |
82871116 |
patch | 9h 18m | fix(qualify): a certified bundle without a lookup record halts on pixels-only surfaces |
083bac33 |
patch | 8h 33m | fix(identity): only a read that contradicts the record is final |
Most recent release run: 38801936856 — completed/failure.
Publish with:
# First merge the reviewed version, changelog, lockfile, and candidate state. Then create the tag from exact main.
gh workflow run release-and-publish.yml --repo OpenAdaptAI/OpenAdapt --ref main -f version=<reviewed-version>
# If that exact tag run partially failed, rerun it. Do not create a recovery tag.
gh run rerun --repo OpenAdaptAI/OpenAdapt <tag-run-id>Everything the check considered and cleared
- [launcher] tag v0.36.1 has no release object; acknowledged: 2024-07-06 legacy monorepo tag. No release object was ever created and 0.36.1 was never published to PyPI (the index jumps 0.35.x -> 0.39.1). Permanently historical: acknowledged here rather than left to alert forever, because a guard that is always red is a guard nobody reads.
- [launcher] openadapt 1.17.0 is on PyPI.
Reproduce locally with python scripts/check_release_health.py.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
github-actions commentedon Oct 18, 2026
Every release lane is published and current as of https://github.com/OpenAdaptAI/OpenAdapt/actions/runs/39165885100. Closing automatically.