mirror of
https://github.com/hanzoai/dev.git
synced 2026-10-17 15:34:54 +00:00
Our history is just-every's with author emails rewritten, so the graphs are
disjoint and git finds no merge base. Supplied one by hand: d1f1f51a41, the
just-every commit matching our Oct-2025 fork point (22 files apart). 9618
upstream commits, 7004 files, +1.81M/-159k, 37 conflicts.
Resolution:
- Upstream code where our side was the Oct-2025 prototype of a feature they
have since reimplemented 3-5x larger (agent_runs, browser_sessions,
history_cell/{agent,browser}, the vt100 harness and its snapshots).
- Upstream's config.rs module split (builder/defaults/sources/validation)
kept; zen5-coder and the provider-follows-model rule re-applied on top.
- Ours where the file IS the identity: README, package.json, postinstall,
release notes pipeline, integration-zed.
- Hybrid where upstream improved a file we had branded: updates.rs (their
release-repo migration, our hanzoai/dev), release.yml (their fail-fast npm
auth check, our package name), chatwidget.rs (their turn handling, our
HANZO_USER_KEY hint), exec human output (their 237 lines, our banner).
Superseded and dropped deliberately: our resume_command_name() coder-alias
hack — upstream's derive_resume_command_name() reads the invocation basename
generically, which yields "dev" for us.
LLM.md now records the real topology and the sync point; AGENTS.md and
CLAUDE.md are symlinks to it again. Single parent on purpose: adopting
jecode/main as a second parent would re-import 13,742 commits carrying the
upstream author emails a prior rewrite deliberately removed.
Version 0.2.188 -> 0.2.189.
Co-authored-by: Hanzo Dev <[email protected]>
42 lines
1.4 KiB
Markdown
42 lines
1.4 KiB
Markdown
# Request user input overlay (TUI)
|
|
|
|
This note documents the TUI overlay used to gather answers for
|
|
`RequestUserInputEvent`.
|
|
|
|
## Overview
|
|
|
|
The overlay renders one question at a time and collects:
|
|
|
|
- A single selected option (when options exist).
|
|
- Freeform notes (always available).
|
|
|
|
When options are present, notes are stored per selected option and the first
|
|
option is selected by default, so every option question has an answer. If a
|
|
question has no options and no notes are provided, the answer is submitted as
|
|
`skipped`.
|
|
|
|
## Focus and input routing
|
|
|
|
The overlay tracks a small focus state:
|
|
|
|
- **Options**: Up/Down move the selection and Space selects.
|
|
- **Notes**: Text input edits notes for the currently selected option.
|
|
|
|
Typing while focused on options switches into notes automatically to reduce
|
|
friction for freeform input.
|
|
|
|
## Navigation
|
|
|
|
- Enter advances to the next question.
|
|
- Enter on the last question submits all answers.
|
|
- PageUp/PageDown navigate across questions (when multiple are present).
|
|
- Esc interrupts the run in option selection mode.
|
|
- When notes are open for an option question, Tab or Esc clears notes and returns
|
|
to option selection.
|
|
|
|
## Layout priorities
|
|
|
|
The layout prefers to keep the question and all options visible. Notes and
|
|
footer hints collapse as space shrinks, with notes falling back to a single-line
|
|
"Notes: ..." input in tight terminals.
|