Skip to content

fix(cli,vault): honor --vault-key/--vault-path overrides in registry token resolution#6610

Merged
bug-ops merged 2 commits into
mainfrom
fix/6591-registry-vault-override
Jul 20, 2026
Merged

fix(cli,vault): honor --vault-key/--vault-path overrides in registry token resolution#6610
bug-ops merged 2 commits into
mainfrom
fix/6591-registry-vault-override

Conversation

@bug-ops

@bug-ops bug-ops commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Summary

  • resolve_registry_token (src/commands/registry_client.rs) hardcoded default_vault_dir() for the Age vault backend, ignoring --vault/--vault-key/--vault-path CLI overrides already respected by every sibling vault-backed CLI path (durable.rs, scheduler_daemon.rs, per fix(bootstrap,durable): resolve vault CLI overrides across all key-material call sites #6590).
  • Threads vault_override/vault_key_override/vault_path_override from runner.rs's CLI dispatch through handle_skill_command/registry_search/registry_get (src/commands/skill.rs) and handle_plugin_command/registry_search/registry_get (src/commands/plugin.rs) into resolve_registry_token, which now resolves the vault key/secrets paths via crate::bootstrap::resolve_vault_paths instead of the hardcoded default.
  • Adds Age-backend regression coverage (registry_client.rs) proving the override path is actually read from, with a companion test confirming the no-override fallback behavior is unchanged.
  • Adds #[allow(clippy::too_many_lines)] to handle_plugin_command, which crossed the threshold after the parameter growth (mirrors the existing allow already on handle_skill_command).

Closes #6591

Test plan

  • cargo build --features full
  • cargo nextest run --config-file .github/nextest.toml -p zeph --features full — 1136 passed, 15 skipped, 0 failed
  • cargo clippy --profile ci --workspace --all-targets --features "desktop,ide,server,chat,pdf,scheduler,testing" -- -D warnings — clean
  • cargo +nightly fmt --check — clean
  • gitleaks protect --staged --no-banner --redact — no leaks
  • New Age-backend override tests exercise the actual bug (fallback to default_vault_dir() verified via XDG_CONFIG_HOME-scoped tempdir isolation, #[serial_test::serial])

@github-actions github-actions Bot added bug Something isn't working documentation Improvements or additions to documentation size/L Large PR (201-500 lines) and removed bug Something isn't working labels Jul 20, 2026
@bug-ops
bug-ops enabled auto-merge (squash) July 20, 2026 20:08
@bug-ops
bug-ops force-pushed the fix/6591-registry-vault-override branch from 446b400 to 7f0bff0 Compare July 20, 2026 20:16
@github-actions github-actions Bot added the bug Something isn't working label Jul 20, 2026
@bug-ops
bug-ops force-pushed the fix/6591-registry-vault-override branch from 7f0bff0 to 04a2496 Compare July 20, 2026 20:16
bug-ops added 2 commits July 20, 2026 22:27
…token resolution

resolve_registry_token hardcoded default_vault_dir() for the Age vault
backend, ignoring --vault/--vault-key/--vault-path CLI overrides already
respected by every sibling vault-backed CLI path (durable.rs,
scheduler_daemon.rs, per #6590). zeph skill/plugin search and get now
thread the same overrides through handle_skill_command/handle_plugin_command
into resolve_registry_token via bootstrap::resolve_vault_paths, so registry
auth resolves against the same vault as the rest of the command.

Closes #6591
The vault-override threading in the prior commit pushed registry_get
(src/commands/skill.rs) to 8 parameters, exceeding clippy's default
too_many_arguments threshold under the `registry` feature. Only the
CI job's full feature set (which includes `registry`) exercises this
function; the feature list documented locally in CLAUDE.md/branching.md
omits it, so no local check caught this before push.
@bug-ops
bug-ops force-pushed the fix/6591-registry-vault-override branch from 04a2496 to 8e556b0 Compare July 20, 2026 20:27
@bug-ops
bug-ops merged commit 64c4393 into main Jul 20, 2026
43 checks passed
@bug-ops
bug-ops deleted the fix/6591-registry-vault-override branch July 20, 2026 20:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working documentation Improvements or additions to documentation size/L Large PR (201-500 lines)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

registry_client.rs resolve_registry_token hardcodes default_vault_dir(), ignores --vault-key/--vault-path

1 participant