feat(repl): establish /cmd convention for rpg-specific commands#755
feat(repl): establish /cmd convention for rpg-specific commands#755
Conversation
REV Code Review — PR #755: feat(repl): establish /cmd convention for rpg-specific commandsCI: FAILING (rustfmt) | Diff scope: Blocking findings[CI / BLOCKING] rustfmt failure on The lint step fails at The Non-blocking findings[BUG / MEDIUM] In if let Some(result) = dispatch_ai_command(...).await {
match result {
MetaResult::Reconnected(c, p) => return HandleLineResult::Reconnected(c, p),
MetaResult::Quit => return HandleLineResult::Quit,
_ => {}
}
}The [BEHAVIOR / LOW] The deprecation eprintln on [STYLE / LOW] The long [DOCS / LOW] COMMANDS.md lists The table reads naturally but a new user might not realize Potential issues (low confidence)[BEHAVIOR] Deprecation messages go to stderr via All SummaryGood architectural change — the |
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #755 +/- ##
==========================================
- Coverage 69.28% 68.68% -0.61%
==========================================
Files 48 48
Lines 32216 32500 +284
==========================================
Hits 22320 22320
- Misses 9896 10180 +284 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
REV Re-Review — PR #755: feat(repl): establish /cmd convention for rpg-specific commandsBranch: BLOCKINGNone. NON-BLOCKING[BUG / LOW]
} else if let Some(rest) = input.strip_prefix("/n+") ... // /n+
} else if let Some(rest) = input.strip_prefix("/nd ") ... // /nd <name>
} else if let Some(rest) = input.strip_prefix("/np ") ... // /np <name>
} else if let Some(rest) = input.strip_prefix("/ns ") ... // /ns <name> <query>
} else if let Some(rest) = input.strip_prefix("/n").map(str::trim) ... // /n <name> ← catches /ns, /nd, /np without spaceThe [BEHAVIOR / LOW] Deprecation warnings fire on every keystroke in readline pre-enter evaluation The [STYLE / LOW] The exemption list has grown to 20+ Summary
Verdict: APPROVE (no blockers). The rustfmt fix is clean; CI is green. Ready to merge. |
|
CI is green and REV re-review finds no blocking issues (rustfmt fix confirmed). This PR is ready for merge — awaiting Nik's approval. |
|
REV PR #755 — feat(repl): establish /cmd convention for rpg-specific commands This is a good structural decision — clean namespace separation between psql-compat ( Observations:
The inverted allowlist (#1) and the |
Testing Evidence — feat/754-slash-conventionTested on commit Build: 1.
|
REV Code Review — PR #755
|
| Area | Findings | Potential | Notes |
|---|---|---|---|
| Bugs | 2 | 0 | /explain-share dead code (CRITICAL), /n* prefix collision (HIGH) |
| Tests | 0 | 1 | No tests for new / dispatch routing |
| Docs | 3 | 0 | README not updated, /dba help shows old notation, CHANGELOG missing |
| Guidelines | 0 | 0 |
What's good
The overall direction is right. The \ vs / convention is clean and well-reasoned. COMMANDS.md is comprehensive. The \? help output structure is excellent — clear sections, deprecated aliases listed separately. Deprecation notices in the binary are well done. The dispatch_ai_command return type change from () to Option<MetaResult> correctly enables /session resume to propagate reconnection.
REV-assisted review (AI analysis by postgres-ai/rev)
REV Re-Review — PR #755 (after fixes)Branch: BLOCKING ISSUESNone. Both blocking bugs from the prior review are resolved. Fix verificationB1 —
B2 — All four dispatch branches now use the
README update (requested as NON-BLOCKING — done) All NON-BLOCKING observations (new diff only)LOW — When called as INFO —
Summary
CI is green. No blocking findings. PR #755 is ready for merge — awaiting Nik's approval. |
Testing evidence — bug fixes (commit
|
|
CI is green and REV re-review confirms both blocking bugs resolved (B1: /explain-share dead code fixed, B2: /n* prefix collision fixed). Testing evidence posted. This PR is ready for merge — awaiting Nik's approval. |
7312985 to
14f40fb
Compare
- Move /explain-share branch before /explain so it is reachable
- Guard /ns, /nd, /np, /n with == or starts_with(" ") to prevent
greedy prefix matching (e.g. /ndrop routing to /nd)
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Replace \ with / for all rpg-specific commands (/dba, /text2sql, /yolo, /sql, /interactive, /t2s, /explain-share, /slow_mean, /commands). Psql-native commands (\d, \pset, \set, \s, etc.) keep \. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
14f40fb to
7c2c7f5
Compare
Closes #754. Moves rpg-specific commands to / namespace, keeps psql-compatible commands as . See issue for details.