# v0.3.9-alpha.8 Release Notes

## Version

`v0.3.9-alpha.8`

## Dist Tag

`alpha`

During the alpha pilot, `alpha` is the tester-facing dist-tag. `latest` must not
move for this release unless separately approved.

## Summary

This is a narrow alpha release for workflow closure rail convergence. It replaces
the stale parked `0.4.0-rc.1` draft as the next publish vehicle.

Included convergence changes:

- `a8eb03d fix(cli): wire closure planner into workflow continue`;
- `e8bb779 fix(cli): converge workflow closure rail`.

Persona Harness remains an AI coding workflow rail + evidence + continuation
harness. This release is not eval proof, A/B proof, PH superiority proof,
generated app quality certification, closure guarantee, general reliability
guarantee, AST/linter enforcement, or an OpenCode/model quality claim.

## What Changed

### Closure rail convergence

- Active `workflow continue` uses the closure rail as its single source.
- Old follow-up dual-rendering is removed.
- `workflow finish implement` blocker/reason rendering uses closure
  payload/state via `workflowClosureFinishReasons`.
- Old string layers are retired:
  - `workflow-post-build-closure.ts`;
  - `workflow-continue-followups.ts`;
  - `workflow-finish-reasons.ts`.

### Boundaries

- No `closure run` command is included.
- No reports are auto-filled.
- No tickets are auto-archived.
- No workflow is auto-finished.
- No finish gate is weakened.
- The parked `5edb535 chore(release): prepare 0.4.0-rc.1` draft must not be
  published, tagged, pushed, or used to move `latest`.

## QA And Smoke Notes

QA verified `e8bb779` convergence before release prep:

- no-token product smoke passed;
- read-only closure rail smoke passed;
- closure rail behavior remained gate-preserving.

The first External Smoke current-tarball implementation-to-finish trial was
BLOCKED by hard remote instability, not classified as a Persona Harness PASS or
FAIL.

Observed before the remote instability block:

- local tarball install/init/doctor/bootstrap;
- no-token closure preflight;
- OpenCode sanity passed;
- `workflow continue` showed closure planner next step;
- `workflow closure status` / `workflow closure next` blocker ordering was
  observed;
- pre-implementation `workflow finish implement` blocked correctly with closure
  blockers.

The implementation-to-finish path was not observed in that first trial because
of SSH/SCP/PowerShell instability. Alpha8 makes the convergence available
through the registry so follow-up smoke can use a published package instead of a
stale local tarball.

## Published Registry Smoke

Registry facts observed after user-completed publish:

- package: `persona-harness@0.3.9-alpha.8`;
- gitHead: `3bb90aa50c8d1231189a5ca00665e8d5bfccade9`;
- dist.shasum: `cd26989425223b5145f190c2dfbfa5ad84e57cf9`;
- dist-tags: `alpha=0.3.9-alpha.8`, `latest=0.3.9-alpha.8`.

Git facts:

- origin/main includes
  `3bb90aa50c8d1231189a5ca00665e8d5bfccade9`;
- local and origin tag `v0.3.9-alpha.8` point at
  `3bb90aa50c8d1231189a5ca00665e8d5bfccade9`.

External Smoke alpha8 registry no-token closure rail smoke passed.

- archive:
  `/Users/yongtae/Desktop/persona-harness-artifacts/archive/2026-06-24-desktop-persona-runs/alpha8-registry-closure-rail-20260629-151156/RESULT.md`;
- registry alpha8 install passed;
- Korean idea-first input was preserved;
- `workflow continue`, `workflow closure status --json`,
  `workflow closure next --json`, and `workflow finish implement` shared the
  closure blocker order;
- first step/blocker was `verify-app` / `verification-unknown`;
- `workflow finish implement` remained strict/nonzero for blocked state;
- reports remained template, `req-1` remained pending, and no evidence
  directory/history archive was created;
- no report auto-fill, ticket auto-archive, or finish gate weakening was
  observed.

Boundary:

- product surface smoke only;
- no model/OpenCode implementation run;
- no eval/A-B evidence;
- no PH superiority proof;
- no generated app quality certification;
- `latest` is now observed at `0.3.9-alpha.8`; this release note does not treat
  the default-install channel as eval proof, generated-app quality
  certification, or a general reliability guarantee.

## Implementation-To-Finish Success Path Smoke

External Smoke later completed one alpha8 registry implementation-to-finish
product usability trial.

- package source: registry `alpha`, installed `persona-harness@0.3.9-alpha.8`;
- final `workflow finish implement`: PASS under closure-state routing;
- closure state terminal facts:
  - finish passed;
  - `currentTicket: null`;
  - pending tickets empty;
  - implementation/review reports filled;
  - verification passed;
  - blockers empty.

Boundary:

- one product usability smoke only;
- not eval/A-B evidence;
- not PH superiority proof;
- not generated app quality certification;
- not a general reliability guarantee.

## Verification

Release-prep verification for this worktree:

```bash
npm test
npm run typecheck
npm run build
npm run check:docs
npm run smoke:product-mvp
npm pack --dry-run
git diff --check
```

Observed result on 2026-06-29:

- `npm test`: passed, 70 files / 464 tests.
- `npm run typecheck`: passed.
- `npm run build`: passed.
- `npm run check:docs`: passed.
- `npm run smoke:product-mvp`: passed.
- `npm pack --dry-run`: passed for `persona-harness@0.3.9-alpha.8`.
  - filename: `persona-harness-0.3.9-alpha.8.tgz`;
  - package size: `211.2 kB`;
  - unpacked size: `684.7 kB`;
  - shasum: `9c0163f4f94bf4841eac80c6899b2c903dc05822`;
  - total files: `100`.
- `git diff --check`: passed.

## Publish Notes

- Publish with `npm publish --tag alpha` only after all verification commands
  pass.
- Do not intentionally move `latest`.
- If npm requires OTP/2FA, stop after the first failure and hand off the exact
  command for the user to run.
