Skip to content

Commit b841a42

Browse files
author
CometAPI
committed
docs: record 0.1.1 release evidence
1 parent 576e750 commit b841a42

6 files changed

Lines changed: 154 additions & 24 deletions

File tree

AGENTS.md

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,10 @@ proves only its own evidence layer. Never invent or mock missing evidence.
5050

5151
## Current milestone: Stable 0.1
5252

53-
Stable 0.1 is complete: `cometapi==0.1.0` is publicly available and its release
54-
and registry trust chain has been verified. Do not begin 0.2 provider adapters
55-
without a separate maintainer request that authorizes that milestone.
53+
Stable 0.1 is complete: `cometapi==0.1.1` is the latest publicly available
54+
maintenance release, and its release and registry trust chain has been
55+
verified. Do not begin 0.2 provider adapters without a separate maintainer
56+
request that authorizes that milestone.
5657

5758
Private Remote Validation, the sanitized first history, private initialization,
5859
pre-visibility closeout, public visibility configuration, Public Preview,
@@ -62,7 +63,19 @@ and version-tag rules, Private Vulnerability Reporting, immutable releases,
6263
protected environments, public default-branch CI, and protected release and
6364
registry evidence.
6465

65-
The accepted stable release evidence is:
66+
The accepted `0.1.1` maintenance release evidence is:
67+
68+
| Field | Value |
69+
| --- | --- |
70+
| Release commit and tag target | `576e7503a0a8c1103faca5143e4b8d576f8e8b44` |
71+
| Release tag | `v0.1.1` |
72+
| GitHub release | `https://github.com/cometapi-dev/cometapi-python/releases/tag/v0.1.1` |
73+
| Release workflow | `https://github.com/cometapi-dev/cometapi-python/actions/runs/30429821548` |
74+
| PyPI release | `https://pypi.org/project/cometapi/0.1.1/` |
75+
| Wheel SHA256 | `27e7904542f82fbbcd60e0de23a4a62c042420b6d004d00286d1f37d2ec4c5e5` |
76+
| Source SHA256 | `64c7cb87745032703b3374cc562ea00b979416c54908862dbcebd116b2dc44c8` |
77+
78+
The accepted `0.1.0` stable release evidence is:
6679

6780
| Field | Value |
6881
| --- | --- |
@@ -154,9 +167,9 @@ Post-stable invariants:
154167

155168
## Product contract
156169

157-
The PyPI package name is `cometapi`. Version `0.1.0` exports only the public
158-
clients `CometAPI` and `AsyncCometAPI`; `CometClient` and `AsyncCometClient`
159-
must not exist as aliases.
170+
The PyPI package name is `cometapi`. The supported 0.1 line exports only the
171+
public clients `CometAPI` and `AsyncCometAPI`; `CometClient` and
172+
`AsyncCometClient` must not exist as aliases.
160173

161174
The supported 0.1 operations are:
162175

ARCHITECTURE.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,16 @@ top-level OIDC publication, public digest and provenance comparison, and clean
144144
registry install all passed. The selector-descendant conditions were therefore
145145
verified in GitHub's hosted scheduler, not only by local static checks.
146146

