docs: add hot reload and shell aliases

This commit is contained in:
verse91
2026-04-11 22:14:20 +07:00
parent bed9c98747
commit 97d009f7ef
2 changed files with 18 additions and 0 deletions
+9
View File
@@ -29,3 +29,12 @@ Provides `TermWrite`, a thread-safe wrapper around `os.Stdout`. It uses a `sync.
5. `overlay` renders the result `git`. 5. `overlay` renders the result `git`.
6. User presses `Tab`. 6. User presses `Tab`.
7. `root` sends `Ctrl+U` to Bash, then sends `git ` (the completion). 7. `root` sends `Ctrl+U` to Bash, then sends `git ` (the completion).
## Hot-Reload
IRIS features an **Atomic Hot-Reload** mechanism designed for rapid development:
- **Signal Listener**: The root process listens for `SIGUSR1`.
- **Identity Exposure**: It exports `IRIS_PID` to the environment so child processes knows where to send the signal.
- **In-place Replacement**: Upon receiving the signal, Iris uses `syscall.Exec` to replace its current process image with the newly built binary.
- **Handoff Notification**: It uses `IRIS_RELOADED` to notify the new instance to announce its successful load.
+9
View File
@@ -28,3 +28,12 @@ Input: `git com`
4. Stop walking. `partial` = `com`. 4. Stop walking. `partial` = `com`.
5. Suggestions: Look for subcommands of `git` starting with `com`. 5. Suggestions: Look for subcommands of `git` starting with `com`.
6. Return: `git commit`. 6. Return: `git commit`.
## Shell Aliases & Priority
IRIS deeply integrates with your shell environment to provide a personalized experience:
- **Dynamic Alias Parsing**: Scans `.bashrc`, `.zshrc`, and other configuration files for aliases.
- **Highest Priority**: Shell Aliases are given top priority in the suggestion engine, appearing above manual specs and system commands.
- **Token Injection**: If a root command is recognized as an alias (e.g., `gr` for `go run`), IRIS injects the expanded tokens into the lookup engine to provide accurate subcommand suggestions.
- **Display**: Suggestions for aliases show the expanded command (e.g., `tmux a -t`) while noting the alias name in the description (e.g., `alias: ta`).