fix: CTO review — version targets, slash command parity, dataclass default

1. pyproject.toml: ruff/mypy target py38→py312, remove 3.8-3.11 classifiers
2. command_suggestions.py: add /branch /commit /commit-push-pr /diff /stash /worktree
3. command_suggestions.py: fix aliases default None → Optional[List[str]]
This commit is contained in:
2026-04-01 13:36:10 -07:00
parent 7b4ab58c38
commit 70fe512310
2 changed files with 11 additions and 8 deletions
+3 -6
View File
@@ -13,11 +13,8 @@ classifiers = [
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Software Development :: Testing",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
@@ -86,14 +83,14 @@ packages = ["src/hanzo_dev"]
[tool.ruff]
line-length = 120
target-version = "py38"
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "B", "UP", "N", "S", "A", "C4", "T20", "RET", "SIM", "ARG"]
ignore = ["E501", "S101"]
[tool.mypy]
python_version = "3.8"
python_version = "3.12"
strict = true
warn_return_any = true
warn_unused_configs = true
@@ -16,7 +16,7 @@ class SlashCommand:
command: str
description: str
aliases: List[str] = None
aliases: Optional[List[str]] = None
def matches(self, query: str) -> bool:
"""Check if command matches query."""
@@ -75,12 +75,16 @@ class CommandSuggestions(Vertical):
SlashCommand("/auth", "Authenticate with Claude personal account"),
SlashCommand("/auto", "Execute prompt autonomously with tools"),
SlashCommand("/backend", "Switch AI backend (claude/openai/embedded)"),
SlashCommand("/bug", "Submit feedback about Hanzo REPL"),
SlashCommand("/branch", "List or create git branches"),
SlashCommand("/bug", "Submit feedback about Hanzo Dev"),
SlashCommand("/clear", "Clear session history and start fresh"),
SlashCommand("/code", "Implement with consensus from multiple review passes"),
SlashCommand("/commit", "Commit staged changes"),
SlashCommand("/commit-push-pr", "Commit, push, and create PR"),
SlashCommand("/compact", "Compact session keeping a summary in context"),
SlashCommand("/config", "Show loaded configuration files", ["theme"]),
SlashCommand("/cost", "Show total cost and duration of current session"),
SlashCommand("/diff", "Show working tree diff"),
SlashCommand("/doctor", "Check the health of your Hanzo installation"),
SlashCommand("/exit", "Exit the REPL", ["quit"]),
SlashCommand("/export", "Export conversation to file"),
@@ -104,12 +108,14 @@ class CommandSuggestions(Vertical):
SlashCommand("/resume", "Load saved session from JSON file"),
SlashCommand("/run", "Run a shell command"),
SlashCommand("/search", "Search for content using MCP tools"),
SlashCommand("/stash", "Manage git stash (pop/list)"),
SlashCommand("/session", "List or switch saved sessions"),
SlashCommand("/solve", "Race multiple approaches, present best solution"),
SlashCommand("/status", "Model, session info, token usage"),
SlashCommand("/tools", "Show available MCP tools"),
SlashCommand("/version", "Show version info"),
SlashCommand("/voice", "Enable voice mode for bidirectional communication"),
SlashCommand("/worktree", "Manage git worktrees"),
]
selected_index = reactive(0)