@xynogen/pix-core 0.4.29 → 0.4.32

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/README.md CHANGED
@@ -18,7 +18,7 @@ Pi activates extensions per installed package via each package's `pi.extensions`
18
18
  | `pix-footer` | Status bar: mode / git branch / model / cost / live TPS |
19
19
  | `pix-models` | `/models` — enhanced model picker with coding score/rank, context, cost |
20
20
  | `pix-update` | `/update` — self-update Pi + refresh extensions |
21
- | `pix-commands` | Slash commands — `/clear`; more on the way |
21
+ | `pix-commands` | Slash commands — `/clear` and concurrent, context-isolated `/btw` side questions |
22
22
  | `pix-diagnostics` | Compact LSP diagnostic widget |
23
23
  | `pix-display` | Paste chip rendering + thinking block display |
24
24
  | `pix-prompts` | System-prompt injection (AGENTS.md + repo directive files) |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xynogen/pix-core",
3
- "version": "0.4.29",
3
+ "version": "0.4.32",
4
4
  "description": "Pi extension bundle — installs and activates all core pix-* extensions",
5
5
  "type": "module",
6
6
  "main": "src/extension.ts",
@@ -43,12 +43,12 @@
43
43
  "@xynogen/pix-welcome": "^0.1.14",
44
44
  "@xynogen/pix-footer": "^0.1.16",
45
45
  "@xynogen/pix-diagnostics": "^0.1.6",
46
- "@xynogen/pix-display": "^0.1.7",
46
+ "@xynogen/pix-display": "^0.1.8",
47
47
  "@xynogen/pix-prompts": "^0.3.1",
48
- "@xynogen/pix-skills": "^0.6.0",
48
+ "@xynogen/pix-skills": "^0.6.1",
49
49
  "@xynogen/pix-models": "^0.1.19",
50
50
  "@xynogen/pix-update": "^0.1.13",
51
- "@xynogen/pix-commands": "^0.1.8",
51
+ "@xynogen/pix-commands": "^0.2.0",
52
52
  "@xynogen/pix-nudge": "^0.1.9",
53
53
  "@xynogen/pix-read": "^0.1.13",
54
54
  "@xynogen/pix-write": "^0.1.12",
package/src/once.test.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { afterEach, describe, expect, it } from "bun:test";
2
+ import registerCommands from "@xynogen/pix-commands/src/extension.ts";
2
3
  import registerSubagent from "@xynogen/pix-subagent/src/extension.ts";
3
4
  import registerTodo from "@xynogen/pix-todo/src/todo.ts";
4
5
 
@@ -144,6 +145,36 @@ describe("member factory dedupe (pix-todo)", () => {
144
145
  });
145
146
  });
146
147
 
148
+ describe("member factory dedupe (pix-commands)", () => {
149
+ function makeHost() {
150
+ const commandNames: string[] = [];
151
+ const pi = {
152
+ registerCommand(name: string) {
153
+ commandNames.push(name);
154
+ },
155
+ registerMessageRenderer() {},
156
+ on() {},
157
+ } as never;
158
+ return { pi, commandNames };
159
+ }
160
+
161
+ it("registers /clear and /btw once across core + standalone activation", () => {
162
+ const { pi, commandNames } = makeHost();
163
+ registerCommands(pi);
164
+ registerCommands(pi);
165
+ expect(commandNames).toEqual(["clear", "btw"]);
166
+ });
167
+
168
+ it("registers commands again for a fresh pi instance", () => {
169
+ const first = makeHost();
170
+ const second = makeHost();
171
+ registerCommands(first.pi);
172
+ registerCommands(second.pi);
173
+ expect(first.commandNames).toEqual(["clear", "btw"]);
174
+ expect(second.commandNames).toEqual(["clear", "btw"]);
175
+ });
176
+ });
177
+
147
178
  describe("member factory dedupe (pix-subagent)", () => {
148
179
  function makeHost() {
149
180
  const toolNames: string[] = [];