8229879db8
Merge pull request 'chore(deps): update golang docker tag to v1.25.7' (#82) from renovate/golang-1.x into main
main
Renovate-Clanker2026-02-05 02:03:49 +07:00
03c6b44fa2
Merge pull request 'fix(deps): update module github.com/charmbracelet/bubbles to v0.21.1' (#81) from renovate/github.com-charmbracelet-bubbles-0.x into main
Renovate-Clanker2026-02-03 15:05:34 +07:00
3af3fdbc9c
fix(deps): update module github.com/charmbracelet/bubbles to v0.21.1
Renovate-Clanker2026-02-03 08:05:29 +00:00
6dc4bb58ea
Merge pull request 'chore(deps): update actions/checkout action to v6' (#80) from renovate/actions-checkout-6.x into main
bagas2026-01-28 01:16:08 +07:00
5b05723e93
ci: refactor workflows for SonarQube, tag-only Docker builds, and global testing - Run SonarQube scans only on main, staging, and feat/* branches - Build and push Docker images only on semantic version tags - Add test job that runs on all events
v1.1.5
bagas2026-01-28 00:54:47 +07:00
22ad935299
Merge pull request 'chore(deps): update actions/checkout action to v6' (#75) from renovate/actions-checkout-6.x into main
bagas2026-01-27 18:36:31 +07:00
1344afd1b2
Merge pull request 'fix(deps): update module github.com/stretchr/testify to v1.11.1' (#79) from renovate/github.com-stretchr-testify-1.x into main
Renovate-Clanker2026-01-27 18:19:53 +07:00
4cbee5079c
fix(deps): update module github.com/stretchr/testify to v1.11.1
Renovate-Clanker2026-01-27 11:19:47 +00:00
0b071dfde7
Merge pull request 'chore(deps): update dependency go to v1.25.6' (#78) from renovate/go-1.x into main
Renovate-Clanker2026-01-27 18:19:40 +07:00
58f1fdabe1
test(server): add unit tests for server startup behavior
bagas2026-01-22 21:58:25 +07:00
c1fb588cf4
test(config): add unit tests for config behavior
bagas2026-01-22 21:24:58 +07:00
3029996773
test(stream): add unit tests for stream behavior - Fix duplicating EOF error when closing SSH connection - Add new SessionStatusCLOSED type
bagas2026-01-22 21:04:05 +07:00
3fd179d32b
test(header): add unit tests for header behavior
bagas2026-01-22 19:47:31 +07:00
a598a10e94
update: exclude local test coverage
bagas2026-01-22 19:46:47 +07:00
29cabe42d3
test(transport): add unit tests for transport behavior using Testify
bagas2026-01-22 19:22:35 +07:00
e534972abc
test(random): add unit tests for random behavior
bagas2026-01-22 13:27:25 +07:00
a55ff5f6ab
test(port): add unit tests for port behavior
bagas2026-01-22 12:39:46 +07:00
50b4127cb3
test(middleware): add unit tests for middleware behavior
bagas2026-01-22 12:30:20 +07:00
7e635721fb
ci: automate Go tests and Sonar coverage reporting
bagas2026-01-22 01:07:33 +07:00
016df9caee
test(registry): add unit tests for registry behavior
bagas2026-01-22 00:47:53 +07:00
d91eecb2a0
chore: Refactor and optimize project architecture
bagas2026-01-22 22:16:33 +07:00
9f4c24a3f3
refactor(lifecycle): reorder resource closing and simplify Close() - Close channel and connection first, then remove session - Close forwarded port and forwarder at the end for TCP tunnels - Aggregate all errors using errors.Join instead of failing early
bagas2026-01-21 21:55:38 +07:00
2bc20dd991
refactor(config): centralize env loading and enforce typed access - Centralize environment variable loading in config.MustLoad - Parse and validate all env vars once at initialization - Make config fields private and read-only - Remove public Getenv usage in favor of typed accessors - Improve validation and initialization order - Normalize enum naming to be idiomatic and avoid constant collisions
bagas2026-01-21 19:43:19 +07:00
e3ead4d52f
refactor: optimize header parsing and remove factory naming - Remove factory naming - Use direct byte indexing instead of bytes.TrimRight - Extract parseStartLine and setRemainingHeaders helpers
bagas2026-01-20 19:07:47 +07:00
aa1a465178
refactor(forwarder): improve connection handling and cleanup - Extract copyAndClose method for bidirectional data transfe - Add closeWriter helper for graceful connection shutdown - Add handleIncomingConnection helper - Add openForwardedChannel helper
bagas2026-01-20 19:01:15 +07:00
27f49879af
refactor(server): enhance HTTP handler modularity and fix resource leak - Rename customWriter struct to httpWriter for clarity - Add closeWriter field to properly close write side of connections - Update all cw variable references to hw - Merge handlerTLS into handler function to reduce code duplication - Extract handler into smaller, focused methods - Split Read/Write/forwardRequest into composable functions
bagas2026-01-19 22:41:04 +07:00
adb0264bb5
refactor(session): simplify Start() and unify forwarding logic - Extract helper functions from Start() for better code organization - Eliminate duplication with finalizeForwarding() method - Consolidate denial logic into denyForwardingRequest() - Update all handler methods to return errors instead of logging internally - Improve error handling consistency across all operations
bagas2026-01-19 15:12:31 +07:00
8fb19af5a6
fix: resolve copy goroutine deadlock on early connection close - Add proper CloseWrite handling to signal EOF to other goroutine - Ensure both copy goroutines terminate when either side closes - Prevent goroutine leaks for SSH forwarded-tcpip channels: - Use select with default when sending result to resultChan - Close unused SSH channels and discard requests if main goroutine has already timed out
bagas2026-01-19 00:13:09 +07:00
41fdb5639c
Merge pull request 'refactor: explicit initialization and dependency injection' (#70) from staging into main
bagas2026-01-18 21:46:59 +07:00
44d224f491
refactor: explicit initialization and dependency injection - Replace init() with config.Load() function when loading env variables - Inject portRegistry into session, server, and lifecycle structs - Inject sessionRegistry directly into interaction and lifecycle - Remove SetSessionRegistry function and global port variables - Pass ssh.Conn directly to forwarder constructor instead of lifecycle interface - Pass user and closeFunc callback to interaction constructor instead of lifecycle interface - Eliminate circular dependencies between lifecycle, forwarder, and interaction - Remove setter methods (SetLifecycle) from forwarder and interaction interfaces
v1.1.3
bagas2026-01-18 20:42:10 +07:00
9be0328e24
Merge pull request 'staging' (#69) from staging into main
bagas2026-01-17 19:15:40 +07:00
2b9bca65d5
refactor(interaction): separate view and update logic into modular files - Extract slug editing logic to slug.go (slugView/slugUpdate) - Extract commands menu logic to commands.go (commandsView/commandsUpdate) - Extract coming soon modal to coming_soon.go (comingSoonView/comingSoonUpdate) - Extract main dashboard logic to dashboard.go (dashboardView/dashboardUpdate) - Create model.go for shared model struct and helper functions - Replace math/rand with crypto/rand for random subdomain generation - Remove legacy TLS cipher suite configuration
v1.1.2
bagas2026-01-17 17:32:30 +07:00
6587dc0f39
refactor(interaction): separate view and update logic into modular files - Extract slug editing logic to slug.go (slugView/slugUpdate) - Extract commands menu logic to commands.go (commandsView/commandsUpdate) - Extract coming soon modal to coming_soon.go (comingSoonView/comingSoonUpdate) - Extract main dashboard logic to dashboard.go (dashboardView/dashboardUpdate) - Create model.go for shared model struct and helper functions - Replace math/rand with crypto/rand for random subdomain generation - Remove legacy TLS cipher suite configuration
bagas2026-01-17 17:30:21 +07:00
f421781f44
Merge pull request 'refactor: convert structs to interfaces and rename accessors' (#68) from staging into main
bagas2026-01-16 16:41:22 +07:00
1a04af8873
Merge branch 'main' into staging
bagas2026-01-16 16:28:39 +07:00
19135ceb42
refactor: convert structs to interfaces and rename accessors - Convert struct types to interfaces - Rename getter and setter methods - Add Close method to server interface - Merge handler functionality into session file - Handle lifecycle.Connection().Wait() - fix panic on nil connection in SSH server
bagas2026-01-16 15:17:33 +07:00
edb11dbc51
Merge pull request 'chore(deps): update golang docker tag to v1.25.6' (#67) from renovate/golang-1.x into main
Renovate-Clanker2026-01-16 05:01:06 +07:00
a7ebf2c5db
Merge pull request 'fix(deps): update module golang.org/x/crypto to v0.47.0' (#66) from renovate/golang.org-x-crypto-0.x into main
bagas2026-01-14 10:42:52 +00:00
64c1038f4b
fix(deps): update module golang.org/x/crypto to v0.47.0
Renovate-Clanker2026-01-14 10:41:47 +00:00
fb638636bf
refactor: consolidate error handling with fail() function in session handlers - Replace repetitive error handling code with fail() function in HandleGlobalRequest - Standardize error response pattern across all handler methods - Improve code maintainability and reduce duplication
bagas2026-01-12 14:42:42 +07:00
da29df85b7
feat: add headless mode support for SSH -N connections - use s.lifecycle.GetConnection().Wait() to block until SSH connection closes - Prevent premature session closure in headless mode
bagas2026-01-11 15:21:11 +07:00
8b0e08c629
fix(deps): update module github.com/caddyserver/certmagic to v0.25.1
Renovate-Clanker2026-01-09 10:00:35 +00:00
09e526cd1e
feat: add authenticated user info and restructure handleConnection - Display authenticated username in welcome page information box - Refactor handleConnection function for better structure and clarity
bagas2026-01-07 23:07:02 +07:00
887ebf78b1
refactor(grpc/client): simplify processEventStream with per-event handlers - Extract eventHandlers dispatch table - Add per-event handlers: handleSlugChange, handleGetSessions, handleTerminateSession - Introduce sendNode helper to centralize send/error handling and preserve connection-error propagation - Add protoToTunnelType for tunnel-type validation - Map unknown proto.TunnelType to types.UNKNOWN in protoToTunnelType and return a descriptive error - Reduce boilerplate and improve readability of processEventStream
bagas2026-01-06 20:14:56 +07:00