Skip to content

feat: isolated Sails hook fixtures and Sounding 0.3.0 release preparation - #104

Merged
DominusKelvin merged 5 commits into
mainfrom
feat/sounding-hook-lifecycle
Oct 4, 2026
Merged

DominusKelvin merged 5 commits into
mainfrom
feat/sounding-hook-lifecycle

Conversation

@DominusKelvin

@DominusKelvin DominusKelvin commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

Reusable hook packages currently need manual temporary apps and lifecycle ownership to test real Sails furnishing and configuration. This adds an optional install-discovered hook plugin: the normal require('sounding').test import gets a fresh app/hook per trial, pre-boot config/files, { hook } context and owned cleanup. The real Shipwright example asserts exact manifest-derived JS/CSS tags and view-local integration with dontLift: true, without starting Rsbuild.

Refs #101. This implements the direct-mount fixture slice; it does not close the whole issue.

Release proposal

  • Core sounding 0.3.0: additive preparation API and teardown errors now reject.
  • sounding-plugin-hook 0.1.0: first public package, peer ^0.3.0.
  • sounding-plugin-stress 0.1.1: only widens core peer compatibility.
  • Proposed robust GitHub release notes: releases/v0.3.0.md.
  • A local self-link resolves workspace peers during npm ci; no unrelated dependency versions change.

Validation

173 unit/integration tests passed on macOS arm64, Node 24.14.1; JavaScript typecheck passed. Clean locked installation (including the locked native SQLite rebuild), package packing and real Shipwright source/packed demos passed locally. The initial CI exposed missing SQLite bindings; the explicit rebuild corrects that without dependency upgrades. Added Linux/macOS Node 24 CI for tests/typecheck/packing; actual remote checks must pass before merge. Historical benchmark raw samples and reproducible commands are included: eight alternating fresh processes measured 240.977 → 241.473ms overall (~0.21%, no meaningful speedup claim). Browser performance is unmeasured; warm/shared timings are explicitly distinguished from isolated fixtures.

Failures remain visible: combined trial/cleanup errors are preserved; a deliberately failing real-hook demo exited 1, then proved isolation and fixture cleanup. HTTP failure tests close the actual loopback listener.

Boundaries and release gates

Fresh/direct fixtures only; concurrent hook lifecycles reject. Expected-boot-failure helpers, package/api-hooks discovery mounts, reuse and extra matchers remain follow-ups. ORM/views/other hook dependencies must be explicit; browser/socket hook variants need separate proof. No production app/job runs or broad dependency upgrades.

Draft for review. Do not merge, tag or npm publish until the release owner approves coordinated versions/auth. No release/tag has been created. Canonical docs are docs.sailscasts.com #302, a separate narrowly scoped PR; adoption issues are Shipwright #33 and Quest #15. Mail already has #35; Dev fork issues are disabled.

@DominusKelvin
DominusKelvin marked this pull request as ready for review October 4, 2026 13:54
@DominusKelvin
DominusKelvin merged commit 2507fb0 into main Oct 4, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant