@arbiterforge/ca-pi 0.10.11 → 0.10.12

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
@@ -161,7 +161,7 @@ pi config
161
161
  Replace `<version>` with the numeric suffix from the chosen tag while retaining the full
162
162
  `ca-pi-v...` tag in the install source.
163
163
 
164
- Pi 0.80.5 and Pi 0.84.1 are the supported hosts for this release line. Generated aliases use `/ca-*`;
164
+ Pi 0.84.1 is the supported host for this release line. Generated aliases use `/ca-*`;
165
165
  `/skill:ca-*` is the host-native fallback. Every `ca-pi-v*` tag is also published to npm as
166
166
  `npm:@arbiterforge/ca-pi` with provenance (ADR-0029); the pinned Git tag remains the reproducible
167
167
  install. The [Pi runbook](./docs/pi-parity-testing.md) covers isolated install, trust, verification,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbiterforge/ca-pi",
3
- "version": "0.10.11",
3
+ "version": "0.10.12",
4
4
  "license": "AGPL-3.0-only",
5
5
  "repository": {
6
6
  "type": "git",
@@ -4,6 +4,13 @@ All notable changes to `ca-pi` are documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.10.12] - 2026-09-09
8
+
9
+ ### Fixed
10
+
11
+ - Bind the reviewed Pi 0.84.1 npm configuration and lock bytes across Windows and POSIX checkouts, require CI to execute the integrity-checked install step, and reject the retired Pi 0.80.5 host explicitly.
12
+ - Correct singleton Pi support wording and reconcile authenticated publication receipts for the already-published 0.10.11 release line.
13
+
7
14
  ## [0.10.11] - 2026-09-08
8
15
 
9
16
  ### Fixed
@@ -629,7 +629,7 @@ function resolvePythonCommand(platform = process.platform, probe = systemPythonP
629
629
  }
630
630
 
631
631
  // src/compatibility.ts
632
- var SUPPORTED_PI_VERSIONS = /* @__PURE__ */ new Set(["0.80.5", "0.84.1"]);
632
+ var SUPPORTED_PI_VERSIONS = /* @__PURE__ */ new Set(["0.84.1"]);
633
633
  var MINIMUM_NODE = [22, 19, 0];
634
634
  var SEMVER_PREFIX = /^(\d+)\.(\d+)\.(\d+)(?:$|[-+])/u;
635
635
  function atLeast(version, minimum) {
@@ -644,7 +644,7 @@ function atLeast(version, minimum) {
644
644
  }
645
645
  function compatibilityDirection(input) {
646
646
  if (!SUPPORTED_PI_VERSIONS.has(input.piVersion)) {
647
- return "codeArbiter requires Pi 0.80.5 or 0.84.1; install a supported Pi version and run /ca-doctor.";
647
+ return "codeArbiter requires Pi 0.84.1; install a supported Pi version and run /ca-doctor.";
648
648
  }
649
649
  if (!atLeast(input.nodeVersion, MINIMUM_NODE)) {
650
650
  return "codeArbiter requires Node >=22.19.0 for Pi; upgrade Node and run /ca-doctor.";
@@ -2,7 +2,7 @@
2
2
  var define_CODEARBITER_PI_PERMISSION_POLICY_SURFACES_default = { "ca-plan": "planning-write", codearbiter_background_bash: "background-launch" };
3
3
 
4
4
  // <define:__CODEARBITER_PI_SKILL_EXPANSION_FINGERPRINTS__>
5
- var define_CODEARBITER_PI_SKILL_EXPANSION_FINGERPRINTS_default = { "0.80.5": "12632f365440b07d5183cff871d889b796a3c711b6b49df20f95d9bc198d6c51", "0.84.1": "12632f365440b07d5183cff871d889b796a3c711b6b49df20f95d9bc198d6c51" };
5
+ var define_CODEARBITER_PI_SKILL_EXPANSION_FINGERPRINTS_default = { "0.84.1": "12632f365440b07d5183cff871d889b796a3c711b6b49df20f95d9bc198d6c51" };
6
6
 
7
7
  // <define:__CODEARBITER_PI_TOOL_CLASSES__>
8
8
  var define_CODEARBITER_PI_TOOL_CLASSES_default = { bash: "EXEC", codearbiter_background_bash: "EXEC", codearbiter_dispatch: "EXEC", codearbiter_farm_preview: "EXEC", write: "WRITE", edit: "EDIT", read: "READ" };
@@ -16,7 +16,7 @@ import { fileURLToPath as fileURLToPath5, pathToFileURL as pathToFileURL2 } from
16
16
  import { types as utilTypes9 } from "node:util";
17
17
 
18
18
  // src/compatibility.ts
19
- var SUPPORTED_PI_VERSIONS = /* @__PURE__ */ new Set(["0.80.5", "0.84.1"]);
19
+ var SUPPORTED_PI_VERSIONS = /* @__PURE__ */ new Set(["0.84.1"]);
20
20
  var MINIMUM_NODE = [22, 19, 0];
21
21
  var SEMVER_PREFIX = /^(\d+)\.(\d+)\.(\d+)(?:$|[-+])/u;
22
22
  function atLeast(version, minimum) {
@@ -31,7 +31,7 @@ function atLeast(version, minimum) {
31
31
  }
32
32
  function compatibilityDirection(input) {
33
33
  if (!SUPPORTED_PI_VERSIONS.has(input.piVersion)) {
34
- return "codeArbiter requires Pi 0.80.5 or 0.84.1; install a supported Pi version and run /ca-doctor.";
34
+ return "codeArbiter requires Pi 0.84.1; install a supported Pi version and run /ca-doctor.";
35
35
  }
36
36
  if (!atLeast(input.nodeVersion, MINIMUM_NODE)) {
37
37
  return "codeArbiter requires Node >=22.19.0 for Pi; upgrade Node and run /ca-doctor.";
@@ -6881,10 +6881,10 @@ async function collectPiDoctorInput(dependencies) {
6881
6881
  var REMEDIATION = {
6882
6882
  package: "Reinstall ca-pi from the approved pinned Git tag, then restart Pi.",
6883
6883
  trust: "Run /trust in Pi, inspect the project, grant trust only if you accept it, then start a new session.",
6884
- version: "Upgrade Pi to 0.80.5 or 0.84.1 and Node to >=22.19.0, then restart Pi.",
6884
+ version: "Upgrade Pi to 0.84.1 and Node to >=22.19.0, then restart Pi.",
6885
6885
  python: "Upgrade or install Python 3, then run /ca-doctor again.",
6886
6886
  core: "Reinstall ca-pi to restore the generated shared core, then run /ca-doctor again.",
6887
- commands: "Remove conflicting command owners or run Pi 0.80.5/0.84.1, then restart Pi and run /ca-doctor.",
6887
+ commands: "Remove conflicting command owners or run Pi 0.84.1, then restart Pi and run /ca-doctor.",
6888
6888
  bridge: "Reinstall ca-pi and Python 3, then run /ca-doctor again.",
6889
6889
  child: "Reinstall ca-pi if the hardened child artifact is missing or tampered, then run /ca-doctor again.",
6890
6890
  "ambient-marker": "Remove CODEARBITER_SUBAGENT from the parent environment and restart Pi.",
@@ -6913,7 +6913,7 @@ function diagnosePi(input) {
6913
6913
  const packageHealthy = input.package.declared && input.package.name === "@arbiterforge/ca-pi" && existsSync(input.package.root) && existsSync(input.package.extensionPath) && samePath2(input.package.extensionPath, expectedExtension) && canonicallyInside(input.package.extensionPath, input.package.root);
6914
6914
  const trustHealthy = input.trust.inspected && (!input.trust.required || input.trust.projectTrusted);
6915
6915
  const waitingForTrust = input.trust.required && !input.trust.projectTrusted;
6916
- const versionHealthy = ["0.80.5", "0.84.1"].includes(input.runtime.piVersion) && atLeast(input.runtime.nodeVersion, [22, 19, 0]);
6916
+ const versionHealthy = input.runtime.piVersion === "0.84.1" && atLeast(input.runtime.nodeVersion, [22, 19, 0]);
6917
6917
  const piBelowMinimum = !atLeast(input.runtime.piVersion, [0, 80, 5]);
6918
6918
  const supportedExpansion = input.commands.expansionVerifiedVersions.includes(input.runtime.piVersion);
6919
6919
  const expectedDoctorSkill = resolve9(input.package.root, "skills", "ca-doctor", "SKILL.md");
@@ -7034,7 +7034,7 @@ function diagnosePi(input) {
7034
7034
  {
7035
7035
  id: "active-dispatch",
7036
7036
  state: "degraded",
7037
- message: "Supported Pi 0.80.5/0.84.1 public extension APIs cannot submit this deterministic self-test through the active dispatcher; the wrapper self-test does not exercise active dispatch.",
7037
+ message: "Supported Pi 0.84.1 public extension APIs cannot submit this deterministic self-test through the active dispatcher; the wrapper self-test does not exercise active dispatch.",
7038
7038
  remediation: REMEDIATION["active-dispatch"]
7039
7039
  }
7040
7040
  ];
@@ -10588,7 +10588,7 @@ async function codeArbiterPi(pi) {
10588
10588
  activeTools: pi.getActiveTools(),
10589
10589
  allTools: pi.getAllTools(),
10590
10590
  expansionFingerprints,
10591
- childFingerprint: "c9573777b4c59abfb4adbe6879fc03de7f7962327d97c378c2fb71d300a4e22f"
10591
+ childFingerprint: "22e5231b36a0af4a4202ced48a20e7dc9de435b6c6af985c6007bff96c5e04d1"
10592
10592
  });
10593
10593
  const wrapperSelfTest = await runPiWrapperSelfTest({
10594
10594
  enabled: enabledForDoctor,
@@ -11,7 +11,7 @@ import hostapi # noqa: E402
11
11
  class PiHost(hostapi.Host):
12
12
  name = "pi"
13
13
  adapter_name = "@arbiterforge/ca-pi"
14
- adapter_version = "0.10.11"
14
+ adapter_version = "0.10.12"
15
15
  update_target = "ca-pi"
16
16
  update_tag_prefix = "ca-pi-v"
17
17
  update_command = "pi update npm:@arbiterforge/ca-pi"
@@ -74,7 +74,7 @@ file maps those actions to Pi's extension API.
74
74
  operator-launched Pi CLI, imported module, package root, and reported version.
75
75
  It does not prove publisher authenticity. Verify the source separately with
76
76
  `pi list` and `pi config`.
77
- - Supported promotion targets are Pi 0.80.5 and Pi 0.84.1. The package is
77
+ - The supported promotion target is exact Pi 0.84.1. The package is
78
78
  published as `npm:@arbiterforge/ca-pi` on every `ca-pi-v*` tag (ADR-0029);
79
79
  the pinned Git tag remains the reproducible install. A Pi-native embedded
80
80
  farm worker is a future spike, not an installed dependency.
@@ -21,7 +21,7 @@ remediation.
21
21
  Pi bash wrapper. The exact shared-core `[H-03]` block is healthy and cannot stage files; execution
22
22
  or a different block is unhealthy. This self-test does not traverse Pi's active dispatcher. Do not
23
23
  rerun or respell it.
24
- 4. Its `active-dispatch` row remains degraded because supported Pi 0.80.5/0.84.1 public extension
24
+ 4. Its `active-dispatch` row remains degraded because supported Pi 0.84.1 public extension
25
25
  APIs cannot submit that deterministic call through the active dispatcher. PI-AC-28 remains blocked
26
26
  until supported-version real-host promotion/CI evidence closes the gap.
27
27