Skip to content

Remove preview CLI aliases and enforce canonical commands - #168

Merged
JeremyKuhne merged 2 commits into
mainfrom
remove-cli-preview-aliases
Sep 30, 2026
Merged

JeremyKuhne merged 2 commits into
mainfrom
remove-cli-preview-aliases

Conversation

@JeremyKuhne

Copy link
Copy Markdown
Owner

Summary

Complete the approved VN5 canonical-only CLI surface.

  • Remove all twelve hidden command handlers and their notices: alloc, clean, convert, cpu, diskio, exceptions, gcstats, heatmap, jitstats, lines, threadpool, and threadtime.
  • Keep all sixteen canonical commands, their executors and options, and every trace_* MCP tool name.
  • Reject unrecognized commands with usage exit 1 and a stderr diagnostic, without executing a command or returning success-shaped stdout. This requires a generic dispatch guard because ConsoleAppFramework otherwise prints global help and exits 0 for unknown names; there is no retired-name compatibility shim.
  • Migrate active parser tests, evaluation normalization, and read-only analysis allowlists to canonical commands; remove current alias guidance and migration tables.
  • Refresh only the still-unauthorized prepared EP1 v3 skill-manifest identity for the active analysis-helper change. Historical v1/v2 protocols, schemas, task/QA inputs, and baseline skill remain unchanged. No model execution is authorized or run.

No package release, version tag, MCP rename, trace-reader change, or regeneration of raw captures.

Validation

  • Debug and Release builds with zero warnings; complete suites passed in both configurations (1,955 passed, one expected elevated-host skip per configuration).
  • Focused parser regressions for all twelve rejected names (bare, help, and trace forms), generic unknown/empty/case failures, help/version preservation, and two cache no-mutation cases.
  • Native CLI help/discovery and rejection contract; MCP schema/stdout/round trip; docs/frozen-input contract; all deterministic eval tasks; pinned skills and reference validation.
  • Fake evaluator and analysis-record contracts. Removed analysis-plan commands are rejected before even querying CLI version; a positive fake invocation-log control pins the witness.
  • Changed PowerShell scripts parse under Windows PowerShell 5.1 and PowerShell 7.
  • One bounded read-only pre-PR review: no significant issues found.

The initial Debug fixture run found old unmarked ETLX caches in generated test output. Only those caches were explicitly cleaned with the local CLI before rerunning; raw fixtures were not changed.
One parallel analysis-contract attempt encountered a native-host startup/version failure; direct version probes and the unchanged contract's serial rerun passed.

Review scope

Please keep review bounded to obvious functional mistakes, command/option regressions, stale active references, and failure/side-effect behavior. No speculative redesign or additional release work.

Complete the approved VN5 canonical-only surface while preserving MCP names and frozen historical evaluation inputs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

The evaluator still prompts models to use removed cpu, and the help gate can terminate prematurely under PowerShell native-error handling.

Review effort: Balanced
Findings: 2 Medium severity

Open (2)
What changed in this PR

Removes preview CLI aliases, enforcing the canonical 16-command surface while preserving MCP contracts.

Changes:

  • Removes 12 hidden aliases and rejects unknown commands with usage errors.
  • Migrates tests, documentation, evaluation, and analysis allowlists.
  • Updates the prepared EP1 v3 skill-manifest identity.
File Description
src/​Filtrace/​Cli/​TraceCommands.cs Removes alias handlers.
src/​Filtrace/​Cli/​CliApp.cs Adds unknown-command guard.
src/​Filtrace/​Program.cs Removes obsolete commentary.
tests/​Filtrace.Cli.Tests/​CliAppTests.cs Tests canonical commands and alias rejection.
tools/​Test-CliHelp.ps1 Enforces help and rejection contracts.
tools/​Test-FiltraceAnalysis.ps1 Tests retired-operation rejection.
tools/​Test-AgentEval.ps1 Updates evaluator contract coverage.
eval/​Invoke-AgentEval.ps1 Restricts mediation to canonical commands.
eval/​Get-OperationName.ps1 Removes alias normalization.
eval/​README.md Updates the example command.
eval/​protocols/​ep1-ready-capture-v3.json Refreshes skill-manifest hashes.
.agents/​skills/​filtrace/​scripts/​Invoke-FiltraceAnalysis.ps1 Removes aliases from analysis allowlists.
README.md Removes migration guidance.
docs/​workflow.md Updates canonical workflow terminology.
docs/​design.md Records the canonical-only surface.
docs/​roadmap.md Marks VN5 complete.
docs/​filtrace-etl-trimming.md Replaces aliases in examples.
AGENTS.md Updates the CLI validation description.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread eval/Invoke-AgentEval.ps1
Comment thread tools/Test-CliHelp.ps1
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@JeremyKuhne
JeremyKuhne merged commit 7218653 into main Sep 30, 2026
4 checks passed
@JeremyKuhne
JeremyKuhne deleted the remove-cli-preview-aliases branch September 30, 2026 18:55
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