docs(adr): interactive input matches a display or an id when the pick is unambiguous (improvise-cq1q.1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
This commit is contained in:
committed by
Edward Langley
parent
c7f8d0a3cd
commit
98db007e71
@@ -508,7 +508,9 @@ display that would otherwise read as display plus id:
|
||||
(a script file, `improvise cmd`, another program). A script that names something by
|
||||
its display fails. A script gets a display only through a dedicated function such as
|
||||
`display_for(id)`.
|
||||
- **[Amendment] Interactive typing prefers ids and previews displays** (clause 12).
|
||||
- **[Amendment] Interactive input matches either a display or an id**, in the TUI
|
||||
and the browser, as long as it is unambiguous which thing the user is picking. Ids
|
||||
win when it is not, and the display is shown as a preview (clause 12).
|
||||
- **A frame cannot address a thing it creates**, because it does not know the id the
|
||||
host will assign. A create-then-act compound becomes **one command**:
|
||||
`create-and-switch-view` sends `[CreateView, SwitchView]` today and becomes
|
||||
@@ -670,7 +672,8 @@ answers for those.
|
||||
- **A typed name that was not in the captured mapping** is resolved against the
|
||||
document at commit, and refused, naming it, if it does not resolve.
|
||||
|
||||
**[Amendment] The client does the resolving, and ids always win:**
|
||||
**[Amendment] The client does the resolving. Interactive input may match a display or
|
||||
an id as long as the pick is unambiguous, and ids win when it is not:**
|
||||
- **The client holds the mapping**, as it holds `OpenedCell`. The TUI and the browser
|
||||
share one resolver in `improvise-protocol`.
|
||||
- **A name new to the edit** is resolved by the client against its id-bearing
|
||||
|
||||
Reference in New Issue
Block a user