Skip to content

release: v1.1.5 - bump @cldmv/fix-headers from 1.2.2 to 1.3.7 in the… - #11

Merged
Shinrai merged 10 commits into
masterfrom
next
Aug 9, 2026
Merged

release: v1.1.5 - bump @cldmv/fix-headers from 1.2.2 to 1.3.7 in the…#11
Shinrai merged 10 commits into
masterfrom
next

Conversation

@cldmv-bot

@cldmv-bot cldmv-bot Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

🚀 What's Changed

💥 Breaking Changes

No breaking changes

✨ Features

No new features

🐛 Bug Fixes

📦 Dependencies

🔧 Other Changes

👥 Contributors

coverage

Metric Coverage
Statements 83.5%
Branches 84.0%
Functions 91.7%
Lines 83.2%

Avg: 85.6% · 69cf001 · Node lts/*

dependabot Bot and others added 9 commits August 5, 2026 12:05
Bumps the minor group with 1 update: [@cldmv/fix-headers](https://github.com/CLDMV/fix-headers).


Updates `@cldmv/fix-headers` from 1.2.2 to 1.3.7
- [Release notes](https://github.com/CLDMV/fix-headers/releases)
- [Commits](CLDMV/fix-headers@v1.2.2...v1.3.7)

---
updated-dependencies:
- dependency-name: "@cldmv/fix-headers"
  dependency-version: 1.3.7
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…nstall guard

Backports the corrected devcheck from @cldmv/holdmytask (CLDMV/holdmytask#12);
addresses the bugs filed in #9. The `uuid-dev` namespacing was already correct;
the check logic around it was not.

- Trigger is now condition-only. Only `--conditions=uuid-dev` selects src/ (via
  the ./main export); NODE_ENV does not affect resolution, so the old
  `!nodeEnv || (!["","development"].includes(nodeEnv) && !hasUUIDDev)` was wrong
  both ways: NODE_ENV=development without the condition stayed silent while
  actually on dist/ (false negative), and the condition set without NODE_ENV
  nagged though correctly on src/ (false positive).
- Detect the condition in process.execArgv as well as NODE_OPTIONS. `node
  --conditions=uuid-dev file.mjs` puts it in execArgv, and that's how vitest
  passes it to workers (worker NODE_OPTIONS is undefined; execArgv carries the
  flag) - so the NODE_OPTIONS-only check missed the CLI/worker form.
- Skip when installed as a dependency, detecting a `node_modules` segment
  anywhere above the file so it works for the scoped `node_modules/@cldmv/uuid`
  layout (a "parent === node_modules" check would miss it). Guards against a
  git/tarball install exiting inside a consumer's app.
- Fix the copy-paste `@Project: @cldmv/slothlet` header to `@cldmv/uuid`.
- Add tests/DevCheck.test.vitest.mjs (9 cases): nags without the condition;
  silent with it via NODE_OPTIONS and via execArgv; NODE_ENV=development alone
  does not silence; still nags after a dist/ build; generic development
  condition rejected; skips in CI; skips when installed as a scoped dep; does
  nothing with no src/.

The nag remains intentional whenever src/ is present and the condition is unset
(even after a build): a source checkout should run from src/ via the condition,
so flagging that you're silently on dist/ is the point.
Addresses PR #10 Copilot review: `flags.includes("uuid-dev")` would
false-positive on any flag value containing that substring (e.g.
`--conditions=not-uuid-dev`), spuriously silencing devcheck. Parse the actual
`--conditions` values from execArgv and NODE_OPTIONS (handling `=`/space/`-C`/
comma forms) and match `uuid-dev` exactly. Added regression tests: rejects a
substring-containing condition; accepts uuid-dev among comma-separated
conditions.
The `./devcheck` -> `./devcheck.mjs` export pointed at a file not in the
published `files` allowlist (verified via npm pack: devcheck.mjs isn't in the
tarball), so `import "@cldmv/uuid/devcheck"` 404s for consumers. devcheck is an
internal dev-time guard that index.mjs loads via a relative import, not the
package export - nothing imports the subpath. Removing the dead export makes
package.json honest. Same cleanup as CLDMV/holdmytask.
…r; add test header

Addresses the second Copilot re-review on PR #10 (3 suppressed comments):

- devcheck.mjs: stop splitting condition values on `,`/`|`. Node treats each
  `--conditions` occurrence as ONE literal condition and does not split on comma
  or pipe (verified: `--conditions=uuid-dev,x` and `--conditions=uuid-dev|production`
  do NOT enable uuid-dev). The old split caused a false negative - e.g.
  `uuid-dev|production` would silence devcheck while Node actually resolved to
  dist/. Now collect each value whole and match exactly. Fixed the test that
  wrongly asserted comma-joined silences (now asserts it nags), added pipe-joined
  nag, space-separated (`--conditions uuid-dev`) and repeated-flag silent cases.
- devcheck.mjs: reverted the `@Project` header to `@cldmv/slothlet` to match the
  rest of the repo and tools/fix-headers.mjs (`projectName: @cldmv/slothlet`);
  a single-file change to `@cldmv/uuid` is an outlier that fix:headers would
  revert. The repo-wide @project correction (config + restamp of all files) is a
  separate, dedicated change.
- tests/DevCheck.test.vitest.mjs: added the standard project header block so it
  isn't an outlier vs the other test files.
…wide

The header @project across the repo was a copy-paste leftover from the slothlet
template, and tools/fix-headers.mjs was hardcoded to projectName
"@cldmv/slothlet" so `npm run fix:headers` kept re-stamping it. Set projectName
to "@cldmv/uuid" and ran fix:headers, correcting @project on all files (and
re-stamping @Last-modified). This also makes devcheck.mjs's header consistent
rather than an outlier (the earlier single-file change was reverted for exactly
that reason). Folded into this PR per maintainer request.
The repo-wide fix:headers run added a second header block to
.configs/tsconfig.dts.jsonc: the file's pre-existing header used a legacy
single-star `/* ... */` block, which @cldmv/fix-headers does not recognize as
its managed header (it manages the JSDoc `/** ... */` form), so it added a new
`/** */` block on top instead of updating in place. Removed the legacy `/* */`
block, leaving a single recognized `/** */` header. Verified fix:headers is now
idempotent on the file (dry-run reports 0 updates). Addresses the suppressed
Copilot comment on PR #10.
@cldmv-bot cldmv-bot Bot added ! release → master v4 flow: persistent next → master release PR (carries the next feature release) release Marks a pull request as a pending release — merge to publish a new version semver: patch This release contains only backwards-compatible bug fixes type: bug Something is broken or not behaving as expected area: core Touches core library / runtime source code area: tests Touches test files, fixtures, or test infrastructure type: dependencies Relates to dependency updates, version bumps, or package management labels Aug 9, 2026
@cldmv-bot

cldmv-bot Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor Author

🔒 Dependency Review

  • 0 vulnerable package(s)
  • 0 package(s) with incompatible licenses
  • 0 package(s) with invalid SPDX license definitions
  • 0 package(s) with unknown licenses
  • 0 denied package(s)
  • 0 package(s) with OpenSSF Scorecard score < 3

Full job summary

@cldmv-bot cldmv-bot Bot changed the title release: v1.1.5 - condition-only trigger + execArgv detection +… release: v1.1.5 - bump @cldmv/fix-headers from 1.2.2 to 1.3.7 in the… Aug 9, 2026
@Shinrai
Shinrai merged commit fd41b94 into master Aug 9, 2026
33 checks passed
@cldmv-bot
cldmv-bot Bot deleted the next branch August 9, 2026 03:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: core Touches core library / runtime source code area: tests Touches test files, fixtures, or test infrastructure ! release → master v4 flow: persistent next → master release PR (carries the next feature release) release Marks a pull request as a pending release — merge to publish a new version semver: patch This release contains only backwards-compatible bug fixes type: bug Something is broken or not behaving as expected type: dependencies Relates to dependency updates, version bumps, or package management

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant