code-yeongyu / code-yeongyu/senpi

herdr 0.9.0: short regular-mode frames cannot calibrate private cursor queries

Open
#1,688 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
429
Forks
98
Avg merge
5h 3m
Merged PRs (30d)
526

Description

## Summary
A fresh short regular-mode question block in herdr 0.9.0 remains intentionally unclickable because its frame anchor cannot be calibrated. Viewport-filled frames do accept the same outer-client SGR click and resolve the question.

## Reproduction
Start an isolated named herdr session at 120x40, run senpi with the ask-user fixture, and submit `/askq wait=false n=1`. The pane writes private `ESC[?6n`; no private cursor reply reaches its stdin. The visible option received outer-client bytes `ESC[<0;27;25M` then `ESC[<0;27;25m`, but no answer occurred. Keyboard input remained usable and agent state was blocked.

## Working path
After filling the pane with transcript history, outer-client bytes `ESC[<0;27;34M` then `ESC[<0;27;34m` answered PostgreSQL, produced the answer chip, and changed agent state from blocked to working or idle. Alt+up, alt+down, digits and /answer skip pass through.

## Expected
Private pane-relative cursor calibration should permit safe clicks in fresh short frames too. Preserve fail-closed dispatch; do not substitute bare CPR, which collides with modified function-key input.

## Evidence
Real named-session PTY captures include before/after grids, PNGs, protocol receipts and server/process teardown. Private-query receipt: `{"event":"private-query","bytes":"\u001b[?6n"}`; zero matching private-input receipts. Both the short-frame limitation and viewport success are documented in the TUI guide.

Refs #1645

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the issue in an isolated named herdr session at 120x40 with senpi's ask-user fixture and `/askq wait=false n=1`, capturing the private cursor query and input receipts. Trace private pane-relative cursor calibration for short frames while preserving fail-closed dispatch and avoiding bare CPR; done means safe clicks answer the question in fresh short frames without breaking keyboard input or the existing viewport-filled behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.