Skip to content

Convert the :navigation cluster to command types (#392)#403

Open
ChrisonSimtian wants to merge 1 commit into
cli-cmd-cakefrom
cli-cmd-navigation
Open

Convert the :navigation cluster to command types (#392)#403
ChrisonSimtian wants to merge 1 commit into
cli-cmd-cakefrom
cli-cmd-navigation

Conversation

@ChrisonSimtian

@ChrisonSimtian ChrisonSimtian commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

Part of #392. Stacked on #394 — merge after it lands.

Per the locked decision, the five navigation verbs become discrete commands with names preserved (GetNextDirectory, PopDirectory, PushWithCurrentRootDirectory, PushWithParentRootDirectory, PushWithChosenRootDirectory) so the documented shell functions (nuke-/nuke//nuke./nuke..) keep working. Shared per-session state moves into an internal NavigationSession; PushWithChosenRootDirectoryCommand takes IConsolePrompts. Replaces the five DelegateCommand adapters; deletes Program.Navigation.cs.

Verification

Fallout.Cli.Tests 30 pass.

🤖 Generated with Claude Code

@ChrisonSimtian ChrisonSimtian requested a review from a team as a code owner June 17, 2026 10:09
@ChrisonSimtian ChrisonSimtian added the target/2026 Targets the 2026 calendar-version line (current). See ADR-0004. label Jun 17, 2026
@ChrisonSimtian ChrisonSimtian changed the base branch from cli-command-dispatch-foundation to cli-cmd-cake June 17, 2026 10:24
Lift the five directory-navigation handlers into discrete command types with their
names preserved (GetNextDirectory, PopDirectory, PushWithCurrentRootDirectory,
PushWithParentRootDirectory, PushWithChosenRootDirectory) so the companion shell
functions keep working. Shared per-session state moves into an internal
NavigationSession helper; PushWithChosenRootDirectory takes IConsolePrompts via the
constructor. Replaces the five DelegateCommand adapters; deletes Program.Navigation.cs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisonSimtian

Copy link
Copy Markdown
Collaborator Author

Testing note: no command unit test in this PR. The navigation commands read TERM_SESSION_ID/WT_SESSION (via NavigationSession.SessionId) and manipulate per-session state files, so unit tests would be env-dependent/fragile. Deferred to the #392 collapse PR, where session access can be made injectable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

target/2026 Targets the 2026 calendar-version line (current). See ADR-0004.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant