Skip to content

chore: v0.5.11 — cross-platform fix, utility hoists, git-cliff - #101

Merged
karmaniverous merged 8 commits into
mainfrom
feature/v0-5-11
May 29, 2026
Merged

chore: v0.5.11 — cross-platform fix, utility hoists, git-cliff#101
karmaniverous merged 8 commits into
mainfrom
feature/v0-5-11

Conversation

@jgs-jeeves

Copy link
Copy Markdown
Collaborator

v0.5.11

Changes

Quality

  • Lint: ✅ zero errors, zero warnings
  • Typecheck: ✅ clean
  • Build: ✅ clean (5 bundles)
  • Tests: ✅ 443 passing across 51 test files
  • Knip: ✅ clean
  • Dependencies: updated (all patch/minor)

Downstream

  • jeeves-watcher#202 — consume hoisted substituteEnvVars
  • jeeves-server#144 — consume hoisted substituteEnvVars

Closes #95, closes #100, closes #90, closes #93

jgs-jeeves and others added 5 commits May 29, 2026 08:00
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
closes #100)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…loses #93)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new substituteEnvVars utility to deep-walk config objects and resolve environment variables, adds a platform check to reject Windows drive-letter paths on non-Windows platforms, updates the changelog generation tool from auto-changelog to git-cliff, and adds documentation for Slack file downloads. Feedback on the changes suggests improving the object prototype check in substituteEnvVars to also support objects created with Object.create(null) by allowing a null prototype.

Comment on lines +39 to +43
if (
value !== null &&
typeof value === 'object' &&
Object.getPrototypeOf(value) === Object.prototype
) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The current check for plain objects (Object.getPrototypeOf(value) === Object.prototype) will skip objects created with Object.create(null), which have a null prototype. In JavaScript/TypeScript, Object.create(null) is a common pattern for creating clean dictionary/map objects.

To ensure environment variables are also substituted in these objects, we should allow a null prototype as well.

Suggested change
if (
value !== null &&
typeof value === 'object' &&
Object.getPrototypeOf(value) === Object.prototype
) {
if (
value !== null &&
typeof value === 'object' &&
(Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null)
) {

@karmaniverous
karmaniverous self-requested a review May 29, 2026 08:24
@karmaniverous
karmaniverous merged commit 3528acd into main May 29, 2026
1 check 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

2 participants