Repository navigation
fix(cmd): follow-ups from the Command Code support review - #1934
Conversation
…ry menus The footer check accepts the shapes the published command-code renderer draws (a hint split over lines, a word or character wrap, the ctrl+e and ctrl+y variants) and still rejects a stale or incomplete footer and anything below it. A numbered menu is an approval card only when its rows are Command Code's Yes ... No choices, so a theme picker with the same footer is not one. The card's identity stays main's hash of everything above the rows: narrowing it to the dialog cannot be done from the screen, since command text can imitate the dialog's frame. Refs #1445
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Permission-card detection and identity server/dialogs/cmd.ts, server/dialogs/live.ts, server/dialogs/fallback.ts, server/cmd.test.ts, server/prompt.test.ts, changelog.d/cmd-support-followups.md |
Command Code prompts now require a complete recognized footer and matching approval-menu labels. Cmd card identity hashes the raw screen. Tests cover parsing, answer keys, and rejection of stale cards. |
Conversation model metadata server/conversation.ts, server/cmd-conversation.test.ts, changelog.d/cmd-support-followups.md |
A nonempty pane model reported by Herdr updates the copied cmd-transcript response metadata and its version. Tests cover model changes and unchanged requests. |
Shared transcript-path validation server/transcript-store.ts, server/cmd.ts, server/pi.ts |
Transcript path validation helpers are added to transcript-store.ts and re-exported from cmd.ts and pi.ts. CmdTranscriptOptions no longer includes home. |
Priority:
Estimated code review effort: 3 (Moderate) | ~20 minutes
Change: Bug fix · Severity of issue fixed: Medium
Possibly related PRs
- devswha/ovis#1745: This change replaces the transcript validators used by the cwd lookup added in that PR.
- devswha/ovis#1761: This change replaces the Command Code footer-tail check that PR moved into
server/dialogs/live.ts.
Suggested reviewers: diegolhambi
Merge Risk: 
Minimal · up to e7707
-
The reported transcript-path escape was not reproduced. No actionable merge-blocking risk remains after normal checks.
Pre-merge checks: 
3 · 
2
-
Failed checks: 2 warnings Passed checks: 3 passed-
Full details: Description check
-
Explanation
The description includes the required Change section and provides detailed behavior, scope, limitations, tests, HTTP validation, and check results under a Verification heading. The heading differs from the template's Validation heading, but the required information is present.
Full details: Out of Scope Changes check
-
Explanation
The changed production code, shared transcript-store helpers, cache-version update, dialog parsing, fallback identity, changelog, and regression tests all support the Command Code follow-ups in
#1445. No unrelated change is demonstrated.
-
Full details: Linked Issues check
-
Explanation
#1445requirements are partly implemented.cmdFooterStartvalidates wrapped and Ctrl+E/Ctrl+Y footers, rejects trailing content, and restricts approval cards toYesthroughNorows.paneConversationreturns the live model with a changed version without mutating the cache. Store validation is shared, and the new tests cover metadata, answer keys, and stale-card rejection. The cwd, session-resolution, and skills-source items are already covered by the reviewed head. However,#1445's screen-wide card-ID issue remains:server/dialogs/cmd.tsstill hashes all content above the rows, so redraws above an open dialog still invalidate the card. The multi-line command title issue also remains explicitly unresolved. The live check and regression tests prove safe rejection, but they do not complete those two coding objectives.Resolution
Implement and test a safe dialog-boundary or equivalent card-ID scope for
#1445item 1. Preserve the stale-card rejection guarantee. Implement and test complete multi-line command title handling, or record that objective as separately deferred in#1445.
Full details: Docstring Coverage
-
Explanation
Docstring coverage is 60.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 10 functions across 10 files. (1 skipped: 1 unsupported.)
Resolution
Write docstrings for the functions missing them to satisfy the coverage threshold.
-
Finishing Touches: 💡 1
-
📝 Generate docstrings: 💡
-
- Commit to this branch
- Create a new PR
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands.
|
Merge pass review-work report. Overall: PASSED. This is an ordinary server behaviour change, so it was gated by Codex Sol, an omo code reviewer and the merge pass's own checks.
Tests: 591 cmd, pi, prompt and dialog tests pass, and tsc is clean. With each fixed file reverted to main's version, its new tests fail:
Footer check: the reviewer read the published
Model: only the cmd branch changes in
Overlaps:
LOW follow-ups:
|
Change
Follow-ups from #1399's review (#1445), for Command Code (
cmd) panes. Per item:server/dialogs/cmd.ts,server/dialogs/live.ts): a permission prompt now gets its card when its footer wraps (split hint, word or character wrap) or uses the ctrl+e / ctrl+y variants. These are the shapes the publishedcommand-code1.88.0 renderer draws (read statically from the npm package; the CLI was never run or logged into). A stale or incomplete footer, or anything drawn below it, still gives no card. Normal status chrome is hidden while a permission dialog is open, so it cannot sit under the footer.server/conversation.ts, cmd metadata branch only): the served model follows the pane's current model, and the ETag changes with it. The response is a new object, so the cached page is never mutated. herdr's live model now also replaces a model recorded in the transcript, which is what the item asks for. This branch is only reached where herdr reports the pane's Command Code session, which no released herdr does yet (docs(guide): Command Code chat needs the session herdr reports, and none does yet #1647), so the changelog entry says so.server/pi.ts: both now useserver/transcript-store.ts. Behaviour is identical, and the old names are re-exported.prompt_changed, no keys sent). Session resolution and the skills source were already covered.CmdTranscriptOptions.homeis removed.Not fixed
Fixes #1445
Verification
server/cmd.test.ts56 pass,server/prompt.test.ts357 pass,server/cmd-conversation.test.ts2 pass,server/pi.test.ts31 pass,server/dialogs/registry.test.ts55 pass,server/dialogs/interaction-plan.test.ts23 pass,server/dialogs/claude.test.ts13 pass./api/pane/promptroutes. A pane reported ascmddrew Command Code's shell permission dialog at 80 columns, where the terminal wraps the footer mid-word (… bypass all perm/issions (Docs ↗)):prompt_changedand no byte reaches the pane; answering the new id sends only Enter.server/pi.ts, where main's fix(pi): read the context window from the pane's own PI_CODING_AGENT_DIR #1899 addedfileURLToPath): Codex (gpt-6.1-sol, xhigh) reviewed the rebase against the new main (fix(pi): read the context window from the pane's own PI_CODING_AGENT_DIR #1899's store and agent directory code, fix(chat): follow-ups from the agent command forms review #1893's cache ordering, fix(prompt): drop the unused rewind record, pin dialog reader order and remove dead registry paths #1890's dialog reader order) and APPROVED with no findings.bun run check faston this head: workflow syntax, generated types and themes, typecheck, build and unit tests ok (6800 pass, 0 fail, 13 skip).