feat(sprint): onboard-first doctrine, orient drift detection, adaptive trust, platform secret push, VPS + installer fixes#25
Merged
Conversation
…ush, VPS switcher, SSH pre-check Closes #19, #20, #21, #22, #23. Onboard now precedes everything: first contact with a repo gates the plan behind a 5-question interview; greenfield repos get a decisive platform pick that becomes the team mandate. Orient runs on every subsequent plan as drift detection between declared preferences and repo artifacts — drift is surfaced, never silently re-scored. stage-secrets pushes values to the chosen platform (fly/vercel/ railway/cloudrun) when auth allows, falling back to local-only. The web plan page gains a VPS option in the platform switcher with inline host input. vps bootstrap probes SSH before acting and explains exactly how to fix key auth instead of "ssh connectivity". Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
What's in here
Two sprint commits plus installer fixes, closing #13–#23.
Onboard → orient → plan doctrine (#23, #20)
convoy plan/convoy shipon a repo with no.convoy/preferences.jsonblocks on a 5-question interview (interactive terminals only — CI warns and proceeds). Answers persist to.convoy/preferences.json; a named platform becomes a hard mandate.preferences.platform.mandate, and announces it as the team default.orientRepo()and compares artifacts against declared preferences. Drift (e.g. avercel.jsonappearing after the team declared Fly) is surfaced as an explicit warning with the remediation command — never a silent re-score. Mandate always wins.--skip-orient/--strict-driftflags included.Full commands + adaptive trust (#13–#17)
convoy orient [path]— reads CI workflows, platform configs, secrets-manager and observability signals from repo artifacts. Also aconvoy_orientMCP tool.convoy onboard [path]— five-section interview capturing deployment style, platform mandate, release process, compliance, observability. Also aconvoy_onboardMCP tool.src/core/run-history.ts) — per-service trust levels 0–4 earned from.convoy/run-history.jsonl; auto-approves gates as trust grows; compliance requirements hard-disable auto-approve; breaches reset trust.topoSortLanes()(Kahn's algorithm) turnsplan.dependenciesinto deployment waves; CanaryStage executes wave-by-wave.--real-railway,--real-cloudrun, etc.).Secrets actually reach the platform (#22)
convoy stage-secretsnow pushes each collected value to the plan's platform (Fly / Vercel / Railway / Cloud Run) when CLI + auth allow, falling back gracefully to local-only with the reason. Shared logic insrc/core/secret-push.ts; the web secrets panel gains a per-row "push to platform" action.VPS fixes (#19, #21)
convoy vps bootstrapprobes SSH (BatchMode=yes, 5s timeout) before acting, distinguishes unreachable vs auth-failure, and prints the exact fix (ssh-copy-id …/--ssh-key/--ssh-user) instead of "Bootstrap failed. ssh connectivity".vpsoption with an inline host input, pre-filled from preferences.Installer fixes
.env.example(previously onlydemo-app/had one — the documentedcp .env.example .envreferenced a missing file)..envwhen the example is absent and prompts forANTHROPIC_API_KEYfrom/dev/tty, socurl | bashinstalls ask for the key instead of skipping silently.sedcompatibility ([[:space:]]instead of\s).Verification
npm run typecheckand(cd web && npm run typecheck)both pass.npx tsx src/orient/drift.test.ts— 4/4 pass.Closes #13, #14, #15, #16, #17, #18, #19, #20, #21, #22, #23.
https://claude.ai/code/session_0127RzVpGF1bqhMxAviNnAMF
Generated by Claude Code