Skip to content

feat(cli): add contextseek doctor config & connectivity self-check … - #91

Open
derrickCcc wants to merge 1 commit into
ob-labs:mainfrom
derrickCcc:feat/doctor-46
Open

feat(cli): add contextseek doctor config & connectivity self-check …#91
derrickCcc wants to merge 1 commit into
ob-labs:mainfrom
derrickCcc:feat/doctor-46

Conversation

@derrickCcc

Copy link
Copy Markdown

…(#46)

Add a doctor subcommand that loads ContextSeekSettings, reports the resolved storage/embedding/LLM configuration, and runs a lightweight liveness check on each component:

  • Storage: constructs the backend and calls initialize() to verify connectivity (supports memory, file, sqlite, seekdb, oceanbase)
  • Embedding: builds the embedder via factory and probes with embedder("test")
  • LLM: builds the LLM via factory and probes with llm.invoke([HumanMessage])

Output uses clear PASS/FAIL/SKIP/WARN lines with actionable hints pointing at .env.example sections. Never prints secrets (api keys, passwords, tokens are sanitised from error messages). Exits non-zero if any required component fails; provider=none is treated as SKIP (not failure).

Includes 39 unit tests covering all backends, provider states, error classifications, cross-dependency warnings, secret sanitisation, and output format.

Closes #46

Summary

Solution Description

…b-labs#46)

Add a `doctor` subcommand that loads ContextSeekSettings, reports the
resolved storage/embedding/LLM configuration, and runs a lightweight
liveness check on each component:

- Storage: constructs the backend and calls initialize() to verify
  connectivity (supports memory, file, sqlite, seekdb, oceanbase)
- Embedding: builds the embedder via factory and probes with embedder("test")
- LLM: builds the LLM via factory and probes with llm.invoke([HumanMessage])

Output uses clear PASS/FAIL/SKIP/WARN lines with actionable hints pointing
at .env.example sections. Never prints secrets (api keys, passwords, tokens
are sanitised from error messages). Exits non-zero if any required component
fails; provider=none is treated as SKIP (not failure).

Includes 39 unit tests covering all backends, provider states, error
classifications, cross-dependency warnings, secret sanitisation, and
output format.

Closes ob-labs#46
@derrickCcc

Copy link
Copy Markdown
Author

#46

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.

contextseek doctor — config & connectivity self-check

1 participant