Skip to content

Release v2.12.2 - #505

Merged
exsilium merged 2 commits into
masterfrom
development
Jul 29, 2026
Merged

Release v2.12.2#505
exsilium merged 2 commits into
masterfrom
development

Conversation

@exsilium

Copy link
Copy Markdown
Collaborator

This pull request introduces important security and correctness improvements, especially for terminal session authentication, and modernizes test infrastructure and code compatibility. The most significant changes are the addition of application-layer authentication for terminal sessions, fixes for line numbering in code analysis, and updates to test dependencies and code for compatibility with newer Node.js and package versions.

Security and Authentication Improvements

  • Added application-layer authentication to the terminal client and server: the terminal socket now requires a session id handshake before accepting any commands, preventing unauthorized access if the session is invalid or expired. The server enforces an authentication timeout and only creates a session after successful authentication, with clear error handling and user feedback. (plugins-client/ext.terminal/tty.js, plugins-server/pylon.ide.terminal/tty.js, plugins-server/pylon.ide.terminal/package.json, plugins-server/pylon.ide.terminal/terminal.js) [1] [2] [3] [4] [5] [6]

  • Local terminal connections are now strictly enforced: connections from non-local addresses are refused and closed immediately, strengthening defense in depth. (plugins-server/pylon.ide.terminal/tty.js)

Correctness and Bug Fixes

  • Fixed line numbering mismatches between different components (treehugger, ACE, jshint) in code analysis and outline features, ensuring that markers and variable positions are displayed accurately in the editor. (plugins-client/ext.jslanguage/scope_analyzer.js, plugins-client/ext.language/worker.js) [1] [2] [3]

  • Removed a non-functional test case that depended on a missing jquery.js fixture and only served as a commented-out benchmark. (plugins-client/ext.jslanguage/outline_test.js)

Test Harness and Dependency Updates

  • Restored and updated the test harness by adding mocha and sinon as dev dependencies, and modernized test code to use up-to-date APIs (e.g., replacing deprecated Path.existsSync with Fs.existsSync, using fs.rm instead of rimraf). (package.json, plugins-server/pylon.ide.revisions/test/revisions_test.js, plugins-server/pylon.ide.filelist/filelist_test.js, plugins-server/pylon.ide.search/search_test.js) [1] [2] [3] [4] [5] [6] [7]

  • Fixed a bug in the async whilst usage in revisions handling to comply with modern async library requirements. (plugins-server/pylon.ide.revisions/revisions.js)

Documentation

  • Added release notes for version 2.12.2, highlighting the security fix and test harness restoration. (History.md, package.json) [1] [2]

These changes collectively improve the security, reliability, and maintainability of the codebase.

exsilium added 2 commits July 29, 2026 17:39
- Engine.io endpoint is attached to the raw HTTP server, so connect's session middleware is not in its request path. Require a session handshake before honouring any message on that socket, mirroring how pylon.socket validates the smith.io attach message. Defer session object creation until it succeeds. Client sends the session id it already holds and queues outbound messages until the server acknowledges. Adds 11 regression tests.
- Use local mocha
- Fix tests
- Report a non-zero exit status when any test file fails
- New lock
- History.md update
- New lock
@exsilium
exsilium merged commit 22212be into master Jul 29, 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