Skip to content

Commit 7ffaea8

Browse files
committed
feat: implement improve-repl-ux change proposal
- Add keyboard shortcuts (F1=help, F5=refresh, Ctrl+L=clear) - Add command aliases (/c, /l, /v, /h) and number shortcuts (/1-/5) - Enhance /help with categorized commands and detailed help - Add /view command for entity navigation - Add fuzzy command suggestions at 75% threshold - Wire all command handlers through get_handler() dispatch - Add onboarding and what's new screens - Update HandlerResult with error, suggestions, entity_context fields - Make handlers stateless (remove _current_draft instance state) - Add 22 tests for onboarding, 5 for key bindings - Update AGENTS.md and README.md with new features - Archive change as 2026-01-13-improve-repl-ux All 1665 tests pass. UAT scenarios 8.1-8.6 verified.
1 parent 68ee1af commit 7ffaea8

File tree

28 files changed

+3838
-218
lines changed

28 files changed

+3838
-218
lines changed

AGENTS.md

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -170,20 +170,33 @@ The app uses a conversational REPL with hybrid input handling:
170170

171171
| Command | Action |
172172
|---------|--------|
173-
| `/help` | Show available commands |
174-
| `/list` | List commitments (default) |
173+
| `/help` (`/h`) | Show available commands |
174+
| `/list` (`/l`) | List commitments (default) |
175175
| `/list goals` | List all goals |
176-
| `/commit "..."` | Create a new commitment |
176+
| `/list visions` | List all visions |
177+
| `/view <id>` (`/v`) | View entity details |
178+
| `/1` - `/5` | Quick-select from last list |
179+
| `/commit "..."` (`/c`) | Create a new commitment |
180+
| `/complete <id>` | Mark commitment complete |
181+
| `/review` | Review visions due for quarterly review |
177182
| `exit` or `quit` | Exit the REPL |
178183

184+
### Keyboard Shortcuts
185+
186+
| Key | Action |
187+
|-----|--------|
188+
| F1 | Show help |
189+
| F5 | Refresh dashboard |
190+
| Ctrl+L | Clear screen, show dashboard |
191+
179192
### Adding Slash Commands
180193

181-
Edit `src/jdo/repl/loop.py` in `handle_slash_command()`:
194+
Commands are implemented as handlers in `src/jdo/commands/handlers/`.
195+
Register new handlers in `src/jdo/commands/handlers/__init__.py`:
182196

183197
```python
184-
if command == "mycommand":
185-
_handle_mycommand(args, db_session)
186-
return True
198+
# In _HANDLERS dict
199+
CommandType.MYCOMMAND: MyCommandHandler,
187200
```
188201

189202
## Testing

README.md

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -204,17 +204,26 @@ Does this look right?
204204

205205
For power users who prefer instant, deterministic actions:
206206

207-
| Command | Description |
208-
|---------|-------------|
209-
| `/help` | Show available commands |
210-
| `/list` | List commitments (default) |
211-
| `/list goals` | List all goals |
212-
| `/list visions` | List all visions |
213-
| `/commit "..."` | Create a new commitment |
214-
| `/complete <id>` | Mark a commitment as complete |
215-
| `/review` | Review visions due for quarterly review |
216-
| `/exit` | Exit the REPL |
217-
| `/quit` | Exit the REPL |
207+
| Command | Shortcut | Description |
208+
|---------|----------|-------------|
209+
| `/help` | `/h` | Show available commands |
210+
| `/list` | `/l` | List commitments (default) |
211+
| `/list goals` | | List all goals |
212+
| `/list visions` | | List all visions |
213+
| `/view <id>` | `/v` | View entity details |
214+
| `/1` - `/5` | | Quick-select from last list |
215+
| `/commit "..."` | `/c` | Create a new commitment |
216+
| `/complete <id>` | | Mark a commitment as complete |
217+
| `/review` | | Review visions due for quarterly review |
218+
| `/exit` | | Exit the REPL |
219+
220+
### Keyboard Shortcuts
221+
222+
| Key | Action |
223+
|-----|--------|
224+
| F1 | Show help |
225+
| F5 | Refresh dashboard |
226+
| Ctrl+L | Clear screen, show dashboard |
218227

219228
Or just type naturally—the AI understands plain English.
220229

0 commit comments

Comments
 (0)