Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,10 +44,8 @@ jobs:
run: uv run pyright
- name: Run offline unit and contract tests
run: uv run pytest -m "not live"
- name: Check release version agreement
run: uv run python scripts/check_version.py --require-changelog
- name: Check canonical public content and identity
run: uv run python scripts/check_version.py --require-public-preview-docs
- name: Check version agreement and durable public content
run: uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
- name: Scan for credentials and scope mistakes
run: uv run python scripts/check_secrets.py
- name: Validate workflow syntax with checksum-pinned actionlint
Expand Down
19 changes: 14 additions & 5 deletions AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,10 +50,13 @@ proves only its own evidence layer. Never invent or mock missing evidence.

## Current milestone: Stable 0.1

Stable 0.1 is complete: `cometapi==0.1.1` is the latest publicly available
maintenance release, and its release and registry trust chain has been
verified. Do not begin 0.2 provider adapters without a separate maintainer
request that authorizes that milestone.
Verified stable `0.1.x` maintenance releases are available from PyPI. The
public PyPI registry is authoritative for the latest published version.
`pyproject.toml` and `.release-please-manifest.json` are authoritative for the
current repository candidate and must agree; a candidate must not be described
as published. `ROADMAP.md`, `RELEASING.md`, and `CHANGELOG.md` retain exact
versions only as dated immutable historical evidence. Do not begin 0.2 provider
adapters without a separate maintainer request that authorizes that milestone.

Private Remote Validation, the sanitized first history, private initialization,
pre-visibility closeout, public visibility configuration, Public Preview,
Expand DownExpand Up@@ -174,6 +177,12 @@ Post-stable invariants:
release-link text in both source and built artifact metadata, and require
each built long description to exactly match the source README. Post-release
evidence changes must not rewrite README release state.
11. Never encode a mutable "latest/current published patch version" in
persistent guidance or current-state documentation. Query public PyPI when
current registry state is required. Keep candidate version truth in
`pyproject.toml` and `.release-please-manifest.json`, and keep exact released
versions only in immutable historical evidence. The document/version
checker must fail before merge or release when this boundary is violated.

## Repository independence

Expand DownExpand Up@@ -270,7 +279,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -180,7 +180,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion RELEASING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -83,7 +83,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
16 changes: 8 additions & 8 deletions ROADMAP.md
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
# CometAPI Python SDK Roadmap

Status: `0.1.2` stable maintenance released
Status: Stable `0.1.x` maintenance active
Last updated: 2026-07-30
Repository contract: this roadmap is self-contained.
Current gate: maintain the verified stable 0.1 surface. Begin 0.2 only after a
Expand All@@ -12,13 +12,13 @@ The SDK provides the shortest reliable path from an OpenAI Python integration
to CometAPI while preserving official request, response, error, retry, timeout,
sync, async, and streaming behavior.

Private Remote Validation, Public Preview, the functional `0.1.0a1` Registry
Alpha, stable `0.1.0`, and maintenance releases `0.1.1` and `0.1.2` are complete
for the sanitized public repository. Protected repository configuration,
public default-branch CI, exact-release live smoke, PyPI OIDC publication,
provenance, digest comparison, and public-registry smoke provide separate
evidence layers. Only 0.1.x maintenance is active; `0.1.2` does not activate
0.2 scope.
Private Remote Validation, Public Preview, the functional Registry Alpha, the
first stable release, and verified `0.1.x` maintenance releases are complete
for the sanitized public repository and recorded below as immutable evidence.
Protected repository configuration, public default-branch CI, exact-release
live smoke, PyPI OIDC publication, provenance, digest comparison, and
public-registry smoke provide separate evidence layers. Only 0.1.x maintenance
is active; no maintenance release activates 0.2 scope.
Support and release claims remain limited to the evidence defined in this
roadmap and `COMPATIBILITY.md`.

Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,10 +44,8 @@ jobs:
run: uv run pyright
- name: Run offline unit and contract tests
run: uv run pytest -m "not live"
- name: Check release version agreement
run: uv run python scripts/check_version.py --require-changelog
- name: Check canonical public content and identity
run: uv run python scripts/check_version.py --require-public-preview-docs
- name: Check version agreement and durable public content
run: uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
- name: Scan for credentials and scope mistakes
run: uv run python scripts/check_secrets.py
- name: Validate workflow syntax with checksum-pinned actionlint
Expand Down
19 changes: 14 additions & 5 deletions AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,10 +50,13 @@ proves only its own evidence layer. Never invent or mock missing evidence.

