feat(cli)!: remove the feedback command - #63
Conversation
The backend no longer serves /v1/feedback — both api.keenable.ai and
api-test.keenable.ai return 404 {"error":"Not found"} for the authenticated
and public routes alike, which is what broke last night's e2e run
(test_feedback_for_unsearched_query and test_no_scores asserted on the old
"Bad request"/"Invalid parameter" payloads). A subcommand that can only ever
404 is worse than no subcommand, so remove it end to end:
- drop the `Feedback` clap variant, its handler, and its update-check arm
- drop the `feedback` branches from the direct-HTTP and daemon dispatchers
- drop `DaemonRequest::idempotent()` and `DaemonError::AfterSend`: feedback was
the only non-idempotent command, so every daemon failure is now safe to retry
directly and the before/after-send distinction no longer changes behavior
- delete tests/e2e/test_feedback.py plus the `write_feedback` opt-in gate, the
daemon-path feedback test, and the KEENABLE_E2E_WRITE_FEEDBACK note in CI
- update CLAUDE.md
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
PR Summary by QodoRemove
AI Description
Diagram
High-Level Assessment
Files changed (8)
|
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can type 'qodo, fix this' on a finding and the fix lands right on your PR |
Why
Last night's nightly e2e failed on all three platforms (run 31674016437):
test_feedback_for_unsearched_query— expectederror: Bad request, gotNot foundtest_no_scores— expectederror: Invalid parameter, gotNot foundThe endpoint is gone, not flapping — probed live on both environments:
The Keenable MCP server likewise exposes only
search_web_pagesandfetch_page_content. A subcommand that can only ever 404 is worse than no subcommand, so this removeskeenable feedbackend to end rather than papering over the tests.What
main.rs: drop theFeedbackclap variant, its handler, and its update-check armsearch.rs: drop thefeedbackbranch from the direct-HTTP dispatcher and thefeedback()commanddaemon.rs: drop thefeedbackbranch from the daemon dispatcherdaemon.rs/search.rs: dropDaemonRequest::idempotent()andDaemonError::AfterSend. Feedback was the only non-idempotent command, so every daemon failure is now safe to retry directly and the before/after-send distinction no longer changes behavior (keeping it would have left a deadAfterSend(String)payload warning)test_feedback.py, thewrite_feedbackopt-in gate inconftest.py,test_login_flow.py's daemon-path feedback test, andfeedbackfrom the--helpsubcommand list intest_global.pyKEENABLE_E2E_WRITE_FEEDBACKnoteCLAUDE.md: updatedTest
cargo build --release,cargo clippy --all-targets(clean, no warnings),cargo test(20 passed). e2e runs here in CI.Breaking for anyone scripting
keenable feedback, but that call already fails with a 404 against the live API.🤖 Generated with Claude Code