voxora 0.6.0 — release publish blocked on crates.io trust-pub registration
- Dominant language
- Rust
- Stars
- 0
- Forks
- 1
- Avg merge
- 11m
- Merged PRs (30d)
- 47
Description
## Status
All 11 actionable issues (#153–#161) for EPIC #153 are resolved, the
code is merged to main (#165 + #166), the 12 per-crate tags are cut
and pushed (voxora-{traits,config,minimax,engine,backend,whisper,qwen3asr,hf,registry,local,vad,bridge}-v0.6.0), and the
release.yml::publish-cratesio jobs dispatch correctly.
## Blocker
Every crate that has never been published to crates.io (including
voxora-traits, which is the foundation of every other crate)
returns 403 Forbidden at the cargo publish step with the
annotation:
::error title=Trusted Publishing trust not registered for CARGO_PUBLISH_CRATE::crates.io returned 403 for **CARGO_PUBLISH_CRATE**. The OIDC exchange succeeded but the crate has no trustpub_configs_github row.
The publish job is wired correctly — the failure is upstream of
cargo, in the crates.io trust-pub registry. Each crate that has
never been published needs a one-time operator action in the
crates.io UI:
1. Visit https://crates.io/crates//settings/trusted-publishing
2. Click Add GitHub publisher
3. Fill the four fields:
- Repository owner: airvzxf
- Repository name: voxora
- Workflow filename: release.yml
- Environment name: (leave blank)
4. Repeat for every crate that fails.
## Affected crates
Crate-by-crate, only those with no prior crates.io entry need
registration. Existing entries (already on crates.io at any prior
version) do not need re-registration — they only need a version
that satisfies the new internal-dep constraints.
If this is the first-ever publish of a crate, the
crates.io/crates//new page is the manual entry point
(after the trust-pub is registered the GitHub Action can drive
subsequent publishes).
## Once registered
Run in dep order (or re-dispatch orchestrate-release.yml after
every trust-pub registration):
for c in traits config minimax engine backend whisper qwen3asr \
hf registry local vad bridge; do
gh workflow run release.yml -f "tag=voxora-${c}-v0.6.0"
# Wait for each to finish before starting the next.
done
The orchestrator workflow (.github/workflows/orchestrate-release.yml)
already walks this order; it can be re-dispatched once trust-pub is
configured for every crate:
gh workflow run orchestrate-release.yml -f version=0.6.0
(Per AGENTS.md § Red/failed-workflows, the orchestrator's
gh workflow run release.yml from inside the runner uses
GITHUB_TOKEN, which does NOT carry the workflows: write scope
required to dispatch cross-workflow. This is a separate architectural
issue from trust-pub — the orchestrator is documented but
unusable until that scope is fixed. Workaround: dispatch each
release.yml manually from the operator's gh CLI as above.)
## Reference
- AGENTS.md § Red / failed workflows
- AGENTS.md § Trusted Signers
- .github/workflows/release.yml::publish-cratesio (the
publish step that returns the 403)
- .github/workflows/orchestrate-release.yml (the broken
orchestrator — needs a PAT or workflow-scope change)
Contributor guide
Assessment
This issue has not been assessed yet.