Skip to content

[BUG] Copy-Paste not properly implemented #6877

Description

@dan64

Before you start

  • I searched existing issues and this is not a duplicate. 我已搜索过现有 issue。

What happened? 发生了什么?

In Codewhale (Windows) copy/paste is not properly implemented.

If I "copy" several lines in clipboard and then I do a "paste" in Codewhale TUI, the lines are sent to LLM as separated prompts, while they should be managed as ONE prompt.
This feature is managed properly in other harness (see example below).

Image

If I "paste" in Codewhale 24 lines they will be treated by the LLM as 24 consecutive prompts and will try to answer to each of them: a real nightmare. I don't know if this problem is related to Windows or nobody is using copy/paste in Codewhale but this issue is really annoying.

Steps to reproduce 复现步骤

  1. Open Codewhale 0.10.1 TUI in Windows Terminal
  2. Copy 24 lines of text (CR/LF separated) in clipboard
  3. Paste the 24 lines from the clipboard to Codewhale TUI

Codewhale version 版本

codewhale 0.10.0

Where did it happen? 在哪里出现?

TUI (terminal interface)

Operating system 操作系统

Windows

How did you get Codewhale? 获取方式

npm

Provider and model 提供商和模型

No response

Terminal and shell 终端

Windows Terminal + Power shell

codewhale doctor (optional)

Version Information:
  codewhale-tui: 0.10.0 (1be1a703b975)
  rust: unknown

Updates:
  · current: v0.10.0
  · latest: unknown (not checked; offline default)
    Run `codewhale doctor --check-updates` to opt in.

Configuration:
  ✓ config.toml found at ~\.codewhale\config.toml
  ! credential-shaped value(s) in config.toml (api_key): move them to the secret backend, then scrub the file — config.toml is plain text
  workspace: C:\AiProjects
  search_provider: firecrawl (source: default; set [search] provider = "baidu" | "metaso" | "volcengine" for China)

Resolved User Paths (read-only):
  · home: ~\.codewhale
  · config: ~\.codewhale\config.toml
  · settings: ~\.codewhale\settings.toml
  · sessions: ~\.codewhale\sessions
  · logs: ~\.deepseek\logs
  · automations: ~\.deepseek\automations
  · task_manager_root: ~\.codewhale\tasks
  · task_manager_tasks: ~\.codewhale\tasks\tasks
  · task_manager_artifacts: ~\.codewhale\tasks\artifacts
  · runtime_store: ~\.codewhale\tasks\runtime
  · runtime_events: ~\.codewhale\tasks\runtime\events
  · personal_fleet_definitions: ~\.codewhale\fleets
  · personal_fleet_agents: ~\.codewhale\agents
  · secrets: ~\.codewhale\secrets\secrets.json

Secret Backend (structural only):
  · backend: file
  · presence: present (metadata_only)
  · path: C:\Users\Danil\.codewhale\secrets\secrets.json
  · legacy_path: C:\Users\Danil\.deepseek\secrets\secrets.json (present, metadata_only)
  · No credential-store values were read or printed by this check.

State Root:
  active: ~\.codewhale
  dual roots: ~\.codewhale (primary) + ~\.deepseek (legacy)
  ! legacy state needs review:
    ! ~\.deepseek\tasks exists alongside primary ~\.codewhale\tasks; legacy data may still need review
    ! ~\.deepseek\skills exists alongside primary ~\.codewhale\skills; legacy data may still need review
    ! ~\.deepseek\config.toml exists alongside primary ~\.codewhale\config.toml; legacy data may still need review
    ! ~\.deepseek\mcp.json exists but ~\.codewhale\mcp.json is missing
    Start Codewhale once to trigger safe migration where available, then rerun `codewhale doctor`.
  ✓ legacy sessions: all 8 filename(s) have regular-file counterparts under ~\.codewhale\sessions; descriptor contents were not compared and legacy originals remain preserved
    Doctor inspected filenames and filesystem metadata only; it did not read chat contents, traverse checkpoints, or modify session files.