## Current milestone: Stable 0.1

Stable 0.1 is complete: `cometapi==0.1.1` is the latest publicly available
maintenance release, and its release and registry trust chain has been
verified. Do not begin 0.2 provider adapters without a separate maintainer
request that authorizes that milestone.
Verified stable `0.1.x` maintenance releases are available from PyPI. The
public PyPI registry is authoritative for the latest published version.
`pyproject.toml` and `.release-please-manifest.json` are authoritative for the
current repository candidate and must agree; a candidate must not be described
as published. `ROADMAP.md`, `RELEASING.md`, and `CHANGELOG.md` retain exact
versions only as dated immutable historical evidence. Do not begin 0.2 provider
adapters without a separate maintainer request that authorizes that milestone.

Private Remote Validation, the sanitized first history, private initialization,
pre-visibility closeout, public visibility configuration, Public Preview,
Expand DownExpand Up@@ -174,6 +177,12 @@ Post-stable invariants:
release-link text in both source and built artifact metadata, and require
each built long description to exactly match the source README. Post-release
evidence changes must not rewrite README release state.
11. Never encode a mutable "latest/current published patch version" in
persistent guidance or current-state documentation. Query public PyPI when
current registry state is required. Keep candidate version truth in
`pyproject.toml` and `.release-please-manifest.json`, and keep exact released
versions only in immutable historical evidence. The document/version
checker must fail before merge or release when this boundary is violated.

## Repository independence

Expand DownExpand Up@@ -270,7 +279,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -180,7 +180,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion RELEASING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -83,7 +83,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
16 changes: 8 additions & 8 deletions ROADMAP.md
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
# CometAPI Python SDK Roadmap

Status: `0.1.2` stable maintenance released
Status: Stable `0.1.x` maintenance active
Last updated: 2026-07-30
Repository contract: this roadmap is self-contained.
Current gate: maintain the verified stable 0.1 surface. Begin 0.2 only after a
Expand All@@ -12,13 +12,13 @@ The SDK provides the shortest reliable path from an OpenAI Python integration
to CometAPI while preserving official request, response, error, retry, timeout,
sync, async, and streaming behavior.

Private Remote Validation, Public Preview, the functional `0.1.0a1` Registry
Alpha, stable `0.1.0`, and maintenance releases `0.1.1` and `0.1.2` are complete
for the sanitized public repository. Protected repository configuration,
public default-branch CI, exact-release live smoke, PyPI OIDC publication,
provenance, digest comparison, and public-registry smoke provide separate
evidence layers. Only 0.1.x maintenance is active; `0.1.2` does not activate
0.2 scope.
Private Remote Validation, Public Preview, the functional Registry Alpha, the
first stable release, and verified `0.1.x` maintenance releases are complete
for the sanitized public repository and recorded below as immutable evidence.
Protected repository configuration, public default-branch CI, exact-release
live smoke, PyPI OIDC publication, provenance, digest comparison, and
public-registry smoke provide separate evidence layers. Only 0.1.x maintenance
is active; no maintenance release activates 0.2 scope.
Support and release claims remain limited to the evidence defined in this
roadmap and `COMPATIBILITY.md`.

Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,10 +44,8 @@ jobs:
run: uv run pyright
- name: Run offline unit and contract tests
run: uv run pytest -m "not live"
- name: Check release version agreement
run: uv run python scripts/check_version.py --require-changelog
- name: Check canonical public content and identity
run: uv run python scripts/check_version.py --require-public-preview-docs
- name: Check version agreement and durable public content
run: uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
- name: Scan for credentials and scope mistakes
run: uv run python scripts/check_secrets.py
- name: Validate workflow syntax with checksum-pinned actionlint
Expand Down
19 changes: 14 additions & 5 deletions AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,10 +50,13 @@ proves only its own evidence layer. Never invent or mock missing evidence.

## Current milestone: Stable 0.1

Stable 0.1 is complete: `cometapi==0.1.1` is the latest publicly available
maintenance release, and its release and registry trust chain has been
verified. Do not begin 0.2 provider adapters without a separate maintainer
request that authorizes that milestone.
Verified stable `0.1.x` maintenance releases are available from PyPI. The
public PyPI registry is authoritative for the latest published version.
`pyproject.toml` and `.release-please-manifest.json` are authoritative for the
current repository candidate and must agree; a candidate must not be described
as published. `ROADMAP.md`, `RELEASING.md`, and `CHANGELOG.md` retain exact
versions only as dated immutable historical evidence. Do not begin 0.2 provider
adapters without a separate maintainer request that authorizes that milestone.

Private Remote Validation, the sanitized first history, private initialization,
pre-visibility closeout, public visibility configuration, Public Preview,
Expand DownExpand Up@@ -174,6 +177,12 @@ Post-stable invariants:
release-link text in both source and built artifact metadata, and require
each built long description to exactly match the source README. Post-release
evidence changes must not rewrite README release state.
11. Never encode a mutable "latest/current published patch version" in
persistent guidance or current-state documentation. Query public PyPI when
current registry state is required. Keep candidate version truth in
`pyproject.toml` and `.release-please-manifest.json`, and keep exact released
versions only in immutable historical evidence. The document/version
checker must fail before merge or release when this boundary is violated.

## Repository independence

Expand DownExpand Up@@ -270,7 +279,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -180,7 +180,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion RELEASING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -83,7 +83,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
16 changes: 8 additions & 8 deletions ROADMAP.md
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
# CometAPI Python SDK Roadmap

Status: `0.1.2` stable maintenance released
Status: Stable `0.1.x` maintenance active
Last updated: 2026-07-30
Repository contract: this roadmap is self-contained.
Current gate: maintain the verified stable 0.1 surface. Begin 0.2 only after a
Expand All@@ -12,13 +12,13 @@ The SDK provides the shortest reliable path from an OpenAI Python integration
to CometAPI while preserving official request, response, error, retry, timeout,
sync, async, and streaming behavior.

Private Remote Validation, Public Preview, the functional `0.1.0a1` Registry
Alpha, stable `0.1.0`, and maintenance releases `0.1.1` and `0.1.2` are complete
for the sanitized public repository. Protected repository configuration,
public default-branch CI, exact-release live smoke, PyPI OIDC publication,
provenance, digest comparison, and public-registry smoke provide separate
evidence layers. Only 0.1.x maintenance is active; `0.1.2` does not activate
0.2 scope.
Private Remote Validation, Public Preview, the functional Registry Alpha, the
first stable release, and verified `0.1.x` maintenance releases are complete
for the sanitized public repository and recorded below as immutable evidence.
Protected repository configuration, public default-branch CI, exact-release
live smoke, PyPI OIDC publication, provenance, digest comparison, and
public-registry smoke provide separate evidence layers. Only 0.1.x maintenance
is active; no maintenance release activates 0.2 scope.
Support and release claims remain limited to the evidence defined in this
roadmap and `COMPATIBILITY.md`.

Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,10 +44,8 @@ jobs:
run: uv run pyright
- name: Run offline unit and contract tests
run: uv run pytest -m "not live"
- name: Check release version agreement
run: uv run python scripts/check_version.py --require-changelog
- name: Check canonical public content and identity
run: uv run python scripts/check_version.py --require-public-preview-docs
- name: Check version agreement and durable public content
run: uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
- name: Scan for credentials and scope mistakes
run: uv run python scripts/check_secrets.py
- name: Validate workflow syntax with checksum-pinned actionlint
Expand Down
19 changes: 14 additions & 5 deletions AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,10 +50,13 @@ proves only its own evidence layer. Never invent or mock missing evidence.

## Current milestone: Stable 0.1

Stable 0.1 is complete: `cometapi==0.1.1` is the latest publicly available
maintenance release, and its release and registry trust chain has been
verified. Do not begin 0.2 provider adapters without a separate maintainer
request that authorizes that milestone.
Verified stable `0.1.x` maintenance releases are available from PyPI. The
public PyPI registry is authoritative for the latest published version.
`pyproject.toml` and `.release-please-manifest.json` are authoritative for the
current repository candidate and must agree; a candidate must not be described
as published. `ROADMAP.md`, `RELEASING.md`, and `CHANGELOG.md` retain exact
versions only as dated immutable historical evidence. Do not begin 0.2 provider
adapters without a separate maintainer request that authorizes that milestone.

Private Remote Validation, the sanitized first history, private initialization,
pre-visibility closeout, public visibility configuration, Public Preview,
Expand DownExpand Up@@ -174,6 +177,12 @@ Post-stable invariants:
release-link text in both source and built artifact metadata, and require
each built long description to exactly match the source README. Post-release
evidence changes must not rewrite README release state.
11. Never encode a mutable "latest/current published patch version" in
persistent guidance or current-state documentation. Query public PyPI when
current registry state is required. Keep candidate version truth in
`pyproject.toml` and `.release-please-manifest.json`, and keep exact released
versions only in immutable historical evidence. The document/version
checker must fail before merge or release when this boundary is violated.

## Repository independence

Expand DownExpand Up@@ -270,7 +279,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -180,7 +180,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion RELEASING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -83,7 +83,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
16 changes: 8 additions & 8 deletions ROADMAP.md
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
# CometAPI Python SDK Roadmap

Status: `0.1.2` stable maintenance released
Status: Stable `0.1.x` maintenance active
Last updated: 2026-07-30
Repository contract: this roadmap is self-contained.
Current gate: maintain the verified stable 0.1 surface. Begin 0.2 only after a
Expand All@@ -12,13 +12,13 @@ The SDK provides the shortest reliable path from an OpenAI Python integration
to CometAPI while preserving official request, response, error, retry, timeout,
sync, async, and streaming behavior.

Private Remote Validation, Public Preview, the functional `0.1.0a1` Registry
Alpha, stable `0.1.0`, and maintenance releases `0.1.1` and `0.1.2` are complete
for the sanitized public repository. Protected repository configuration,
public default-branch CI, exact-release live smoke, PyPI OIDC publication,
provenance, digest comparison, and public-registry smoke provide separate
evidence layers. Only 0.1.x maintenance is active; `0.1.2` does not activate
0.2 scope.
Private Remote Validation, Public Preview, the functional Registry Alpha, the
first stable release, and verified `0.1.x` maintenance releases are complete
for the sanitized public repository and recorded below as immutable evidence.
Protected repository configuration, public default-branch CI, exact-release
live smoke, PyPI OIDC publication, provenance, digest comparison, and
public-registry smoke provide separate evidence layers. Only 0.1.x maintenance
is active; no maintenance release activates 0.2 scope.
Support and release claims remain limited to the evidence defined in this
roadmap and `COMPATIBILITY.md`.

Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,10 +44,8 @@ jobs:
run: uv run pyright
- name: Run offline unit and contract tests
run: uv run pytest -m "not live"
- name: Check release version agreement
run: uv run python scripts/check_version.py --require-changelog
- name: Check canonical public content and identity
run: uv run python scripts/check_version.py --require-public-preview-docs
- name: Check version agreement and durable public content
run: uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
- name: Scan for credentials and scope mistakes
run: uv run python scripts/check_secrets.py
- name: Validate workflow syntax with checksum-pinned actionlint
Expand Down
19 changes: 14 additions & 5 deletions AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,10 +50,13 @@ proves only its own evidence layer. Never invent or mock missing evidence.

