Repository navigation
Conversation
Sync spec/upstream/control-plane.yaml to CCHP v1.0.13 (00684cf0c0) with make sync-spec and regenerate the catalog, schemas, engine spec and docs/coverage.md: 702 operations, 587 available, 115 excluded with reasons, 0 unsupported (v1.0.12: 681, 575, 106, 0). - 25 new operations get groups, names, English summaries, parameter help and policies. Available: outbound network proxies for the platform, a provider and a provider key (show, replace, test), the console bootstrap and sidebar, batched usage queries, price table sync runs, the storage settings test and web vitals. - Excluded with reasons: the sign-in handover between an organization's domains (begin, inspect, approve, decline, redeem, targets, origins), the browser's page performance report and the quota status of a read-only LLM token session, which the server refuses to management tokens. - Replacing a proxy list is destructive (it removes proxies left out); proxy tests are writes with a rate-limit note; approveSessionTransfer returns its one-time code as a secret field. - The member and team overdraft limit operations are gone with cchp billing member-overdraft-limit, set-member-overdraft-limit, team-overdraft-limit and set-team-overdraft-limit; organizations have one credit limit, set with cchp admin set-org-billing. getOrgBilling checks billing:read. - New parameters --exclude-provider-key-ids and --provider-key-ids get help. - Redaction masks more request-body credentials in dry runs, traces and error bodies: S3 secret access keys, payment and Langfuse secret keys, new and temporary passwords, invitation, session and management tokens. - e2e: the bootstrap sends the billing mode v1.0.13's installation needs; new tests replace provider and key proxy lists (confirm gate, masked passwords in dry runs, hasPassword only in answers), mask the storage test's secret key in a dry run, and read every other new read; discovery checks the v1.0.13 tag. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add the cchp docs command group. It reads the documentation at cch-plus.com through the llms.txt files and the full-text search the site publishes, needs no sign-in and never sends credentials, so agents can answer users and find how to configure something before running the matching command. - cchp docs index lists a language's pages by section with title, slug, URL and description, from /<lang>/llms.txt, parsed with goldmark into the llms.txt structure (H1 title, summary, details, H2 sections of links with notes, the Optional section). - cchp docs read <slug|url> prints a page from /<lang>/docs/<slug>.md; it takes a slug, a docs URL or a .md URL. A page missing in the chosen language fails with not_found and names the languages whose llms.txt lists it. - cchp docs search <words> calls /api/docs/search and lists title, section, URL, slug, snippet and score; --limit 1-50, and --read-top N adds the Markdown of the N best pages. - cchp docs full prints /<lang>/llms-full.txt. - Languages zh-CN, zh-TW, en, ja, ru and ko: --lang, CCHP_DOCS_LANG, the system locale (LC_ALL, LC_MESSAGES, LANG; zh_HK and zh_MO read zh-TW, matched with golang.org/x/text/language), then en. Unsupported values are usage errors that list the languages. - --docs-url or CCHP_DOCS_URL names a preview; links on cch-plus.com are read from the site in use. Plain http only for this computer. - Documents are kept in a disk cache (sandrolain/httpcache over diskv) for the site's lifetime, at most 5 minutes, then revalidated with ETag and Last-Modified (pquerna/cachecontrol reads the headers); search answers are not cached; --no-cache fetches again. Reads are retried twice on network failures and 408/429/5xx (go-retryablehttp), as Restish retries reads. A transport guard refuses Authorization, Cookie and Proxy-Authorization. - Output follows the output contract: one result object with lang_source in agent mode, raw Markdown for read and full without --json, rendered on a terminal; failures use the contract's kinds and exit codes; --dry-run shows the request. - Tests: the llms.txt parser (the llmstxt.org example, optional parts, escapes, malformed files), language resolution, URL building and page references; the client against a local server serving answers recorded from the site's preview (scripts/record-docs-fixtures.sh), caching, revalidation, retries and failures; CLI dry runs and usage errors; and make e2e-docs, which runs the binary against the site (or CCHP_DOCS_URL) in every language. - Docs: docs/docs-commands.md for agents with Chinese and English examples, README, agent and human guides, safety model, output contract, architecture, the skill and the AGENTS.md snippet; CHANGELOG v0.2.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
cchp v0.1.3 is built from the CCHP v1.0.12 control-plane spec. CCHP v1.0.13 is released; this PR syncs the spec to it. It also adds
cchp docs, so agents can read and search the CCHP documentation at cch-plus.com through its llms.txt files and full-text search, answer users from it, and find how to configure something before running the matching command. Together they make cchp v0.2.0.What changed
Spec sync to CCHP v1.0.13
make sync-spec UPSTREAM=v1.0.13:spec/upstream/control-plane.yamlexported from CCHP v1.0.13 (00684cf0c0),spec/source.lock.jsonupdated, catalog, schemas, engine spec anddocs/coverage.mdregenerated.cchp admin network-proxy,set-network-proxy,test-network-proxy), a provider (cchp providers network-proxies,set-network-proxies,test-network-proxies) and a provider key (cchp keys network-proxies,set-network-proxies,test-network-proxies);cchp account bootstrapandsidebar;cchp usage batch;cchp models price-table-syncandprice-table-sync-run;cchp org test-storage;cchp admin web-vitals.beginSessionTransfer,inspectSessionTransfer,approveSessionTransfer,declineSessionTransfer,redeemSessionTransfer,listSessionTransferTargets, which need a signed-in browser session or the browser's pre-sign-in cookie, andlistSessionTransferOrigins, which only the sign-in page uses);reportWebVitals, the browser's page performance beacon;getLLMKeyQuotaStatus, which answers only a read-only LLM token session (checked against v1.0.13: 40310004for an administrator management token;cchp billing quota-status --scope-type user_keyreads the same figures).getMemberOverdraftLimit,updateMemberOverdraftLimit,getTeamOverdraftLimit,updateTeamOverdraftLimitwithcchp billing member-overdraft-limit,set-member-overdraft-limit,team-overdraft-limitandset-team-overdraft-limit. CCHP v1.0.13 gives a postpaid organization one monthly credit limit (capin the billing views), set withcchp admin set-org-billing.syncPricingCatalognow answers 202 with a background run (cchp models sync-price-table, thenprice-table-sync-run <runId>);getOrgBillingchecksbilling:read;--exclude-provider-key-idsoncchp requests list,exportandfilter-options,--provider-key-idsand--field provider_keyonfilter-options; the org, admin and member billing summaries describe the credit limit.approveSessionTransferreturns a one-time code (secret_fields: [code], excluded anyway). Proxy passwords and S3 secret access keys only travel in request bodies; the redaction now masks them, and other request-body credentials it missed, in dry runs, traces and error bodies:s3_secret_access_key,secretAccessKey,secretKey,langfuseSecretKey,new_password,temporaryPassword,invitation_token,invitationToken,new_api_management_token,token.cchp docscchp docs index/<lang>/llms.txt.mdURL, descriptioncchp docs read <slug|url>/<lang>/docs/<slug>.md.mdURLcchp docs search <words>/api/docs/search--limit1-50,--read-top Nadds the Markdown of the N best pagescchp docs full/<lang>/llms-full.txt[title](url): noteslinks, theOptionalsection flagged; anything else is aninvalid llms.txtfailure that says where the file departs from the format.--lang, thenCCHP_DOCS_LANG, then the system locale (LC_ALL,LC_MESSAGES,LANG, matched withgolang.org/x/text/language:zh_CN→ zh-CN,zh_TW/zh_HK/zh_MO→ zh-TW), then en. An unsupported--langorCCHP_DOCS_LANGis a usage error that lists the six. A page missing in the chosen language fails withnot_foundand names the languages whosellms.txtlists it. Results reportlangandlang_source.https://cch-plus.com, or--docs-url/CCHP_DOCS_URLfor previews (plain http only for this computer). Links on cch-plus.com are read from the site in use, so a preview's own llms.txt works.readandfullprint raw Markdown without--json(likeskill show) and render it on a terminal;indexandsearchprint lists for people. HTTP errors, timeouts and invalid answers map to the contract's kinds and exit codes (not_found,validation,rate_limited,server_error,not_sent,unknown_outcome,usage).--dry-runprints the request and sends nothing.AcceptandUser-Agent; the transport refusesAuthorization,Cookie,Proxy-Authorizationand URL users. Documented in the safety model.ETag/Last-Modified(pquerna/cachecontrol reads the headers); stale copies are never served; search is not cached;--no-cachefetches again.docs/docs-commands.mdfor agents with Chinese and English examples (answering a question; finding how to configure network proxies or a spending limit, then running the matching command), a README section, the agent and human guides,cchp guide agents, the skill and its workflows, the AGENTS.md snippet, the safety model, output contract and architecture. CHANGELOGv0.2.0.Tests
make check-generated,go build ./...,go vet ./...,go vet -tags e2e ./...,go test -race ./...,make lint(golangci-lint v2.14.0, 0 issues), cross builds for windows/amd64, darwin/arm64 and linux/arm64: pass.make e2eagainst a local CCHP v1.0.13 built from the tag (fresh Postgres and Dragonfly on 10.213.113.0/24, ports 63130-63135, torn down afterwards): up, bootstrap and all 19 e2e tests pass.billingModeandmonthlyOverdraftLimitUnits, which v1.0.13's installation requires.TestNetworkProxiesReplaceTheListAndNeverShowPasswords: provider and key proxy lists, the--confirmgate, the password masked in a dry run and never echoed, an empty list following the provider again, the global proxy read.TestStorageTestDryRunMasksTheSecretKeyandTestReadsAddedInV1013(bootstrap, sidebar, usage batch, org billingcap, web vitals, price table sync run).v1.0.13tag.cchp account bootstrapandsidebar,cchp usage batch,cchp admin network-proxyandweb-vitals,cchp models price-table-sync,cchp billing org-billingandcchp admin org-billing(cap), provider and key proxy reads and replacements with the--allow-writeand--confirmgates, and the key and global proxy tests, which reach the server's own validation (422 for a password without a user name). Direct requests with a management token to the excluded operations: 40310004for the LLM token quota status and the handover targets and inspect.cchp docs:CCHP_DOCS_LANG,LC_ALL>LC_MESSAGES>LANG,zh_HK/zh_MO/zh_SG,C, unsupported values), site URLs and page references;scripts/record-docs-fixtures.sh, gzipped ininternal/sitedocs/testdata/site): all sixllms.txt(46 pages each), pages,llms-full.txt, ranked searches with--read-top, a search with no results, the 400 for a long query, a missing page named in five other languages, links kept on the preview, no credentials on any request;--no-cache, search never cached, max-age capped at 5 minutes, ETag revalidation with 304, no-store), retries (503, 429, 502 retried twice, 403 not retried), invalid answers, unreachable site and timeout;make e2e-docs(the built binary in every language: index,readof every listed page by slug, URL and.mdURL, raw output,full, five searches per language with--read-top 1, language selection from the environment, missing pages, no credentials through a recording proxy, the cache) against U108's preview: pass.🤖 Generated with Claude Code