Setup State:
  · source: persisted
  · credential: source=config_declared, availability=present
  ✓ first-run: ready
  ✓ update checkpoint 0.9.4: ready
  ! operate/fleet: needs action
  · constitution autonomy: unspecified (guidance only)
  · runtime posture: default_mode=agent (settings), permission_posture=full-access (settings), approval_policy=on-request (default), allow_shell=true (interactive default), sandbox=mode-derived (default), network.default=prompt (default), telemetry=on (env), trust=workspace not elevated
  · control socket: control_socket=off (default)
  · next actions: /constitution (standing law), /setup report (readiness), /setup provider or /provider setup <name> (provider credentials), /model (route), /config (runtime posture), /setup fleet (Operate/Fleet readiness), /fleet setup (explicit profile authoring), /setup hotbar (optional shortcuts), /setup tools (Tools/MCP readiness), /setup remote (remote runtime on-ramp), /setup persistence (path review)
    · language: verified (required, inherited, no result)
    · provider_model: verified (required, 0.9.4, provider=deepseek, model=deepseek-flash, context_window=1000000 (catalog) auth=key saved · not checked, health=attemptable)
    · trust_sandbox: verified (required, inherited, no result)
    · constitution: verified (required, 0.9.4, checkpoint deferred; bundled applies)
    · operate_fleet: not_started (optional, unversioned, no result)
    · hotbar: not_started (optional, unversioned, no result)
    · tools_mcp: not_started (optional, unversioned, no result)
    · remote_runtime: not_started (optional, unversioned, no result)
    · persistence: not_started (optional, unversioned, no result)
    · verification: needs_action (optional, 0.8.67, first_run=needs_action, update=needs_action, operate=needs_action, constitution=Unset, autonomy=unspecified or bundled/default, posture=Inherited, runtime=intent=operate, approval=ask, shell=enabled, trust=workspace, sandbox=default, network=prompt by default, operate_fleet=provider=ready, runtime=ready, roster=ready, concurrency=configured launch_concurrency=64; max_subagents=64; admission=1024; plan limit not probed)

Fleet roster layers:
  · no profile id is defined in more than one layer

API Keys:
  · deepseek: env_source=not inspected, config_source=declared (value not inspected)
  · deepseek-anthropic: env_source=not inspected, config_source=not declared
  · nvidia-nim: env_source=not inspected, config_source=not declared
  · openai: env_source=not inspected, config_source=not declared
  · atlascloud: env_source=not inspected, config_source=not declared
  · wanjie-ark: env_source=not inspected, config_source=not declared
  · volcengine: env_source=not inspected, config_source=not declared
  · openrouter: env_source=not inspected, config_source=declared (value not inspected)
  · orcarouter: env_source=not inspected, config_source=not declared
  · xiaomi-mimo: env_source=not inspected, config_source=not declared
  · novita: env_source=not inspected, config_source=not declared
  · fireworks: env_source=not inspected, config_source=not declared
  · siliconflow: env_source=not inspected, config_source=not declared
  · arcee: env_source=not inspected, config_source=not declared
  · siliconflow-CN: env_source=not inspected, config_source=not declared
  · moonshot: env_source=not inspected, config_source=not declared
  · sglang: env_source=not inspected, config_source=not declared
  · vllm: env_source=not inspected, config_source=not declared
  · ollama: env_source=not inspected, config_source=not declared
  · ollama-cloud: env_source=not inspected, config_source=not declared
  · huggingface: env_source=not inspected, config_source=not declared
  · together: env_source=not inspected, config_source=not declared
  · qianfan: env_source=not inspected, config_source=not declared
  · openai-codex: env_source=not inspected, config_source=not declared
  · anthropic: env_source=not inspected, config_source=not declared
  · openmodel: env_source=not inspected, config_source=not declared
  · zai: env_source=not inspected, config_source=not declared
  · stepfun: env_source=not inspected, config_source=not declared
  · minimax: env_source=not inspected, config_source=not declared
  · minimax-anthropic: env_source=not inspected, config_source=not declared
  · deepinfra: env_source=not inspected, config_source=not declared
  · sakana: env_source=not inspected, config_source=not declared
  · longcat: env_source=not inspected, config_source=not declared
  · opencode-go: env_source=not inspected, config_source=not declared
  · opencode-zen: env_source=not inspected, config_source=not declared
  · meta: env_source=not inspected, config_source=not declared
  · xai: env_source=not inspected, config_source=not declared
  · mistral: env_source=not inspected, config_source=not declared
  · telecomjs: env_source=not inspected, config_source=not declared
  · modelstudio-token-plan: env_source=not inspected, config_source=not declared
  · modelstudio-token-plan-anthropic: env_source=not inspected, config_source=not declared
  · modelstudio-coding-plan: env_source=not inspected, config_source=not declared
  · modelstudio-coding-plan-anthropic: env_source=not inspected, config_source=not declared
  · modelscope: env_source=not inspected, config_source=not declared
  · google: env_source=not inspected, config_source=not declared
  · edenai: env_source=not inspected, config_source=not declared
  · zenmux: env_source=not inspected, config_source=not declared
  · csdn: env_source=not inspected, config_source=not declared
  · concentrate: env_source=not inspected, config_source=not declared
  · codewhale: env_source=not inspected, config_source=not declared
  · custom: env_source=not inspected, config_source=not declared
  · credential precedence is unchanged; doctor does not inspect credential values