## Current milestone: Stable 0.1

Stable 0.1 is complete: `cometapi==0.1.1` is the latest publicly available
maintenance release, and its release and registry trust chain has been
verified. Do not begin 0.2 provider adapters without a separate maintainer
request that authorizes that milestone.
Verified stable `0.1.x` maintenance releases are available from PyPI. The
public PyPI registry is authoritative for the latest published version.
`pyproject.toml` and `.release-please-manifest.json` are authoritative for the
current repository candidate and must agree; a candidate must not be described
as published. `ROADMAP.md`, `RELEASING.md`, and `CHANGELOG.md` retain exact
versions only as dated immutable historical evidence. Do not begin 0.2 provider
adapters without a separate maintainer request that authorizes that milestone.

Private Remote Validation, the sanitized first history, private initialization,
pre-visibility closeout, public visibility configuration, Public Preview,
Expand DownExpand Up@@ -174,6 +177,12 @@ Post-stable invariants:
release-link text in both source and built artifact metadata, and require
each built long description to exactly match the source README. Post-release
evidence changes must not rewrite README release state.
11. Never encode a mutable "latest/current published patch version" in
persistent guidance or current-state documentation. Query public PyPI when
current registry state is required. Keep candidate version truth in
`pyproject.toml` and `.release-please-manifest.json`, and keep exact released
versions only in immutable historical evidence. The document/version
checker must fail before merge or release when this boundary is violated.

## Repository independence

Expand DownExpand Up@@ -270,7 +279,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -180,7 +180,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion RELEASING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -83,7 +83,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
16 changes: 8 additions & 8 deletions ROADMAP.md
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
# CometAPI Python SDK Roadmap

Status: `0.1.2` stable maintenance released
Status: Stable `0.1.x` maintenance active
Last updated: 2026-07-30
Repository contract: this roadmap is self-contained.
Current gate: maintain the verified stable 0.1 surface. Begin 0.2 only after a
Expand All@@ -12,13 +12,13 @@ The SDK provides the shortest reliable path from an OpenAI Python integration
to CometAPI while preserving official request, response, error, retry, timeout,
sync, async, and streaming behavior.

Private Remote Validation, Public Preview, the functional `0.1.0a1` Registry
Alpha, stable `0.1.0`, and maintenance releases `0.1.1` and `0.1.2` are complete
for the sanitized public repository. Protected repository configuration,
public default-branch CI, exact-release live smoke, PyPI OIDC publication,
provenance, digest comparison, and public-registry smoke provide separate
evidence layers. Only 0.1.x maintenance is active; `0.1.2` does not activate
0.2 scope.
Private Remote Validation, Public Preview, the functional Registry Alpha, the
first stable release, and verified `0.1.x` maintenance releases are complete
for the sanitized public repository and recorded below as immutable evidence.
Protected repository configuration, public default-branch CI, exact-release
live smoke, PyPI OIDC publication, provenance, digest comparison, and
public-registry smoke provide separate evidence layers. Only 0.1.x maintenance
is active; no maintenance release activates 0.2 scope.
Support and release claims remain limited to the evidence defined in this
roadmap and `COMPATIBILITY.md`.

Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,10 +44,8 @@ jobs:
run: uv run pyright
- name: Run offline unit and contract tests
run: uv run pytest -m "not live"
- name: Check release version agreement
run: uv run python scripts/check_version.py --require-changelog
- name: Check canonical public content and identity
run: uv run python scripts/check_version.py --require-public-preview-docs
- name: Check version agreement and durable public content
run: uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
- name: Scan for credentials and scope mistakes
run: uv run python scripts/check_secrets.py
- name: Validate workflow syntax with checksum-pinned actionlint
Expand Down
19 changes: 14 additions & 5 deletions AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,10 +50,13 @@ proves only its own evidence layer. Never invent or mock missing evidence.

