Skip to content

feat(cli): alice-uta — trading lands on the CLI surface (cron stays MCP-only)#320

Merged
luokerenx4 merged 1 commit into
masterfrom
feat/cli-uta-export
Jun 11, 2026
Merged

feat(cli): alice-uta — trading lands on the CLI surface (cron stays MCP-only)#320
luokerenx4 merged 1 commit into
masterfrom
feat/cli-uta-export

Conversation

@luokerenx4

Copy link
Copy Markdown
Contributor

Summary

  • New uta CLI export (alice-uta binary, byte-identical shim copy): trading reaches the CLI surface — account (list/info/portfolio), contract (search/details/quote), order (list/place/modify/cancel), position (close), git (status/log/show/commit/push/sync — the trading-as-git approval flow), market (clock), sim (price-change, MockBroker only).
  • cron deliberately stays MCP-only: the old "no uta export yet" structure test is replaced by a pin that no export may ever expose a cron tool.
  • Guidance sweep: openalice-cli skill gains a Trading section with explicit discipline (resolve the contract before any order; report every order result), chat instruction teaches the four-CLI split, chat template description/README and the create-form i18n strings drop the "CLI = data-only" framing.

Follow-up to #319 (the alice-uta commit missed that merge).

Test plan

  • npx tsc --noEmit clean
  • pnpm test — 113 files / 1823 tests pass on top of current master (incl. new uta anti-rot specs + cron-off-every-export pin)

Boundary touch

Trading. Broker mutations (placeOrder / modifyOrder / cancelOrder / closePosition) become reachable from every workspace shell in both CLI and MCP modes — per the director decision that agent trading is deliberate product surface, with trading-as-git as the approval flow. The bin dir is PATH-injected for all sessions, so there is no longer a workspace mode without trading capability.

🤖 Generated with Claude Code

…CP-only)

Boundary review passed (director decision, 2026-06-11): broker mutations
are deliberate product surface. New `uta` export over the global
ToolCenter's trading group:

  account  list / info / portfolio
  contract search / details / quote
  order    list / place / modify / cancel
  position close
  git      status / log / show / commit / push / sync   (trading-as-git)
  market   clock
  sim      price-change                                  (MockBroker only)

cron is deliberately NOT exported — a structure test now pins that
instead of the old 'no uta export yet' assertion. Shim copy added
(byte-identical, argv[0]-self-detecting) and registered in shim.spec.

Guidance sweep: openalice-cli skill gains the Trading section (resolve
contract before any order, report every result), chat instruction
teaches the four-CLI split, chat template description/README and the
create-form i18n strings drop the 'CLI = data-only' framing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
openalice-demo Ready Ready Preview, Comment Jun 11, 2026 9:11am

Request Review

@luokerenx4 luokerenx4 merged commit 0f80aa6 into master Jun 11, 2026
5 checks passed
@luokerenx4 luokerenx4 mentioned this pull request Jun 11, 2026
2 tasks
pull Bot pushed a commit to jinzaizhichi/OpenAlice that referenced this pull request Jun 12, 2026
Headless sessions become reopenable + the ~/.openalice data root + sealed
broker credentials + the UTA order lifecycle closes. release.yml tags
v0.42.0-beta.1 + publishes the prerelease on master push.

Highlights:
- Headless runs are now real sessions: all four agent CLIs' session ids are
  captured from headless stdout while running, full output logs persist on
  disk, and a finished run reopens as a normal interactive session
  (resume-by-id). UI: collapsed "headless · N" tier under each workspace +
  output viewer in the Automation panel (TraderAlice#326).
- User data moves to ~/.openalice (OPENALICE_HOME); broker credentials are
  sealed at rest (AES-256-GCM, machine-bound key, migration 0009); desktop
  relocates packaged data on first launch.
- UTA order lifecycle closed: auto-sync poller + fill data + PnL invariant
  (TraderAlice#325); externally-placed orders observed as squashed [observed] commits
  with configurable cadence (TraderAlice#327); Alpaca error bodies surfaced, bybit
  spot+swap order sweep, listing-driven sync perf (TraderAlice#328).
- CLI is the default workspace tool access; trading lands on the CLI surface
  as the alice-uta export family (TraderAlice#319, TraderAlice#320).
- Self-host hardening: configurable ports, MCP loopback bind + lock, Docker
  self-host image, Guardian owns the Vite dev port (TraderAlice#303TraderAlice#308, TraderAlice#322).
- Market data: status-first settings page with coverage map (TraderAlice#323), hub FX
  table, keyless yfinance fallbacks, long-tail fetcher fixes (TraderAlice#310TraderAlice#317).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant