Skip to content

feat(desktop): add Upstage provider + workspace/session fixes - #37

Open
hunkim wants to merge 3 commits into
ShinMegamiBoson:mainfrom
hunkim:add-upstage-provider-desktop
Open

feat(desktop): add Upstage provider + workspace/session fixes#37
hunkim wants to merge 3 commits into
ShinMegamiBoson:mainfrom
hunkim:add-upstage-provider-desktop

Conversation

@hunkim

@hunkim hunkim commented Jul 24, 2026

Copy link
Copy Markdown

Desktop-side follow-up to #36: brings the same Upstage provider to the Tauri app.

  • op-core: upstage_api_key / upstage_base_url in config, credentials, and settings; provider inference for solar* model names; default model solar-pro3
  • Sidebar credential status now lists Upstage, and the model picker offers solar-pro3 / solar-pro2 / solar-mini
  • Tested live against solar-open2

Two fixes are included because the app doesn't actually work with Upstage (or at all, when launched from Finder) without them:

  1. Tool schemas without strict — Upstage's chat endpoint rejects function.strict: true with HTTP 400, so tool defs for the upstage provider are built without the flag (same treatment as the CLI in feat: add Upstage provider to CLI agent #36).
  2. Writable default workspace — GUI apps launch with cwd=/, so the workspace resolved to the read-only filesystem root, session creation failed silently, and the frontend then called solve with a null sessionId. The default workspace is now ~/OpenPlanter (overridable via OPENPLANTER_WORKSPACE), and session-creation failures are shown in the chat instead of proceeding with a null session.

cargo test -p op-core -p op-tauri → 287 passed. Frontend vitest → 201 passed, tsc clean. Built and ran the .app locally with a real investigation session.

hunkim added 3 commits July 23, 2026 20:31
Companion to the CLI change: same provider in op-core config/
credentials/settings/builder, sidebar credential status, model
picker (solar-pro3/pro2/mini), and frontend model-name inference.

cargo test not run locally (no rust toolchain on this machine);
frontend vitest 201/201 passing.
Upstage's chat endpoint rejects function.strict=true, so tool defs
for the upstage provider are now built without the strict flag
(same treatment as the CLI fix). cargo test not run locally (no
rust toolchain); logic mirrors the Python side verified live.
GUI apps launch with cwd=/, so the workspace resolved to the
read-only filesystem root and open_session failed silently — the
frontend then called solve with a null sessionId.

- state: default workspace is ~/OpenPlanter (OPENPLANTER_WORKSPACE
  env var overrides)
- InputBar: if session creation fails, show the error in chat and
  abort instead of submitting with a null session
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