c177fbefa4
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
108 lines
5.0 KiB
Markdown
108 lines
5.0 KiB
Markdown
# Release, Harness, and Consumer Hardening
|
|
|
|
- Status: `completed`
|
|
- Owner: `sisyphus`
|
|
- Date: `2026-03-24`
|
|
|
|
## Goal
|
|
|
|
Close the gap between Cadence UI's documented release contract and its actual automation by
|
|
aligning release validation with the canonical harness gate, fixing the current Storybook
|
|
accessibility failures on the review surface, and tightening consumer-facing release and
|
|
source-copy guidance so package-first and registry flows stay explicit and reproducible.
|
|
|
|
## Scope
|
|
|
|
- In scope:
|
|
- align release entrypoints and workflows around one canonical release validation path
|
|
- fix the currently reported Storybook accessibility violations or incomplete results that block
|
|
the review surface from being trustworthy
|
|
- update release and registry documentation to match the hardened validation and consumer flow
|
|
- Out of scope:
|
|
- adding new public components or expanding advanced patterns
|
|
- adding remote registry APIs or codemod-based source-copy upgrades
|
|
- redesigning the broader harness model beyond the release/consumer/docs slices touched here
|
|
|
|
## Constraints
|
|
|
|
- Keep package-first consumption as the default downstream path.
|
|
- Preserve the optional source-copy registry workflow.
|
|
- Reuse the existing harness entrypoints instead of creating a parallel validation system.
|
|
- Match the repo's existing docs, release, and execution-plan conventions.
|
|
|
|
## Affected Surfaces
|
|
|
|
- `package.json`
|
|
- `scripts/harness/*`
|
|
- `.github/workflows/*`
|
|
- `apps/docs/src/*`
|
|
- `packages/ui/src/components/*`
|
|
- `.artifacts/a11y/*`
|
|
- `docs/releasing.md`
|
|
- `docs/registry.md`
|
|
- `tests/package-consumer/*`
|
|
- `tests/registry/*`
|
|
|
|
## Plan
|
|
|
|
1. Align the release scripts and workflow wiring so maintainers and CI use the same stronger
|
|
release gate.
|
|
2. Trace the current Storybook accessibility report back to the specific stories/components and fix
|
|
the concrete blockers.
|
|
3. Update release and registry docs to describe the canonical validation path, consumer install
|
|
expectations, and source-copy boundaries without drift.
|
|
4. Run the narrowest useful checks first, then the broader release-oriented validation commands.
|
|
|
|
## Validation
|
|
|
|
- `pnpm lint`
|
|
- `pnpm typecheck`
|
|
- `pnpm test`
|
|
- `pnpm build`
|
|
- `pnpm build:docs`
|
|
- `pnpm test:e2e:a11y`
|
|
- `pnpm test:e2e:smoke`
|
|
- `pnpm test:registry:consumer`
|
|
- `pnpm test:package:consumer`
|
|
- `pnpm harness:validate:release`
|
|
|
|
## Orchestration Task Sketch
|
|
|
|
- `T1`: align release scripts and CI wiring
|
|
- `T2`: repair current Storybook accessibility failures
|
|
- `T3`: update release and registry consumer guidance
|
|
- `T4`: run targeted checks, then full release validation
|
|
|
|
## Status Log
|
|
|
|
- `2026-03-24 17:24` created plan after confirming the repo currently documents a stronger harness
|
|
release gate than the one used by release workflows, and after confirming the active a11y report
|
|
contains concrete Storybook failures to fix
|
|
- `2026-03-24 18:02` aligned release scripts and workflows on `pnpm harness:validate:release`,
|
|
promoted PR harness validation to `pnpm harness:validate:pr`, and updated release/registry docs
|
|
to reflect the canonical gate and package-first consumer path
|
|
- `2026-03-24 18:18` fixed the active Storybook accessibility blockers across the harness scan,
|
|
affected docs stories, and DatePicker semantics/tests; `pnpm test:e2e:a11y` now reports
|
|
`violationCount: 0`
|
|
- `2026-03-24 18:26` verified the consumer and repo gates with `pnpm test:package:consumer`,
|
|
`pnpm build:docs`, targeted DatePicker vitest, `pnpm harness:validate:pr`, and
|
|
`pnpm release:validate`; only pre-existing lint warnings remain outside this task's scope
|
|
- `2026-03-24 19:03` fixed a remaining release-gate reliability issue by making `build:docs`
|
|
clear `.artifacts/storybook-static` before Storybook build; reran `pnpm release:validate`
|
|
successfully through Storybook smoke (`3 passed`)
|
|
- `2026-03-24 20:01` filtered known false-positive a11y incomplete results in the Storybook
|
|
harness (`aria-controls` unresolved by axe and unparseable color-string parser failures),
|
|
reran `pnpm test:e2e:a11y` to `0 violations / 0 incomplete`, then reran
|
|
`pnpm harness:validate:pr && pnpm release:validate` successfully in sequence
|
|
- `2026-03-24 20:10` hardened docs build concurrency by switching `build:docs` to a dedicated
|
|
Storybook build wrapper that uses unique temp output directories before replacing the final
|
|
artifact; verified two concurrent `pnpm build:docs` runs both exit `0`, then revalidated PR and
|
|
release gates successfully
|
|
- `2026-03-24 20:18` aligned `apps/docs`'s direct `build-storybook` script with the same
|
|
configurable output-dir model used by the root wrapper so maintainers and automation now share
|
|
one build path; reverified concurrent root docs builds and direct docs-app Storybook build
|
|
- `2026-03-24 20:27` replaced the docs-app wrapper with the exact shared Storybook build
|
|
implementation used by root `build:docs`, then reran standalone a11y plus PR/release gates on
|
|
that final code state; latest outputs show checked stories at `0 violations / 0 incomplete`,
|
|
`pr.json` and `release.json` written, and Storybook smoke at `3 passed (13.2s)`
|