Skip to content
Open
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
c816559
wta(tui): queue prompts while busy, Esc to dequeue LIFO
Copilot May 22, 2026
bc35e44
Address Copilot review: tab-scoped PaneContext + padded truncation
Copilot May 22, 2026
2e03757
Address Copilot review round 2
Copilot May 22, 2026
ee6e5b5
queued_hint: width-correct truncation with combining marks
Copilot May 22, 2026
7d4c7d9
Translate pending-queue strings to all locales
Copilot May 22, 2026
8561e41
Address Copilot review round 4 (doc/comment polish)
Copilot May 22, 2026
5c073a2
queued_hint: clamp left padding for very narrow panes
Copilot May 22, 2026
2f4ac63
queued_hint: single truncation pass + narrow-pane fix + drain early-out
Copilot May 22, 2026
777a293
Address Copilot review round 7
Copilot May 22, 2026
fd11aae
Address Copilot review round 8
Copilot May 22, 2026
9976141
Esc cancels in-flight turn (head of dispatch queue)
Copilot May 23, 2026
f984c8f
Esc: queue-pop takes priority over in-flight cancel
Copilot May 23, 2026
689ab47
Address Copilot review post-Esc-cancel
Copilot May 25, 2026
feb21df
Merge main into dev/yeelam/wta-input-queue
Copilot May 25, 2026
ba07958
Address post-merge Copilot review
Copilot May 25, 2026
1ccd674
Esc on recommendation card: use DEFAULT_TAB_ID fallback
Copilot May 25, 2026
e2917ce
Bound per-frame UI work + pin per-tab isolation contract
Copilot May 25, 2026
97c9e59
Test fixture: replace bcdef filler with digits to satisfy spell check
Copilot May 25, 2026
d94f754
Fix stale comment reference on COLLAPSED_PREVIEW_CAP
Copilot May 25, 2026
da68026
Merge remote-tracking branch 'origin/main' into dev/yeelam/wta-input-…
yeelam-gordon Jun 12, 2026
951fd5f
Test cross-tab drain routing and per-tab clear isolation for pending_…
yeelam-gordon Jun 12, 2026
68b80b5
Address Copilot review on PR #278
yeelam-gordon Jun 12, 2026
89268c3
Clear pending_prompts on cancel; guard drain against permission cards
yeelam-gordon Jun 12, 2026
551f36f
Address Copilot review on PR #278
yeelam-gordon Jun 12, 2026
7d2e7b3
Address Copilot review on PR #278
yeelam-gordon Jun 12, 2026
8094d58
Address Copilot review: guard queued_hint render against zero-width Rect
yeelam-gordon Jun 12, 2026
4c9038f
Address Copilot review: drop now-dead area.width==0 branch in budget …
yeelam-gordon Jun 12, 2026
14271d4
Address Copilot review: apply rtl::text_alignment to queued-hint row
yeelam-gordon Jun 12, 2026
ffa86ed
Queue Enter when a recommendation card is staged
yeelam-gordon Jun 12, 2026
86fbc47
Fix: Enter on visible card always executes the card, draft preserved
yeelam-gordon Jun 12, 2026
e2c1bcd
Fix: don't lock input editing while recommendation card is visible
yeelam-gordon Jun 12, 2026
6c998ed
Normalize conpty Backspace (Char('\u{7f}') / Char('\u{8}')) to KeyCod…
yeelam-gordon Jun 12, 2026
3eae095
Normalize CSI arrow-key sequences from conpty (Esc+[+letter -> KeyCod…
yeelam-gordon Jun 15, 2026
47d52b8
Revert "Normalize CSI arrow-key sequences from conpty (Esc+[+letter -…
yeelam-gordon Jun 15, 2026
9f51873
Reapply "Normalize CSI arrow-key sequences from conpty (Esc+[+letter …
yeelam-gordon Jun 15, 2026
15bea7a
Revert "Reapply "Normalize CSI arrow-key sequences from conpty (Esc+[…
yeelam-gordon Jun 15, 2026
30e6be0
Defer autofix while card visible; full VT parser for conpty key seque…
yeelam-gordon Jun 15, 2026
1137a03
Defer autofix on in-flight turn too, not just card visible
yeelam-gordon Jun 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions tools/wta/locales/af-ZA.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,19 @@ chat.turn_executed: "→ uitgevoer: %{title}"
input.placeholder.connected: "Vra enigiets, / vir opdragte.." # {Locked="/"}
input.placeholder.connecting: "koppel tans..."
input.placeholder.disconnected: "ontkoppel"
# ── Pending prompt queue (src/ui/queued_hint.rs, src/app.rs) ───────────────
# Indicator shown above the input box while one or more prompts are queued
# waiting for the agent to finish the current turn. %{count} is the number
# of queued prompts; %{preview} is a single-line preview of the most-recently
# queued prompt (the one Esc would pop next).
input.queue.indicator: "Op tou (%{count}): %{preview}"
# Transient hint shown after Esc removes the most-recently queued prompt.
input.queue.removed: "Touboodskap verwyder: %{preview}"
# Transient hint shown when the user tries to queue another prompt but the
# queue is already at capacity (%{cap} entries). The user must wait for the
# queue to drain or press Esc to remove queued items.
input.queue.full: "Tou is vol (%{cap}). Wag vir die agent of druk Esc om items uit die tou te verwyder." # {Locked="Esc"}


# ── Opdrag-opspring (src/ui/command_popup.rs) ─────────────────────────────────
# {Locked="/"} - skuinsstreep-opdrag voorvoegsel, moet ASCII bly
Expand Down
92 changes: 33 additions & 59 deletions tools/wta/locales/am-ET.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
# Setup screen titles
# {Locked=qps-ploc,qps-ploca,qps-plocm}
setup.title.first_run: "እንኳን ወደ ብልህ ተርሚናል በደህና መጡ!"
# {Locked="Intelligent Terminal"} - product name, do not translate
setup.title.first_run: "እንኳን ወደ Intelligent Terminal በደህና መጡ!"
setup.title.agent_missing: "ኤጅንት አልተገኙም"
Comment thread
yeelam-gordon marked this conversation as resolved.
Outdated
setup.title.agent_error: "ኤጅንት ግንኙነት አልተሳካም"
Comment thread
yeelam-gordon marked this conversation as resolved.
Outdated
setup.title.switch_agent: "ኤጅንትን ቀይር"
setup.title.not_available: "ኤጅንት አይገኙም"
setup.title.sign_in: "መግባት ያስፈልጋል"

# %{agent} is replaced with the agent display name at runtime.
setup.subtitle.copilot_missing: "ኤጅንትዎ \"%{agent}\" አልተጠቀመም። ለመጠቀም ከታች ያሉትን ደረጃዎች ይተግበሩ። ኤጅንትን ለመቀየር ብልህ ተርሚናል Settings > Agent ይሂዱ።"
setup.subtitle.agent_missing: "ኤጅንትዎ \"%{agent}\" አልተጠቀመም። እባክዎን በእጥ ይጠቅሙት እና እንደገና ይሞክሩ። ኤጅንትን ለመቀየር ብልህ ተርሚናል Settings > Agent ይሂዱ።"
setup.subtitle.copilot_auth: "ኤጅንትዎ \"%{agent}\" ማረጋገጥ ያስፈልገወል። ለመግባት ከታች ያሉትን ደረጃዎች ይተግበሩ። ኤጅንትን ለመቀየር ብልህ ተርሚናል Settings > Agent ይሂዱ።"
setup.subtitle.agent_auth: "ኤጅንትዎ \"%{agent}\" ማረጋገጥ ያስፈልገዋል። እባክዎን በኤጅንቱ በኩል ይግቡ እና ከዚያ በታች \"ገብቻለሁ\" ን ይምረጡ። ኤጅንትን ለመቀየር ብልህ ተርሚናል Settings > Agent ይሂዱ።"
setup.subtitle.copilot_missing: "ኤጅንትዎ \"%{agent}\" አልተጠቀመም። ለመጠቀም ከታች ያሉትን ደረጃዎች ይተግበሩ። ኤጅንትን ለመቀየር Settings ይሂዱ።"
setup.subtitle.agent_missing: "ኤጅንትዎ \"%{agent}\" አልተጠቀመም። እባክዎን በእጥ ይጠቅሙት እና እንደገና ይሞክሩ። ኤጅንትን ለመቀየር Settings ይሂዱ።"
setup.subtitle.copilot_auth: "ኤጅንትዎ \"%{agent}\" ማረጋገጥ ያስፈልገወል። ለመግባት ከታች ያሉትን ደረጃዎች ይተግበሩ። ኤጅንትን ለመቀየር Settings ይሂዱ።"
setup.subtitle.agent_auth: "ኤጅንትዎ \"%{agent}\" ማረጋገጥ ያስፈልገወል። እባክዎን በኤጅንት CLI በኩል ይግቡ እና እንደገና ይሞክሩ። ኤጅንትን ለመቀየር Settings ይሂዱ።"

# {Locked=qps-ploc,qps-ploca,qps-plocm}
setup.description.fre_line1: "በ ብልህ ተርሚናል ውስጥ ሊጠቀሙት የሚፈልጉትን ነባሪ ኤጅንት ይምረጡ። ወደ"
# {Locked="Intelligent Terminal"}
setup.description.fre_line1: "በ Intelligent Terminal ውስጥ ላይጠቀሙት የሚፈልጉትን ነባሪ CLI ኤጅንት ይምረጡ። ወደ"
setup.description.fre_line2: "Settings ሂደው የስራ ቀጠርዎን ላያያዙ ይችላሉ።"

setup.option.install: "%{agent} ጠቅም"
setup.option.install_hint: "(በራሱ ይጠቀማል)"
setup.option.reinstall: "%{agent} እንደገና ጠቅም"
setup.option.reinstall_hint: "(በራሱ ይጠቀማል)"
setup.option.signin: "ወደ %{agent} ይግቡ"
setup.option.retry_detection: "እንደገና ሞክር"
setup.option.retry_auth: "ገብቻለሁ — እንደገና ማገናኘት ሞክር"
setup.option.retry_connection: "እንደገና ማገናኘት ሞክር"
setup.option.retry_detection: "እንደገና ፍለጋ"
setup.option.retry_auth: "ገብቻለሁ — ግንኙነት እንደገና ሞክር"
setup.option.retry_connection: "ግንኙነት እንደገና ሞክር"
setup.option.switch_to: "ወደ %{agent} ቀይር"
setup.status.installing: "በመጠቀም ላይ..."
setup.status.install_failed: "መጠቀም አልተሳካም፡ "
Expand All @@ -43,21 +43,30 @@ auth.hint_footer: "ለመግባት Enter ይጫኑ, ለመመለስ Esc ይጫ

# ── Chat view (src/ui/chat.rs) ──────────────────────────────────────────────
chat.activity_thinking: "በማሰብ…"
# {Locked=qps-ploc,qps-ploca,qps-plocm}
chat.welcome_title: "እንኳን ወደ ብልህ ተርሚናል በደህና መጡ!"
chat.welcome_disclaimer: "ብልህ ተርሚናል AI ይጠቀማል። ስህተቶችን ያረጋግጡ።"
# {Locked="Intelligent Terminal"} - product name, do not translate
chat.welcome_title: "እንኳን ወደ Intelligent Terminal በደህና መጡ!"
chat.plan_header: "እቅድ፡"
chat.plan_marker_completed: "[x]" # {Locked}
chat.plan_marker_in_progress: "[>]" # {Locked}
chat.plan_marker_pending: "[ ]" # {Locked}
chat.autofix_prompt_label: "የቅርብ ጊዜ ትዕዛዝ ብልሽት በራስ-ሰር ተመርምሯል"
chat.turn_canceled: "(ተሰርዟል)"
chat.turn_executed: "→ ተፈጽሟል: %{title}"

# ── Input placeholders (src/ui/input.rs) ────────────────────────────────────
input.placeholder.connected: "Ask anything, / for commands.." # {Locked="/"}
input.placeholder.connecting: "connecting..."
input.placeholder.disconnected: "disconnected"
# ── Pending prompt queue (src/ui/queued_hint.rs, src/app.rs) ───────────────
# Indicator shown above the input box while one or more prompts are queued
# waiting for the agent to finish the current turn. %{count} is the number
# of queued prompts; %{preview} is a single-line preview of the most-recently
# queued prompt (the one Esc would pop next).
input.queue.indicator: "ተሰልፏል (%{count}): %{preview}"
# Transient hint shown after Esc removes the most-recently queued prompt.
input.queue.removed: "የተሰለፈው መልእክት ተወግዷል: %{preview}"
# Transient hint shown when the user tries to queue another prompt but the
# queue is already at capacity (%{cap} entries). The user must wait for the
# queue to drain or press Esc to remove queued items.
input.queue.full: "ሰልፉ ሙሉ ነው (%{cap})። ኤጅንቱን ይጠብቁ ወይም የተሰለፉ ንጥሎችን ለማስወገድ Esc ይጫኑ።" # {Locked="Esc"}


# ── Command popup (src/ui/command_popup.rs) ─────────────────────────────────
# {Locked="/"} - slash-command prefix, must remain ASCII
Expand All @@ -68,8 +77,8 @@ commands.help_escape_hint: " //text Send a literal '/' (escapes the command
commands.help_close_hint: " Esc Close this help" # {Locked="Esc"}

# ── Recommendations panel (src/ui/recommendations.rs) ───────────────────────
# {Locked="Enter","Esc","↵","↑","↓","←","→"} - key names and Return-key glyph, do not translate
recommendations.nav_hint: "(↑ ↓ ለማሰስ • ← → አዝራሮችን ለመቀየር • Enter ለመምረጥ • Esc ለመሰረዝ)"
# {Locked="Enter","Esc","↵"} - key names and Return-key glyph, do not translate
recommendations.nav_hint: "(↑ ↓ to navigate • Enter to select • Esc to cancel)"
recommendations.button_run_command: "[ Run command ]"
recommendations.button_insert_in_terminal: "Insert in Terminal"
recommendations.button_open_in_new_tab: "Open in New Tab ↵"
Expand Down Expand Up @@ -106,42 +115,25 @@ agent.custom.auth_hint: "Make sure %{name} is installed and on your PATH." # {L

# ── Agents view (src/ui/agents_view.rs) ─────────────────────────────────────
agents.loading: "Loading..."
# {Locked="Enter","Esc","↑","↓"} - key combinations, do not translate
agents.footer_hint: "(↑ ↓ to navigate • Enter to launch session • Esc to exit)"
# {Locked="Enter","Shift+enter","Esc"} - key combinations, do not translate
agents.footer_hint: "(↑ ↓ to navigate • Enter to launch session in new tab • Shift+enter to launch session in agent pane • Esc to exit)"
agents.status.active: "Active"
agents.status.waiting_for_input: "Waiting for input"
agents.status.error: "Error"
agents.status.idle: "Idle"

# ── Layout welcome hint (src/ui/layout.rs) ──────────────────────────────────
layout.welcome_hint: "(Ctrl+Shift+. የኤጅንት ገጽታ ማሳየት/መደበቅ • Ctrl+Shift+/ የኤጅንት ክፍለጥ ማሳየት/መደበቅ)" # {Locked="Ctrl+Shift+.","Ctrl+Shift+/"}
layout.welcome_hint: "(Ctrl+Shift+. የኤጅንት ገጽታ ማሳየት/መደበቅ • Ctrl+Alt+/ የኤጅንት ክፍለጥ ማሳየት/መደበቅ)"
Comment thread
yeelam-gordon marked this conversation as resolved.
Outdated

# ── Connection state ────────────────────────────────────────────────────────
connection.starting: "ኤጅንት በመጀመር..."
connection.reconnecting: "እንደገና በመጋኘት..."
connection.connecting_activity: "ከኤጅንት ጋር በመገናኘት ላይ…"
connection.lost: "ከኤጅንት ጋር ያለው ግንኙነት ጠፍቷል። እንደገና ለመገናኘት /restart ብለው ይተይቡ።" # {Locked="/restart"}

# ── System messages (src/app.rs) ────────────────────────────────────────────
system.cancelled: "Cancelled."
system.no_prompt_in_flight: "No prompt in flight."
system.authentication_failed: "Authentication failed"
system.command_copied_retry: "Command copied — run it in another terminal, then press Enter to retry" # {Locked="Enter"}
system.stopped_max_tokens: "ምላሹ የሞዴሉ የውፅዓት ገደብ ላይ ከደረሰ በኋላ ተቆርጧል።"
system.stopped_max_turn_requests: "ወኪሉ ለዚህ ዙር የጥያቄ ገደቡ ላይ ከደረሰ በኋላ ቆሟል።"
system.stopped_refusal: "ወኪሉ በዚህ ጥያቄ መቀጠል አልፈለገም።"
system.agent_busy: "Agent በዚህ ትር ላይ በስራ ላይ ነው — የአሁኑ ጥያቄ እስኪያልቅ ይጠብቁ።"
system.resuming_session: "ክፍለ ጊዜ %{session_id} እንደገና በመቀጠል ላይ..."
system.unknown_command: "ያልታወቀ ትዕዛዝ \"%{command}\" — እንደ ጥያቄ ተልኳል። ዝርዝሩን ለማየት /help ይተይቡ።" # {Locked="/help"} — slash-command name.
system.busy_use_stop: "የአሁኑ ጥያቄ እስኪያልቅ ይጠብቁ፣ ወይም መጀመሪያ /stop ያድርጉ።" # {Locked="/stop"} — slash-command name.
system.cannot_focus_session: "ክፍለ ጊዜ %{session_id} ላይ ትኩረት ማድረግ አይቻልም፦ በቀጥታ ያለ ይመስላል ግን ገና የpane GUID የለም። ከጥቂት ጊዜ በኋላ እንደገና ይሞክሩ።"
system.cannot_resume_no_load_session: "በagent pane ውስጥ መቀጠል አይቻልም፦ %{agent} የACP `loadSession` ችሎታን አላስታወቀም። በምትኩ በአዲስ terminal pane ውስጥ ለመቀጠል Enter (Shift ያለ) ይጫኑ።" # {Locked="ACP","loadSession","Enter","Shift"} — protocol/UI terms.
system.cannot_resume_no_resume_flag: "የ%{agent} ክፍለ ጊዜን መቀጠል አይቻልም፦ ይህ agent የ`--resume` አይነት ሰንደቅ የለውም። በምትኩ በagent pane ውስጥ በACP ለመቀጠል Shift+Enter ይጫኑ።" # {Locked="--resume","Shift","Enter","ACP"} — flag and UI terms.
system.cannot_resume_unknown_agent: "ክፍለ ጊዜ %{session_id} መቀጠል አይቻልም፦ የምንጩ agent በዚህ WTA ግንባታ አይታወቅም።"
system.cannot_resume_phantom_via_flag: "የ%{agent} ክፍለ ጊዜ %{session_id} መቀጠል አይቻልም፦ ተጀምሯል ግን ምንም ውይይት አልተከማቸበትም፣ ስለዚህ %{agent} ራሱ መቀጠሉን ይከለክላል። ረድፉን በማስወገድ ላይ።"
system.cannot_resume_phantom_via_load: "የ%{agent} ክፍለ ጊዜ %{session_id} መቀጠል አይቻልም፦ ተጀምሯል ግን ምንም ውይይት አልተከማቸበትም፣ ስለዚህ %{agent} መጫኑን ይከለክላል። ረድፉን በማስወገድ ላይ።"
system.fallback.this_agent: "ይህ agent"
system.fallback.connected_agent: "የተገናኘው agent"

# ── Runtime CLI output (src/main.rs) ────────────────────────────────────────
output.no_windows: "No windows found."
Expand Down Expand Up @@ -179,21 +171,3 @@ hooks.installed_but_disabled: "⚠ installed but disabled"
hooks.not_installed: "✗ not installed"
hooks.uninstall_skipped: "skipped (CLI not on PATH)"
hooks.install_attempted: "wt-agent-hooks install attempted (idempotent). Run `wta hooks status` to inspect the result. Trace log: %LOCALAPPDATA%\\IntelligentTerminal\\logs\\wta-install-hooks.log"
# ── Relative time + date formatting (src/ui/agents_view.rs) ─────────────────
time.just_now: "አሁን"
time.minute_singular: "%{count} ደቂቃ በፊት"
time.minutes_other: "%{count} ደቂቃዎች በፊት"
time.hour_singular: "%{count} ሰዓት በፊት"
time.hours_other: "%{count} ሰዓታት በፊት"
time.day_singular: "%{count} ቀን በፊት"
time.days_other: "%{count} ቀናት በፊት"

# ── የምክር አፈጻጸም (src/coordinator.rs) ───────────────────────────
system.choice_execution_failed: "ምርጫ %{choice} አልተሳካም፦ %{error}"

# ── Model picker (/model) ───────────────────────────────────────────────────
commands.model.summary: "ለዚህ ፓነል ሞዴሉን ይምረጡ (በቀጥታ ለመቀየር /model <id>)" # {Locked="/model","<id>"}
model_picker.title: "ሞዴል ይምረጡ (↑ ↓ • Enter • Esc)" # {Locked="↑","↓","Enter","Esc"}
system.no_models: "የተገናኘው ኤጅንት ምንም ሊመረጥ የሚችል ሞዴል አላስታወቀም።"
system.model_set: "የዚህ ፓነል ሞዴል ወደ %{model} ተቀናብሯል።" # {Locked="%{model}"}
system.model_unknown: "ያልታወቀ ሞዴል %{model} — የሚገኘውን ዝርዝር ለማየት /model ይተይቡ።" # {Locked="%{model}","/model"}
13 changes: 13 additions & 0 deletions tools/wta/locales/ar-SA.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,19 @@ chat.turn_executed: "→ تم التنفيذ: %{title}"
input.placeholder.connected: "اسأل أي شيء، / للأوامر.." # {Locked="/"}
input.placeholder.connecting: "جارٍ الاتصال..."
input.placeholder.disconnected: "غير متصل"
# ── Pending prompt queue (src/ui/queued_hint.rs, src/app.rs) ───────────────
# Indicator shown above the input box while one or more prompts are queued
# waiting for the agent to finish the current turn. %{count} is the number
# of queued prompts; %{preview} is a single-line preview of the most-recently
# queued prompt (the one Esc would pop next).
input.queue.indicator: "في قائمة الانتظار (%{count}): %{preview}"
# Transient hint shown after Esc removes the most-recently queued prompt.
input.queue.removed: "تمت إزالة الرسالة من قائمة الانتظار: %{preview}"
# Transient hint shown when the user tries to queue another prompt but the
# queue is already at capacity (%{cap} entries). The user must wait for the
# queue to drain or press Esc to remove queued items.
input.queue.full: "قائمة الانتظار ممتلئة (%{cap}). انتظر عامل الذكاء الاصطناعي أو اضغط Esc لإزالة العناصر من قائمة الانتظار." # {Locked="Esc"}


# ── نافذة الأوامر المنبثقة (src/ui/command_popup.rs) ─────────────────────────────────
# {Locked="/"} - بادئة أمر الشرطة المائلة، يجب أن تبقى ASCII
Expand Down
Loading
Loading