# Changelog ## 2026-02-18 - 3.2.0 - feat(remoteingress (edge/hub/protocol)) add dynamic port configuration: handshake, FRAME_CONFIG frames, and hot-reloadable listeners - Introduce a JSON handshake from hub -> edge with initial listen ports and stun interval so edges can configure listeners at connect time. - Add FRAME_CONFIG (0x06) to the protocol and implement runtime config updates pushed from hub to connected edges. - Edge now applies initial ports and supports hot-reloading: spawn/abort listeners when ports change, and emit PortsAssigned / PortsUpdated events. - Hub now stores allowed edge metadata (listen_ports, stun_interval_secs), sends handshake responses on auth, and forwards config updates to connected edges. - TypeScript bridge/client updated to emit new port events and periodically log status; updateAllowedEdges API accepts listenPorts and stunIntervalSecs. - Stun interval handling moved to use handshake-provided/stored value instead of config.listen_ports being static. ## 2026-02-18 - 3.1.1 - fix(readme) update README: add issue reporting/security section, document connection tokens and token utilities, clarify architecture/API and improve examples/formatting - Added an 'Issue Reporting and Security' section linking to community.foss.global for bug/security reports and contributor onboarding. - Documented connection tokens: encodeConnectionToken/decodeConnectionToken utilities, token format (base64url), and examples for hub and edge provisioning. - Clarified Hub/Edge usage and examples: condensed event handlers, added token-based start() example, and provided explicit config alternative. - Improved README formatting: added emojis, rephrased architecture descriptions, fixed wording and license path capitalization, and expanded example scenarios and interfaces. ## 2026-02-17 - 3.1.0 - feat(edge) support connection tokens when starting an edge and add token encode/decode utilities - Add classes.token.ts with encodeConnectionToken/decodeConnectionToken using a base64url compact JSON format - Export token utilities from ts/index.ts - RemoteIngressEdge.start now accepts a { token } option and decodes it to an IEdgeConfig before starting - Add tests covering export availability, encode→decode roundtrip, malformed token, and missing fields - Non-breaking change — recommend a minor version bump ## 2026-02-17 - 3.0.4 - fix(build) bump dev dependencies, update build script, and refresh README docs - Bumped devDependencies: @git.zone/tsbuild ^2.1.25 → ^4.1.2, @git.zone/tsbundle ^2.0.5 → ^2.8.3, @git.zone/tsrun ^1.2.46 → ^2.0.1, @git.zone/tstest ^1.0.44 → ^3.1.8, @push.rocks/tapbundle ^5.0.15 → ^6.0.3, @types/node ^20.8.7 → ^25.2.3 - Bumped runtime dependency: @push.rocks/qenv ^6.0.5 → ^6.1.3 - Changed build script: replaced "tsbuild --web --allowimplicitany" with "tsbuild tsfolders --allowimplicitany" (kept tsrust invocation) - README updates: added RustBridge notes (localPaths must be full file paths), production binary naming conventions, rust core uses ring as rustls provider; removed emoji from example console output; clarified stunIntervalSecs is optional; renamed example status variable to edgeStatus; minor wire-protocol formatting and wording/legal text tweaks ## 2026-02-17 - 3.0.3 - fix(rust,ts) initialize rustls ring CryptoProvider at startup; add rustls dependency and features; make native binary lookup platform-aware - Install rustls::crypto::ring default_provider at startup to ensure ring-based crypto is available before any TLS usage. - Add rustls dependency to remoteingress-bin and update remoteingress-core rustls configuration (disable default-features; enable ring, logging, std, tls12). - Adjust TS classes to prefer platform-suffixed production binaries, add exact fallback names, and include explicit cargo output paths for release/debug. - Cargo.lock updated to include rustls entry. ## 2026-02-16 - 3.0.2 - fix(readme) Document Hub/Edge architecture and new RemoteIngressHub/RemoteIngressEdge API; add Rust core binary, protocol and usage details; note removal of ConnectorPublic/ConnectorPrivate (breaking change) - Adds comprehensive README describing v3 Hub↔Edge topology and usage examples - Introduces Rust core binary (remoteingress-bin) and RustBridge IPC via @push.rocks/smartrust - Documents custom multiplexed binary frame protocol over TLS and PROXY protocol v1 for client IP preservation - Notes STUN-based public IP discovery and cross-compiled linux/amd64 and linux/arm64 binaries - Calls out removal/rename of ConnectorPublic/ConnectorPrivate to RemoteIngressHub/RemoteIngressEdge (breaking API change) - Updates install instruction to use pnpm and expands API reference, events, and examples ## 2026-02-16 - 3.0.1 - fix(remoteingress) no changes detected in diff; no code modifications to release - No files changed in the provided diff. - No release or version bump required based on current changes. ## 2026-02-16 - 3.0.0 - BREAKING CHANGE(remoteingress) migrate core to Rust, add RemoteIngressHub/RemoteIngressEdge JS bridge, and bump package to v2.0.0 - Added Rust workspace and crates: remoteingress-protocol, remoteingress-core, remoteingress-bin (IPC management mode via JSON over stdin/stdout). - Implemented protocol framing, PROXY v1 header builder, and async FrameReader in remoteingress-protocol. - Implemented hub and edge tunnel logic in Rust including TLS handling, PROXY parsing, and STUN public IP discovery. - Added TypeScript runtime bridge classes RemoteIngressHub and RemoteIngressEdge that use @push.rocks/smartrust to spawn/manage the Rust binary. - Removed legacy connector public/private TS files and simplified ts/index exports to expose hub/edge classes. - Updated package.json: bumped version to 2.0.0, adjusted description, added tsrust build step, new dependency @push.rocks/smartrust and keywords, and included dist_rust in files/glob. - Added rust build config for cross-target linkers and new Cargo.toml manifests for the workspace. ## 2024-04-14 - 1.0.2 - 1.0.4 - releases Version-only tag commits (no code changes) for recent releases. - 1.0.2 (2024-03-24) — release tag / version bump only - 1.0.3 (2024-04-14) — release tag / version bump only - 1.0.4 (2024-04-14) — release tag / version bump only ## 2024-04-14 - 1.0.3 - core Core updates and fixes. - fix(core): update ## 2024-04-14 - 1.0.2 - core Core updates and fixes. - fix(core): update ## 2024-03-24 - 1.0.1 - core Core updates and fixes. - fix(core): update