@arbiterforge/ca-pi 0.17.10 → 0.18.0

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
@@ -10,7 +10,7 @@ and durable project context. You decide. codeArbiter enforces.
10
10
  <img alt="Claude Code plugin" src="https://img.shields.io/badge/Claude_Code-plugin-d97757">
11
11
  <img alt="Codex plugin" src="https://img.shields.io/badge/OpenAI_Codex-plugin-10a37f">
12
12
  <img alt="Pi Feature Forge preview" src="https://img.shields.io/badge/ca--pi-Feature_Forge_preview-d97757">
13
- <img alt="version 2.25.9" src="https://img.shields.io/badge/version-2.25.9-2b7489">
13
+ <img alt="version 2.26.0" src="https://img.shields.io/badge/version-2.26.0-2b7489">
14
14
  <img alt="core lanes" src="https://img.shields.io/badge/core_lanes-18-555">
15
15
  <img alt="skills" src="https://img.shields.io/badge/skills-22-555">
16
16
  <img alt="agents" src="https://img.shields.io/badge/agents-20-555">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbiterforge/ca-pi",
3
- "version": "0.17.10",
3
+ "version": "0.18.0",
4
4
  "license": "AGPL-3.0-only",
5
5
  "repository": {
6
6
  "type": "git",
@@ -4,6 +4,26 @@ All notable changes to `ca-pi` are documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.18.0] - 2026-10-10
8
+
9
+ ### Changed
10
+
11
+ - Identify verification inputs by ship-set membership (ADR-0042): git index
12
+ entries present on disk plus untracked non-ignored files within the plan roots,
13
+ minus excludes. Outside git, membership comes from the filesystem; a failed git
14
+ probe fails closed with `INPUT_MEMBERSHIP_UNAVAILABLE`, and an unmerged index
15
+ fails closed until resolved.
16
+ - Exempt exactly `.codearbiter/gate-events.log` from snapshots. It is never
17
+ counted and stays tracked as the audit trail; every other `.codearbiter` path,
18
+ including `overrides.log`, still counts.
19
+ - Advance the verification-input manifest to `codearbiter.verification-inputs/0.2.0`.
20
+ Receipts bound to a 0.1.0 manifest read as stale and must be re-verified.
21
+ - Open snapshot files through bounded handle opens and validate each evidence
22
+ object at most once per operation. Raw reads are reused only up to a 64 MiB
23
+ per-operation retained-byte budget, so past it an object can be read again;
24
+ validation still happens once.
25
+ - Raise the `prompt-submit` hook timeout to 600 seconds so a long snapshot no
26
+ longer times out the prompt seam (#931).
7
27
  ## [0.17.10] - 2026-10-12
8
28
 
9
29
  ### Fixed
@@ -6,43 +6,43 @@
6
6
  "binaries": {
7
7
  "darwin/amd64": {
8
8
  "file": "ca-artifact-darwin-amd64",
9
- "sha256": "23755f26d1c1706e674b584f18b9a42e3f270e0dbbae9f78d9969633f3518797",
9
+ "sha256": "e35e21caa147a5e6c9d04fd400b5b4fcdb2d1d9cec9119d70249fcb80aeb3512",
10
10
  "native_tested": true
11
11
  },
12
12
  "darwin/arm64": {
13
13
  "file": "ca-artifact-darwin-arm64",
14
- "sha256": "a3e8a3e294c3b4c89998ee6039bd5821598b134f8de4dff99e214250fa482083",
14
+ "sha256": "dc9157c6ecf48fe05c20351b276ef8c2037847eaedee9dfb88b4f8d0b685b51e",
15
15
  "native_tested": true
16
16
  },
17
17
  "linux/amd64": {
18
18
  "file": "ca-artifact-linux-amd64",
19
- "sha256": "3831da75adc43ae8cd9a1b7586d12a6951657859101cb2a469bea791e009a071",
19
+ "sha256": "6fbd763c319d423291832f796515a4c8202d04e8785ea9ce178a495d917049d6",
20
20
  "native_tested": true
21
21
  },
22
22
  "linux/arm64": {
23
23
  "file": "ca-artifact-linux-arm64",
24
- "sha256": "0853464b56cb264a9949e36cfd2882c901afd585b6dd16899e7540e818bef34e",
24
+ "sha256": "2b623d4329665513fb11a99e866e30c579a47172ffd16f6faaae21bf21fda83d",
25
25
  "native_tested": true
26
26
  },
27
27
  "windows/amd64": {
28
28
  "file": "ca-artifact-windows-amd64.exe",
29
- "sha256": "c7a507c63e97a9b7b03d681dded80b90bcb8009ffb65bcdb74f8a585a9a46014",
29
+ "sha256": "44003f24b77a5cd51b63fe991a8775462619e2b2130c1162d36450a0570970d8",
30
30
  "native_tested": true
31
31
  },
32
32
  "windows/arm64": {
33
33
  "file": "ca-artifact-windows-arm64.exe",
34
- "sha256": "34e84e6a629ed0a86525d41fc88c1db783e0f028b35a18ca8a13a49eac9b245d",
34
+ "sha256": "37efc98301beec7c0bf465dee6f4bb48152abef515ae55aa37bff628e969e5bd",
35
35
  "native_tested": true
36
36
  }
37
37
  },
38
38
  "context_qualification": {
39
39
  "darwin/amd64": {
40
- "source_commit": "d547f82777111bc20001a977719307d3d68fc13e",
40
+ "source_commit": "54471947e1622fa35233a0fdc16ab42d05267ecb",
41
41
  "workflow": ".github/workflows/ci.yml",
42
- "run_id": "38236271307",
43
- "binary_sha256": "23755f26d1c1706e674b584f18b9a42e3f270e0dbbae9f78d9969633f3518797",
44
- "observation_sha256": "2e234bae928c90a16f5673505fad5f634a80296f6dfcc022fa075ae63c8d9f59",
45
- "module_sha256": "409b54287da99561d7c44e5618e5e4bb22a087bb1bd6da1bda3f4b8d1491aff1",
42
+ "run_id": "38250134924",
43
+ "binary_sha256": "e35e21caa147a5e6c9d04fd400b5b4fcdb2d1d9cec9119d70249fcb80aeb3512",
44
+ "observation_sha256": "36cbcb4c398592e658bc2e3d249ade3ff650c1aece503aea9f218ad80679e5db",
45
+ "module_sha256": "05b0359c108baf52bd3884c36969febc3f98e53786cf80da757115bee5ac9dc2",
46
46
  "native_cases": [
47
47
  "TestContextBoundedRender",
48
48
  "TestContextDocumentContract",
@@ -53,12 +53,12 @@
53
53
  ]
54
54
  },
55
55
  "darwin/arm64": {
56
- "source_commit": "d547f82777111bc20001a977719307d3d68fc13e",
56
+ "source_commit": "54471947e1622fa35233a0fdc16ab42d05267ecb",
57
57
  "workflow": ".github/workflows/ci.yml",
58
- "run_id": "38236271307",
59
- "binary_sha256": "a3e8a3e294c3b4c89998ee6039bd5821598b134f8de4dff99e214250fa482083",
60
- "observation_sha256": "3a7fe364f16f3c7785fd00d70b3328f6f559aacb12173c324e2f25b565a0ed4f",
61
- "module_sha256": "409b54287da99561d7c44e5618e5e4bb22a087bb1bd6da1bda3f4b8d1491aff1",
58
+ "run_id": "38250134924",
59
+ "binary_sha256": "dc9157c6ecf48fe05c20351b276ef8c2037847eaedee9dfb88b4f8d0b685b51e",
60
+ "observation_sha256": "b4f9a083e3772d3296826a40ad8364c4faf046d21af0b7bea7e152eb0bda54df",
61
+ "module_sha256": "05b0359c108baf52bd3884c36969febc3f98e53786cf80da757115bee5ac9dc2",
62
62
  "native_cases": [
63
63
  "TestContextBoundedRender",
64
64
  "TestContextDocumentContract",
@@ -69,12 +69,12 @@
69
69
  ]
70
70
  },
71
71
  "linux/amd64": {
72
- "source_commit": "d547f82777111bc20001a977719307d3d68fc13e",
72
+ "source_commit": "54471947e1622fa35233a0fdc16ab42d05267ecb",
73
73
  "workflow": ".github/workflows/ci.yml",
74
- "run_id": "38236271307",
75
- "binary_sha256": "3831da75adc43ae8cd9a1b7586d12a6951657859101cb2a469bea791e009a071",
76
- "observation_sha256": "117d44acb470b9b4d06f41cb53c38a68d7f52a37164a92f512f181970f7270da",
77
- "module_sha256": "409b54287da99561d7c44e5618e5e4bb22a087bb1bd6da1bda3f4b8d1491aff1",
74
+ "run_id": "38250134924",
75
+ "binary_sha256": "6fbd763c319d423291832f796515a4c8202d04e8785ea9ce178a495d917049d6",
76
+ "observation_sha256": "9b040d91f1775fda353b53130c557882ac3be4b7eeed55ebc83fe39d508ff269",
77
+ "module_sha256": "05b0359c108baf52bd3884c36969febc3f98e53786cf80da757115bee5ac9dc2",
78
78
  "native_cases": [
79
79
  "TestContextBoundedRender",
80
80
  "TestContextDocumentContract",
@@ -85,12 +85,12 @@
85
85
  ]
86
86
  },
87
87
  "linux/arm64": {
88
- "source_commit": "d547f82777111bc20001a977719307d3d68fc13e",
88
+ "source_commit": "54471947e1622fa35233a0fdc16ab42d05267ecb",
89
89
  "workflow": ".github/workflows/ci.yml",
90
- "run_id": "38236271307",
91
- "binary_sha256": "0853464b56cb264a9949e36cfd2882c901afd585b6dd16899e7540e818bef34e",
92
- "observation_sha256": "6ca2c5dabb2e9a02b90a1d4d2025e3731df84ed2da1a7e0d2ebb3ca96e711db7",
93
- "module_sha256": "409b54287da99561d7c44e5618e5e4bb22a087bb1bd6da1bda3f4b8d1491aff1",
90
+ "run_id": "38250134924",
91
+ "binary_sha256": "2b623d4329665513fb11a99e866e30c579a47172ffd16f6faaae21bf21fda83d",
92
+ "observation_sha256": "c723a04d24d46eb6f95d5665485bd3cc11d2379be2ebad328b3afc4f66ec6be3",
93
+ "module_sha256": "05b0359c108baf52bd3884c36969febc3f98e53786cf80da757115bee5ac9dc2",
94
94
  "native_cases": [
95
95
  "TestContextBoundedRender",
96
96
  "TestContextDocumentContract",
@@ -101,12 +101,12 @@
101
101
  ]
102
102
  },
103
103
  "windows/amd64": {
104
- "source_commit": "d547f82777111bc20001a977719307d3d68fc13e",
104
+ "source_commit": "54471947e1622fa35233a0fdc16ab42d05267ecb",
105
105
  "workflow": ".github/workflows/ci.yml",
106
- "run_id": "38236271307",
107
- "binary_sha256": "c7a507c63e97a9b7b03d681dded80b90bcb8009ffb65bcdb74f8a585a9a46014",
108
- "observation_sha256": "b5fbcd0e0be73a7dfc8eee13ea000721819561f4307b9b59abd920a093f3004d",
109
- "module_sha256": "409b54287da99561d7c44e5618e5e4bb22a087bb1bd6da1bda3f4b8d1491aff1",
106
+ "run_id": "38250134924",
107
+ "binary_sha256": "44003f24b77a5cd51b63fe991a8775462619e2b2130c1162d36450a0570970d8",
108
+ "observation_sha256": "1bbcf5fe0c13648e81c643c976a5f456cd2a3c3bbfe7c9a7642a6cdf8e71c68b",
109
+ "module_sha256": "05b0359c108baf52bd3884c36969febc3f98e53786cf80da757115bee5ac9dc2",
110
110
  "native_cases": [
111
111
  "TestContextBoundedRender",
112
112
  "TestContextDocumentContract",
@@ -117,12 +117,12 @@
117
117
  ]
118
118
  },
119
119
  "windows/arm64": {
120
- "source_commit": "d547f82777111bc20001a977719307d3d68fc13e",
120
+ "source_commit": "54471947e1622fa35233a0fdc16ab42d05267ecb",
121
121
  "workflow": ".github/workflows/ci.yml",
122
- "run_id": "38236271307",
123
- "binary_sha256": "34e84e6a629ed0a86525d41fc88c1db783e0f028b35a18ca8a13a49eac9b245d",
124
- "observation_sha256": "4c4fe691b5ce1fdb3664917c1afd247e9fb8779b96d85c1d7e42fc1e6a2c7d71",
125
- "module_sha256": "409b54287da99561d7c44e5618e5e4bb22a087bb1bd6da1bda3f4b8d1491aff1",
122
+ "run_id": "38250134924",
123
+ "binary_sha256": "37efc98301beec7c0bf465dee6f4bb48152abef515ae55aa37bff628e969e5bd",
124
+ "observation_sha256": "78f3c133923c66945b84e1b4a9f02a6edbfb357e1be4f7d2e1b8e3123b2b17e2",
125
+ "module_sha256": "05b0359c108baf52bd3884c36969febc3f98e53786cf80da757115bee5ac9dc2",
126
126
  "native_cases": [
127
127
  "TestContextBoundedRender",
128
128
  "TestContextDocumentContract",
@@ -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.17.10"
14
+ adapter_version = "0.18.0"
15
15
  update_target = "ca-pi"
16
16
  update_tag_prefix = "ca-pi-v"
17
17
  update_command = "pi update npm:@arbiterforge/ca-pi"
@@ -313,7 +313,7 @@ class Host:
313
313
 
314
314
  name = "claude"
315
315
  adapter_name = "ca"
316
- adapter_version = "2.25.9"
316
+ adapter_version = "2.26.0"
317
317
 
318
318
  # Update-notifier descriptor. Each independently versioned host overrides
319
319
  # these three values in its per-plugin _host.py. Keeping the target,
@@ -88,7 +88,10 @@ executable/workspace binding and fresh named-result evidence remain required.
88
88
  repository-relative paths. Exclusions are directory paths, not globs or basename
89
89
  matches and not relative to an individual root. For root `site`, a generated
90
90
  dependency exclusion is `site/node_modules`, not `node_modules`. Review each
91
- excluded output directory explicitly; `.gitignore` does not define this policy.
91
+ excluded output directory explicitly: the plan's roots and exclusions narrow
92
+ the ship set. In a git work tree `.gitignore` already keeps untracked ignored
93
+ files out of it; outside git nothing is filtered, so exclude generated
94
+ directories explicitly.
92
95
  An exclusion outside all selected roots is rejected as ineffective. Overlapping
93
96
  roots cannot reinclude an excluded directory. Roots must exist before execution;
94
97
  use an existing containing directory for a planned new file so its creation
@@ -96,6 +99,21 @@ changes the snapshot. An oversized included file is reported with its path and
96
99
  the 32 MiB per-file limit; revise the explicit policy rather than increasing the
97
100
  limit or excluding source/test/governance inputs needed for the task.
98
101
 
102
+ Snapshot input identity is ship-set membership. In a git work tree the members
103
+ are the git index entries present on disk, plus untracked non-ignored files
104
+ within the plan's roots, minus its excludes. The one fixed exemption is
105
+ `.codearbiter/gate-events.log`: it is never counted, whatever the plan says, and
106
+ stays tracked as the audit trail; every other `.codearbiter` path still counts.
107
+ Outside git, membership is read from the filesystem (`membership: filesystem`);
108
+ the root must be the top level of its work tree, so a subdirectory root counts as
109
+ outside git. A failed git probe fails closed with `INPUT_MEMBERSHIP_UNAVAILABLE`. An unmerged
110
+ git index (conflicted paths) makes a snapshot fail closed until it is resolved.
111
+ The manifest format is `codearbiter.verification-inputs/0.2.0`; receipts bound to
112
+ a 0.1.0 manifest read as stale. Each evidence object is validated at most once
113
+ per operation and scans are bounded; raw reads are reused only up to a 64 MiB
114
+ per-operation retained-byte budget, past which an object can be read again, but
115
+ validation is never skipped.
116
+
99
117
  The existing user, SMARTS, reviewer, or verification boundary must first persist
100
118
  its actual policy-owned workflow event as canonical JSON in the reserved
101
119
  content-addressed authority-source store. Interactive prompt approval currently
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbiterforge/ca-pi",
3
- "version": "0.17.10",
3
+ "version": "0.18.0",
4
4
  "private": true,
5
5
  "license": "AGPL-3.0-only",
6
6
  "type": "module",