persona-harness 0.8.38 → 0.8.39

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.
@@ -3,6 +3,7 @@ import { resolveContainedPath } from "../io/bounded-path-walker.js";
3
3
  import { extractTargetFile, isInstalledPersonaHarnessPackageFile } from "../io/tool-target.js";
4
4
  import { ContextDeliveryStore } from "./context-delivery-store.js";
5
5
  const CONTEXT_DELIVERY_MARKER = "[Persona Harness Context]";
6
+ const CONTEXT_DELIVERY_PART_ID = "persona-harness-context";
6
7
  export function createOpenCodeContextHooks(options) {
7
8
  const store = options.store ?? new ContextDeliveryStore();
8
9
  return {
@@ -61,13 +62,8 @@ function injectContextBlock(output, sessionID, block) {
61
62
  const message = output.messages[index];
62
63
  if (message?.info.role !== "user" || message.info.sessionID !== sessionID)
63
64
  continue;
64
- const textPart = message.parts.find(isTextPart);
65
- if (textPart !== undefined) {
66
- textPart.text = `${block}\n\n---\n\n${textPart.text}`;
67
- return true;
68
- }
69
65
  message.parts.unshift({
70
- id: "persona-harness-context",
66
+ id: CONTEXT_DELIVERY_PART_ID,
71
67
  messageID: message.info.id,
72
68
  sessionID,
73
69
  synthetic: true,
@@ -99,7 +95,4 @@ function asRecord(value) {
99
95
  function isRecord(value) {
100
96
  return typeof value === "object" && value !== null && !Array.isArray(value);
101
97
  }
102
- function isTextPart(part) {
103
- return part.type === "text" && typeof part.text === "string";
104
- }
105
98
  //# sourceMappingURL=opencode-context-hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-context-hooks.js","sourceRoot":"","sources":["../../src/context-delivery/opencode-context-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-context-hooks.js","sourceRoot":"","sources":["../../src/context-delivery/opencode-context-hooks.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ Current compatibility package: [`persona-harness@0.8.36`](https://www.npmjs.com/
22
22
  Current compatibility lineage: [#412](https://github.com/jyt6640/persona-harness/issues/412) delivered through [#441](https://github.com/jyt6640/persona-harness/pull/441)
23
23
  Historical pre-integration audit source: `f677a635040ad55d8b7d25abab280c5703a153ea`
24
24
  Program issue: [#389](https://github.com/jyt6640/persona-harness/issues/389)
25
- Remaining bounded work: hosted residual [#410](https://github.com/jyt6640/persona-harness/issues/410) and the not-started independent-value protocol from [#429](https://github.com/jyt6640/persona-harness/issues/429). The deterministic local P0 boundaries integrated by #443 are closed.
25
+ Remaining bounded work: the terminal, non-retryable hosted-observation record in [#410](https://github.com/jyt6640/persona-harness/issues/410), the metadata-only structural observer boundary in [#449](https://github.com/jyt6640/persona-harness/issues/449), and the not-started independent-value protocol from [#429](https://github.com/jyt6640/persona-harness/issues/429). The deterministic local P0 boundaries integrated by #443 are closed.
26
26
 
27
27
  ## Purpose
28
28
 
@@ -167,12 +167,20 @@ evidence rather than a description of current protected main.
167
167
  released as `persona-harness@0.8.37` from
168
168
  `a82b85ddef7e9fd9518348bff16deb38f53b4676`.
169
169
  - **Product verdict: `INCONCLUSIVE`.** The release and local deterministic
170
- evidence do not show a real OpenCode session receiving Context or an
171
- independent user receiving value. The #429 status intentionally has no
172
- observations.
173
- - **Next allowed step:** only #410's own named Delivery Control start predicate
174
- can authorize one bounded real OpenCode observation. It is not an automatic
175
- release follow-up, and it cannot be replaced with a synthetic or retry run.
170
+ evidence do not establish Context delivery or independent user value. #410
171
+ ran its one authorized real OpenCode session, but its privacy-preserving
172
+ observation could not classify delivery; the #429 status intentionally has
173
+ no independent-user observations.
174
+ - **Hosted-observation verdict: `hosted-unavailable`.** The #410 one-shot
175
+ completed its safe read and same-session checks, then retained only a
176
+ sanitized OpenCode export. OpenCode `v1.17.16` redacts every text part in
177
+ `export --sanitize`, so the absence of a Context marker in that export does
178
+ not prove that the transform did not inject one. The run is terminal and
179
+ cannot be retried as a debugger.
180
+ - **Next allowed step:** no Context host action starts automatically. #449
181
+ introduces a metadata-only structural observer boundary, but any future
182
+ observation still needs its own explicit Delivery Control predicate and a
183
+ semantically new consumer/session. It cannot reuse or replay #410.
176
184
 
177
185
  ## Current Delivery Order
178
186
 
@@ -197,11 +205,13 @@ evidence rather than a description of current protected main.
197
205
  as stable `v0.8.37` on
198
206
  `a82b85ddef7e9fd9518348bff16deb38f53b4676`. The release does not create
199
207
  host-delivery or product-value evidence.
200
- 7. **Remaining independent evidence:** #410 owns the sole real OpenCode-host
201
- observation route and still requires its own named Delivery Control start
202
- predicate. #429 owns the preregistered external-validation schema; its
203
- current empty status remains `INCONCLUSIVE` until a future independent
204
- observation meets the fixed protocol.
208
+ 7. **Remaining independent evidence:** #410's named predicate ran once on a
209
+ released `0.8.33` consumer and reached terminal `hosted-unavailable`.
210
+ Because the retained OpenCode `v1.17.16` `export --sanitize` result redacts
211
+ every text part, its marker count is not a delivery verdict; #410 cannot be
212
+ retried. #429 owns the preregistered external-validation schema; its current
213
+ empty status remains `INCONCLUSIVE` until a future independent observation
214
+ meets the fixed protocol.
205
215
 
206
216
  Only one public command, schema, resolver, adapter, CI, script, or documentation
207
217
  boundary is changed per child issue. A child issue closes only when its stated
@@ -283,7 +293,7 @@ was not modified.
283
293
  | P0 implementation release lineage | #414 delivered stable `v0.8.33` through #437. Its immutable tag, GitHub Release, npm `latest`, canonical tar, and provenance bind to `9b80a45070be10659150095cf701a6f375bc6600`. | Historical P0 implementation release evidence does not prove live host delivery. |
284
294
  | Deterministic comparison release lineage | #411 delivered stable `v0.8.34` through #439. Its immutable tag, GitHub Release, npm `latest`, canonical tar, and provenance bind to `19c397e4fed5b1cce7d024fbcc51350e9676105f`. | It records only deterministic technical results; host/model/operational values remain unavailable and product verdicts remain `INCONCLUSIVE`. |
285
295
  | Current P0 integration release | #442 delivered stable `v0.8.37` through #443. Its immutable tag, GitHub Release, npm `latest`, canonical tar, and provenance bind to `a82b85ddef7e9fd9518348bff16deb38f53b4676`. | It closes the deterministic local P0 boundaries, not #410's real host observation or external product-value evidence. |
286
- | Hosted Context delivery | The current program-status publication `0.8.38` retains the merged #403 adapter boundary, but no package/release record substitutes for the #410 start predicate. | #410 still needs its own named Delivery Control start predicate and one bounded real OpenCode observation. |
296
+ | Hosted Context delivery | #410's named predicate was satisfied for a registry-installed `0.8.33` consumer bound to `9b80a45070be10659150095cf701a6f375bc6600`; one real OpenCode `v1.17.16` session completed its safe sequence. The retained `export --sanitize` redacts all text parts, so its zero marker count cannot establish delivery absence. | The one-shot is terminal `hosted-unavailable` and non-retryable. No Context delivery or product-value claim is supported; any future observation needs a separately authorized, metadata-only host-observer contract. |
287
297
  | Other follow-ups | #421 is delivered as stable `v0.8.35` through #440; #412 is delivered as stable `v0.8.36` through #441; the #429 protocol is released through #443 with zero observations. | None of these facts manufacture host or user-value evidence. |
288
298
 
289
299
  Product-value verdict remains **INCONCLUSIVE**. Local composition, package,
@@ -326,9 +336,9 @@ expand the released Context delivery scope or change its default-off boundary.
326
336
 
327
337
  No deterministic local Context P0 candidate remains open after #443. Do not
328
338
  reopen the completed #390–#403 integration, #414 release, or #442 integration
329
- paths. Delivery Control must record #410's own named hosted start predicate
330
- before one real OpenCode `experimental.chat.messages.transform` observation can
331
- begin. The #429 protocol remains `INCONCLUSIVE` with zero observations; do not
332
- infer host delivery or product value from local composition tests, catalog
339
+ paths. #410's one real OpenCode observation is terminal and cannot be retried;
340
+ its sanitized-export result is insufficient to attribute Context delivery or
341
+ absence. The #429 protocol remains `INCONCLUSIVE` with zero observations; do
342
+ not infer host delivery or product value from local composition tests, catalog
333
343
  registration, release provenance, an empty external-validation status, or
334
344
  historical evidence.
@@ -25,7 +25,7 @@
25
25
  "package": {
26
26
  "channel": "unpublished",
27
27
  "scope": "source-candidate",
28
- "version": "0.8.38"
28
+ "version": "0.8.39"
29
29
  },
30
30
  "currentSourceCandidate": {
31
31
  "registryInstall": "requires-authorized-release-before-registry-install",
@@ -0,0 +1,32 @@
1
+ # v0.8.39 Release Notes
2
+
3
+ ## Metadata-Only Context Delivery Signal
4
+
5
+ This release makes an explicit Context delivery structurally observable in a
6
+ sanitized OpenCode session export without exposing Context or user text. When
7
+ an enabled, safe Context delivery is selected, Persona Harness now prepends a
8
+ separate synthetic text part with the stable identifier
9
+ `persona-harness-context`; it leaves the original user text part unchanged.
10
+
11
+ OpenCode's sanitized export redacts text content while retaining structural
12
+ part fields. The resulting bounded signal is limited to the synthetic part's
13
+ identifier, type, and synthetic flag.
14
+
15
+ ## Safety And Scope Boundaries
16
+
17
+ - Context remains explicit opt-in and default-off.
18
+ - Disabled, unsafe, malformed, budget-blocked, duplicate-suppressed, and
19
+ cleared-session paths remain absent or fail closed.
20
+ - The Context adapter still does not invoke workflow, shell/process, network,
21
+ GitHub, evidence, authority, credential, or external-observation behavior.
22
+ - This release does not replay issue #410, retain transcript content, create
23
+ user evidence, or claim Context delivery, token savings, or product value.
24
+ - A future real-host observation remains separately governed and needs a new
25
+ Delivery Control predicate and a semantically new consumer/session.
26
+
27
+ ## Verification
28
+
29
+ The release path verifies the isolated Context adapter, the separate synthetic
30
+ part and unchanged original text structure, type safety, documentation and
31
+ release-policy checks, a fresh isolated tarball installation, protected CI,
32
+ canonical package identity, and registry provenance.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "persona-harness",
3
- "version": "0.8.38",
3
+ "version": "0.8.39",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "packageManager": "npm@10.8.2",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@persona-harness/shared-skills",
3
- "version": "0.8.38",
3
+ "version": "0.8.39",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "description": "Persona-owned portable skill procedures and optional overlays",