Skip to content

Limitless.watchUserPositions() is in core and Python SDK but missing from TypeScript SDK #660

@realfishsam

Description

@realfishsam

Gap

LimitlessExchange exposes watchUserPositions(callback) — a WebSocket method that streams real-time authenticated user position updates. The Python SDK base Exchange class exposes watch_user_positions. The TypeScript SDK does not expose this method anywhere.

Core

File: core/src/exchanges/limitless/index.ts line 501

watchUserPositions(callback: (positions: Position[]) => void): void

Subscribes to Limitless's user-position WebSocket feed. Requires authentication (API key). The callback receives updated Position[] arrays as the user's positions change.

TypeScript SDK

Missing — the Limitless subclass in sdks/typescript/pmxt/client.ts (lines 2576–2580) is a thin wrapper with no watchUserPositions method. The base Exchange class also has no watchUserPositions. Searching the entire sdks/typescript/ tree for watchUserPositions returns zero results.

Python SDK

Present — watch_user_positions(callback?) is defined on the base Exchange class in sdks/python/pmxt/client.py at line 2158. It constructs POST /api/{exchange}/watchUserPositions, sends credentials, and converts the response to a list of Position objects.

Evidence

grep -rn "watchUserPositions\|watch_user_positions" sdks/typescript/ returns zero results.
grep -n "watch_user_positions" sdks/python/pmxt/client.py returns line 2158 (method definition).
grep -n "watchUserPositions" core/src/exchanges/limitless/index.ts returns line 501.
The sidecar accepts POST /api/limitless/watchUserPositions via dynamic dispatch since the method exists on the exchange instance.

Impact

TypeScript SDK users building Limitless position dashboards or automated position managers cannot subscribe to real-time position updates. They must poll fetchPositions on a timer or construct raw sidecar calls. Python users have a fully typed watch_user_positions. This is an asymmetric TypeScript-only gap.


Found by automated Core-to-SDK surface coverage audit

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions