|
| 1 | +# v0.0.30 Release Evidence |
| 2 | + |
| 3 | +Status: active release ledger |
| 4 | +Target release date: 2026-05-16 |
| 5 | +Target tag: `v0.0.30` |
| 6 | + |
| 7 | +## Scope |
| 8 | + |
| 9 | +Tracks the `0.0.30` release cycle for uniform workflow output roots across CLI, daemon RPC, OpenCode direct tools, and provider workflow fallbacks. |
| 10 | + |
| 11 | +## Reference State |
| 12 | + |
| 13 | +- Previous npm `latest`: `0.0.29` |
| 14 | +- Previous GitHub release: `v0.0.29` |
| 15 | +- Release branch: `codex/unify-workflow-output-roots` |
| 16 | +- Target tag: `v0.0.30` |
| 17 | +- GitHub release workflow: `.github/workflows/release-public.yml` |
| 18 | +- Repository secret preflight: `NPM_TOKEN` is configured. |
| 19 | + |
| 20 | +## Release Delta |
| 21 | + |
| 22 | +- Omitted generated workflow output roots now resolve to `<cli cwd>/.opendevbrowser/<workflow>/<uuid>` for CLI invocations. |
| 23 | +- OpenCode direct tools and raw daemon RPCs now resolve omitted workflow output roots from the project workspace root instead of transient process temp directories. |
| 24 | +- Explicit `outputDir` values remain preserved across CLI, direct tools, daemon RPC, and provider workflow calls. |
| 25 | +- Low-level non-workflow artifact fallback and screencast replay defaults remain unchanged. |
| 26 | + |
| 27 | +## Version Alignment |
| 28 | + |
| 29 | +- `package.json`: `0.0.30` |
| 30 | +- `package-lock.json`: `0.0.30` |
| 31 | +- `extension/package.json`: `0.0.30` |
| 32 | +- `extension/manifest.json`: `0.0.30` |
| 33 | + |
| 34 | +## Mandatory Local Release Gates |
| 35 | + |
| 36 | +- [x] `npm run extension:sync` |
| 37 | +- [x] `npm run version:check` |
| 38 | +- [x] `npm run test:release-gate` |
| 39 | +- [x] `node scripts/audit-zombie-files.mjs` |
| 40 | +- [x] `node scripts/docs-drift-check.mjs` |
| 41 | +- [x] `node scripts/chrome-store-compliance-check.mjs` |
| 42 | +- [x] `./skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh` |
| 43 | +- [x] `npx opendevbrowser --help` |
| 44 | +- [x] `npx opendevbrowser help` |
| 45 | +- [x] `npm run lint` |
| 46 | +- [x] `npm run typecheck` |
| 47 | +- [x] `npm run test` |
| 48 | +- [x] `npm run build` |
| 49 | +- [x] `npm run extension:build` |
| 50 | +- [x] `npm run extension:pack` |
| 51 | +- [x] `npm pack --pack-destination /tmp` |
| 52 | + |
| 53 | +## Optional Strict Live Gates |
| 54 | + |
| 55 | +- [ ] Deferred unless explicitly required for this release: |
| 56 | + - `node scripts/provider-direct-runs.mjs --release-gate --out artifacts/release/v0.0.30/provider-direct-runs.json` |
| 57 | + - `node scripts/live-regression-direct.mjs --release-gate --out artifacts/release/v0.0.30/live-regression-direct.json` |
| 58 | + |
| 59 | +## Implementation Proof |
| 60 | + |
| 61 | +- [x] Progressive RepoPrompt review loop completed. |
| 62 | + - First review found P2 test coverage gaps for direct and daemon roots; fixed. |
| 63 | + - Second review found an unrelated screencast assertion hunk; removed. |
| 64 | + - Third review had no actionable P0/P1/P2 findings. |
| 65 | +- [x] Focused workflow test suite passed after review. |
| 66 | + - Command: `npm run test -- tests/tools-workflows.test.ts tests/daemon-commands.integration.test.ts tests/cli-workflows.test.ts tests/providers-artifacts-workflows.test.ts tests/providers-inspiredesign-workflow.test.ts` |
| 67 | + - Result: 5 files passed, 196 tests passed. |
| 68 | +- [x] Pre-release full test gate passed before version bump. |
| 69 | + - Command: `npm run test` |
| 70 | + - Result: 271 files passed, 1 skipped; 4414 tests passed, 1 skipped; all-files coverage 98.22% statements, 97% branches, 97.95% functions, 98.28% lines. |
| 71 | +- [x] Live workflow output validation passed before version bump. |
| 72 | + - CLI managed runs for research, shopping, inspiredesign, and product-video wrote under `.opendevbrowser/<workflow>/<uuid>`. |
| 73 | + - Direct OpenCode-style tool runs from `/var/folders/.../odb-direct-tool-cwd-*` wrote under the repo `.opendevbrowser`, not the temp cwd. |
| 74 | + - Raw daemon RPC runs wrote under the repo `.opendevbrowser/<workflow>/<uuid>`. |
| 75 | + - Explicit output roots were preserved across CLI, daemon RPC, and direct tool runs. |
| 76 | + |
| 77 | +## Local Release Gate Results |
| 78 | + |
| 79 | +- `npm run extension:sync`: synced `extension/manifest.json` and `extension/package.json` to `0.0.30`. |
| 80 | +- `npm run version:check`: passed, version `0.0.30`. |
| 81 | +- `node scripts/audit-zombie-files.mjs`: passed, scanned 1028 files, flagged none. |
| 82 | +- `node scripts/docs-drift-check.mjs`: initially failed because `README.md` still referenced `opendevbrowser-0.0.29.tgz`; after updating that stale reference, rerun passed. |
| 83 | +- `node scripts/chrome-store-compliance-check.mjs`: passed, manifest version `0.0.30`. |
| 84 | +- `./skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh`: passed, 22 referenced files present, 10 JSON templates parsed. |
| 85 | +- `npm run test:release-gate`: passed all five groups. |
| 86 | + - Group 1 `provider-direct-contracts`: 2 files passed, 99 tests passed. |
| 87 | + - Group 2 `live-direct-regression-contracts`: 3 files passed, 37 tests passed. |
| 88 | + - Group 3 `cli-help-parity`: 1 file passed, 15 tests passed. |
| 89 | + - Group 4 `docs-and-zombie-audits`: 2 files passed, 5 tests passed. |
| 90 | + - Group 5 `chrome-store-compliance`: 1 file passed, 1 test passed. |
| 91 | +- `npx opendevbrowser --help`: passed, wrote 798 lines to `/tmp/odb-help-0.0.30.txt`. |
| 92 | +- `npx opendevbrowser help`: passed, wrote 798 lines to `/tmp/odb-help-command-0.0.30.txt`. |
| 93 | +- `npm run lint`: passed. |
| 94 | +- `npm run typecheck`: passed. |
| 95 | +- `npm run build`: passed. |
| 96 | +- `npm run extension:build`: passed. |
| 97 | +- `npm run test`: passed, 271 files passed, 1 skipped; 4414 tests passed, 1 skipped; all-files coverage 98.22% statements, 97% branches, 97.95% functions, 98.29% lines. |
| 98 | +- `npm run extension:pack`: passed, produced `opendevbrowser-extension.zip`. |
| 99 | +- `shasum -a 256 opendevbrowser-extension.zip`: `d794bd052e3e01ab6bb84d99f983e36faa989afd7e1e42128634111043773a75`. |
| 100 | +- `npm pack --pack-destination /tmp`: passed, produced `/tmp/opendevbrowser-0.0.30.tgz`; package size 2.3 MB, unpacked size 11.6 MB, total files 1218, shasum `af40f0b5b41da820db34af604bfbf49bf150892e`. |
| 101 | + |
| 102 | +## External Release Workflow Evidence |
| 103 | + |
| 104 | +- [ ] Release workflow run URL |
| 105 | +- [ ] npm publish verification |
| 106 | +- [ ] Registry consumer smoke |
| 107 | +- [ ] GitHub release URL |
| 108 | +- [ ] GitHub release asset verification |
| 109 | + |
| 110 | +## Notes |
| 111 | + |
| 112 | +- Strict live gates are separate from release quality gates. They remain deferred for this release unless explicitly enabled. |
| 113 | +- If GitHub Actions npm publication fails despite `NPM_TOKEN` being configured, local authenticated npm publish is available as fallback and must be recorded here. |
0 commit comments