Problem
Duplicates (same handler, different name):
/status → alias for /dashboard (both call showDashboard)
/thinking → alias for /reasoning (both call handleReasoningCommand)
/settings → alias for /preferences (both call handlePreferencesCommand)
Pi name conflicts (PanCode registers same name as hidden Pi built-in):
/settings conflicts with Pi TUI SettingsSelectorComponent
/session conflicts with Pi session info
/hotkeys conflicts with Pi keyboard shortcuts display
These conflicts only work because shell-overrides.ts hides Pi's built-ins first. If overrides fail or are removed, PanCode's registrations will be silently skipped by Pi's reserved name check.
Marked for removal but still registered (locked decision #7):
/preferences
/thinking
/dispatch-insights
/status
Audit Reference
AUDIT-ISSUES.md: C2, C3, C4
Objective
Remove duplicates and resolve naming conflicts.
Deliverables
Problem
Duplicates (same handler, different name):
/status→ alias for/dashboard(both callshowDashboard)/thinking→ alias for/reasoning(both callhandleReasoningCommand)/settings→ alias for/preferences(both callhandlePreferencesCommand)Pi name conflicts (PanCode registers same name as hidden Pi built-in):
/settingsconflicts with Pi TUI SettingsSelectorComponent/sessionconflicts with Pi session info/hotkeysconflicts with Pi keyboard shortcuts displayThese conflicts only work because shell-overrides.ts hides Pi's built-ins first. If overrides fail or are removed, PanCode's registrations will be silently skipped by Pi's reserved name check.
Marked for removal but still registered (locked decision #7):
/preferences/thinking/dispatch-insights/statusAudit Reference
AUDIT-ISSUES.md: C2, C3, C4
Objective
Remove duplicates and resolve naming conflicts.
Deliverables
/statusregistration (use/dashboardonly)/thinkingregistration (use/reasoningonly)/dispatch-insightsregistration/preferencesregistration (use/settingsonly)/settingsto avoid Pi conflict (or document the dependency on shell-overrides)/sessionif shell-overrides removal is planned