persona-harness 0.8.35 → 0.8.36

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.
@@ -2,16 +2,19 @@
2
2
 
3
3
  Status: current canonical program record.
4
4
 
5
- Last reconciled: 2026-08-29
5
+ Last reconciled: 2026-08-30
6
6
  P0 implementation release baseline: `9b80a45070be10659150095cf701a6f375bc6600`
7
7
  P0 implementation package: [`persona-harness@0.8.33`](https://www.npmjs.com/package/persona-harness/v/0.8.33)
8
8
  P0 implementation lineage: [#414](https://github.com/jyt6640/persona-harness/issues/414) delivered through [#437](https://github.com/jyt6640/persona-harness/pull/437)
9
9
  Current comparison release: `19c397e4fed5b1cce7d024fbcc51350e9676105f`
10
10
  Current comparison package: [`persona-harness@0.8.34`](https://www.npmjs.com/package/persona-harness/v/0.8.34)
11
11
  Current comparison lineage: [#411](https://github.com/jyt6640/persona-harness/issues/411) delivered through [#439](https://github.com/jyt6640/persona-harness/pull/439)
12
+ Current Team Profile v2 release: `90a913168edac40eb29290e7ff47885bb94b30fd`
13
+ Current Team Profile v2 package: [`persona-harness@0.8.35`](https://www.npmjs.com/package/persona-harness/v/0.8.35)
14
+ Current Team Profile v2 lineage: [#421](https://github.com/jyt6640/persona-harness/issues/421) delivered through [#440](https://github.com/jyt6640/persona-harness/pull/440)
12
15
  Historical pre-integration audit source: `f677a635040ad55d8b7d25abab280c5703a153ea`
13
16
  Program issue: [#389](https://github.com/jyt6640/persona-harness/issues/389)
14
- Remaining bounded work: [#410](https://github.com/jyt6640/persona-harness/issues/410), [#412](https://github.com/jyt6640/persona-harness/issues/412), and [#421](https://github.com/jyt6640/persona-harness/issues/421)
17
+ Remaining bounded work: [#410](https://github.com/jyt6640/persona-harness/issues/410) and [#412](https://github.com/jyt6640/persona-harness/issues/412)
15
18
 
16
19
  ## Purpose
17
20
 
@@ -118,15 +121,15 @@ evidence rather than a description of current protected main.
118
121
  | --- | --- | --- | --- |
119
122
  | M1 | delivered via #413 | Workflow Integrity and Context Personalization are named as distinct tracks in public help and README. | Preserve the separate product boundary. |
120
123
  | M2 | delivered via #413 | `ph context` provides explicit, default-off local Context inspection and enablement. | Preserve no-overwrite initialization and non-activating inspection. |
121
- | M3 | delivered via #413; v2 source candidate locally validated | A safe Team Profile v1 is resolved as a separate, local Context layer. | #421 adds a separate semantic v2 schema and explicit resolver bridge without silently upgrading v1 files; package and hosted gates remain separate. |
124
+ | M3 | delivered and released via #421/#440 | `persona-context-team-profile.2` is a separate semantic schema and explicit pure-resolver layer. It does not silently upgrade v1 files or enable Context, CLI delivery, or host activation. | Preserve v1/v2 separation and default-off behavior. |
122
125
  | M4 | delivered via #413 | Pure Core resolves the seven precedence layers and produces a deterministic `persona-context-envelope.v1`. | Keep Core host-neutral. |
123
126
  | M5 | implementation delivered; hosted residual | Core has no OpenCode or Java runtime import; the isolated OpenCode adapter is locally covered. | #410 may observe the real transform only after its own named Delivery Control predicate. |
124
127
  | M6 | implementation delivered; hosted residual | Context resolution, rendering, and delivery are separated from legacy workflow/authority behavior. | Preserve the isolated adapter boundary during #410. |
125
- | M7 | open | Historical version checks remain a maintenance concern. | #412 owns the generic Context compatibility manifest and runner. |
128
+ | M7 | in progress | Historical version checks remain a maintenance concern. | #412 owns the generic Context compatibility manifest and runner. |
126
129
  | M8 | delivered via #413 | `npm test` now selects focused source evidence and installed packages receive a separate smoke. | Keep full protected verification separate. |
127
130
  | M9 | implementation delivered; hosted residual | Context CLI and doctor report bounded local state without claiming host delivery. | #410 remains the sole real-host observation route after #414. |
128
131
  | M10 | delivered and released via #411/#439 | #411 provides a versioned three-arm protocol, strict ten-fixture manifest, and deterministic evaluator for Context OFF, legacy broad compatibility, and targeted layered envelopes. | Keep model, host, and operational measurements unavailable until a separately authorized observation; every local product verdict remains `INCONCLUSIVE`. |
129
- | M11 | open | Historical version-specific checks still need a version-neutral Context compatibility boundary. | #412 owns the manifest/runner work. |
132
+ | M11 | in progress | Historical version-specific checks still need a version-neutral Context compatibility boundary. | #412 owns the manifest/runner work. |
130
133
  | M12 | verified-existing | CI critical-path optimization is already measured and active. | Preserve it and add only bounded Context checks to the correct lane. |
131
134
 
132
135
  ## Invariants
@@ -157,9 +160,12 @@ evidence rather than a description of current protected main.
157
160
  `19c397e4fed5b1cce7d024fbcc51350e9676105f`. It provides the fixture-only
158
161
  three-arm protocol below, does not initiate a host, model, workflow, or
159
162
  authority action, and cannot establish product value.
160
- 4. **Remaining independent work:** #410 owns the sole real OpenCode-host
161
- observation route; #421 owns Team Profile v2 and #412 owns the generic
162
- installed-package compatibility boundary.
163
+ 4. **Team Profile v2 release:** #421 is delivered as stable `v0.8.35` through
164
+ #440 on `90a913168edac40eb29290e7ff47885bb94b30fd`. It preserves the
165
+ explicit Context boundary and does not begin host observation.
166
+ 5. **Remaining independent work:** #410 owns the sole real OpenCode-host
167
+ observation route and #412 owns the generic installed-package compatibility
168
+ boundary.
163
169
 
164
170
  Only one public command, schema, resolver, adapter, CI, script, or documentation
165
171
  boundary is changed per child issue. A child issue closes only when its stated
@@ -191,7 +197,7 @@ not assert direct closure causality.
191
197
  | #403 | closed via #413 | The isolated OpenCode adapter captures only safe observed targets, uses the local Context preview/envelope boundary, suppresses duplicate digests until session compaction/deletion, and mutates only the next matching user message. `context.enabled` is its sole feature switch; it does not inherit `runtimeInjection`. Adapter, actual plugin composition, status/doctor wording, type compatibility, and fail-closed target cases have focused RED-to-GREEN coverage. A real `experimental.chat.messages.transform` host observation remains separate. |
192
198
  | #411 | delivered through #439 | Stable `v0.8.34` binds the deterministic three-arm comparison source at `19c397e4fed5b1cce7d024fbcc51350e9676105f`. `persona-context-comparison-manifest.1` fixes ten P0 fixtures and compares `off`, `legacy-broad`, and `targeted-layered` through `persona-context-comparison-result.1`. The repository runner requires an explicit candidate commit and package version, rejects a local identity mismatch before evaluation, and produces 30 deterministic records. It emits only rule ids/layers and digests; model/host/operational fields remain `null` and every local product verdict is `INCONCLUSIVE`. |
193
199
  | #414 | delivered through #437 | Stable `v0.8.33` binds the P0 implementation package/source release lineage. It is immutable historical release evidence and does not authorize #410, a host session, or any Context product claim by itself. |
194
- | #421 | local source candidate | `persona-context-team-profile.2` adds a separate JSONC loader and explicit pure-resolver team layer. It rejects unknown fields, unsafe shared text, duplicate ids, active topic conflicts, malformed JSONC, and symlinked files without reading personal state or activating a host. Local source tests, typecheck, build, docs/scope checks, and package smoke pass. | Package acceptance, protected integration, CLI delivery, adapter delivery, runtime activation, and external effectiveness remain unstarted. |
200
+ | #421 | delivered through #440 | Stable `v0.8.35` binds the Team Profile v2 source at `90a913168edac40eb29290e7ff47885bb94b30fd`. The separate JSONC loader and explicit pure-resolver layer reject unknown fields, unsafe shared text, duplicate ids, active topic conflicts, malformed JSONC, and symlinked files without reading personal state or activating a host. | Release and provenance evidence do not begin CLI delivery, adapter delivery, runtime activation, or external effectiveness observation. |
195
201
 
196
202
  The heavy `test:installed-package-contract` and full protected repository suite
197
203
  remain unchanged. The generic package smoke is version-neutral and does not
@@ -240,7 +246,7 @@ was not modified.
240
246
  | 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. |
241
247
  | 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`. |
242
248
  | Hosted Context delivery | The current published comparison package contains 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. |
243
- | Other follow-ups | #421 has a local Team Profile v2 source candidate and #412 owns the generic Context compatibility runner. | #421 package and protected hosted gates remain unstarted; neither item may manufacture host or user-value evidence. |
249
+ | Other follow-ups | #421 is delivered as stable `v0.8.35` through #440; #412 owns the generic Context compatibility runner. | #412 may not manufacture host or user-value evidence. |
244
250
 
245
251
  Product-value verdict remains **INCONCLUSIVE**. Local composition, package,
246
252
  release, and CI evidence do not establish host-session delivery or user benefit.
@@ -278,6 +284,6 @@ expand the released Context delivery scope or change its default-off boundary.
278
284
  Do not reopen the completed #390–#403 integration or #414 release paths.
279
285
  Delivery Control must record #410's own named hosted start predicate before one
280
286
  real OpenCode `experimental.chat.messages.transform` observation can begin.
281
- #421 and #412 remain independent follow-up boundaries. Do not infer host
282
- delivery or product value from local composition tests, catalog registration,
283
- release provenance, or historical evidence.
287
+ #412 remains an independent follow-up boundary. Do not infer host delivery or
288
+ product value from local composition tests, catalog registration, release
289
+ provenance, or historical evidence.
@@ -25,7 +25,7 @@
25
25
  "package": {
26
26
  "channel": "unpublished",
27
27
  "scope": "source-candidate",
28
- "version": "0.8.35"
28
+ "version": "0.8.36"
29
29
  },
30
30
  "currentSourceCandidate": {
31
31
  "registryInstall": "requires-authorized-release-before-registry-install",
@@ -0,0 +1,35 @@
1
+ # v0.8.36 Release Notes
2
+
3
+ ## Generic Context Compatibility Evidence
4
+
5
+ This release adds a version-neutral Context compatibility manifest and runner
6
+ for the installed package boundary. The package smoke derives the manifest from
7
+ the exact materialized tarball and verifies its package name, version, SHA-256,
8
+ content identity, required public paths, and source-fallback policy before it
9
+ executes any Context command.
10
+
11
+ The installed CLI scenarios cover default status, safe preview and explain,
12
+ preview-only initialization, explicit enable with no-overwrite behavior, and
13
+ invalid configuration. The runner returns fixed result codes and removes its
14
+ temporary scenario state after every run.
15
+
16
+ ## Safety And Scope Boundaries
17
+
18
+ - Malformed manifests, missing subjects, archive digest or content-identity
19
+ mismatches, unavailable package paths, and source-linked installed files stop
20
+ before a Context command can run.
21
+ - The package check uses a fresh isolated installation and rejects any source
22
+ fallback, including an executable path that resolves into the source tree.
23
+ - Context remains explicit opt-in and default-off. This release adds no new
24
+ public Context command, OpenCode host delivery, runtime injection default,
25
+ workflow, evidence, authority, network, process, or personal-store behavior.
26
+ - The package materialization test uses the repository's shared pack lock, so
27
+ concurrent test workers cannot create a partial tarball during verification.
28
+
29
+ ## Verification
30
+
31
+ The release path verifies manifest parsing and fail-closed diagnostics, a fresh
32
+ tarball installation, all declared installed CLI scenarios, source-fallback
33
+ rejection, package smoke, type safety, full repository Vitest, documentation,
34
+ scope, release workflow, protected CI, canonical tar identity, and registry
35
+ provenance.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "persona-harness",
3
- "version": "0.8.35",
3
+ "version": "0.8.36",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "packageManager": "npm@10.8.2",
@@ -343,7 +343,7 @@
343
343
  "benchmark:context": "npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json",
344
344
  "test": "node scripts/run-default-test.mjs",
345
345
  "test:fast": "npm run test:unit && npm run test:integration",
346
- "test:unit": "vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts",
346
+ "test:unit": "vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts",
347
347
  "test:integration": "vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts",
348
348
  "test:smoke": "npm run build && node dist/cli/index.js --help",
349
349
  "test:full": "npm run test:repository",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@persona-harness/shared-skills",
3
- "version": "0.8.35",
3
+ "version": "0.8.36",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "description": "Persona-owned portable skill procedures and optional overlays",