ktx/packages/cli/test
Andrey Avtomonov 4578b2d3a9 fix(cli): guide setup away from foreign repos at the project dir
ktx owns the git repo rooted at the project dir and refuses to adopt one it
did not create (the Finding 3 isolation invariant). But setup steered users
straight into that failure: the interactive menu offers "Current directory"
first, and `--no-input --yes --project-dir <repo-root>` created directly in
place — both then threw a generic "Failed to initialize git repository:"
wrapper from deep in GitService.initialize().

Extract the ownership rule into a shared `classifyKtxRepoOwnership(dir)` used by
both GitService.initialize() (the invariant) and the setup wizard (pre-flight
guidance), so the decision derives from one rule. Setup now detects a foreign
repo before constructing GitService and: interactively re-prompts (the user
picks the existing `ktx-project` subfolder), or non-interactively returns a
clean missing-input with the actionable message. The typed foreign-repo error
is also surfaced verbatim instead of being buried under the generic wrapper.

Empty/non-repo current directories still work — only foreign repos are blocked.
2026-06-09 23:38:01 +02:00
..
commands feat(cli): shell completion for commands, flags, and entity names (#244) 2026-05-31 23:44:33 +02:00
completion feat(cli): shell completion for commands, flags, and entity names (#244) 2026-05-31 23:44:33 +02:00
connectors feat(mysql): implement columnStats using INFORMATION_SCHEMA.STATISTICS (#233) 2026-06-08 12:21:19 +02:00
context fix(cli): guide setup away from foreign repos at the project dir 2026-06-09 23:38:01 +02:00
fixtures test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
io feat(cli): add Slack community CTA on errors, crashes, setup, and help (#277) 2026-06-09 12:22:56 +02:00
llm feat: add codex llm backend for ktx runtime work (#253) 2026-06-02 13:57:11 +02:00
star-prompt feat: add GitHub star nudges to CLI build view and docs sidebar (#271) 2026-06-08 16:14:56 +02:00
telemetry test(cli): drop stale auto commit fixtures 2026-06-09 23:00:58 +02:00
update-check feat(cli): add channel-aware update notifier (#265) 2026-06-06 10:42:10 +02:00
admin-reindex.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
admin.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
cli-program-telemetry.test.ts fix(cli): classify ktx setup abandonment as aborted, not a blank error (#278) 2026-06-09 12:53:15 +02:00
cli-program.test.ts feat(cli): add Slack community CTA on errors, crashes, setup, and help (#277) 2026-06-09 12:22:56 +02:00
cli-runtime.test.ts feat(cli): add Slack community CTA on errors, crashes, setup, and help (#277) 2026-06-09 12:22:56 +02:00
command-tree.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
community-cta.test.ts feat(cli): add Slack community CTA on errors, crashes, setup, and help (#277) 2026-06-09 12:22:56 +02:00
connection-recovery.test.ts feat(cli): consistent connection setup recovery and build-time gate (#257) 2026-06-03 11:08:46 +00:00
connection.test.ts feat(telemetry): collect PostHog $exception error reports in CLI and daemon (#262) 2026-06-05 19:36:21 +02:00
context-build-view.test.ts feat: add GitHub star nudges to CLI build view and docs sidebar (#271) 2026-06-08 16:14:56 +02:00
database-tree-picker.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
demo-assets.test.ts test(cli): keep stale config grep clean 2026-06-09 23:02:57 +02:00
demo-metrics.test.ts fix(ingest): drive work-unit progress from tool calls, not turn counts (#269) 2026-06-08 15:30:35 +02:00
doctor.test.ts feat: add codex llm backend for ktx runtime work (#253) 2026-06-02 13:57:11 +02:00
embedding-resolution.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
example-smoke.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
index.test.ts feat(setup): apply per-role LLM model presets, remove --llm-model (#268) 2026-06-08 15:30:48 +02:00
ingest-query-executor.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
ingest-report-file.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
ingest-viz.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
ingest.test-utils.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
ingest.test.ts feat(setup): apply per-role LLM model presets, remove --llm-model (#268) 2026-06-08 15:30:48 +02:00
knowledge.test.ts feat(cli): shell completion for commands, flags, and entity names (#244) 2026-05-31 23:44:33 +02:00
local-adapters.test.ts feat(query-history): scope mining to modeled schemas by default (#258) 2026-06-03 17:19:42 +02:00
local-scan-connectors.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
managed-local-embeddings.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
managed-mcp-daemon.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
managed-python-command.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
managed-python-daemon.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
managed-python-http.test.ts feat(query-history): scope mining to modeled schemas by default (#258) 2026-06-03 17:19:42 +02:00
managed-python-runtime.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
mcp-http-server.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
mcp-server-factory.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
memory-flow-interactive.test.ts fix(ingest): drive work-unit progress from tool calls, not turn counts (#269) 2026-06-08 15:30:35 +02:00
memory-flow-tui.test.tsx fix(ingest): drive work-unit progress from tool calls, not turn counts (#269) 2026-06-08 15:30:35 +02:00
next-steps.test.ts feat(cli): guide next action at end of ktx setup, not reruns (#256) 2026-06-03 01:00:21 +02:00
notion-page-picker.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
print-command-tree.test.ts feat(cli): shell completion for commands, flags, and entity names (#244) 2026-05-31 23:44:33 +02:00
progress-port-adapter.test.ts feat(cli): stream plain ktx ingest progress to stderr (KLO-726) (#251) 2026-06-01 23:31:31 +02:00
project-dir.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
project-resolver.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
prompt-navigation.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
proxy-env.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
public-ingest-copy.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
public-ingest.test.ts feat(telemetry): collect PostHog $exception error reports in CLI and daemon (#262) 2026-06-05 19:36:21 +02:00
reveal-password-prompt.test.ts feat(setup): wizard prompt tweaks and quieter query-history filter output (#259) 2026-06-04 14:11:08 +02:00
runtime-requirements.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
runtime.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
scan.test.ts feat(telemetry): collect PostHog $exception error reports in CLI and daemon (#262) 2026-06-05 19:36:21 +02:00
setup-agents.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
setup-context.test.ts feat(cli): consistent connection setup recovery and build-time gate (#257) 2026-06-03 11:08:46 +00:00
setup-databases.test.ts feat(setup): wizard prompt tweaks and quieter query-history filter output (#259) 2026-06-04 14:11:08 +02:00
setup-demo-tour.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
setup-embeddings.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
setup-interrupt.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
setup-models.test.ts feat(setup): apply per-role LLM model presets, remove --llm-model (#268) 2026-06-08 15:30:48 +02:00
setup-project.test.ts fix(cli): guide setup away from foreign repos at the project dir 2026-06-09 23:38:01 +02:00
setup-prompts.test.ts feat(setup): wizard prompt tweaks and quieter query-history filter output (#259) 2026-06-04 14:11:08 +02:00
setup-ready-menu.test.ts feat(cli): guide next action at end of ktx setup, not reruns (#256) 2026-06-03 01:00:21 +02:00
setup-runtime.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
setup-secrets.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
setup-sources-notion.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
setup-sources.test.ts feat(setup): wizard prompt tweaks and quieter query-history filter output (#259) 2026-06-04 14:11:08 +02:00
setup.test.ts fix(cli): classify ktx setup abandonment as aborted, not a blank error (#278) 2026-06-09 12:53:15 +02:00
sl.test.ts feat(telemetry): collect PostHog $exception error reports in CLI and daemon (#262) 2026-06-05 19:36:21 +02:00
source-mapping.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
sql.test.ts feat(telemetry): collect PostHog $exception error reports in CLI and daemon (#262) 2026-06-05 19:36:21 +02:00
standalone-smoke.test.ts feat(cli)!: remove fast mode; ktx ingest always builds enriched context (KLO-721) (#237) 2026-05-29 17:41:04 +02:00
status-project.test.ts test(cli): keep stale config grep clean 2026-06-09 23:02:57 +02:00
text-ingest.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
tree-picker-state.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
tree-picker-tui.test.tsx test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
viz-fallback.test.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00