Skip to content

Fix org embed, model-picker 模型管理, and local openXYOS login - #38

Merged
XYAIStudio merged 2 commits into
mainfrom
cursor/org-embed-model-login-a46a
Sep 17, 2026
Merged

XYAIStudio merged 2 commits into
mainfrom
cursor/org-embed-model-login-a46a

Conversation

@XYAIStudio

@XYAIStudio XYAIStudio commented Sep 17, 2026 •

Copy link
Copy Markdown
Owner

Three FreeOS product fixes for a non-IT first-run desktop: conversation model jump, Organization IA, embedded openXYOS login, plus Personalization chip layout.

1. Chat model picker → 模型管理

  • Footer item 模型管理 / Model management in the conversation model selector.
  • Navigates to /models (same route as sidebar「模型」).
  • Picker stays available even when no models are configured so the user can still reach Models.

2. Organization page IA + embed modals

  • Opening 组织 now defaults to the local openXYOS embed (http://127.0.0.1:3780) filling the preview pane.
  • Slim top blue #0033FF status bar; lower-right buttons:
    • 启用组织模块 → enable switch + capability catalog
    • 组织OS管理 → import/export, produce, loop timeline, diagnostics, source download
  • No primary「启动边车」CTA (silent start unchanged).
  • Sidebar copy stays 组织 (not 组织OS).

Modal centering (what changed)

The old two-column layout stretched the iframe to the tall left chrome. position:fixed inside the iframe is relative to the iframe element box, so dialogs were vertically centered in a 2000px+ iframe and sat off-screen in FreeOS.

  • FreeOS: iframe height is now the remaining visible pane (flex: 1; min-height: 0), not the leftover document.
  • openXYOS: html.ox-embedded when window !== top; .ox-overlay / .ox-dialog use place-items: center, max-height: min(90dvh, calc(100% - 24px)), and overflow scroll. Tailwind fixed inset-0 layers in embed also flex-center.

3. openXYOS login 500

Root cause: login POST from the page at :3780 sends Origin: http://127.0.0.1:3780. Sidecar CORS only listed dashboard ports, cors() threw, and the global handler returned 「服务器内部错误,请稍后重试或联系管理员」.

  • Merge sidecar self-origin (127.0.0.1 / localhost / [::1]:PORT) into launch CORS (Python + start-sidecar.ps1).
  • CORS reject no longer throws (no opaque 500).
  • Same-host Origin is allowed (iframe + Host match).
  • When SEED_DEMO_DATA is off, seed local first-login accounts (demo@demo.com / user@demo.com / openxyos-demo-2026, matching the login UI).
  • Login 500 now returns a recoverable message + traceId; last_login update is best-effort on legacy DBs.

4. Personalization capability chips

  • Entry chips (技能 / 通道 / 连接器/MCP / … / 智能体配置) sit in exactly two rows directly below the page title.
  • Strip uses the system layout background (--fn-bg-layout), not a detached gray card.
  • The subtitle/description line under the title is removed.
  • Workbench / Remote Desktop keep the existing title-row tabs. Organization has no equivalent chip strip.

Verify

  • npx vitest run src/layouts/PageShell.test.tsx — pass (title-row wrap + two-row flush strip)
  • npx tsc --noEmit in dashboard — pass
  • npx vitest run on ChatInputActionsRow, Organization page, sidebarNav — pass (prior commit)
  • uv run pytest tests/unit/test_sidecar_launch.py tests/unit/desktop/test_openxyos_provisioner.py — pass (prior commit)
  • npx tsx scripts/test-cors-origins.ts — pass (prior commit)

CI should run the full ship bar on this PR.

Open in Web Open in Cursor 

cursoragent and others added 2 commits September 17, 2026 04:17
Conversation model picker now has 模型管理 pointing at /models. Organization
defaults to a full-height local embed with a slim blue bar; enable/module
toggles and loop/import extras move into drawers. Sidecar CORS includes its
own origin so iframe login no longer 500s, and first-run local demo accounts
are seeded when demo data is off.

Co-authored-by: XYAI Labs <haoboy8@gmail.com>
Move capability path tabs below the page title on the layout background, drop the subtitle, and keep Workbench title-row tabs unchanged.

Co-authored-by: XYAI Labs <haoboy8@gmail.com>
@XYAIStudio
XYAIStudio marked this pull request as ready for review September 17, 2026 04:22
@XYAIStudio
XYAIStudio merged commit fe0282b into main Sep 17, 2026
12 checks passed
@XYAIStudio
XYAIStudio deleted the cursor/org-embed-model-login-a46a branch September 17, 2026 04:47
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.

2 participants