@kontextmind/kxm 0.7.169 → 0.7.170
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/docs/adr/ADR-0005-obscura-default-playwright.md +2 -2
- package/docs/architecture/hosted-direction.md +7 -7
- package/docs/contributing/decisions.md +1 -1
- package/docs/contributing/learnings.md +3 -2
- package/package.json +1 -1
- package/plugins/kxm/.claude-plugin/plugin.json +1 -1
- package/plugins/kxm/dist/mcp-server.js +1 -1
- package/plugins/kxm/package.json +1 -1
- package/plugins/kxm/src/mcp-server.ts +1 -1
|
@@ -7,7 +7,7 @@ project: "kxm"
|
|
|
7
7
|
status: "accepted"
|
|
8
8
|
owner: "@operator"
|
|
9
9
|
created: "2026-09-27"
|
|
10
|
-
updated: "2026-09-
|
|
10
|
+
updated: "2026-09-28"
|
|
11
11
|
authority: "decision"
|
|
12
12
|
confidence: "verified"
|
|
13
13
|
summary: "Playwright testing and verification connect to pinned Obscura v0.2.3 over CDP. Steel stays the browser for human takeover, MFA, and the live session viewer."
|
|
@@ -74,7 +74,7 @@ Obscura v0.2.3 is a headless Chromium build that speaks the Chrome DevTools Prot
|
|
|
74
74
|
|
|
75
75
|
- Playwright tests and verification use Obscura unless the operator sets `KXM_BROWSER=steel`.
|
|
76
76
|
- Steel session create, release, takeover, and the session viewer are unchanged.
|
|
77
|
-
- CI for this smoke test is `.github/workflows/e2e.yml` on `ubuntu-latest`.
|
|
77
|
+
- CI for this smoke test is `.github/workflows/e2e.yml` on `ubuntu-latest`. The `CI` workflow is on, and `CI / required` is a required check in `protect-main`. `Nightly` and `Real Pi smoke` stay disabled. This ADR does not enable them.
|
|
78
78
|
- The `node --test` globs do not collect `test/e2e/`.
|
|
79
79
|
|
|
80
80
|
## Related
|
|
@@ -4,9 +4,9 @@ Target. This page is a direction, not a live deployment.
|
|
|
4
4
|
|
|
5
5
|
Read from `plans/plan-per-tenant-hosting.md`.
|
|
6
6
|
`plans/plan-greenfield-infra.md` is in this checkout as a `kxm.doc.v1`
|
|
7
|
-
stub (status draft, authority instruction)
|
|
8
|
-
|
|
9
|
-
implementation-plan greenfield bullets.
|
|
7
|
+
stub committed in #373 (status draft, authority instruction). The
|
|
8
|
+
long-form proposal is not in this repository. The canonical facts below
|
|
9
|
+
come from the implementation-plan greenfield bullets.
|
|
10
10
|
|
|
11
11
|
```mermaid
|
|
12
12
|
flowchart LR
|
|
@@ -47,10 +47,10 @@ roadmap question. The tracker wins.
|
|
|
47
47
|
|
|
48
48
|
## Greenfield infra plan
|
|
49
49
|
|
|
50
|
-
`plans/plan-greenfield-infra.md` is
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
scheduled there.
|
|
50
|
+
`plans/plan-greenfield-infra.md` is a `kxm.doc.v1` stub committed in #373
|
|
51
|
+
(status draft, authority instruction, updated 2026-09-28). The long-form
|
|
52
|
+
proposal is not in this repository. Its delivery position is unchanged:
|
|
53
|
+
none of the delivery is scheduled there.
|
|
54
54
|
|
|
55
55
|
The tracker names that file. The sentences that can be repeated without a
|
|
56
56
|
hostname, an account name, or a secret are: a first move is recorded as
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: "Decisions"
|
|
3
3
|
description: "Decisions of medium significance or higher made by automated KXM work in this repository. One entry per decision: the options evaluated with their weights, and why the selected option won. Recorded the turn the decision is taken."
|
|
4
4
|
audience: "agents and maintainers"
|
|
5
|
-
updated: "2026-09-
|
|
5
|
+
updated: "2026-09-28"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Decisions
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: "Learnings"
|
|
3
3
|
description: "Durable lessons from running the writer, critic, and landing loop on this repository. One entry per lesson, with the evidence and where it applies. Pruned when a lesson stops being true."
|
|
4
4
|
audience: "agents and maintainers"
|
|
5
|
-
updated: "2026-09-
|
|
5
|
+
updated: "2026-09-28"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Learnings
|
|
@@ -97,7 +97,8 @@ entry whose fix has landed is deleted, not archived.
|
|
|
97
97
|
|
|
98
98
|
- **Auto-merge cannot be enabled on a PR that is already `CLEAN`**; the
|
|
99
99
|
mutation answers "clean status" and the REST squash merge is the path.
|
|
100
|
-
|
|
100
|
+
`CI` is on and `CI / required` is a required check in `protect-main`, so
|
|
101
|
+
a pull request is not clean until that check passes.
|
|
101
102
|
- **A verify failure inside `kxm land` shows only the child's last output
|
|
102
103
|
line.** Re-run verify by hand to see the cause until backlog S19 lands.
|
|
103
104
|
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
3
|
"name": "kxm",
|
|
4
4
|
"displayName": "KXM",
|
|
5
|
-
"version": "0.7.
|
|
5
|
+
"version": "0.7.170",
|
|
6
6
|
"description": "Headless multi-agent orchestration, durable workflows, and a live operator dashboard for Pi and Claude Code",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "KontextMind",
|
|
@@ -25438,7 +25438,7 @@ function sessionTokenFixHint(policy) {
|
|
|
25438
25438
|
}
|
|
25439
25439
|
|
|
25440
25440
|
// plugins/kxm/src/mcp-server.ts
|
|
25441
|
-
var VERSION = "0.7.
|
|
25441
|
+
var VERSION = "0.7.170";
|
|
25442
25442
|
var CONFIGURE_PLUGIN = "/plugin configure kxm@kxm";
|
|
25443
25443
|
var inbox = /* @__PURE__ */ new Map();
|
|
25444
25444
|
var notifiedInbox = /* @__PURE__ */ new Set();
|
package/plugins/kxm/package.json
CHANGED
|
@@ -11,7 +11,7 @@ import { deliverInboxNotification } from "./inbox.ts";
|
|
|
11
11
|
import type { HubEvent, MessageRecord } from "./protocol.ts";
|
|
12
12
|
import { sessionTokenFixHint } from "./session-token-hint.ts";
|
|
13
13
|
|
|
14
|
-
const VERSION = "0.7.
|
|
14
|
+
const VERSION = "0.7.170";
|
|
15
15
|
const CONFIGURE_PLUGIN = "/plugin configure kxm@kxm";
|
|
16
16
|
const inbox = new Map<string, MessageRecord>();
|
|
17
17
|
const notifiedInbox = new Set<string>();
|