Skip to content

[core] Add auto dispatch + Extend the mgit example#49

Merged
forfudan merged 5 commits intomainfrom
hook
Apr 12, 2026
Merged

[core] Add auto dispatch + Extend the mgit example#49
forfudan merged 5 commits intomainfrom
hook

Conversation

@forfudan
Copy link
Copy Markdown
Owner

@forfudan forfudan commented Apr 12, 2026

This PR adds Cobra-style auto-dispatch to ArgMojo commands (register per-command handlers and run via execute()), expands the mgit example to use the new dispatch model (including nested subcommands), and wires in tests + tooling updates to exercise the feature.

Changes:

  • Introduce Command.set_run_function(handler) and Command.execute() with recursive subcommand dispatch (plus _execute_with_arguments() test helper).
  • Add a dedicated test suite validating dispatch behavior across root/subcommands/nested commands, aliases, persistent flags, and error cases.
  • Extend documentation and examples (mgit) to demonstrate and describe auto-dispatch; adjust Pixi tasks to include the new tests and use a new example build script.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Cobra-style auto-dispatch to ArgMojo commands (register per-command handlers and run via execute()), expands the mgit example to use the new dispatch model (including nested subcommands), and wires in tests + tooling updates to exercise the feature.

Changes:

  • Introduce Command.set_run_function(handler) and Command.execute() with recursive subcommand dispatch (plus _execute_with_arguments() test helper).
  • Add a dedicated test suite validating dispatch behavior across root/subcommands/nested commands, aliases, persistent flags, and error cases.
  • Extend documentation and examples (mgit) to demonstrate and describe auto-dispatch; adjust Pixi tasks to include the new tests and use a new example build script.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/argmojo/command.mojo Implements auto-dispatch via stored handler and recursive _dispatch() invoked from execute() / _execute_with_arguments().
tests/test_dispatch.mojo New tests covering dispatch routing, nesting, handler replacement, aliases, persistent flags, and missing-handler errors.
README.md Adds auto-dispatch to the feature list.
pixi.toml Runs the new dispatch tests; replaces the inline build task with examples/build.sh.
examples/mgit.mojo Refactors/extends mgit to register handlers and use execute(); adds nested subcommands (stash/config/remote).
examples/build.sh New script to build (and run --help) examples with basic timing output.
docs/user_manual.md Documents auto-dispatch usage and updates the cross-library method reference tables.
docs/changelog.md Notes auto-dispatch in the unreleased section.
docs/argmojo_overall_planning.md Marks auto-dispatch as done and updates planning/status text accordingly.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@forfudan forfudan merged commit 08a3019 into main Apr 12, 2026
5 checks passed
@forfudan forfudan deleted the hook branch April 12, 2026 18:22
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.

2 participants