## Current milestone: Stable 0.1

Stable 0.1 is complete: `cometapi==0.1.1` is the latest publicly available
maintenance release, and its release and registry trust chain has been
verified. Do not begin 0.2 provider adapters without a separate maintainer
request that authorizes that milestone.
Verified stable `0.1.x` maintenance releases are available from PyPI. The
public PyPI registry is authoritative for the latest published version.
`pyproject.toml` and `.release-please-manifest.json` are authoritative for the
current repository candidate and must agree; a candidate must not be described
as published. `ROADMAP.md`, `RELEASING.md`, and `CHANGELOG.md` retain exact
versions only as dated immutable historical evidence. Do not begin 0.2 provider
adapters without a separate maintainer request that authorizes that milestone.

Private Remote Validation, the sanitized first history, private initialization,
pre-visibility closeout, public visibility configuration, Public Preview,
Expand DownExpand Up@@ -174,6 +177,12 @@ Post-stable invariants:
release-link text in both source and built artifact metadata, and require
each built long description to exactly match the source README. Post-release
evidence changes must not rewrite README release state.
11. Never encode a mutable "latest/current published patch version" in
persistent guidance or current-state documentation. Query public PyPI when
current registry state is required. Keep candidate version truth in
`pyproject.toml` and `.release-please-manifest.json`, and keep exact released
versions only in immutable historical evidence. The document/version
checker must fail before merge or release when this boundary is violated.

## Repository independence

Expand DownExpand Up@@ -270,7 +279,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -180,7 +180,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion RELEASING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -83,7 +83,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
16 changes: 8 additions & 8 deletions ROADMAP.md
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
# CometAPI Python SDK Roadmap

Status: `0.1.2` stable maintenance released
Status: Stable `0.1.x` maintenance active
Last updated: 2026-07-30
Repository contract: this roadmap is self-contained.
Current gate: maintain the verified stable 0.1 surface. Begin 0.2 only after a
Expand All@@ -12,13 +12,13 @@ The SDK provides the shortest reliable path from an OpenAI Python integration
to CometAPI while preserving official request, response, error, retry, timeout,
sync, async, and streaming behavior.

Private Remote Validation, Public Preview, the functional `0.1.0a1` Registry
Alpha, stable `0.1.0`, and maintenance releases `0.1.1` and `0.1.2` are complete
for the sanitized public repository. Protected repository configuration,
public default-branch CI, exact-release live smoke, PyPI OIDC publication,
provenance, digest comparison, and public-registry smoke provide separate
evidence layers. Only 0.1.x maintenance is active; `0.1.2` does not activate
0.2 scope.
Private Remote Validation, Public Preview, the functional Registry Alpha, the
first stable release, and verified `0.1.x` maintenance releases are complete
for the sanitized public repository and recorded below as immutable evidence.
Protected repository configuration, public default-branch CI, exact-release
live smoke, PyPI OIDC publication, provenance, digest comparison, and
public-registry smoke provide separate evidence layers. Only 0.1.x maintenance
is active; no maintenance release activates 0.2 scope.
Support and release claims remain limited to the evidence defined in this
roadmap and `COMPATIBILITY.md`.

Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,10 +44,8 @@ jobs:
run: uv run pyright
- name: Run offline unit and contract tests
run: uv run pytest -m "not live"
- name: Check release version agreement
run: uv run python scripts/check_version.py --require-changelog
- name: Check canonical public content and identity
run: uv run python scripts/check_version.py --require-public-preview-docs
- name: Check version agreement and durable public content
run: uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
- name: Scan for credentials and scope mistakes
run: uv run python scripts/check_secrets.py
- name: Validate workflow syntax with checksum-pinned actionlint
Expand Down
19 changes: 14 additions & 5 deletions AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,10 +50,13 @@ proves only its own evidence layer. Never invent or mock missing evidence.

