feat: add /feedback command and feedback_submit tool#89
Merged
anandgupta42 merged 3 commits intomainfrom Mar 14, 2026
Merged
Conversation
b4a8d54 to
103baaf
Compare
- Add `feedback_submit` tool at `src/altimate/tools/feedback-submit.ts` with `try-catch` around all `Bun.$` calls (ENOENT safety) and buffer-based stdout/stderr capture for better error reporting - Add `/feedback` slash command with guided flow template - Register `FeedbackSubmitTool` in tool registry - Register feedback command in `command/index.ts` - Add 49 tests (tool + command integration) - Fix CI `pr-standards.yml`: change `ref: 'dev'` to `ref: 'main'` and wrap TEAM_MEMBERS lookup in `try-catch` for rebase resilience - Add `/feedback` to docs `commands.md`
103baaf to
51632e6
Compare
|
This PR doesn't fully meet our contributing guidelines and PR template. What needs to be fixed:
Please edit this PR description to address the above within 2 hours, or it will be automatically closed. If you believe this was flagged incorrectly, please let a maintainer know. |
- Fix misleading error: `gh auth status` catch now returns `gh_auth_check_failed`
instead of `gh_not_installed` (gh IS installed at that point)
- Fix fragile version check: use `startsWith("gh version")` instead of
`includes("not found")` for cross-platform correctness
- Add `trim().min(1)` validation to `title` and `description` zod schemas
to reject empty/whitespace-only inputs
- Check `issueResult.exitCode !== 0` before stdout URL check on issue creation
- Restore `Bun.$` in `afterAll` to prevent mock leaking across test files
- Remove trailing `$ARGUMENTS` from end of feedback.txt template (duplicated
from Step 1 pre-fill logic; could confuse model)
- Add 8 new tests: empty/whitespace validation, `gh_auth_check_failed` path,
non-zero exitCode with stdout scenario, and updated "not found" test name
- Replace `/bin/echo` with `process.execPath` in bridge test — /bin/echo does not exist on Windows, causing ENOENT on spawn; process.execPath (the current Bun binary) exists on all platforms and exits quickly without speaking JSON-RPC as expected - Add `unixtest` guard to postinstall, bin-wrapper, and integration tests — on Windows, postinstall.mjs takes a different early-exit path that skips hard-link setup; dummy binaries are Unix shell scripts that cannot be executed on Windows; skip all Unix-specific test paths using the same `process.platform !== "win32" ? test : test.skip` pattern already used in fsmonitor.test.ts Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
anandgupta42
added a commit
that referenced
this pull request
Mar 17, 2026
* feat: add `/feedback` command and `feedback_submit` tool (#86) - Add `feedback_submit` tool at `src/altimate/tools/feedback-submit.ts` with `try-catch` around all `Bun.$` calls (ENOENT safety) and buffer-based stdout/stderr capture for better error reporting - Add `/feedback` slash command with guided flow template - Register `FeedbackSubmitTool` in tool registry - Register feedback command in `command/index.ts` - Add 49 tests (tool + command integration) - Fix CI `pr-standards.yml`: change `ref: 'dev'` to `ref: 'main'` and wrap TEAM_MEMBERS lookup in `try-catch` for rebase resilience - Add `/feedback` to docs `commands.md` * fix: address code review findings in feedback-submit tool - Fix misleading error: `gh auth status` catch now returns `gh_auth_check_failed` instead of `gh_not_installed` (gh IS installed at that point) - Fix fragile version check: use `startsWith("gh version")` instead of `includes("not found")` for cross-platform correctness - Add `trim().min(1)` validation to `title` and `description` zod schemas to reject empty/whitespace-only inputs - Check `issueResult.exitCode !== 0` before stdout URL check on issue creation - Restore `Bun.$` in `afterAll` to prevent mock leaking across test files - Remove trailing `$ARGUMENTS` from end of feedback.txt template (duplicated from Step 1 pre-fill logic; could confuse model) - Add 8 new tests: empty/whitespace validation, `gh_auth_check_failed` path, non-zero exitCode with stdout scenario, and updated "not found" test name * test: fix Windows CI failures in install and bridge tests - Replace `/bin/echo` with `process.execPath` in bridge test — /bin/echo does not exist on Windows, causing ENOENT on spawn; process.execPath (the current Bun binary) exists on all platforms and exits quickly without speaking JSON-RPC as expected - Add `unixtest` guard to postinstall, bin-wrapper, and integration tests — on Windows, postinstall.mjs takes a different early-exit path that skips hard-link setup; dummy binaries are Unix shell scripts that cannot be executed on Windows; skip all Unix-specific test paths using the same `process.platform !== "win32" ? test : test.skip` pattern already used in fsmonitor.test.ts Co-Authored-By: Claude Sonnet 4.6 <[email protected]> --------- Co-authored-by: Claude Sonnet 4.6 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #86
/feedbackslash command with guided 4-step flow (collect details → opt-in session context → confirm → submit)feedback_submittool that creates GitHub issues viaghCLI with labels (user-feedback,from-cli, + category) and metadata table (CLI version, platform, arch, OS)source: "command"(not"skill") to ensure TUI autocomplete visibilityghCLI not installed and not authenticated gracefully with actionable error messagesChanges
src/tool/feedback-submit.tsghCLI, builds issue body with metadata, creates GitHub issuesrc/command/template/feedback.txt$ARGUMENTSsupportsrc/command/index.ts/feedbackas built-in command withsource: "command"src/tool/registry.tsFeedbackSubmitToolin the tool registrytest/tool/feedback-submit.test.tstest/command/feedback.test.tsCode review notes
Multi-model code review (Claude + GPT 5.2 Codex + Grok 4 + MiniMax M2.5 + GLM-5) identified and resolved:
path.basename()instead of.split("/").pop()CATEGORY_LABELSwithsatisfiesconstraintinclude_contextsends)Bun.$namespace access pattern (with explanatory comment)Test plan
/feedbackin TUI, verify it appears in autocomplete🤖 Generated with Claude Code