realrasengan
c582e52c15
WASM: replace goroutine recv with JS-driven poll() to prevent scheduler starvation
2026-03-30 18:53:48 -07:00
realrasengan
ad1792735e
WASM: tick immediately when idle, batch when ack pending
2026-03-30 18:45:45 -07:00
realrasengan
1694f8c993
WASM: remove tick from send, let interval handle all flushing
2026-03-30 18:44:31 -07:00
realrasengan
ecc46b8df2
WASM: batch keystrokes per animation frame to prevent cumulative state duplication
2026-03-30 17:25:05 -07:00
realrasengan
83b9ce0de5
WASM: defer next datagram read via setTimeout to yield to Go scheduler
2026-03-30 16:42:33 -07:00
realrasengan
37159d31bd
WASM: use persistent writer, fix connection lost from lock churn
2026-03-30 16:19:17 -07:00
realrasengan
30eb6a82a5
WASM: tick immediately on send/resize, slow keepalive interval only
2026-03-30 16:07:58 -07:00
realrasengan
cc1f22485d
remove immediate Tick from send/resize — let setInterval drive it
2026-03-30 15:43:33 -07:00
realrasengan
d8d48e4269
fix WASM: self-chaining JS reader, no goroutine leak, per-write lock
2026-03-30 14:35:40 -07:00
realrasengan
5f8cade139
add Tick() export and DialConnManual for JS-driven send loop in WASM
2026-03-30 14:24:44 -07:00
realrasengan
bbe416444b
add Conn interface, WASM client with WebTransport transport
...
- Conn interface: abstracts datagram I/O (Read/Write/SetReadDeadline/Close)
- Client.DialConn(): create client over any Conn (not just UDP)
- cmd/mosh-wasm: WASM binary exposing moshConnect(url, key) to JS
- WebTransport adapter: browser datagrams as mosh.Conn
- Build tags: server.go and framebuffer.go excluded from js/wasm
- Shared constants moved to conn.go
Existing UDP paths unchanged. Latch unaffected.
2026-03-30 12:05:33 -07:00
realrasengan
0f15d99fbc
transport: SSP state tracking for framebuffer ack
...
Add AckedByRemote/SentNum accessors, diffOldNum locking, and
received state list for proper old_num validation. Required for
server framebuffer diffing to track which state the client has.
2026-03-14 20:40:53 -07:00
realrasengan
b8b5994527
server: VT emulator framebuffer diffing
...
Replace raw PTY passthrough with proper VT emulator processing.
PTY output feeds into charmbracelet/x/vt, snapshots are diffed
against the last-acked framebuffer using CUP-based positioning.
Fixes character doubling during fast typing.
2026-03-14 20:34:30 -07:00
realrasengan
bb08f71e30
Initial release: pure Go mosh client and server
...
Wire-compatible with C mosh. AES-128-OCB3, SSP transport, fragmentation,
protobuf state sync, latch extension fields.
Includes ServeRW bridge mode for embedding.
2026-03-12 18:33:41 -07:00