Skip to content

Conversation

@jdalton
Copy link
Contributor

@jdalton jdalton commented Nov 5, 2025

Summary

Updates the Windows-specific inspector protocol patch for Node.js v24.10.0 to fix namedtuple ValueError issues in the Python build script.

Problem

The previous patch attempted to modify a namedtuple after creation, which caused an AttributeError in Python 3.11+:

AttributeError: 'X' object has no attribute 'path'

This occurred because namedtuples are immutable and cannot have attributes assigned after creation.

Solution

Simplified the patch to compute the protocol path from the config file location and use it directly, without attempting to modify the namedtuple. The fix:

  1. Accepts config_file parameter in Protocol.__init__()
  2. Computes protocol path from config file location when config.protocol.path is missing
  3. Uses the computed path directly without modifying the namedtuple

Changes

  • Removed 4 lines that attempted to modify the namedtuple
  • Simplified the approach to avoid immutability issues
  • Maintains Windows path compatibility

Test plan

  • Build verification: pnpm --filter @socketbin/node-smol-builder run build
  • Verify Windows build works correctly
  • Confirm inspector protocol is properly configured

Related

This patch ensures proper handling of Windows paths in the inspector protocol build process for the Socket smol Node.js binary.

@jdalton jdalton force-pushed the fix/inspector-protocol-windows-patch branch from 92d0436 to d54b395 Compare November 5, 2025 15:05
Add patch 012 to fix Windows build failure in inspector_protocol code_generator.py.

On Windows, the gyp-win-tool action wrapper fails to pass --config_value protocol.path=...
through ninja response files, causing AttributeError in two locations (lines 365 and 635).

Solution: Check for missing config.protocol.path in main() before creating Protocol object,
compute the path from config_file location, and update the config namedtuple using _replace().

Also hoist logger to module scope in socket package build script.
@jdalton jdalton force-pushed the fix/inspector-protocol-windows-patch branch from bedede6 to 0133242 Compare November 5, 2025 15:41
Matrix context variables are not parsed in job-level name fields.
Changed from dynamic '⚡ Smol - ${{ matrix.platform }}-${{ matrix.arch }}'
to static '⚡ Smol Binaries'.
- Remove git-style diff headers (diff --git, index)
- Use simple unified diff format (--- and +++)
- Match format of other patches in the directory

Fixes patch validation failure in build-smol workflow.
Restore original git-diff formatted patch that was working.
The previous attempt to convert to unified diff format failed validation.
- Create patch from actual Node.js source using diff -u
- Properly formats all added lines with + prefix
- Tested with patch -p1 --dry-run, applies cleanly
- Fixes AttributeError: 'X' object has no attribute 'path'
- Adds fallback to compute protocol path from config file location

Refs: #876
@jdalton jdalton closed this Nov 5, 2025
@jdalton jdalton deleted the fix/inspector-protocol-windows-patch branch November 6, 2025 02:06
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.

2 participants