@arbiterforge/ca-pi 0.17.8 → 0.17.10
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 +1 -1
- package/package.json +1 -1
- package/plugins/ca-pi/CHANGELOG.md +14 -0
- package/plugins/ca-pi/SPRINT.md +3 -1
- package/plugins/ca-pi/helpers/artifacts/ca-artifact-darwin-amd64 +0 -0
- package/plugins/ca-pi/helpers/artifacts/ca-artifact-darwin-arm64 +0 -0
- package/plugins/ca-pi/helpers/artifacts/ca-artifact-linux-amd64 +0 -0
- package/plugins/ca-pi/helpers/artifacts/ca-artifact-linux-arm64 +0 -0
- package/plugins/ca-pi/helpers/artifacts/ca-artifact-windows-amd64.exe +0 -0
- package/plugins/ca-pi/helpers/artifacts/ca-artifact-windows-arm64.exe +0 -0
- package/plugins/ca-pi/helpers/artifacts/release.json +36 -36
- package/plugins/ca-pi/hooks/_artifactauthoritylib.py +8 -1
- package/plugins/ca-pi/hooks/_host.py +1 -1
- package/plugins/ca-pi/hooks/hostapi.py +1 -1
- package/plugins/ca-pi/includes/artifacts.md +13 -0
- package/plugins/ca-pi/package.json +1 -1
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.
|
|
13
|
+
<img alt="version 2.25.9" src="https://img.shields.io/badge/version-2.25.9-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
|
@@ -4,6 +4,20 @@ All notable changes to `ca-pi` are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.17.10] - 2026-10-12
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Carry the shared native engine draft-pair rebinding repair and generated workflow guidance. This payload update does not enable Pi verification or review authority.
|
|
12
|
+
|
|
13
|
+
## [0.17.9] - 2026-10-12
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Recognize normal verbose unittest rows for fully qualified required test
|
|
18
|
+
identities. Preserve exact identity matching and refusal of duplicate,
|
|
19
|
+
skipped, failed or missing required results (#955).
|
|
20
|
+
|
|
7
21
|
## [0.17.8] - 2026-10-12
|
|
8
22
|
|
|
9
23
|
### Fixed
|
package/plugins/ca-pi/SPRINT.md
CHANGED
|
@@ -82,7 +82,9 @@ explicit delegation terms. The installed private pair adapter in
|
|
|
82
82
|
1. Finish the spec as a ready draft. Let `writing-plans` use `_preflight_plan_authoring` with
|
|
83
83
|
`draft_for_pair: true` only for this full-lane initial sprint. Populate the same-slug plan as
|
|
84
84
|
`draft_preview`, validate both, and review their complete criteria, paths, tests and checkpoints.
|
|
85
|
-
Neither draft has execution authority. Do not separately approve or
|
|
85
|
+
Neither draft has execution authority. Do not separately approve this pair or bind it to an
|
|
86
|
+
approved source. If review changes the draft spec, use only the explicit `draft_preview`
|
|
87
|
+
rebind described in `includes/artifacts.md`, then revalidate both current drafts before arming.
|
|
86
88
|
2. Arm both exact identities with `arm-sprint`. Include `--delegate-methods` only when the presented
|
|
87
89
|
terms explicitly ask the user to delegate existing task-method revisions. Present the exact returned reply;
|
|
88
90
|
it names both artifacts and `delegate-methods` or `approve-only`, not an ambiguous generic yes.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -6,43 +6,43 @@
|
|
|
6
6
|
"binaries": {
|
|
7
7
|
"darwin/amd64": {
|
|
8
8
|
"file": "ca-artifact-darwin-amd64",
|
|
9
|
-
"sha256": "
|
|
9
|
+
"sha256": "23755f26d1c1706e674b584f18b9a42e3f270e0dbbae9f78d9969633f3518797",
|
|
10
10
|
"native_tested": true
|
|
11
11
|
},
|
|
12
12
|
"darwin/arm64": {
|
|
13
13
|
"file": "ca-artifact-darwin-arm64",
|
|
14
|
-
"sha256": "
|
|
14
|
+
"sha256": "a3e8a3e294c3b4c89998ee6039bd5821598b134f8de4dff99e214250fa482083",
|
|
15
15
|
"native_tested": true
|
|
16
16
|
},
|
|
17
17
|
"linux/amd64": {
|
|
18
18
|
"file": "ca-artifact-linux-amd64",
|
|
19
|
-
"sha256": "
|
|
19
|
+
"sha256": "3831da75adc43ae8cd9a1b7586d12a6951657859101cb2a469bea791e009a071",
|
|
20
20
|
"native_tested": true
|
|
21
21
|
},
|
|
22
22
|
"linux/arm64": {
|
|
23
23
|
"file": "ca-artifact-linux-arm64",
|
|
24
|
-
"sha256": "
|
|
24
|
+
"sha256": "0853464b56cb264a9949e36cfd2882c901afd585b6dd16899e7540e818bef34e",
|
|
25
25
|
"native_tested": true
|
|
26
26
|
},
|
|
27
27
|
"windows/amd64": {
|
|
28
28
|
"file": "ca-artifact-windows-amd64.exe",
|
|
29
|
-
"sha256": "
|
|
29
|
+
"sha256": "c7a507c63e97a9b7b03d681dded80b90bcb8009ffb65bcdb74f8a585a9a46014",
|
|
30
30
|
"native_tested": true
|
|
31
31
|
},
|
|
32
32
|
"windows/arm64": {
|
|
33
33
|
"file": "ca-artifact-windows-arm64.exe",
|
|
34
|
-
"sha256": "
|
|
34
|
+
"sha256": "34e84e6a629ed0a86525d41fc88c1db783e0f028b35a18ca8a13a49eac9b245d",
|
|
35
35
|
"native_tested": true
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"context_qualification": {
|
|
39
39
|
"darwin/amd64": {
|
|
40
|
-
"source_commit": "
|
|
40
|
+
"source_commit": "d547f82777111bc20001a977719307d3d68fc13e",
|
|
41
41
|
"workflow": ".github/workflows/ci.yml",
|
|
42
|
-
"run_id": "
|
|
43
|
-
"binary_sha256": "
|
|
44
|
-
"observation_sha256": "
|
|
45
|
-
"module_sha256": "
|
|
42
|
+
"run_id": "38236271307",
|
|
43
|
+
"binary_sha256": "23755f26d1c1706e674b584f18b9a42e3f270e0dbbae9f78d9969633f3518797",
|
|
44
|
+
"observation_sha256": "2e234bae928c90a16f5673505fad5f634a80296f6dfcc022fa075ae63c8d9f59",
|
|
45
|
+
"module_sha256": "409b54287da99561d7c44e5618e5e4bb22a087bb1bd6da1bda3f4b8d1491aff1",
|
|
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": "
|
|
56
|
+
"source_commit": "d547f82777111bc20001a977719307d3d68fc13e",
|
|
57
57
|
"workflow": ".github/workflows/ci.yml",
|
|
58
|
-
"run_id": "
|
|
59
|
-
"binary_sha256": "
|
|
60
|
-
"observation_sha256": "
|
|
61
|
-
"module_sha256": "
|
|
58
|
+
"run_id": "38236271307",
|
|
59
|
+
"binary_sha256": "a3e8a3e294c3b4c89998ee6039bd5821598b134f8de4dff99e214250fa482083",
|
|
60
|
+
"observation_sha256": "3a7fe364f16f3c7785fd00d70b3328f6f559aacb12173c324e2f25b565a0ed4f",
|
|
61
|
+
"module_sha256": "409b54287da99561d7c44e5618e5e4bb22a087bb1bd6da1bda3f4b8d1491aff1",
|
|
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": "
|
|
72
|
+
"source_commit": "d547f82777111bc20001a977719307d3d68fc13e",
|
|
73
73
|
"workflow": ".github/workflows/ci.yml",
|
|
74
|
-
"run_id": "
|
|
75
|
-
"binary_sha256": "
|
|
76
|
-
"observation_sha256": "
|
|
77
|
-
"module_sha256": "
|
|
74
|
+
"run_id": "38236271307",
|
|
75
|
+
"binary_sha256": "3831da75adc43ae8cd9a1b7586d12a6951657859101cb2a469bea791e009a071",
|
|
76
|
+
"observation_sha256": "117d44acb470b9b4d06f41cb53c38a68d7f52a37164a92f512f181970f7270da",
|
|
77
|
+
"module_sha256": "409b54287da99561d7c44e5618e5e4bb22a087bb1bd6da1bda3f4b8d1491aff1",
|
|
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": "
|
|
88
|
+
"source_commit": "d547f82777111bc20001a977719307d3d68fc13e",
|
|
89
89
|
"workflow": ".github/workflows/ci.yml",
|
|
90
|
-
"run_id": "
|
|
91
|
-
"binary_sha256": "
|
|
92
|
-
"observation_sha256": "
|
|
93
|
-
"module_sha256": "
|
|
90
|
+
"run_id": "38236271307",
|
|
91
|
+
"binary_sha256": "0853464b56cb264a9949e36cfd2882c901afd585b6dd16899e7540e818bef34e",
|
|
92
|
+
"observation_sha256": "6ca2c5dabb2e9a02b90a1d4d2025e3731df84ed2da1a7e0d2ebb3ca96e711db7",
|
|
93
|
+
"module_sha256": "409b54287da99561d7c44e5618e5e4bb22a087bb1bd6da1bda3f4b8d1491aff1",
|
|
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": "
|
|
104
|
+
"source_commit": "d547f82777111bc20001a977719307d3d68fc13e",
|
|
105
105
|
"workflow": ".github/workflows/ci.yml",
|
|
106
|
-
"run_id": "
|
|
107
|
-
"binary_sha256": "
|
|
108
|
-
"observation_sha256": "
|
|
109
|
-
"module_sha256": "
|
|
106
|
+
"run_id": "38236271307",
|
|
107
|
+
"binary_sha256": "c7a507c63e97a9b7b03d681dded80b90bcb8009ffb65bcdb74f8a585a9a46014",
|
|
108
|
+
"observation_sha256": "b5fbcd0e0be73a7dfc8eee13ea000721819561f4307b9b59abd920a093f3004d",
|
|
109
|
+
"module_sha256": "409b54287da99561d7c44e5618e5e4bb22a087bb1bd6da1bda3f4b8d1491aff1",
|
|
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": "
|
|
120
|
+
"source_commit": "d547f82777111bc20001a977719307d3d68fc13e",
|
|
121
121
|
"workflow": ".github/workflows/ci.yml",
|
|
122
|
-
"run_id": "
|
|
123
|
-
"binary_sha256": "
|
|
124
|
-
"observation_sha256": "
|
|
125
|
-
"module_sha256": "
|
|
122
|
+
"run_id": "38236271307",
|
|
123
|
+
"binary_sha256": "34e84e6a629ed0a86525d41fc88c1db783e0f028b35a18ca8a13a49eac9b245d",
|
|
124
|
+
"observation_sha256": "4c4fe691b5ce1fdb3664917c1afd247e9fb8779b96d85c1d7e42fc1e6a2c7d71",
|
|
125
|
+
"module_sha256": "409b54287da99561d7c44e5618e5e4bb22a087bb1bd6da1bda3f4b8d1491aff1",
|
|
126
126
|
"native_cases": [
|
|
127
127
|
"TestContextBoundedRender",
|
|
128
128
|
"TestContextDocumentContract",
|
|
@@ -1735,7 +1735,14 @@ def _unittest_collector(stdout: bytes, stderr: bytes, required: list[str]) -> li
|
|
|
1735
1735
|
text = (stdout + b"\n" + stderr).decode("utf-8", "replace")
|
|
1736
1736
|
results = []
|
|
1737
1737
|
for name in required:
|
|
1738
|
-
|
|
1738
|
+
identity = re.escape(name)
|
|
1739
|
+
prefix = identity + r"(?:[ \t]+\([^\r\n]*\))?"
|
|
1740
|
+
if "." in name:
|
|
1741
|
+
# Ordinary verbose rows put the full identity in parentheses.
|
|
1742
|
+
# Match both forms together so mixed rows still count as duplicates.
|
|
1743
|
+
prefix = (r"(?:" + prefix + r"|" + re.escape(name.rsplit(".", 1)[1])
|
|
1744
|
+
+ r"[ \t]+\(" + identity + r"\))")
|
|
1745
|
+
pattern = re.compile(r"(?m)^" + prefix + r"[ \t]+\.\.\.[ \t]+([^\r\n]+)\r?$")
|
|
1739
1746
|
matches = pattern.findall(text)
|
|
1740
1747
|
if not matches:
|
|
1741
1748
|
raise AuthorityError("MISSING_TEST_RESULT", f"required test did not pass: {name}")
|
|
@@ -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.
|
|
14
|
+
adapter_version = "0.17.10"
|
|
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.
|
|
316
|
+
adapter_version = "2.25.9"
|
|
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,
|
|
@@ -149,6 +149,19 @@ combined HTML sprint review uses the explicit paired path below instead of separ
|
|
|
149
149
|
A normative change invalidates its approval. Rebinding is explicit and preserves
|
|
150
150
|
history; it does not waive coverage or permit silent reinterpretation.
|
|
151
151
|
|
|
152
|
+
When adversarial review revises a ready initial draft spec after its draft plan exists,
|
|
153
|
+
query both current identities. The installed engine's explicit `plan-bind` request with
|
|
154
|
+
`binding_mode: draft_preview` requires the plan's existing `expected` CAS and the spec's
|
|
155
|
+
`spec_expected` revision/model CAS. It rebinds only that same-ID, same-slug initial pair:
|
|
156
|
+
both artifacts must remain unapproved drafts, tasks pending and unevidenced, prerequisites
|
|
157
|
+
unsatisfied and unevidenced, and scopes empty. Optional typed plan corrections must leave
|
|
158
|
+
both drafts fully ready. The binding remains `draft_preview`; this operation grants no
|
|
159
|
+
approval, delegation, prerequisite satisfaction, execution or acceptance. Revalidate both
|
|
160
|
+
current drafts, repeat the affected review and arm the exact combined approval afterward.
|
|
161
|
+
Inspect the installed operation schema first. An engine without this explicit draft
|
|
162
|
+
request reports a capability gap; never edit HTML, recreate the pair, substitute sequential
|
|
163
|
+
approval or use ordinary approved-source `plan-bind` to repair it.
|
|
164
|
+
|
|
152
165
|
## Initial sprint pair and delegated methods
|
|
153
166
|
|
|
154
167
|
Only when preparing initial combined approval, replaying an observed reply, or revising a task's
|