TUI: text selection — mouse-drag highlight in panes + auto-copy to clipboard #2532

Closed
opened 2026-10-21 20:50:29 +01:00 by conductor · 4 comments
Owner

In plain English:

Owner report 2026-10-21. Mouse-drag selection does not work in the panes at all (nothing highlights), and there is no auto-copy-to-clipboard after a drag (parity with [MIMO]'s behaviour: drag-select then release copies). Likely factors: the pane mouse regions intercept/consume drag events; alt-screen capture vs terminal-native selection; OSC 52 clipboard escape for copy (tmux/Konsole pass it byte-intact — same law as the OSC 8 direct-emit). Needs: per-pane drag-selection with visible highlight, release copies via OSC 52 with capability detect, degrade honestly. TUI surface; coordinate with the presentation wave (same pane family).

What is this about:

Why do we need it: <the itch — what happens today that shouldn't, or what becomes possible>

Why is it still open: <"not started yet" | "part done, X remains" | "deliberately parked as a future idea">

Example

What would let us close this

  • <condition 1 — observable>
  • <condition 2>

Version impact (declared at submission — verified at merge)

  • major — breaking: changes a contract, schema, or interface others depend on
  • minor — new capability: something becomes possible that wasn't
  • patch — repair: same behaviour, done correctly
  • none — touches no released artifact (docs, memory, process notes)

Technical details

WHAT:
WHY:
FILES:
ACCEPTANCE:
DEPENDENCIES:

Pipeline requirements

  • TDD: frozen tests written first, red → green (N passed)
  • ruff check and ruff format --check clean
  • Spec-compliance review gate: PASS
  • Code-quality review gate: Approved
  • Full orchestration suite regression green (suite total)
  • Canary passes (name)
  • Closed with a properly formatted closing comment + commit/PR references

Cognitive invariants (memory/cognition issues — both handoffs)

  • Owner — which existing subsystem owns this (audit before creating modules)
  • Trigger — what event activates it
  • Read/write authority — which canonical state it reads/changes
  • Provenance — derived state traceable to evidence
  • Verification — how we know the change helped
  • Failure visibility — how failure surfaces
  • Reversibility — bad learned state can be superseded/replayed/rolled back
  • Dormant cost — what it costs when irrelevant
  • Benchmark + ablation — what measurable behaviour improves; what happens when disabled
  • No duplicate authority — why extend vs create

Hard invariants: derived cognition preserves evidentiary ancestry · epistemic confidence ≠ attentional utility ≠ current applicability · retrieval never increases utility · self-model-induced behaviour is not independent evidence · historical truth survives present-state change · raw evidence is never destroyed by promotion.

Related umbrella

  • Memory
  • Governance
  • Identity
  • Growth
  • Perception
  • Infrastructure
  • Life (Nick's)
  • Custodian
  • Orchestration

Priority (REQUIRED — the priority gate)

  • P0 — critical — breaks the spine / core correctness, or blocks other work
  • P1 — high — material user value or a real defect (money, correctness bugs, next-stage dependency)
  • P2 — medium — quality/consolidation improvement (check the fold-into mapping first)
  • P3 — low — measurement / benchmark / deferred policy
## In plain English: <restate the issue title here in everyday words> <!-- The heading ITSELF must carry the summary — a scan of issue headings alone should tell the whole story of the board. TOP PRIORITY: if a technical detail below contradicts this section, the issue is buggy — fix the issue. A non-technical reader must be able to retell this section. 3-6 sentences, no jargon. --> Owner report 2026-10-21. Mouse-drag selection does not work in the panes at all (nothing highlights), and there is no auto-copy-to-clipboard after a drag (parity with [MIMO]'s behaviour: drag-select then release copies). Likely factors: the pane mouse regions intercept/consume drag events; alt-screen capture vs terminal-native selection; OSC 52 clipboard escape for copy (tmux/Konsole pass it byte-intact — same law as the OSC 8 direct-emit). Needs: per-pane drag-selection with visible highlight, release copies via OSC 52 with capability detect, degrade honestly. TUI surface; coordinate with the presentation wave (same pane family). What is this about: <what> Why do we need it: <the itch — what happens today that shouldn't, or what becomes possible> Why is it still open: <"not started yet" | "part done, X remains" | "deliberately parked as a future idea"> ## Example <!-- A concrete before/after in plain terms: "If X happens, the system will Y instead of Z." --> ## What would let us close this <!-- Checkable statements, verifiable by looking at something that EXISTS — a file, a log line, a passing test. Not "when appropriate". --> - [ ] <condition 1 — observable> - [ ] <condition 2> ## Version impact (declared at submission — verified at merge) <!-- The pipeline derives the real bump from merged conventional commits and compares against this declaration. A mismatch is flagged, not fatal: either the declaration was wrong or the work grew. Both facts matter. --> - [ ] major — breaking: changes a contract, schema, or interface others depend on - [ ] minor — new capability: something becomes possible that wasn't - [ ] patch — repair: same behaviour, done correctly - [ ] none — touches no released artifact (docs, memory, process notes) ## Technical details <!-- WHAT — one-line objective. WHY — design-spec reference (S#) or reason. FILES — affected components. ACCEPTANCE — frozen-test file + test count + canary name. DEPENDENCIES — parent epic + preceding stage/plan refs. --> **WHAT:** **WHY:** **FILES:** **ACCEPTANCE:** **DEPENDENCIES:** ## Pipeline requirements <!-- Every stage must clear these before the issue closes. --> - [ ] TDD: frozen tests written first, red → green (N passed) - [ ] `ruff check` and `ruff format --check` clean - [ ] Spec-compliance review gate: PASS - [ ] Code-quality review gate: Approved - [ ] Full orchestration suite regression green (suite total) - [ ] Canary passes (name) - [ ] Closed with a properly formatted closing comment + commit/PR references ## Cognitive invariants (memory/cognition issues — both handoffs) <!-- Complete ONLY if this issue touches memory, learning, or self-model state. --> - [ ] **Owner** — which existing subsystem owns this (audit before creating modules) - [ ] **Trigger** — what event activates it - [ ] **Read/write authority** — which canonical state it reads/changes - [ ] **Provenance** — derived state traceable to evidence - [ ] **Verification** — how we know the change helped - [ ] **Failure visibility** — how failure surfaces - [ ] **Reversibility** — bad learned state can be superseded/replayed/rolled back - [ ] **Dormant cost** — what it costs when irrelevant - [ ] **Benchmark + ablation** — what measurable behaviour improves; what happens when disabled - [ ] **No duplicate authority** — why extend vs create Hard invariants: derived cognition preserves evidentiary ancestry · epistemic confidence ≠ attentional utility ≠ current applicability · retrieval never increases utility · self-model-induced behaviour is not independent evidence · historical truth survives present-state change · raw evidence is never destroyed by promotion. ## Related umbrella - [ ] Memory - [ ] Governance - [ ] Identity - [ ] Growth - [ ] Perception - [ ] Infrastructure - [ ] Life (Nick's) - [ ] Custodian - [ ] Orchestration ## Priority (REQUIRED — the priority gate) <!-- Pick exactly one. An issue without a priority is not filed. --> - [ ] **P0 — critical** — breaks the spine / core correctness, or blocks other work - [ ] **P1 — high** — material user value or a real defect (money, correctness bugs, next-stage dependency) - [ ] **P2 — medium** — quality/consolidation improvement (check the fold-into mapping first) - [ ] **P3 — low** — measurement / benchmark / deferred policy
conductor added the featureP2 — medium labels 2026-10-21 20:50:29 +01:00
Author
Owner

In flight on branch fix/2532-text-selection (worktree .worktrees/2532-text-selection, based on gitea/master fa88a4cf). Investigation and TDD fix underway: root-cause mouse-event flow, then per-pane drag-selection with visible highlight + OSC 52 auto-copy with capability detection and honest degrade.

In flight on branch `fix/2532-text-selection` (worktree `.worktrees/2532-text-selection`, based on gitea/master fa88a4cf). Investigation and TDD fix underway: root-cause mouse-event flow, then per-pane drag-selection with visible highlight + OSC 52 auto-copy with capability detection and honest degrade.
Author
Owner

Paused pending ultra-tier availability: the Kimi Max plan hit its usage limit mid-session (429 then 401s at 2026-10-24T18:29Z). Branch fix/2532-text-selection is parked clean on gitea/master fa88a4cf with no changes yet. Work resumes when the K3 quota resets; a probe loop will detect recovery and restart the TDD fix. Related harness gap filed: #2589 (model_groups fallback must engage on spawn-time provider errors).

Paused pending ultra-tier availability: the Kimi Max plan hit its usage limit mid-session (429 then 401s at 2026-10-24T18:29Z). Branch `fix/2532-text-selection` is parked clean on gitea/master fa88a4cf with no changes yet. Work resumes when the K3 quota resets; a probe loop will detect recovery and restart the TDD fix. Related harness gap filed: #2589 (model_groups fallback must engage on spawn-time provider errors).
Author
Owner

Resumed 2026-10-24T19:30Z by owner order: running on the standard tier (glm-5.3-flash) while K3's quota window is closed. Same worktree/branch, same scope. Note: this was originally selected as a K3-strength task; if the flash run's investigation quality proves insufficient, the branch can be re-run on K3 after quota recovery.

Resumed 2026-10-24T19:30Z by owner order: running on the standard tier (glm-5.3-flash) while K3's quota window is closed. Same worktree/branch, same scope. Note: this was originally selected as a K3-strength task; if the flash run's investigation quality proves insufficient, the branch can be re-run on K3 after quota recovery.
Author
Owner

Landed: D53 — mouse-drag highlight + OSC 52 direct auto-copy, capability-detected. Commit 1ea093ad.

Landed: D53 — mouse-drag highlight + OSC 52 direct auto-copy, capability-detected. Commit 1ea093ad.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: conductor/rune#2532