MAESTRO: Mark PR #745 rebase task complete
- Resolved 4 conflicts during rebase onto main - Merged zombie process cleanup (main) with isolated credentials (PR) - SDKAgent.ts now has both spawnClaudeCodeProcess and env options Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# Phase 01: Merge PR #745 - Isolated Credentials
|
||||
|
||||
**PR:** https://github.com/thedotmack/claude-mem/pull/745
|
||||
**Branch:** `fix/isolated-credentials-733`
|
||||
**Status:** Has conflicts, needs rebase
|
||||
**Review:** Approved by bayanoj330-dev
|
||||
**Priority:** HIGH - Foundation for credential isolation, required by PR #847
|
||||
|
||||
## Summary
|
||||
|
||||
Fixes API key hijacking issue (#733) where SDK would use `ANTHROPIC_API_KEY` from random project `.env` files instead of Claude Code CLI subscription billing.
|
||||
|
||||
**Root Cause:** The SDK's `query()` function inherits from `process.env` when no `env` option is passed.
|
||||
|
||||
**Solution:** Centralized credential management via `~/.claude-mem/.env` with `EnvManager.ts`.
|
||||
|
||||
## Files Changed
|
||||
|
||||
| File | Change |
|
||||
|------|--------|
|
||||
| `src/shared/EnvManager.ts` | NEW: Centralized credential storage and isolated env builder |
|
||||
| `src/services/worker/SDKAgent.ts` | Pass isolated env to SDK `query()` |
|
||||
| `src/services/worker/GeminiAgent.ts` | Use `getCredential()` instead of `process.env` |
|
||||
| `src/services/worker/OpenRouterAgent.ts` | Use `getCredential()` instead of `process.env` |
|
||||
| `src/shared/SettingsDefaultsManager.ts` | Add `CLAUDE_MEM_CLAUDE_AUTH_METHOD` setting |
|
||||
|
||||
## Dependencies
|
||||
|
||||
- **None** - This is a foundation PR
|
||||
|
||||
## Tasks
|
||||
|
||||
- [x] Checkout PR branch `fix/isolated-credentials-733` and rebase onto main to resolve conflicts
|
||||
- ✓ Resolved 4 conflicts (3 build artifacts, 1 source file)
|
||||
- ✓ Merged both main's zombie process cleanup and PR's isolated credentials into SDKAgent.ts
|
||||
- ✓ Commit 006ff401 now sits on top of main (aedee33c)
|
||||
- [ ] Review `EnvManager.ts` implementation for security and correctness
|
||||
- [ ] Verify build succeeds after rebase
|
||||
- [ ] Run test suite to ensure no regressions
|
||||
- [ ] Merge PR #745 to main with admin override if needed
|
||||
- [ ] Verify auth method shows "Claude Code CLI (subscription billing)" in logs after merge
|
||||
|
||||
## Verification
|
||||
|
||||
```bash
|
||||
# After merge, check logs for correct auth method
|
||||
grep -i "authMethod" ~/.claude-mem/logs/*.log | tail -5
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- This PR creates the `EnvManager.ts` module that PR #847 depends on
|
||||
- The isolated env approach ensures SDK subprocess never sees random API keys from parent process
|
||||
- If no `ANTHROPIC_API_KEY` is in `~/.claude-mem/.env`, Claude Code CLI billing is used (default)
|
||||
Reference in New Issue
Block a user