Skip to content

Add noninteractive identity bootstrap - #54

Merged
dimavrem22 merged 3 commits into
mainfrom
feat/noninteractive-bootstrap
Aug 4, 2026
Merged

Add noninteractive identity bootstrap#54
dimavrem22 merged 3 commits into
mainfrom
feat/noninteractive-bootstrap

Conversation

@dimavrem22

@dimavrem22 dimavrem22 commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Executive Summary

Adds a resumable, non-interactive bootstrap command for connecting an existing Inkbox identity to Claude Code.

  • Validates the exact identity and persists only an agent-scoped credential.
  • Configures hosted Voice AI and explicit webhook signing-key rotation.
  • Starts or restarts the detached Claude Code gateway and reports a redacted JSON result.

Description

inkbox-claude bootstrap accepts an identity, API base URL, project directory, Voice AI selection, signing-key rotation authorization, and gateway startup flag. Credentials are read from INKBOX_API_KEY or standard input, and an admin-scoped credential is exchanged for a saved agent-scoped key.

The flow preserves hosted voice/model settings, supplies connection guidance only when Voice AI instructions are empty, persists bridge configuration in the existing private env file with owner-only permissions, and can safely resume after partial completion.

Reason

An agent receiving an assigned Inkbox identity should be able to install and configure the official integration end to end without stepping through a human-oriented wizard.

Decisions

  • Signing-key ownership: Rotation requires --rotate-signing-key because replacing the key transfers verified webhook delivery away from gateways using the previous key.
  • Gateway lifecycle: --start-gateway restarts an existing detached gateway or starts one in the background so unattended setup leaves a responsive runtime.
  • Credential storage: Admin credentials are never persisted; bootstrap mints and stores an identity-scoped key in an owner-only env file instead.

Testing

  • python3 -m pytest -q: 441 passed and 23 live-only tests skipped in an isolated environment.
  • PR CI: Python 3.11 unit, Python 3.12 unit, and current-host contract checks passed.
  • inkbox-claude bootstrap --identity <handle> --project-dir "$PWD" --voice-ai --rotate-signing-key --start-gateway: returned status: configured; inkbox-claude doctor reported a healthy gateway.
  • Clean-container acceptance: Claude Code followed the assigned bootstrap prompt, installed the integration, completed bootstrap, and returned the requested exact token through an external Inkbox A2A interaction.

@dimavrem22
dimavrem22 marked this pull request as ready for review August 4, 2026 05:45
@dimavrem22
dimavrem22 merged commit d72f5e5 into main Aug 4, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant