Skip to content

Tracking: harden, reconcile, and publish the current TypeScript stack #310

Description

@ty-everett

Outcome

Make main the single trustworthy dependency/release baseline, close or deliberately disposition every current issue, and publish the latest compatible @bsv/* stack with reproducible security and quality evidence.

Target date: 2026-08-20 (PT).

Scope decisions

Phase 1 — governance and trustworthy analysis

  • Merge the phase-one hardening PR.
  • Enforce pnpm 10 supply-chain policy: explicit lifecycle-script allowlist, release-age delay, provenance downgrade protection, and high/critical audit gate.
  • Consolidate Dependabot into one monthly, automatically rebased, one-open-PR maintenance stream across pnpm, infra npm lockfiles, and Actions.
  • Add dependency review, a deterministic merge gate, broader coverage collection, CODEOWNERS, and protected npm release controls.
  • Resolve the two unsafe pnpm install findings reported on PR feat(wallet-toolbox): horizontally scale Storage with shared async sessions #283.
  • Enable Dependabot alerts, grouped-security controls, update-branch support, auto-merge capability, and merged-branch cleanup; deliberately pause automatic security-fix PR generation during the current consolidation after GitHub emitted separate per-directory PRs.
  • Install additive repository rules that enforce resolved review threads and the proven status-check set while allowing maintainers/admins to merge without code-owner or last-pusher approval requirements.
  • Have a Sonar organization admin disable Automatic Analysis; then enable the CI scanner and enforce the new-code quality gate (zero new issues, Security/Reliability/Maintainability A, reviewed hotspots 100%, duplication <3%, coverage >=90%).
  • Verify Dependabot accepts the consolidated configuration after it lands.

Phase 2 — security and correctness blockers

Phase 3 — compatibility upgrades and static-analysis debt

Phase 4 — functional and interoperability backlog

Phase 5 — documentation and issue hygiene

Phase 6 — coordinated publication

  • Complete trusted-publishing setup and close OIDC npmjs.org settings to allow this repo to publish npm packages #9 using the protected npm-production environment.
  • Produce a leaf-to-root release graph, synchronize first-party ranges, and publish in dependency order.
  • Verify every published package from a clean consumer install (ESM, CJS, browser where applicable), provenance, npm dist-tags, and tarball contents.
  • Run full conformance, CI, Sonar, Codecov, Socket, and advisory checks on the release commit.
  • Publish release notes and a compatibility matrix; confirm downstream repos can install the latest stack.
  • Close this milestone only when the latest intended code is on npm and all in-scope issues have a recorded disposition.

Merge standard

A PR is ready only when it is current with main, has no unresolved review thread, passes the protected merge gate and security checks, introduces no new Sonar issue, meets patch coverage, and has an explicit release/rollback note when it changes a published package. Independent review remains preferred when practical, but maintainers/admins may approve or use their authorized bypass to merge; GitHub authors cannot formally approve their own PR.

Metadata

Metadata

Assignees

Labels

hardeningReliability, governance, and release hardeningreleaseCoordinated package publication and release readinesssecuritySecurity vulnerability, hardening, or supply-chain work

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions