feat(setup): add provider defaults and lane status - #753
Conversation
roborev: Combined Review (
|
roborev: Combined Review (
|
|
looking |
Configure unset retrieval and people lanes from available providers with explicit consent and recommended defaults. Report which lanes are active and the steps needed to finish setup. - feat(setup): keep provider onboarding output consistent with the pass - fix(setup): keep the local fallback local and disclose every source Refs kenn-io#634 Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> Generated with Codex
A failed people-provider check, consent, or selection left other lanes configured, so a retry treated the incomplete setup as finished. Restore all setup config edits on failure, including a newly created file, using the published file identity to preserve concurrent edits. Recompute dependent lanes after a provider is declined. Declining Mistral must also disable document vectors and remove document_text from the people-sweep profile and its subsequent disclosure. Generated with Codex Co-authored-by: Codex <noreply@openai.com>
b67fa33 to
92f2710
Compare
roborev: Combined Review (
|
Keep the people sweep pending until --allow-sensitive explicitly permits sensitive archive excerpts and personal inferences. Describe that policy in both human and JSON plans; --yes alone must not authorize it. Leave vector lanes pending when the binary lacks the database backend, and report missing credential environment variables for hosted lanes so the setup report does not imply that unusable providers are ready. Fix the new documentation links to use the /docs/ URL prefix required by the published site and its link checker. Generated with Codex Co-authored-by: Codex <noreply@openai.com>
roborev: Combined Review (
|
Document search sends both archive text and query text to an embedding provider. Report their separate consent records so users can see which permission is still missing and how to grant it. Enabling a lane must not replace saved retention or training assertions with command defaults. Preserve each assertion unless its own flag is explicitly supplied. Recognize providers by exact URL hosts, not substrings. Leave dependent lanes on custom hosted endpoints for explicit configuration instead of extending the data sent under another provider's disclosure. Generated with Codex Co-authored-by: Codex <noreply@openai.com>
roborev: Combined Review (
|
Missing embedding credentials make text search unavailable to its people and document consumers too. Report those lanes as pending instead of on. Preserve explicit empty cron and false after-sync settings when applying text and visual defaults so setup does not undo scheduling opt-outs. A running daemon may lack the caller's provider key during onboarding. Forward only that key for a check pinned to the saved profile fingerprint, and preserve the caller context on the generated command. Keep ordinary checks on daemon-owned credentials and reject keys for other profiles. Generated with Codex Co-authored-by: Codex <noreply@openai.com>
roborev: Combined Review (
|
Enabled configuration does not make a consent-gated lane ready. Report missing or unreadable consent as pending, and keep document vectors pending until both document and query consent are active. Local Ollama selection uses an unauthenticated endpoint. Clear the old embedding credential reference so an unused hosted key cannot leave the new local lane pending. Generated with Codex Co-authored-by: Codex <noreply@openai.com>
roborev: Combined Review (
|
Configured vector lanes cannot run when the binary lacks their database backend. Use the same compiled-backend check for setup and status, and carry the pending state to dependent lanes with rebuild guidance. Consent records authorize document-vector work but do not create an index. Include the build command after both consent steps so the setup follow-ups finish the indexing work. Generated with Codex Co-authored-by: Codex <noreply@openai.com>
roborev: Combined Review (
|
What changed
msgvault setup providers: readsVOYAGE_API_KEY,MISTRAL_API_KEY, andOPENAI_API_KEY(and probes a local Ollama server at[chat].serverwhen no hosted key is present), prints a plan, asks once per hosted provider, and writes recommended values for every lane that is still unset through the ETag-guarded config editor:[vector]on withapi_format = "voyage-contextual",voyage-context-4, dimension 1024,run_after_syncplus a 15-minute cron;[vector.people]on;[vector.multimodal]on once the probe manifest exists at<home>/voyage-capabilities.json(enabling it earlier makes the daemon refuse every vector lane, so setup writes only the schedule and prints the probe command until then).[attachments.documents]on with the recorded postures (standard/default-opt-outunless--document-retention/--document-trainingsay otherwise); document vectors on when a text lane exists. Uploads stay manual behind the probe manifest anddocuments consent-mistral --yes.text-embedding-3-smallonly when no Voyage key is present, and the people sweep onboarded as profileopenaiongpt-5.6-lunaatmediumreasoning through the existingperson provider add, check,consent, andusegates.openai_chatsweep profile on[chat].model, when the server is reachable.msgvault setup status: one report of every lane (text search, semantic people search, visual attachments, documents, document vectors, people sweep, activity projection, media policy) with provider, model, recorded consent, schedule, the reason a lane is off, the command that turns it on, and the MCP tools live under that configuration.--jsonon both commands.api_format,[vector.people],[vector.multimodal], and[activity]in the configuration reference, add a Recommended Configuration page with the file setup writes, and describe both commands in the CLI reference and setup guide.Why
Every lane from the #534 sequence shipped correctly as opt-in with its own table, key variable, consent step, and build command. A fresh install had to assemble six tables by hand and nothing reported what was on, what was off, and why. Setup now chooses values from the keys the operator has; it adds no lane, no provider, and no consent semantics, and a configured lane keeps its model because switching the embedding policy invalidates the index.
Usage
Refs #634. Refs #589 #599 #611 #616 #620 #628.
🤖 Generated with Claude Code