## Current milestone: Stable 0.1

Stable 0.1 is complete: `cometapi==0.1.1` is the latest publicly available
maintenance release, and its release and registry trust chain has been
verified. Do not begin 0.2 provider adapters without a separate maintainer
request that authorizes that milestone.
Verified stable `0.1.x` maintenance releases are available from PyPI. The
public PyPI registry is authoritative for the latest published version.
`pyproject.toml` and `.release-please-manifest.json` are authoritative for the
current repository candidate and must agree; a candidate must not be described
as published. `ROADMAP.md`, `RELEASING.md`, and `CHANGELOG.md` retain exact
versions only as dated immutable historical evidence. Do not begin 0.2 provider
adapters without a separate maintainer request that authorizes that milestone.

Private Remote Validation, the sanitized first history, private initialization,
pre-visibility closeout, public visibility configuration, Public Preview,
Expand DownExpand Up@@ -174,6 +177,12 @@ Post-stable invariants:
release-link text in both source and built artifact metadata, and require
each built long description to exactly match the source README. Post-release
evidence changes must not rewrite README release state.
11. Never encode a mutable "latest/current published patch version" in
persistent guidance or current-state documentation. Query public PyPI when
current registry state is required. Keep candidate version truth in
`pyproject.toml` and `.release-please-manifest.json`, and keep exact released
versions only in immutable historical evidence. The document/version
checker must fail before merge or release when this boundary is violated.

## Repository independence

Expand DownExpand Up@@ -270,7 +279,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -180,7 +180,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion RELEASING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -83,7 +83,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
16 changes: 8 additions & 8 deletions ROADMAP.md
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
# CometAPI Python SDK Roadmap

Status: `0.1.2` stable maintenance released
Status: Stable `0.1.x` maintenance active
Last updated: 2026-07-30
Repository contract: this roadmap is self-contained.
Current gate: maintain the verified stable 0.1 surface. Begin 0.2 only after a
Expand All@@ -12,13 +12,13 @@ The SDK provides the shortest reliable path from an OpenAI Python integration
to CometAPI while preserving official request, response, error, retry, timeout,
sync, async, and streaming behavior.

Private Remote Validation, Public Preview, the functional `0.1.0a1` Registry
Alpha, stable `0.1.0`, and maintenance releases `0.1.1` and `0.1.2` are complete
for the sanitized public repository. Protected repository configuration,
public default-branch CI, exact-release live smoke, PyPI OIDC publication,
provenance, digest comparison, and public-registry smoke provide separate
evidence layers. Only 0.1.x maintenance is active; `0.1.2` does not activate
0.2 scope.
Private Remote Validation, Public Preview, the functional Registry Alpha, the
first stable release, and verified `0.1.x` maintenance releases are complete
for the sanitized public repository and recorded below as immutable evidence.
Protected repository configuration, public default-branch CI, exact-release
live smoke, PyPI OIDC publication, provenance, digest comparison, and
public-registry smoke provide separate evidence layers. Only 0.1.x maintenance
is active; no maintenance release activates 0.2 scope.
Support and release claims remain limited to the evidence defined in this
roadmap and `COMPATIBILITY.md`.

Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,10 +44,8 @@ jobs:
run: uv run pyright
- name: Run offline unit and contract tests
run: uv run pytest -m "not live"
- name: Check release version agreement
run: uv run python scripts/check_version.py --require-changelog
- name: Check canonical public content and identity
run: uv run python scripts/check_version.py --require-public-preview-docs
- name: Check version agreement and durable public content
run: uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
- name: Scan for credentials and scope mistakes
run: uv run python scripts/check_secrets.py
- name: Validate workflow syntax with checksum-pinned actionlint
Expand Down
19 changes: 14 additions & 5 deletions AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,10 +50,13 @@ proves only its own evidence layer. Never invent or mock missing evidence.

## Current milestone: Stable 0.1

Stable 0.1 is complete: `cometapi==0.1.1` is the latest publicly available
maintenance release, and its release and registry trust chain has been
verified. Do not begin 0.2 provider adapters without a separate maintainer
request that authorizes that milestone.
Verified stable `0.1.x` maintenance releases are available from PyPI. The
public PyPI registry is authoritative for the latest published version.
`pyproject.toml` and `.release-please-manifest.json` are authoritative for the
current repository candidate and must agree; a candidate must not be described
as published. `ROADMAP.md`, `RELEASING.md`, and `CHANGELOG.md` retain exact
versions only as dated immutable historical evidence. Do not begin 0.2 provider
adapters without a separate maintainer request that authorizes that milestone.

Private Remote Validation, the sanitized first history, private initialization,
pre-visibility closeout, public visibility configuration, Public Preview,
Expand DownExpand Up@@ -174,6 +177,12 @@ Post-stable invariants:
release-link text in both source and built artifact metadata, and require
each built long description to exactly match the source README. Post-release
evidence changes must not rewrite README release state.
11. Never encode a mutable "latest/current published patch version" in
persistent guidance or current-state documentation. Query public PyPI when
current registry state is required. Keep candidate version truth in
`pyproject.toml` and `.release-please-manifest.json`, and keep exact released
versions only in immutable historical evidence. The document/version
checker must fail before merge or release when this boundary is violated.

## Repository independence

Expand DownExpand Up@@ -270,7 +279,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,7 +26,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -180,7 +180,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
2 changes: 1 addition & 1 deletion RELEASING.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -83,7 +83,7 @@ uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run pyright
uv run pytest -m "not live"
uv run python scripts/check_version.py --require-changelog
uv run python scripts/check_version.py --require-changelog --require-public-preview-docs
uv run python scripts/check_secrets.py
uv run python scripts/check_workflows.py
rm -rf dist
Expand Down
16 changes: 8 additions & 8 deletions ROADMAP.md
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
# CometAPI Python SDK Roadmap

Status: `0.1.2` stable maintenance released
Status: Stable `0.1.x` maintenance active
Last updated: 2026-07-30
Repository contract: this roadmap is self-contained.
Current gate: maintain the verified stable 0.1 surface. Begin 0.2 only after a
Expand All@@ -12,13 +12,13 @@ The SDK provides the shortest reliable path from an OpenAI Python integration
to CometAPI while preserving official request, response, error, retry, timeout,
sync, async, and streaming behavior.

Private Remote Validation, Public Preview, the functional `0.1.0a1` Registry
Alpha, stable `0.1.0`, and maintenance releases `0.1.1` and `0.1.2` are complete
for the sanitized public repository. Protected repository configuration,
public default-branch CI, exact-release live smoke, PyPI OIDC publication,
provenance, digest comparison, and public-registry smoke provide separate
evidence layers. Only 0.1.x maintenance is active; `0.1.2` does not activate
0.2 scope.
Private Remote Validation, Public Preview, the functional Registry Alpha, the
first stable release, and verified `0.1.x` maintenance releases are complete
for the sanitized public repository and recorded below as immutable evidence.
Protected repository configuration, public default-branch CI, exact-release
live smoke, PyPI OIDC publication, provenance, digest comparison, and
public-registry smoke provide separate evidence layers. Only 0.1.x maintenance
is active; no maintenance release activates 0.2 scope.
Support and release claims remain limited to the evidence defined in this
roadmap and `COMPATIBILITY.md`.

Expand Down
Loading