External credential consent (configuration only):
  openai-codex: access=disabled, provider=openai-codex, source=codex_cli, owner=Codex CLI, path="C:\\Users\\Danil\\.codex\\auth.json", version=1, state=dormant, ambient_path_changed=false
    semantics: disabled; no external-credential probing, reading, refresh, discovery, identity-provider or network acquisition, writes, or rewrites; normal requests to the explicitly selected provider may use Codewhale-owned credentials
    revoke: codewhale auth external-revoke --provider openai-codex
  xai: access=disabled, provider=xai, source=grok_cli, owner=Grok CLI, path="C:\\Users\\Danil\\.grok\\auth.json", version=1, state=dormant, ambient_path_changed=false
    semantics: disabled; no external-credential probing, reading, refresh, discovery, identity-provider or network acquisition, writes, or rewrites; normal requests to the explicitly selected provider may use Codewhale-owned credentials
    revoke: codewhale auth external-revoke --provider xai
  deepseek: access=disabled, provider=deepseek, source=dsh_cli, owner=DeepSeek Harness, path="C:\\Users\\Danil\\.dsh\\.credentials.yaml", version=1, state=dormant, ambient_path_changed=false
    semantics: disabled; no external-credential probing, reading, refresh, discovery, identity-provider or network acquisition, writes, or rewrites; normal requests to the explicitly selected provider may use Codewhale-owned credentials
    revoke: codewhale auth external-revoke --provider deepseek

DeepSeek Harness integration (read-only detection):
  state: not-installed
  not installed — `dsh` not on PATH; connect later with `codewhale integrations dsh connect`
  owned files: ~\.codewhale\integrations\dsh (overlay absent)
  · active provider credential source: literal config value structurally present
  · active provider credential availability: present

API Connectivity:
  · scope: configured route — what a session launched now would use; a running session keeps the route it resolved at launch (its TUI header shows the live route)
  · provider: deepseek
  · base_url: https://api.deepseek.com
  · model: deepseek-flash (resolved)
  · strict_tool_mode: disabled
  · Live hosted connectivity not checked (offline default)
    Run `codewhale doctor --probe-api` to opt in.

Search Provider Reachability:
  · not checked (offline default)
  Run `codewhale doctor --probe-search` to test the selected provider authority.

MCP Servers (configuration only):
  · Static check only; no server process was started.
  ✓ MCP feature flag enabled
  ✓ MCP config found at ~\.deepseek\mcp.json
  · Project MCP config not found at \\?\C:\AiProjects\.codewhale\mcp.json
  · 1 merged server(s) configured
  ! example: configuration warning; stdio server uses a relative path argument without cwd; argument values omitted
      disabled; live health not checked
    Use codewhale doctor --probe-mcp to opt in to live process/protocol checks; it may start configured servers.

Skills:
  · local skills dir not found at C:\AiProjects\skills
  · .agents skills dir not found at C:\AiProjects\.agents\skills
  · global .agents skills dir not found at ~\.agents\skills
  ✓ global skills dir found at ~\.codewhale\skills (52 items)
  · selected skills dir: ~\.codewhale\skills

Tools:
  ✓ tools dir found at ~\.codewhale\tools (2 items)

Plugins:
  ✓ plugins dir found at ~\.codewhale\plugins (2 items)

Storage:
  ✓ tool-output spillover at ~\.deepseek\tool_outputs (0 files)
  · composer stash empty (Ctrl+G or Ctrl+S in the composer to park a draft)

Tool Dependencies:
  ✓ Python: python3 → code_execution tool registered
  ✓ Node.js: present → js_execution tool registered
  · pandoc: not found (optional)
    pandoc_convert tool is NOT advertised to the model. Install pandoc to enable:
      winget install JohnMacFarlane.Pandoc
  · tesseract: not found (optional)
    image_ocr tool is NOT advertised to the model. Install tesseract to enable:
      winget install UB-Mannheim.TesseractOCR
  · pdftotext: not found (optional; PDF text reads fail as `binary_unavailable`)
    Install Poppler for Windows from https://blog.alivate.com.au/poppler-windows/

Terminal Quirks:
  · no env-driven terminal-quirk overrides active

Platform:
  OS: windows
  Arch: x86_64
  ! sandbox not available (commands run best-effort)

Logs, screenshots, anything else (optional)

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingreliabilityReliability, flaky behavior, retries, fallbacks, and robustnesstuiTerminal UI behavior, rendering, or interactionwindowsWindows-specific behaviour

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions