Skip to content

feat(cli): add /recap, /login, /logout, /pr_comments parity commands#157

Merged
oratis merged 2 commits into
mainfrom
feat/cli-parity-commands
Jun 4, 2026
Merged

feat(cli): add /recap, /login, /logout, /pr_comments parity commands#157
oratis merged 2 commits into
mainfrom
feat/cli-parity-commands

Conversation

@oratis
Copy link
Copy Markdown
Owner

@oratis oratis commented Jun 4, 2026

Adds four Claude-Code slash commands that were missing (🔄 in BEHAVIOR_PARITY.md):

Command Behavior
/recap Provider-summarized recap of the session so far (ctx.provider + ctx.historyrunTurn). Honest empty-conversation + no-provider states.
/login [key] No arg → show auth status + usage; <key> → store a new DeepSeek API key (applies on next launch).
/logout Clear stored credentials + exit (re-onboard on next launch).
/pr_comments gh pr view comments for the current branch's PR; graceful no-gh (ENOENT) / no-PR handling; pure formatPrComments renderer.

SessionContext gains a REPL-injected credsStore (backs /login + /logout).

Tests — parity-commands.test.ts (9 cases)

  • /recap via a mock provider + empty-history + no-provider paths.
  • /login + /logout against a forceFile CredentialsStore under a temp HOME (never the keychain, never real creds — per the repo's credential-test rule).
  • formatPrComments rendering (author/body/date) + the no-PR/no-gh fallback.
  • Full CLI suite: 133 passing. Verified the real gh pr view --json number,title,comments shape matches the parser.

Flips the /recap, /login///logout, /pr_comments rows in BEHAVIOR_PARITY.md → ✅.

Note

Touches 3 rows of the slash-commands table that the open #154 parity-audit PR also edits. Whichever merges second needs a trivial rebase of those rows (both want them ✅). Commented on #154.

Follow-up (not in scope)

  • /login live key-swap without restart (the agent turn uses the provider closure, not ctx.provider; would need the REPL to rebuild the provider on a reauth flag).

🤖 Generated with Claude Code

Four Claude-Code slash commands that were missing (🔄 in BEHAVIOR_PARITY):

- /recap        — provider-summarized recap of the session so far (ctx.provider
                  + ctx.history → runTurn; honest empty/no-provider states)
- /login [key]  — show auth status, or store a new DeepSeek API key (applies on
                  next launch); /logout — clear stored creds + exit
- /pr_comments  — `gh pr view` comments for the current branch's PR (graceful
                  no-gh / no-PR handling); pure formatPrComments renderer

Adds credsStore to SessionContext (REPL-injected) for /login + /logout.

Tests (parity-commands.test.ts, 9 cases): /recap via a mock provider + empty/
no-provider; /login + /logout against a forceFile CredentialsStore under a temp
HOME (never the keychain, never real creds); formatPrComments rendering + the
no-PR/no-gh fallback. Full CLI suite: 133 pass. Verified the real `gh pr view`
JSON shape matches the parser.

Flips the /recap, /login//logout, /pr_comments rows in BEHAVIOR_PARITY → ✅.
(Overlaps the open #154 audit on those rows — see PR note.)

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
@oratis oratis merged commit 6f193a7 into main Jun 4, 2026
3 checks passed
@oratis oratis deleted the feat/cli-parity-commands branch June 4, 2026 06:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant