Skip to content

fix: record shell mode in history (resolves #5454) - #5551

Merged
rekram1-node merged 2 commits into
anomalyco:devfrom
ariane-emory:fix/record-shell-mode-in-history
Dec 15, 2025
Merged

rekram1-node merged 2 commits into
anomalyco:devfrom
ariane-emory:fix/record-shell-mode-in-history

Conversation

@ariane-emory

@ariane-emory ariane-emory commented Dec 15, 2025 •

Copy link
Copy Markdown
Contributor

Fixes bug 1 from issue #5454 where shell commands were not properly recalled from message history. Previously, when typing a shell command such as, e.g., !date, only the date text was stored in history, not the shell mode. When recalling with up arrow, this caused the command to be sent as a text message to the model instead of executed as a shell command. With this PR, the shell mode state is recorded alongside the message so that it is properly restored when cycling through the command history.

Changes:

  • Add optional mode field to PromptInfo type
  • Store current mode when appending to history
  • Restore mode (defaulting to 'normal' for backward compatibility) when recalling from history

Resolves #5454 (at least, the 'bug 1' part of it).

Fixes bug 1 from issue anomalyco#5454 where shell commands were not properly
recalled from message history. Previously, when typing `!date`, only
the `date` text was stored in history, not the shell mode. When
recalling with up arrow, this caused the command to be sent as a text
message to the model instead of executed as a shell command.

Changes:
- Add optional `mode` field to PromptInfo type
- Store current mode when appending to history
- Restore mode (defaulting to 'normal' for backward compatibility) when recalling from history
The previous implementation had a timing bug where store.mode was
reset to 'normal' before being saved to history. This caused all
shell commands to be stored as 'normal' mode.

Now we capture the mode value before the conditional branches that
reset it, ensuring the correct mode is preserved in history.
@ariane-emory
ariane-emory marked this pull request as draft December 15, 2025 07:59
@ariane-emory ariane-emory changed the title fix: record shell mode in history fix: record shell mode in history (resolves #5454) Dec 15, 2025
@ariane-emory
ariane-emory marked this pull request as ready for review December 15, 2025 08:06
@rekram1-node
rekram1-node merged commit 6632987 into anomalyco:dev Dec 15, 2025
3 checks passed
@ariane-emory
ariane-emory deleted the fix/record-shell-mode-in-history branch December 15, 2025 22:07
nalin-singh pushed a commit to nalin-singh/opencode that referenced this pull request Dec 17, 2025
Rwanbt pushed a commit to Rwanbt/unifia that referenced this pull request May 5, 2026
AIALRA-0 pushed a commit to AIALRA-0/opencode-turn-engine that referenced this pull request Jun 10, 2026
Rwanbt pushed a commit to Rwanbt/unifia that referenced this pull request Jun 14, 2026
meSingh pushed a commit to meSingh/opencode that referenced this pull request Sep 6, 2026
androidand pushed a commit to androidand/opencode-skein that referenced this pull request Sep 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Shell commands are broken in message history and in opencode run

2 participants