pi-bro 0.19.4 → 0.19.5

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/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  All notable changes to pi-bro are documented here.
4
4
 
5
+ ## [0.19.5] - 2026-10-01
6
+
7
+ ### Changed
8
+
9
+ - Remove the always-true backend-support predicate and unreachable doctor/config branches; retain backend-specific effort and permission validation (#74).
10
+ - Move helper, modal, advisor, and Pi SDK regression checks into named Node tests with shared isolated compilation, leaving shell smoke tests focused on host RPC integration and avoiding duplicate helper execution in PiG (#74).
11
+ - Consolidate redundant support, prompt, and BTW assertions; replace prose greps with package-documentation checks and document surviving coverage (#74).
12
+
13
+ ### Fixed
14
+
15
+ - Make the advisor throttle cancellation test actually queue an emission and advance controlled time beyond its deadline; verified by removing cleanup and observing failure (#74).
16
+
17
+ ### Documentation
18
+
19
+ - Explicitly archive the seven pre-conversation-only decomposition captures as historical semantic examples and record before/after test organization and timings (#74).
20
+
5
21
  ## [0.19.4] - 2026-10-01
6
22
 
7
23
  ### Fixed
package/backend.ts CHANGED
@@ -511,12 +511,6 @@ async function executeAdvisorStdin(
511
511
  }
512
512
 
513
513
 
514
- // Every backend supports every feature. Grok's "restricted" access is a prompt instruction, not
515
- // enforcement (see GROK_RESTRICTED_PREFIX); Claude's restricted btw runs tool-less.
516
- export function backendSupports(_backend: "agy" | "claude" | "grok" | "codex" | "muse", _feature: BackendFeature): boolean {
517
- return true;
518
- }
519
-
520
514
  type ClaudeEvent = {
521
515
  type?: unknown;
522
516
  subtype?: unknown;
package/bro.ts CHANGED
@@ -26,7 +26,6 @@ import {
26
26
  GROK_EFFORTS,
27
27
  CODEX_EFFORTS,
28
28
  MUSE_EFFORTS,
29
- backendSupports,
30
29
  execute as executeBackend,
31
30
  parseBtwAgyLine,
32
31
  type AgySelection,
@@ -112,7 +111,6 @@ export const MUSE_MODELS = [
112
111
  { id: "muse-spark-1.3-contributor", label: "Muse Spark 1.3 Contributor" },
113
112
  { id: "muse-spark-1.3", label: "Muse Spark 1.3" },
114
113
  ] as const;
115
- export { backendSupports as supportsBackend };
116
114
  type AgyModelFamily = {
117
115
  id: string;
118
116
  label: string;
@@ -1325,10 +1323,6 @@ async function doctorReport(pi: ExtensionAPI, ctx: ExtensionCommandContext, sign
1325
1323
  continue;
1326
1324
  }
1327
1325
  if (backend === "grok") {
1328
- if (!backendSupports("grok", capability)) {
1329
- fail(label, `\`${capability}\` is not supported on the Grok backend for this capability. Run \`/bro config\` to give it another backend.`);
1330
- continue;
1331
- }
1332
1326
  if (!isGrokEffort(pair.effort)) {
1333
1327
  fail(label, `\`${pair.effort}\` is unsupported for grok \`${pair.model}\`. Run \`/bro config\` to fix this.`);
1334
1328
  continue;
@@ -1342,10 +1336,6 @@ async function doctorReport(pi: ExtensionAPI, ctx: ExtensionCommandContext, sign
1342
1336
  continue;
1343
1337
  }
1344
1338
  if (backend === "codex") {
1345
- if (!backendSupports("codex", capability)) {
1346
- fail(label, `\`${capability}\` is not supported on the Codex backend for this capability. Run \`/bro config\` to give it another backend.`);
1347
- continue;
1348
- }
1349
1339
  if (!isCodexEffort(pair.effort)) {
1350
1340
  fail(label, `\`${pair.effort}\` is unsupported for codex \`${pair.model}\`. Run \`/bro config\` to fix this.`);
1351
1341
  continue;
@@ -1359,10 +1349,6 @@ async function doctorReport(pi: ExtensionAPI, ctx: ExtensionCommandContext, sign
1359
1349
  continue;
1360
1350
  }
1361
1351
  if (backend === "muse") {
1362
- if (!backendSupports("muse", capability)) {
1363
- fail(label, `\`${capability}\` is not supported on the Muse backend for this capability. Run \`/bro config\` to give it another backend.`);
1364
- continue;
1365
- }
1366
1352
  if (!isMuseEffort(pair.effort)) {
1367
1353
  fail(label, `\`${pair.effort}\` is unsupported for muse \`${pair.model}\`. Run \`/bro config\` to fix this.`);
1368
1354
  continue;
@@ -2277,7 +2263,7 @@ export function createConfigModal(
2277
2263
  : backend === "muse"
2278
2264
  ? `${MUSE_OPTION_PREFIX}${override.model}`
2279
2265
  : (resolved.family?.id ?? override.model);
2280
- rows.effort.currentValue = backendSupports(backend, capability) ? effortDisplay(resolved, backend) : "unsupported backend";
2266
+ rows.effort.currentValue = effortDisplay(resolved, backend);
2281
2267
  rows.effort.values =
2282
2268
  backend === "claude"
2283
2269
  ? ["default", ...CLAUDE_EFFORTS]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-bro",
3
- "version": "0.19.4",
3
+ "version": "0.19.5",
4
4
  "description": "An Earendil Pi extension that explains pasted text, assistant responses, local documents, public webpages, and recent session turns (as shapes) in a context-isolated window, opens a sandboxed side conversation with /bro btw, and provides a second-opinion advisor tool for executor agents.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -54,7 +54,7 @@
54
54
  },
55
55
  "scripts": {
56
56
  "typecheck": "tsc --noEmit",
57
- "test": "npm run typecheck && node --test prompt.test.ts backend.test.ts claude.test.ts grok.test.ts codex.test.ts muse.test.ts settings.test.ts show-html.test.ts smoke-rpc.test.ts ui-capabilities.test.ts benchmark/*.test.ts && sh ./smoke-test.sh",
57
+ "test": "npm run typecheck && node --test helpers.test.mjs prompt.test.ts backend.test.ts claude.test.ts grok.test.ts codex.test.ts muse.test.ts settings.test.ts show-html.test.ts smoke-rpc.test.ts ui-capabilities.test.ts benchmark/*.test.ts && sh ./smoke-test.sh",
58
58
  "benchmark:dry-run": "node benchmark/run.ts dry-run",
59
59
  "benchmark:run": "node benchmark/run.ts run",
60
60
  "benchmark:report": "node benchmark/run.ts report",