@onride/agent 0.0.0-stage → 0.5.1-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +31 -0
- package/LICENSE +21 -0
- package/README.md +174 -2
- package/dist/account_balances.js +435 -0
- package/dist/account_reads.js +199 -0
- package/dist/agent/adapter.js +115 -0
- package/dist/agent/analytics.js +174 -0
- package/dist/agent/backend.js +237 -0
- package/dist/agent/card_hosts.js +9 -0
- package/dist/agent/contracts.js +276 -0
- package/dist/agent/conversational.js +86 -0
- package/dist/agent/core_bridge.js +1155 -0
- package/dist/agent/deposits.js +309 -0
- package/dist/agent/discovery.js +205 -0
- package/dist/agent/domain.js +507 -0
- package/dist/agent/firebase.js +34 -0
- package/dist/agent/funding.js +230 -0
- package/dist/agent/http.js +40 -0
- package/dist/agent/human.js +298 -0
- package/dist/agent/human_handoffs.js +39 -0
- package/dist/agent/ledger.js +137 -0
- package/dist/agent/mcp.js +245 -0
- package/dist/agent/order_rules.js +61 -0
- package/dist/agent/perps_account.js +41 -0
- package/dist/agent/prediction.js +607 -0
- package/dist/agent/prediction_equity_history.js +910 -0
- package/dist/agent/prediction_history.js +336 -0
- package/dist/agent/preferences.js +114 -0
- package/dist/agent/repository.js +106 -0
- package/dist/agent/runner.js +683 -0
- package/dist/agent/service.js +1347 -0
- package/dist/backend.js +6 -0
- package/dist/bridge.js +6 -0
- package/dist/cli/clients.js +99 -0
- package/dist/cli/commands.js +332 -0
- package/dist/cli/onboarding.js +53 -0
- package/dist/cli/session.js +224 -0
- package/dist/cli/setup.js +256 -0
- package/dist/cli.js +16 -0
- package/dist/guide.js +92 -0
- package/dist/http_security.js +79 -0
- package/dist/mcp-cli.js +7 -0
- package/dist/oauth.js +1032 -0
- package/dist/server.js +171 -0
- package/dist/start.js +18 -0
- package/dist/version.js +25 -0
- package/docs/confirmation-cards.md +118 -0
- package/docs/conversation-v050.md +30 -0
- package/docs/conversational-v17.md +48 -0
- package/docs/deployment.md +58 -0
- package/docs/perps-leverage.md +43 -0
- package/docs/prediction-history.md +28 -0
- package/docs/preferences-funding-v042.md +17 -0
- package/docs/ride-agent-migration.md +127 -0
- package/docs/v17-completion-checklist.md +31 -0
- package/docs/v17-rollout.md +44 -0
- package/docs/widget-account-v043.md +17 -0
- package/package.json +75 -4
- package/public/agent.html +2313 -0
- package/public/confirm.html +2373 -0
- package/public/fund.html +563 -0
- package/skills/ride/SKILL.md +18 -0
- package/skills/ride/references/commands.md +47 -0
- package/skills/ride/references/workflow.md +47 -0
package/.env.example
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copy separately for each service; fill through your secret manager.
|
|
2
|
+
HOST=127.0.0.1
|
|
3
|
+
PORT=3333
|
|
4
|
+
PUBLIC_BASE_URL=https://mcp.onride.me
|
|
5
|
+
RIDE_GRAPHQL_URL=https://YOUR-RIDE-CORE/graphql
|
|
6
|
+
PRIVY_APP_ID=
|
|
7
|
+
PRIVY_CLIENT_ID=
|
|
8
|
+
REDIS_URL=
|
|
9
|
+
RIDE_AGENT_BACKEND_URL=http://127.0.0.1:3344
|
|
10
|
+
RIDE_AGENT_HUMAN_COOKIE_KEY=
|
|
11
|
+
RIDE_AGENT_ENABLED=false
|
|
12
|
+
RIDE_AGENT_READ_ONLY=false
|
|
13
|
+
RIDE_AGENT_DATABASE_URL=
|
|
14
|
+
RIDE_AGENT_CURSOR_KEY=
|
|
15
|
+
RIDE_AGENT_EXECUTOR_URL=http://127.0.0.1:3355
|
|
16
|
+
RIDE_AGENT_EXECUTOR_TOKEN=
|
|
17
|
+
RIDE_AGENT_CORE_URL=https://YOUR-PRIVATE-RIDE-CORE
|
|
18
|
+
RIDE_AGENT_CORE_SERVICE_TOKEN=
|
|
19
|
+
RIDE_AGENT_TRADER_ID_SALT=
|
|
20
|
+
RIDE_AGENT_NETWORK=testnet
|
|
21
|
+
RIDE_AGENT_PREDICTION_ENABLED=false
|
|
22
|
+
RIDE_AGENT_POLYGON_RPC_URL=
|
|
23
|
+
RIDE_PUBLIC_SUBMISSION_MODE=false
|
|
24
|
+
FIREBASE_SERVICE_ACCOUNT_JSON=
|
|
25
|
+
# Reuse existing Ride Firebase configuration (server-only, optional alternative).
|
|
26
|
+
FCM_SERVICE_ACCOUNT_JSON_BASE64=
|
|
27
|
+
RIDE_AGENT_FCM_PROJECT_ID=
|
|
28
|
+
|
|
29
|
+
# Independent Agent RWA services, never the old App worker.
|
|
30
|
+
RIDE_AGENT_RWA_ENABLED=false
|
|
31
|
+
RIDE_AGENT_ARBITRUM_RPC_URL=https://arb1.arbitrum.io/rpc
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Glen-yang
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,175 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Ride Agent
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**AI Copy-Trading Agent**
|
|
4
|
+
|
|
5
|
+
Ride Agent helps you discover traders, build a personalized copy-trading portfolio, and start copying after your confirmation.
|
|
6
|
+
|
|
7
|
+
Ride Agent V3 selects a diversified trader basket and manages owned Perps and prediction-market copies. It exposes twenty-three Agent MCP tools plus an authenticated Ride App copy read and a live workflow guide, equivalent JSON CLI commands, conversation-first recommendation tables and Ride confirmation cards, and a portable agent Skill.
|
|
8
|
+
|
|
9
|
+
**Company distribution:** `@onride/agent` is owned by the `onride` npm organization; source and releases live in [`onride-app/ride-agent`](https://github.com/onride-app/ride-agent). Existing users can follow the [compatible upgrade guide](docs/ride-agent-migration.md).
|
|
10
|
+
|
|
11
|
+
**Hosted service:** the hosted V3 endpoint is `https://mcp.onride.me/mcp`. Account readiness and Ride approval govern trading. The CLI and Skill package is `@onride/agent`; client installation targets the same production MCP endpoint.
|
|
12
|
+
|
|
13
|
+
## One-command installation
|
|
14
|
+
|
|
15
|
+
Node.js 20+ and an AI client are required. Run this single command:
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
npx -y @onride/agent
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
The installer detects Codex, Claude Code and Cursor. With one detected client it continues automatically; with multiple or no detected clients it shows a short selection menu. It installs the Skill, connects the production MCP and opens Ride login. Authorize with your own Ride account, then restart your AI client or open a new chat. The default command requests read and proposal access; execution still requires confirmation in Ride.
|
|
22
|
+
|
|
23
|
+
For unattended configuration or an explicit client, the existing options remain available:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
npx -y @onride/agent@0.5.1 setup --client codex --trade
|
|
27
|
+
npx -y @onride/agent@0.5.1 setup --client claude-code --trade
|
|
28
|
+
npx -y @onride/agent@0.5.1 setup --client cursor --trade
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Codex uses native HTTP MCP and its own OAuth credential storage. If the Codex CLI is absent, setup runs the official `@openai/codex@0.162.0` CLI through npx automatically. Claude Code and Cursor use the automatically updated Ride Agent CLI's stdio MCP and private OAuth session. `setup` without `--trade` requests read access. Add `--skip-login` for configuration only; `--server https://YOUR-RIDE-HOST/mcp` selects another deployment.
|
|
32
|
+
|
|
33
|
+
Setup preserves unrelated settings, upgrades unmodified managed installations and refuses to overwrite a foreign `ride` entry or customized Skill. If login is cancelled or fails, rerun the same command to retry; the installed configuration is retained.
|
|
34
|
+
|
|
35
|
+
Registry installation is the default. To use the pinned GitHub release source, run `npx -y github:onride-app/ride-agent#v0.5.1 setup --client CLIENT --trade --distribution github`. Other clients supporting remote Streamable HTTP MCP with OAuth can connect to `https://mcp.onride.me/mcp`; their registration and consent interface is managed by that client. The installer currently configures Codex, Claude Code and Cursor.
|
|
36
|
+
|
|
37
|
+
For the Skill alone:
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
npx skills add onride-app/ride-agent --skill ride
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The Skill-only command does not register an MCP server. For standalone CLI commands, prefix the commands below with `npx -y @onride/agent@0.5.1`, or install the pinned package with `npm install -g @onride/agent@0.5.1` to obtain `ride`.
|
|
44
|
+
|
|
45
|
+
## Automatic updates and existing users
|
|
46
|
+
|
|
47
|
+
The installed Skill is a stable entry point. At the start of each Ride task it calls `get_ride_guide` to load the workflow from the configured Ride server. Deploying a new workflow updates its behavior without reinstalling local Skill files. The guide never grants new trading authority. If the live guide is unavailable, account reads and explanations can use the bundled reference; new financial proposals wait for the guide to recover.
|
|
48
|
+
|
|
49
|
+
Codex connects directly to the hosted MCP, so server tools and initialization instructions update on reconnect. Existing Codex HTTP installations can already discover the live guide after reconnecting or opening a new chat. Claude Code/Cursor npm installations resolve `@onride/agent@latest` with `--prefer-online` whenever their MCP starts. A running chat does not hot-reload its tool catalog: reconnect MCP or start a new chat after a release. No update command is required after migration.
|
|
50
|
+
|
|
51
|
+
For existing `@glenyang/ride-cli` installations and static Skills, run **once** on the original computer:
|
|
52
|
+
|
|
53
|
+
```sh
|
|
54
|
+
npx -y --prefer-online @onride/agent@latest setup --skip-login
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Use `--client codex`, `--client claude-code` or `--client cursor` if multiple clients are installed. Migration automatically retains the configured server when `--server` is omitted. Explicitly selecting a different server requires manual review. Migration accepts unmodified released Skills, preserves existing OAuth login and unrelated configuration, and refuses customized Skills or foreign Ride registrations. Already installed pinned code cannot remotely rewrite the user's computer before this migration. Explicit GitHub distribution and global `npm install -g` binaries stay pinned; standalone CLI users can run `npx -y --prefer-online @onride/agent@latest COMMAND` instead of reinstalling.
|
|
58
|
+
|
|
59
|
+
The old package and its `latest` remain independent of the new package; upgrading the old name alone cannot switch namespaces. Existing global users can use the npx upgrade above, then run `npm uninstall -g @glenyang/ride-cli && npm install -g @onride/agent@latest` to transfer the `ride` binary. Authentication remains in `~/.ride`. See [migration, rollback and troubleshooting](docs/ride-agent-migration.md).
|
|
60
|
+
|
|
61
|
+
The public, unauthenticated `ride guide --server URL` command reads the same workflow as MCP. Its version and content digest support consistency checks; OAuth sessions and account data are never included in this read.
|
|
62
|
+
|
|
63
|
+
## Use
|
|
64
|
+
|
|
65
|
+
The new conversation flow starts with budget and risk preference only, then shows a recommended portfolio and five candidate rows. Agent Perps plans accept 20-USDC budgets without a 50-USDC allocation floor; each net opening order must meet the venue minimum after rounding. Under-minimum entries are skipped, so a valid preview does not guarantee a fill. Other settings are disclosed defaults/suggestions and remain editable. See [the 0.5.0 implementation and acceptance scope](docs/conversation-v050.md); production/npm availability is separate from this source revision.
|
|
66
|
+
|
|
67
|
+
```sh
|
|
68
|
+
ride login --server https://mcp.onride.me/mcp --trade
|
|
69
|
+
ride preferences --json '{"budget_usdc":"500","risk_tolerance":"medium"}'
|
|
70
|
+
ride recommend --pretty
|
|
71
|
+
ride traders --sort drawdown --limit 10 --pretty
|
|
72
|
+
ride copy start PLAN_ID
|
|
73
|
+
ride proposal PROPOSAL_ID
|
|
74
|
+
ride confirm PROPOSAL_ID
|
|
75
|
+
ride portfolio --pretty
|
|
76
|
+
ride copies --pretty
|
|
77
|
+
ride updates --limit 20
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Account reads return the authenticated account together with Agent and existing Ride App copy data; an empty Agent portfolio confirms login and does not imply empty App holdings. `ride copies` reads existing App Perps and prediction copies directly. These copies remain managed in Ride.
|
|
81
|
+
|
|
82
|
+
Standalone `ride login` is separate from Codex native MCP login; Claude/Cursor setup already creates this CLI session. `login` defaults to read access; `--trade` adds proposal access. OAuth uses a browser, PKCE and a loopback callback. CLI session data remains under `~/.ride` with directory 0700 and file 0600; client configuration contains no access token. JSON is the default CLI output. `confirm` opens the Ride human review page.
|
|
83
|
+
|
|
84
|
+
| MCP tool | CLI equivalent |
|
|
85
|
+
| ------------------------------ | ------------------------------------------------- |
|
|
86
|
+
| `get_ride_guide` | `ride guide [--server URL]` |
|
|
87
|
+
| `browse_traders` | `ride traders [--sort score/drawdown/roi]` |
|
|
88
|
+
| `get_preferences` | `ride preferences` |
|
|
89
|
+
| `set_preferences` | `ride preferences --json ...` |
|
|
90
|
+
| `get_deposit_options` | `ride deposit options` |
|
|
91
|
+
| `get_deposit_address` | `ride deposit address --json ...` |
|
|
92
|
+
| `prepare_deposit` | `ride deposit prepare DEPOSIT_ID --json ...` |
|
|
93
|
+
| `check_deposit_status` | `ride deposit status DEPOSIT_ID` |
|
|
94
|
+
| `recommend_traders` | `ride recommend` |
|
|
95
|
+
| `get_trader_profile` | `ride trader TRADER_ID` |
|
|
96
|
+
| `start_copy` | `ride copy start PLAN_ID` |
|
|
97
|
+
| `get_portfolio` | `ride portfolio [PORTFOLIO_ID]` |
|
|
98
|
+
| `update_copy` | `ride copy update COPY_ID --json ...` |
|
|
99
|
+
| `stop_copy` | `ride copy stop COPY_ID --mode wind_down` |
|
|
100
|
+
| `review_portfolio` | `ride review [PORTFOLIO_ID]` |
|
|
101
|
+
| `get_updates` | `ride updates --cursor CURSOR` |
|
|
102
|
+
| `close_position` | `ride position close POSITION_ID` |
|
|
103
|
+
| `recalculate_plan` | `ride plan recalculate PLAN_ID --json ...` |
|
|
104
|
+
| `get_performance` | `ride performance --period inception` |
|
|
105
|
+
| `diagnose_copy` | `ride diagnose COPY_ID --start-at MS --end-at MS` |
|
|
106
|
+
| `get_notification_preferences` | `ride notifications` |
|
|
107
|
+
| `set_notification_preferences` | `ride notifications --json ...` |
|
|
108
|
+
|
|
109
|
+
## Execution and accounting
|
|
110
|
+
|
|
111
|
+
Write tools create expiring, frozen proposals. Execution requires human approval inside Ride, or an explicit, revocable Ride grant bounded by portfolio, total/action/daily amounts, expiry, assets, markets and leverage. MCP OAuth trade scope does not itself authorize execution. MCP funding preparation returns an exact-amount human confirmation page; funding and wallet signatures stay on that authenticated page. There are no MCP withdrawal or signing tools.
|
|
112
|
+
|
|
113
|
+
Recommendations use fresh venue-specific General-pool scores, choose 3–6 feasible sleeves and conserve every micro-USDC. Perps defaults to BTC/ETH, ATR caps are 3–8x subject to source and venue limits, prediction leverage is 1x, sleeve stop loss defaults to 30%, and initial entries outside the 0.2% source-entry boundary wait for a new source cycle. New source assets outside the approved Perps preferences are excluded.
|
|
114
|
+
|
|
115
|
+
Suggested leverage is also capped so historical source drawdown multiplied by leverage stays within the user's loss percentage. Missing drawdown evidence or a Perps risk cap below 3x excludes that candidate.
|
|
116
|
+
|
|
117
|
+
A dedicated account and independent fill ledger keep sleeve ownership separate from legacy copy/manual trading. Gross concentration is limited to 60%; opposite Perps positions can offset their exchange target while retaining gross sleeve attribution. Distinct prediction outcomes retain separate token ownership. Fees, funding and external flows are attributed from account evidence. Incomplete profit is `null`, never fabricated from trader profit or treated as zero.
|
|
118
|
+
|
|
119
|
+
Backend monitoring persists independently of the conversation, follows source changes, reviews score/style daily and delivers persisted Inbox events plus push. Stops default to wind-down. `close_now`, loss triggers and owned position closes reconcile actual fills and pending orders. Loss triggers block increases and request exits; price gaps, liquidity and venue failures can exceed a loss threshold. Replacements are limited to one per seven days and require actual released funds.
|
|
120
|
+
|
|
121
|
+
Submission, partial fill, settlement and completion are distinct. Unknown submissions retain their original identity and reconcile before any retry. Prediction accounting requires authenticated order-scoped confirmed trades and chain transfer evidence. Ambiguous receipts, unclassified redemption/merge events, missing data or unsupported venue dust remain in attention and block new risk; they are not reported as completed. Automatic prediction redemption is not included in this release.
|
|
122
|
+
|
|
123
|
+
There is no application-level country allowlist. Venue eligibility and account readiness are checked independently.
|
|
124
|
+
|
|
125
|
+
The conversational cards follow the V17 exploration → preview → funding → fresh review flow. Saved previews remain refreshable for 90 days (latest 100 plans). Editing creates a new immutable plan, requires 3–6 unique traders and limits each capital weight to 55%; actual gross exposure is checked separately before execution. Native MCP Apps use `tools/call`; hosts without cards use the same Skill and CLI contracts.
|
|
126
|
+
|
|
127
|
+
Performance reports use immutable accounting snapshots, preserve closed/replaced copies and exclude external flows. Recording starts on deployment; absent historical periods are unavailable. Copy diagnosis displays source and attributed follower fills in the same window, execution decisions, event-time parameters and fees/funding. It does not fabricate trade pairing or counterfactual profit. Prediction source fill history currently remains unavailable; verified follower accounting still appears.
|
|
128
|
+
|
|
129
|
+
Daily reports are opt-in Ride App pushes with a local time and IANA timezone. The persistent server monitor queues one report per local day and retries delivery. Missing push credentials or registered devices are reported as unavailable. Turning off a digest cancels its queued pushes; risk alerts remain enabled.
|
|
130
|
+
|
|
131
|
+
## Architecture and self-hosting
|
|
132
|
+
|
|
133
|
+
```mermaid
|
|
134
|
+
flowchart LR
|
|
135
|
+
A[Agent / CLI / Skill] --> B[OAuth MCP gateway]
|
|
136
|
+
B --> C[Agent service + PostgreSQL monitor]
|
|
137
|
+
D[Ride human confirmation] --> C
|
|
138
|
+
C --> E[Private execution bridge]
|
|
139
|
+
E --> F[Ride Core ownership and revision checks]
|
|
140
|
+
F --> G[Workers sign and execute]
|
|
141
|
+
G --> H[Venue fills and settlement]
|
|
142
|
+
H --> E
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
The public gateway runs `npm start`; the durable control service runs `npm run start:backend`; the private execution bridge runs `npm run start:bridge`. Each is a separate process. `PORT` defaults are 3333/3344/3355 and `HOST` defaults to loopback. Protect the bridge and Core with distinct service credentials and private ingress. The bridge requires the additive Ride Core V3 API/migrations/worker changes; this repository does not contain the private Ride Core or native App.
|
|
146
|
+
|
|
147
|
+
See [deployment and configuration](docs/deployment.md) and [.env.example](.env.example). Keep secrets outside Git. Start with execution flags disabled. `RIDE_PUBLIC_SUBMISSION_MODE=true` exposes eleven read-only Agent/workflow tools and the App account read for directory submissions.
|
|
148
|
+
|
|
149
|
+
## Development
|
|
150
|
+
|
|
151
|
+
```sh
|
|
152
|
+
npm ci
|
|
153
|
+
npm run check
|
|
154
|
+
npm test
|
|
155
|
+
npm run build
|
|
156
|
+
npm pack --dry-run
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Run the real PostgreSQL durability test with `RIDE_AGENT_TEST_DATABASE_URL` pointing to an isolated disposable database. Offline tests do not place real venue orders. GitHub CI checks schemas, permissions, accounting, OAuth, packaging and durable transactions.
|
|
160
|
+
|
|
161
|
+
To test the actual feature journey locally, use an isolated disposable PostgreSQL database:
|
|
162
|
+
|
|
163
|
+
```sh
|
|
164
|
+
RIDE_AGENT_FUNCTIONAL_DATABASE_URL='postgresql://USER@127.0.0.1:5432/ride_functional_acceptance' npm run test:functional
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
This starts the real MCP gateway, HTTP backend, OAuth PKCE flow and CLI, and runs 45 scenarios through the Agent tools, live guide and account reads with persisted PostgreSQL state. It covers recommendation risk filters, frozen human proposals, partial fills, fees/funding, position closes, wind-down, delegated limits, both loss triggers, replacement limits, stale proposals and monitor recovery. Only Core identities and venue reads/fills are simulated; this does not verify a real login, wallet signing or exchange settlement. The script removes its own fixture states and writes `output/deployment/functional-acceptance.json` with every scenario and tool response.
|
|
168
|
+
|
|
169
|
+
MIT. The open repository is created from a clean history and contains no private Ride repository history, credentials, or user account data.
|
|
170
|
+
|
|
171
|
+
Conversational features include single or 2–8 trader previews, fixed/proportional copying, separate risk preferences, saved recommendation batches, overlap review, deposit addresses/QR and status, daily check-ins and net-profit/account-value charts. Existing portfolios preserve their original limits and stop rules. See [V17 behavior and acceptance](docs/conversational-v17.md). Perps wallet receipt and venue funding remain distinct; RWA requires verified USDC collateral in Standard account scopes.
|
|
172
|
+
|
|
173
|
+
Recommendation onboarding now returns missing preference questions and persists partial answers before fetching candidates. Perps funding continues from the owned receiving wallet through browser confirmation, optional Embedded Wallet signature, trading-account activation and verified trading balance. Prediction status verifies trading collateral separately from bridge completion. Old App routes and deployments remain independent.
|
|
174
|
+
|
|
175
|
+
Widget/account repairs in 0.4.3 default asset preferences to unrestricted Crypto/RWA, keep candidates visible without a plan, and explain feasible trader counts without changing risk settings. `get_portfolio` separates per-market balances from copy allocations; missing modules remain unavailable. See [behavior, coverage and acceptance](docs/widget-account-v043.md).
|