Skip to content

Feat/open file viewer - #721

Open
mrytsr wants to merge 40 commits into
xintaofei:mainfrom
mrytsr:feat/open-file-viewer
Open

Feat/open file viewer#721
mrytsr wants to merge 40 commits into
xintaofei:mainfrom
mrytsr:feat/open-file-viewer

Conversation

@mrytsr

@mrytsr mrytsr commented Sep 11, 2026

Copy link
Copy Markdown

使得文件浏览器支持大部分格式的预览

mrytsr and others added 30 commits September 6, 2026 10:31
Project a resolved conversation model selection into an agent process at
spawn via env-only injection (Claude Code, Gemini, Grok, DeepSeek,
CodeBuddy, Kimi Code completions) or an empty per-conversation session
workspace (Codex, Pi, OpenCode, Cline, Hermes, Kimi Code other API
families). Never writes the user's real config files: workspace configs
live under <data_dir>/model-provider/<agent>/<conversation>/ with 0600
secret files, are reused on resume, and are removed when the conversation
is deleted. The config fingerprint folds in the projected workspace so
content changes flag running sessions stale.
- Implement the four API-family network probes: list models from
  openai-completions / openai-responses / anthropic-messages /
  google-generative-ai endpoints with the family's auth convention
  (Bearer/x-api-key+version/x-goog-api-key), and a minimal chat test
  request that returns the model's reply. Verified against local mock
  HTTP servers so no live credentials are needed.
- Project a provider-level proxy into the session launch env
  (HTTP(S)_PROXY/ALL_PROXY in both casings) for every adapter.
- Add tests: builtin clone suffixing/dedup, concurrent locked writes
  never corrupt models.json, corrupt catalog fails launch loudly, and
  proxy projection semantics.
…er-compatible-mode

# Conflicts:
#	src-tauri/src/acp/antigravity_login.rs
#	src-tauri/src/acp/delegation/listener.rs
#	src-tauri/src/commands/backup/core.rs
#	src-tauri/src/commands/backup/external.rs
#	src-tauri/src/commands/backup/restore.rs
#	src-tauri/src/db/migration/mod.rs
#	src-tauri/src/db/service/work_task_service.rs
#	src-tauri/src/forge/deliver.rs
#	src-tauri/src/web/handlers/backup.rs
#	src-tauri/src/web/handlers/canvas.rs
#	src-tauri/tests/api_integration.rs
#	src/components/chat/message-input.test.tsx
#	src/contexts/workspace-context.tsx
#	src/i18n/messages/ar.json
#	src/i18n/messages/de.json
#	src/i18n/messages/en.json
#	src/i18n/messages/es.json
#	src/i18n/messages/fr.json
#	src/i18n/messages/ja.json
#	src/i18n/messages/ko.json
#	src/i18n/messages/pt.json
#	src/i18n/messages/zh-CN.json
#	src/i18n/messages/zh-TW.json
…ible-mode

# Conflicts:
#	src-tauri/src/acp/antigravity_login.rs
#	src-tauri/src/commands/model_provider_launch.rs
#	src-tauri/src/commands/session_info.rs
#	src-tauri/src/db/migration/mod.rs
#	src-tauri/src/db/service/work_task_service.rs
#	src-tauri/src/web/handlers/canvas.rs
#	src-tauri/src/work_task/engine.rs
#	src-tauri/tests/api_integration.rs
#	src/components/chat/message-input.test.tsx
#	src/components/chat/model-provider-picker.test.tsx
#	src/components/chat/model-provider-picker.tsx
#	src/components/conversations/conversation-detail-panel.tsx
#	src/contexts/workspace-context.tsx
#	src/i18n/messages/ar.json
#	src/i18n/messages/de.json
#	src/i18n/messages/en.json
#	src/i18n/messages/es.json
#	src/i18n/messages/fr.json
#	src/i18n/messages/ja.json
#	src/i18n/messages/ko.json
#	src/i18n/messages/pt.json
#	src/i18n/messages/zh-CN.json
#	src/i18n/messages/zh-TW.json
#	src/lib/apply-conversation-model-selection.test.ts
#	src/lib/apply-conversation-model-selection.ts
#	src/stores/model-provider-selection-store.test.ts
#	src/stores/model-provider-selection-store.ts
Restore the boolean-returning closeAllFileTabs and the useBrowserBackWindow
integration (import + call) that the provider-compatible-mode merge left as
unresolved conflict markers, breaking compilation. File now matches mine.
…ndow

- kimi_code: read wire.jsonl tail for turn failure evidence so empty
  turns report WHY the model call failed (provider 400s never cross ACP)
- model_provider_launch: lower KIMI_DEFAULT_MAX_CONTEXT_SIZE 256K->128K;
  kimi derives max_completion_tokens from it and providers like ARK
  reject oversized values with a silent 400 (GLM requests failed)
- acp/connection + commands/acp: wire through launch/error handling
- model-provider-picker: picker label/test updates, i18n string sync
Short press on a command menu item keeps selecting it (unchanged); a
still hold of 500ms now runs it straight away and closes the menu, on
touch and mouse alike. The trailing click after a long press is
swallowed so Radix's select-on-click stays out of the way, and the
menu switches to controlled open so the run can dismiss it.
The mock factory spreads the call args back into the vi.fn, which
TS2556-rejects a zero-arg signature. Give the mock a rest signature so
tsc --noEmit passes again.
# Conflicts:
#	src-tauri/src/parsers/codex.rs
#	src-tauri/src/parsers/pi.rs
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