Commit graph

132 commits

Author SHA1 Message Date
Andrey Avtomonov
adb5c4488e feat(ingest): promote isolated diff to default runner path 2026-05-18 02:48:37 +02:00
Andrey Avtomonov
8cf63b2248 feat(ingest): make isolated diff routing the private default 2026-05-18 02:47:49 +02:00
Andrey Avtomonov
8096028219 chore(ingest): verify isolated diff connector migration 2026-05-18 02:42:29 +02:00
Andrey Avtomonov
2348a737c7 test(ingest): verify metricflow isolated projection path 2026-05-18 02:40:55 +02:00
Andrey Avtomonov
b6b63123f8 feat(ingest): project metricflow semantic models before work units 2026-05-18 02:39:01 +02:00
Andrey Avtomonov
0137de05a2 test(ingest): cover non-metabase isolated diff routing 2026-05-18 02:38:10 +02:00
Andrey Avtomonov
449db1d42a feat(ingest): route direct-write connectors through isolated diffs 2026-05-18 02:37:26 +02:00
Andrey Avtomonov
a00285fd42 Improve ingest progress updates 2026-05-18 02:21:59 +02:00
Andrey Avtomonov
90a0d7ff3b chore(ingest): verify isolated diff gate repair 2026-05-18 00:42:16 +02:00
Andrey Avtomonov
eb0d07f2a1 test(ingest): verify isolated diff final gate repair 2026-05-18 00:40:21 +02:00
Andrey Avtomonov
10641ac411 feat(ingest): wire isolated diff gate repair 2026-05-18 00:38:07 +02:00
Andrey Avtomonov
51a5530995 feat(ingest): repair isolated diff semantic gate failures 2026-05-18 00:37:09 +02:00
Andrey Avtomonov
b05c9a4f0d feat(ingest): add isolated diff gate repair agent 2026-05-18 00:36:13 +02:00
Andrey Avtomonov
5cc2c98c5e test(ingest): cover isolated diff gate repair 2026-05-18 00:35:42 +02:00
Andrey Avtomonov
a630174341 test(ingest): align textual conflict failure coverage 2026-05-18 00:27:19 +02:00
Andrey Avtomonov
32288434ea test(ingest): verify isolated diff textual conflict repair 2026-05-18 00:24:56 +02:00
Andrey Avtomonov
aa8d59c14a feat(ingest): report isolated diff resolver outcomes 2026-05-18 00:24:12 +02:00
Andrey Avtomonov
8784a47f84 feat(ingest): repair isolated diff textual conflicts 2026-05-18 00:23:45 +02:00
Andrey Avtomonov
529c6daa68 test(ingest): cover isolated diff resolver integration 2026-05-18 00:23:04 +02:00
Andrey Avtomonov
9f0abe5d65 test(ingest): cover isolated diff textual conflict resolver 2026-05-18 00:22:45 +02:00
Andrey Avtomonov
7cc9f0e70a fix(ingest): validate scan sources and wiki refs 2026-05-18 00:11:11 +02:00
Andrey Avtomonov
ba534fb8ca fix(ingest): gate global wiki references 2026-05-17 22:25:46 +02:00
Andrey Avtomonov
87f1193ed1 chore(ingest): verify isolated diff gate closure 2026-05-17 22:15:38 +02:00
Andrey Avtomonov
c61c50be11 test(ingest): cover isolated diff reference and target gates 2026-05-17 22:13:54 +02:00
Andrey Avtomonov
3613fb3686 fix(ingest): trace isolated SL target policy gates 2026-05-17 22:12:53 +02:00
Andrey Avtomonov
9d756b2c6c fix(ingest): enforce SL target connection scope 2026-05-17 22:11:44 +02:00
Andrey Avtomonov
5ec639602b fix(ingest): gate final wiki references 2026-05-17 22:10:58 +02:00
Andrey Avtomonov
977a610ea9 fix(ingest): gate provenance before isolated diff squash 2026-05-17 22:03:20 +02:00
Andrey Avtomonov
656e5846aa test(ingest): verify isolated diff postmortem coverage 2026-05-17 21:53:18 +02:00
Andrey Avtomonov
46455e74d1 fix(ingest): trace policy conflicts and cleanup child worktrees 2026-05-17 21:48:47 +02:00
Andrey Avtomonov
86837dd3ed fix(ingest): persist postmortem failure traces 2026-05-17 21:47:43 +02:00
Andrey Avtomonov
51fe8306c3 fix(ingest): gate isolated final integration tree 2026-05-17 21:42:45 +02:00
Andrey Avtomonov
cc1eb7c51b fix(ingest): tighten final artifact gates 2026-05-17 21:41:01 +02:00
Andrey Avtomonov
8d78f872af docs: document ingest trace inspection 2026-05-17 21:32:03 +02:00
Andrey Avtomonov
cae5c4b948 feat: add isolated diff ingestion v1 core 2026-05-17 21:30:30 +02:00
Andrey Avtomonov
1013bb65df test: cover isolated diff ingestion regressions 2026-05-17 21:29:08 +02:00
Andrey Avtomonov
c481f1cce9 feat: route selected ingest sources through isolated diffs 2026-05-17 21:27:41 +02:00
Andrey Avtomonov
0be264dde0 feat: integrate isolated work unit patches 2026-05-17 21:24:21 +02:00
Andrey Avtomonov
c2edec84c2 feat: execute ingest work units in child worktrees 2026-05-17 21:23:54 +02:00
Andrey Avtomonov
43e6d4542d feat: add final ingest artifact gates 2026-05-17 21:23:13 +02:00
Andrey Avtomonov
ba76f2e5f0 feat: validate wiki body semantic references 2026-05-17 21:22:43 +02:00
Andrey Avtomonov
739d88420e feat: add isolated ingest patch helpers 2026-05-17 21:22:15 +02:00
Andrey Avtomonov
01b7f54253 feat: persist ingest trace events 2026-05-17 21:21:23 +02:00
Andrey Avtomonov
c89af7733a
fix: improve ingest runtime readiness (#124)
* fix: improve ingest runtime readiness

* fix(cli): mock runtime in slow setup tests

* test(cli): isolate setup runtime status
2026-05-17 10:27:29 +02:00
Andrey Avtomonov
f49672ba5b
fix: accept ingest wiki forward refs (#125) 2026-05-17 10:10:14 +02:00
Andrey Avtomonov
74be832aea
feat(cli): improve search ranking output (#123) 2026-05-17 02:32:41 +02:00
Andrey Avtomonov
d3d58a279b
fix(release): repair next npm release workflow (#122)
* fix(ci): run rc releases from next branch

* fix(context): allow release git askpass env

* fix(release): make npm publish noninteractive

* fix(release): use npm trusted publishing

* fix(release): tolerate npm propagation in smoke

* docs(release): document trusted publishing auth
2026-05-17 01:41:07 +02:00
Andrey Avtomonov
b565e44a22
feat: add claude-code llm backend with runtime port (#115)
* docs: revise claude-code ingest backend spec

* docs: keep claude-code spec focused on ingest

* docs: expand claude-code spec to full llm parity

* Refine claude-code backend spec after adversarial review iteration 1

* Refine claude-code backend spec after adversarial review iteration 2

* Refine claude-code backend spec after adversarial review iteration 3

* feat: recognize claude-code llm backend

* feat: add ktx llm runtime port

* feat: add claude-code llm runtime

* feat: route non-agent llm calls through runtime

* feat: run ingest agents through llm runtime

* feat: support claude-code setup and status

* test: verify claude-code backend runtime

* docs: add claude-code backend v1 runtime plan

* fix: close claude-code runtime isolation checks

* fix: warn on claude-code prompt caching during setup

* chore: verify claude-code v1 closure

* docs: add claude-code backend v1 isolation closure plan

* fix: update claude-code ingest setup guidance

* docs: add claude-code backend v1 ingest guidance closure plan

* docs: align claude-code isolation spec with sdk metadata

* test: cover claude-code host discovery metadata

* fix: tolerate claude-code host discovery metadata

* docs: clarify claude-code host discovery metadata

* docs: add claude-code auth-probe isolation fix plan

* chore: prepare kaelio ktx rc1 release

* chore: add semantic release workflow

* fix: unblock ci checks

* chore(release): 0.1.0-rc.1

* feat: add Claude Code model selection to setup

* fix: keep git maintenance attached in local repos
2026-05-16 12:06:34 +02:00
Andrey Avtomonov
e6d578c03f
feat(setup): add Claude Desktop target and MCP-first agent setup (#114)
* feat(setup): add Claude Desktop target and MCP-first agent setup

Adds `ktx mcp stdio` and a `claude-desktop` setup target that generates a
local plugin ZIP wiring the analytics skill and a stdio MCP config. Replaces
the CLI-only agent install mode with MCP+analytics (default) and an optional
admin CLI skill, renames the research skill to analytics, and lets interactive
setup pick project vs global scope when every target supports it. Extracts a
shared MCP server factory used by both HTTP and stdio entrypoints.

* Add MCP agent client setup support

* Polish setup output formatting

* Add MCP tool polish design spec

Design for slimming the MCP-registered surface from 25 to 11 tools,
introducing memory_ingest, applying the per-tool polish kit (annotations,
outputSchema, .describe(), in-band error wrapping, union-drift fixes,
type-narrowed jsonToolResult), emitting progress notifications on
sql_execution + sl_query, and refining the ktx-analytics SKILL.md to
match.

* Refine MCP tool polish design spec after adversarial review iteration 1

* Refine MCP tool polish design spec after adversarial review iteration 2

* Refine MCP tool polish design spec after adversarial review iteration 3

* refactor(context): rename memory capture service to ingest

* feat(mcp): slim research tool surface

* refactor(mcp): remove admin ports from server factory

* refactor(cli): rename text ingest memory port

* docs: update analytics skill for memory ingest

* chore: verify mcp surface rename

* Add MCP tool polish v1 surface change plan

* feat(context): polish mcp tool metadata

* fix(context): enforce resolved semantic layer compute sources

* feat(context): emit mcp query progress stages

* fix(context): keep mcp progress event internal

* Add MCP tool polish v1 metadata & progress plan

* Fix CI snapshot and docs checks
2026-05-16 11:39:55 +02:00
Andrey Avtomonov
b759a4a286
feat(mcp):added MCP server (#97)
* docs(specs): design research-agent MCP tools and ktx mcp daemon

Adds the 2026-05-14 design spec for exposing four new MCP tools
(discover_data, entity_details, dictionary_search, sql_execution),
shipping a ktx-research skill, and introducing an HTTP-only ktx mcp
daemon so external agents can use KTX as a research-capable context
layer.

* Refine research-agent MCP tools spec after adversarial review iteration 1

* Refine research-agent MCP tools spec after adversarial review iteration 2

* Refine research-agent MCP tools spec after adversarial review iteration 3

* Refine spec: drop connectionName compat carve-out and ground summary/snippet provenance per kind

* feat(daemon): validate read-only SQL with sqlglot

* feat(context): expose read-only SQL validation port

* feat(context): register MCP sql execution tool

* feat(context): execute MCP SQL through validated connector path

* test(context): update SQL analysis port fixtures

* docs: add research-agent MCP sql execution foundation plan

* feat(context): add scan-backed entity details service

* feat(context): register MCP entity details tool

* feat(context): expose local MCP entity details

* test(context): align entity details scan fixtures

* docs: add research-agent MCP entity_details plan

* feat(context): add dictionary search service

* feat(context): register MCP dictionary search tool

* feat(context): expose local MCP dictionary search

* docs: add research-agent MCP dictionary_search plan

* feat: add MCP discover data service

* feat: expose discover data MCP tool

* feat: wire local discover data MCP port

* docs: add research-agent MCP discover_data plan

* feat(cli): add mcp http security helpers

* feat(cli): host mcp over streamable http

* feat(cli): manage mcp daemon lifecycle

* feat(cli): add ktx mcp commands

* fix(cli): stabilize mcp daemon verification

* docs: add research-agent MCP http daemon plan

* feat(cli): install KTX research skill

* feat(cli): configure MCP clients in setup agents

* feat(cli): support Claude local MCP setup scope

* docs: add research-agent MCP setup-agents plan

* refactor(context): use connectionId in warehouse verification tools

* docs(context): update ingest verification prompts for connectionId

* docs: add research-agent MCP ingest contract convergence plan

* chore: build runtime artifacts in conductor setup

---------

Co-authored-by: Andrey Avtomonov <7889985+andreybavt@users.noreply.github.com>
2026-05-15 02:35:09 +02:00