ktx/packages/cli/src
Andrey Avtomonov c1ed5eedce
fix(cli): preserve project artifacts when ktx setup steps fail (#229)
ktx setup wiped ktx.yaml, .ktx/setup/state.json, wiki/, semantic-layer/,
raw-sources/, and .git/ — or removed the entire project dir — whenever any
single source in the context-build step failed, destroying hours of ingest
work and the persisted resume state. The cleanup hint was designed for an
"early abort, leave no trace" semantic but was applied indiscriminately to
every later step failure, in direct conflict with the .ktx/setup/state.json
resume mechanism.

Drop the cleanup mechanism entirely (KtxSetupCreatedProjectCleanup,
cleanupForFolderState, createProjectWithCleanup, cleanupCreatedProjectScaffold,
and the createdProjectCleanup plumbing through KtxSetupProjectResult). Step
failures now return non-zero without touching the filesystem, so re-running
ktx setup continues from completed steps and only re-attempts failed sources.

Rewrites the two tests that documented the wipe behavior to assert
preservation, and adds a regression test that simulates partial context-build
artifacts (state.json, wiki/, semantic-layer/) and verifies all survive a
failed context step.

Refs KLO-719
2026-05-28 15:17:06 +02:00
..
commands test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
connectors test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
context fix(cli): align ingest step counter with SDK num_turns (#225) 2026-05-28 02:09:53 +02:00
io test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
llm test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
prompts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
skills fix(ingest): attribute historic-sql evidence writes in bundle report (#220) 2026-05-26 12:21:53 +02:00
telemetry test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
admin-reindex.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
admin.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
bin.ts rename klo to ktx 2026-05-10 23:51:24 +02:00
clack.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
claude-code-prompt-caching.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
cli-program.ts feat(telemetry): anonymous posthog usage telemetry across node cli and python daemon (#205) 2026-05-22 18:18:47 +02:00
cli-runtime.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
command-schemas.ts feat: merge ingest and scan 2026-05-14 01:43:06 +02:00
command-tree.ts fix(cli): preserve tree continuation guides 2026-05-13 00:35:07 +02:00
connection.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
context-build-view.ts refactor: remove legacy ktx compatibility shims (#211) 2026-05-24 16:57:23 +02:00
database-tree-picker.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
demo-assets.ts feat(telemetry): anonymous posthog usage telemetry across node cli and python daemon (#205) 2026-05-22 18:18:47 +02:00
demo-metrics.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
doctor.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
embedding-resolution.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
error-message.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
index.ts fix(cli): resolve embedding provider explicitly and surface lane status in sl search (#192) 2026-05-21 02:21:22 +02:00
ingest-depth.ts refactor: remove legacy ktx compatibility shims (#211) 2026-05-24 16:57:23 +02:00
ingest-query-executor.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
ingest-report-file.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
ingest.ts docs: standardize fanout terminology (#218) 2026-05-25 11:09:33 -04:00
knowledge.ts feat(telemetry): anonymous posthog usage telemetry across node cli and python daemon (#205) 2026-05-22 18:18:47 +02:00
local-adapters.ts fix(snowflake): unblock multi-schema ingest and relationship discovery (#204) 2026-05-23 10:41:30 +02:00
local-scan-connectors.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
managed-local-embeddings.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
managed-mcp-daemon.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
managed-python-command.ts feat(telemetry): anonymous posthog usage telemetry across node cli and python daemon (#205) 2026-05-22 18:18:47 +02:00
managed-python-daemon.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
managed-python-http.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
managed-python-runtime.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
mcp-http-server.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
mcp-server-factory.ts feat(telemetry): anonymous posthog usage telemetry across node cli and python daemon (#205) 2026-05-22 18:18:47 +02:00
mcp-stdio-server.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
memory-flow-hud.tsx chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
memory-flow-interactive.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
memory-flow-tui.tsx chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
next-steps.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
notion-page-picker.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
print-command-tree.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
project-resolver.ts rename klo to ktx 2026-05-10 23:51:24 +02:00
prompt-navigation.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
proxy-env.ts fix: sanitize no_proxy for managed embeddings (#153) 2026-05-19 18:18:56 +02:00
public-ingest-copy.ts feat: merge ingest and scan 2026-05-14 01:43:06 +02:00
public-ingest.ts refactor: remove legacy ktx compatibility shims (#211) 2026-05-24 16:57:23 +02:00
release-version.ts refactor(release): drop release-policy.json runtime dep and next branch (#180) 2026-05-20 13:53:14 +02:00
runtime-requirements.ts refactor: remove legacy ktx compatibility shims (#211) 2026-05-24 16:57:23 +02:00
runtime.ts refactor(release): drop release-policy.json runtime dep and next branch (#180) 2026-05-20 13:53:14 +02:00
scan.ts fix(snowflake): unblock multi-schema ingest and relationship discovery (#204) 2026-05-23 10:41:30 +02:00
setup-agents.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
setup-context.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
setup-database-context-depth.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
setup-databases.ts fix: update ktx CI boundary checks (#223) 2026-05-26 23:03:47 +02:00
setup-demo-tour.ts feat(telemetry): anonymous posthog usage telemetry across node cli and python daemon (#205) 2026-05-22 18:18:47 +02:00
setup-embeddings.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
setup-interrupt.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
setup-models.ts feat(cli): redesign database scope picker for searchable schema-first setup (#203) 2026-05-22 14:22:11 +02:00
setup-project.ts fix(cli): preserve project artifacts when ktx setup steps fail (#229) 2026-05-28 15:17:06 +02:00
setup-prompts.ts feat(cli): redesign database scope picker for searchable schema-first setup (#203) 2026-05-22 14:22:11 +02:00
setup-ready-menu.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
setup-runtime.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
setup-secrets.ts rename klo to ktx 2026-05-10 23:51:24 +02:00
setup-sources.ts test: split cli tests from source tree (#216) 2026-05-26 08:49:05 +02:00
setup.ts fix(cli): preserve project artifacts when ktx setup steps fail (#229) 2026-05-28 15:17:06 +02:00
sl.ts feat(telemetry): anonymous posthog usage telemetry across node cli and python daemon (#205) 2026-05-22 18:18:47 +02:00
source-mapping.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
sql.ts refactor: remove legacy ktx compatibility shims (#211) 2026-05-24 16:57:23 +02:00
startup-profile.ts rename klo to ktx 2026-05-10 23:51:24 +02:00
status-project.ts feat(connectors): generalize readiness and constraint handling (#212) 2026-05-24 19:30:06 +02:00
text-ingest.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00
tree-picker-state.ts feat(cli): skip-context-sources menu + clack-style tree picker UX (#213) 2026-05-24 19:29:37 +02:00
tree-picker-tui.tsx feat(cli): skip-context-sources menu + clack-style tree picker UX (#213) 2026-05-24 19:29:37 +02:00
viz-fallback.ts chore(workspace): gate dead-code with knip production mode (#196) 2026-05-21 15:28:58 +02:00