147+
The same trust chain completed for maintenance release `0.1.1` in
148+
[release workflow run 30429821548](https://github.com/cometapi-dev/cometapi-python/actions/runs/30429821548).
149+
The immutable `v0.1.1` tag resolves to release commit
150+
`576e7503a0a8c1103faca5143e4b8d576f8e8b44`; exact-release live smoke, direct
151+
top-level OIDC publication, public digest and provenance comparison, and clean
152+
registry installation all passed. The public wheel SHA256 is
153+
`27e7904542f82fbbcd60e0de23a4a62c042420b6d004d00286d1f37d2ec4c5e5`, and the
154+
source-distribution SHA256 is
155+
`64c7cb87745032703b3374cc562ea00b979416c54908862dbcebd116b2dc44c8`.
156+
147157
The scheduled/manual default-branch smoke is an operational canary only; it
148158
does not prove the release commit. `COMETAPI_KEY` is exposed only to the
149159
protected exact-release live job. OIDC permission is exposed only to the

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ automation.
66

77
## [Unreleased]
88

9+
### Documentation
10+
11+
- Record completed `0.1.1` publication, live, provenance, digest, and
12+
public-registry verification evidence.
13+
914
## [0.1.1] - 2026-07-29
1015

1116
### Bug Fixes

README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# CometAPI Python SDK
22

3-
> **Stable release:** `0.1.1` is approved for PyPI publication.
3+
> **Stable release:** `0.1.1` is available from PyPI.
44
55
`cometapi` is a thin Python adapter over the official OpenAI SDK for the
66
OpenAI-compatible CometAPI endpoint. It changes the default API key and base
@@ -29,14 +29,13 @@ Project links: [CometAPI](https://www.cometapi.com),
2929

3030
## Installation
3131

32-
After the protected publication workflow and public-registry verification
33-
succeed, install the stable release from PyPI with:
32+
Install the independently verified stable release from PyPI with:
3433

3534
```bash
3635
python -m pip install 'cometapi==0.1.1'
3736
```
3837

39-
After those gates succeed, the immutable
38+
The immutable
4039
[GitHub release](https://github.com/cometapi-dev/cometapi-python/releases/tag/v0.1.1)
4140
and exact [PyPI release](https://pypi.org/project/cometapi/0.1.1/) record the
4241
published artifact.

RELEASING.md

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ and requires all of its direct dependencies to succeed. A further recovery
413413
remained blocked until that fix reached `main` and a new recovery was explicitly
414414
authorized.
415415

416-
### Completed stable release evidence
416+
### Completed `0.1.0` stable release evidence
417417

418418
- The immutable non-draft [GitHub release](https://github.com/cometapi-dev/cometapi-python/releases/tag/v0.1.0)
419419
and lightweight tag `v0.1.0` resolve to release commit
@@ -439,5 +439,50 @@ authorized.
439439
installed `cometapi==0.1.0`, verified the public imports and version, and
440440
passed all README mocked-call examples.
441441
- `RELEASE_RECOVERY_TAG` and `RELEASE_RECOVERY_SHA` were deleted immediately
442-
after recovery identity verification. `LIVE_SMOKE_ENABLED=false` is the only
443-
remaining release-related repository variable.
442+
after recovery identity verification. At that closeout,
443+
`LIVE_SMOKE_ENABLED=false` was the only remaining release-related repository
444+
variable.
445+
446+
### Completed `0.1.1` maintenance release evidence
447+
448+
- Configuration fix [PR #25](https://github.com/cometapi-dev/cometapi-python/pull/25)
449+
passed [pull-request CI run 30419881169](https://github.com/cometapi-dev/cometapi-python/actions/runs/30419881169)
450+
and squash-merged as `d02b1dba277ac72229b772d29ea1870b569edd88`.
451+
- The first
452+
[Release Please run 30420057230](https://github.com/cometapi-dev/cometapi-python/actions/runs/30420057230)
453+
failed before creating a pull request because the repository had not enabled
454+
GitHub Actions pull-request creation. It created no tag, release, live
455+
request, or PyPI file. The repository-level permission was restored without
456+
changing the read-only default workflow permission, and
457+
[PR #26](https://github.com/cometapi-dev/cometapi-python/pull/26)
458+
recorded the required preflight as
459+
`18de120c79b5a4fde5d125d56238f7f3b28e69bf`.
460+
- Fresh [Release Please run 30423490399](https://github.com/cometapi-dev/cometapi-python/actions/runs/30423490399)
461+
created [release PR #27](https://github.com/cometapi-dev/cometapi-python/pull/27).
462+
Its final head `7d24b4079b232c6c5e9b09b3d182ded230840ea8` passed
463+
[all required CI in run 30424732041](https://github.com/cometapi-dev/cometapi-python/actions/runs/30424732041),
464+
received human owner approval at that exact head, and squash-merged as
465+
`576e7503a0a8c1103faca5143e4b8d576f8e8b44`. The release commit passed
466+
[default-branch CI run 30429821579](https://github.com/cometapi-dev/cometapi-python/actions/runs/30429821579).
467+
- First-attempt [release run 30429821548](https://github.com/cometapi-dev/cometapi-python/actions/runs/30429821548)
468+
created and verified immutable non-draft release
469+
[v0.1.1](https://github.com/cometapi-dev/cometapi-python/releases/tag/v0.1.1)
470+
at the exact release commit, rebuilt and clean-installed both artifacts,
471+
passed the four-request exact-release live suite, received protected `pypi`
472+
approval, published directly from top-level `publish.yml` by OIDC with
473+
attestations, and passed public registry verification.
474+
- The exact [PyPI release](https://pypi.org/project/cometapi/0.1.1/) has wheel
475+
SHA256 `27e7904542f82fbbcd60e0de23a4a62c042420b6d004d00286d1f37d2ec4c5e5`
476+
and source-distribution SHA256
477+
`64c7cb87745032703b3374cc562ea00b979416c54908862dbcebd116b2dc44c8`.
478+
Both files match the retained pre-publication digest record. PyPI Integrity
479+
API provenance identifies repository `cometapi-dev/cometapi-python`, workflow
480+
`publish.yml`, environment `pypi`, release commit `576e7503`, and release
481+
[run attempt 1](https://github.com/cometapi-dev/cometapi-python/actions/runs/30429821548/attempts/1).
482+
- An independent post-workflow verification downloaded both public files,
483+
verified both provenance records with `pypi-attestations==0.0.29`, installed
484+
`cometapi==0.1.1` from `https://pypi.org/simple/`, verified the public version
485+
and imports, and passed supported mocked calls plus all README examples.
486+
- `RELEASE_PLEASE_ENABLED=false` and `LIVE_SMOKE_ENABLED=false`.
487+
`RELEASE_RECOVERY_TAG` and `RELEASE_RECOVERY_SHA` are absent; no recovery tag
488+
or recovery workflow was used for `0.1.1`.

ROADMAP.md

Lines changed: 68 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# CometAPI Python SDK Roadmap
22

3-
Status: `0.1.0` stable released
4-
Last updated: 2026-07-28
3+
Status: `0.1.1` stable maintenance released
4+
Last updated: 2026-07-29
55
Repository contract: this roadmap is self-contained.
66
Current gate: maintain the verified stable 0.1 surface. Begin 0.2 only after a
77
separate maintainer request authorizes its provider schemas and live contracts.
@@ -13,12 +13,12 @@ to CometAPI while preserving official request, response, error, retry, timeout,
1313
sync, async, and streaming behavior.
1414

1515
Private Remote Validation, Public Preview, the functional `0.1.0a1` Registry
16-
Alpha, and stable `0.1.0` are complete for the sanitized public repository.
17-
Protected repository configuration, public default-branch CI, exact-release
18-
live smoke, PyPI OIDC publication, provenance, digest comparison, and
19-
public-registry smoke provide separate evidence layers. Support and release
20-
claims remain limited to the evidence defined in this roadmap and
21-
`COMPATIBILITY.md`.
16+
Alpha, stable `0.1.0`, and maintenance release `0.1.1` are complete for the
17+
sanitized public repository. Protected repository configuration, public
18+
default-branch CI, exact-release live smoke, PyPI OIDC publication, provenance,
19+
digest comparison, and public-registry smoke provide separate evidence layers.
20+
Support and release claims remain limited to the evidence defined in this
21+
roadmap and `COMPATIBILITY.md`.
2222

2323
## Milestones
2424

@@ -29,6 +29,7 @@ claims remain limited to the evidence defined in this roadmap and
2929
| Public Preview | Complete | The public repository has blocking CI, repository rules, security reporting, protected environments, immutable releases, and authorized live-smoke evidence. |
3030
| `0.1.0a1` Registry Alpha | Complete | Early adopters can install the functional prerelease from PyPI; every release and registry gate passed. |
3131
| `0.1.0` stable | Complete | Complete runtime, release-PR, example, provenance, and registry gates passed. |
32+
| `0.1.1` maintenance | Complete | Configuration validation and every stable release, live, provenance, and registry gate passed. |
3233
| `0.2.0` provider-native text | Planned | Optional official Anthropic and Gemini adapters. |
3334
| `0.3.0` CometAPI resources | Planned | First schema-backed typed CometAPI-specific resource. |
3435
| Media and task APIs | Planned | Coherent task lifecycle precedes individual media helpers. |
@@ -505,8 +506,65 @@ and source-distribution SHA256
505506
`e9308b44f6091200b5121e24d1a0e1b9ea3e6bcccc109d6de87554b1ab2a8bca`.
506507
Both files matched retained pre-publication evidence and independently verified
507508
Trusted Publisher provenance. Recovery variables were removed immediately
508-
after identity verification; `LIVE_SMOKE_ENABLED=false` is the only remaining
509-
release-related repository variable.
509+
after identity verification. At that closeout, `LIVE_SMOKE_ENABLED=false` was
510+
the only remaining release-related repository variable.
511+
512+
## `0.1.1`: Configuration validation maintenance
513+
514+
Maintenance release `0.1.1` rejects explicitly blank API keys and base URLs,
515+
treats a blank environment key as missing, and uses the default CometAPI URL
516+
for a blank environment base URL. It trims surrounding string whitespace,
517+
including the Node-compatible byte-order mark boundary, without changing
518+
callable keys or `httpx.URL` values. Inherited copy helpers remain fail-closed
519+
against provider routing, workload identity, and private-option injection.
520+
521+
[Fix PR #25](https://github.com/cometapi-dev/cometapi-python/pull/25) passed
522+
[pull-request CI run 30419881169](https://github.com/cometapi-dev/cometapi-python/actions/runs/30419881169)
523+
and squash-merged as `d02b1dba277ac72229b772d29ea1870b569edd88`.
524+
The first authorized
525+
[Release Please run 30420057230](https://github.com/cometapi-dev/cometapi-python/actions/runs/30420057230)
526+
failed before creating a pull request because GitHub Actions lacked permission
527+
to create pull requests; it created no tag, release, live request, or PyPI file.
528+
The permission was restored while default workflow permissions remained
529+
read-only, and
530+
[PR #26](https://github.com/cometapi-dev/cometapi-python/pull/26) recorded the
531+
preflight as `18de120c79b5a4fde5d125d56238f7f3b28e69bf`.
532+
533+
Fresh [Release Please run 30423490399](https://github.com/cometapi-dev/cometapi-python/actions/runs/30423490399)
534+
created [release PR #27](https://github.com/cometapi-dev/cometapi-python/pull/27).
535+
Its final head `7d24b4079b232c6c5e9b09b3d182ded230840ea8` passed all nine
536+
required checks in
537+
[run 30424732041](https://github.com/cometapi-dev/cometapi-python/actions/runs/30424732041)
538+
and received an exact-head human owner approval. It squash-merged as release
539+
commit `576e7503a0a8c1103faca5143e4b8d576f8e8b44`, which passed
540+
[default-branch CI run 30429821579](https://github.com/cometapi-dev/cometapi-python/actions/runs/30429821579).
541+
542+
First-attempt
543+
[release run 30429821548](https://github.com/cometapi-dev/cometapi-python/actions/runs/30429821548)
544+
created and verified the immutable non-draft
545+
[GitHub release](https://github.com/cometapi-dev/cometapi-python/releases/tag/v0.1.1)
546+
and lightweight tag `v0.1.1` at that exact release commit. The run selected the
547+
verified release identity, rebuilt and independently installed both artifacts,
548+
and passed the exact-release live suite with four serial requests, at most 16
549+
output tokens per request, a 30-second request timeout, and stop-on-first-failure.
550+
After protected `pypi` approval, the same top-level `publish.yml` published by
551+
OIDC with attestations and passed public registry verification.
552+
553+
The exact [PyPI release](https://pypi.org/project/cometapi/0.1.1/) has wheel
554+
SHA256 `27e7904542f82fbbcd60e0de23a4a62c042420b6d004d00286d1f37d2ec4c5e5`
555+
and source-distribution SHA256
556+
`64c7cb87745032703b3374cc562ea00b979416c54908862dbcebd116b2dc44c8`.
557+
Both files matched the retained pre-publication digest record. Their PyPI
558+
Integrity API provenance names repository `cometapi-dev/cometapi-python`,
559+
workflow `publish.yml`, environment `pypi`, release commit `576e7503`, and
560+
[run attempt 1](https://github.com/cometapi-dev/cometapi-python/actions/runs/30429821548/attempts/1).
561+
An independent post-workflow verification downloaded both public files,
562+
verified their provenance with `pypi-attestations==0.0.29`, installed
563+
`cometapi==0.1.1` from the public simple index, checked version and public
564+
imports, and passed every supported mocked call and README example.
565+
566+
`RELEASE_PLEASE_ENABLED=false` and `LIVE_SMOKE_ENABLED=false`. Recovery
567+
variables are absent. No recovery tag or recovery workflow was used.
510568

511569
## `0.2.0`: Provider-native text adapters
512570

0 commit comments

Comments
 (0)