---
summary: "Fork setup: remote configuration and multi-upstream workflow."
read_when:
  - Setting up fork remotes
  - Syncing with upstreams
---

# Fork Setup & Initial Configuration

**One-time setup for managing your CodexBar fork with multiple upstreams**

---

## 🎯 Quick Setup

### Step 1: Configure Git Remotes

```bash
# Verify your fork is origin
git remote -v
# Should show: origin  git@github.com:topoffunnel/CodexBar.git

# Add upstream (steipete's original)
git remote add upstream https://github.com/steipete/CodexBar.git

# Add quotio (inspiration source)
git remote add quotio https://github.com/nguyenphutrong/quotio.git

# Fetch all remotes
git fetch --all

# Verify setup
git remote -v
# Should show:
# origin    git@github.com:topoffunnel/CodexBar.git (fetch/push)
# upstream  https://github.com/steipete/CodexBar.git (fetch/push)
# quotio    https://github.com/nguyenphutrong/quotio.git (fetch/push)
```

### Step 2: Test Automation Scripts

```bash
# Make scripts executable (if not already)
chmod +x Scripts/*.sh

# Test upstream monitoring
./Scripts/check_upstreams.sh

# Should show:
# - Number of new commits in upstream
# - Number of new commits in quotio
# - File change summary
```

### Step 3: Initial Upstream Review

```bash
# Check what's new in upstream
./Scripts/check_upstreams.sh upstream

# Review changes in detail
./Scripts/review_upstream.sh upstream

# This creates a review branch: upstream-sync/upstream-YYYYMMDD
```

### Step 4: Initial Quotio Analysis

```bash
# Analyze quotio repository
./Scripts/analyze_quotio.sh

# Creates: quotio-analysis-YYYYMMDD.md
# Review the file for interesting patterns
```

---

## ⚠️ Critical Discovery: Upstream Removed Augment

**IMPORTANT:** Upstream (steipete) has removed the Augment provider in recent commits!

```
Files changed:
 .../Providers/Augment/AugmentStatusProbe.swift     | 627 deletions
 Tests/CodexBarTests/AugmentStatusProbeTests.swift  |  88 deletions
```

**This validates our fork strategy:**
- ✅ Your fork preserves Augment support
- ✅ You can continue developing Augment features
- ✅ Upstream changes won't break your Augment work
- ✅ You maintain features important to your users

**Action Required:**
When syncing with upstream, you'll need to:
1. Cherry-pick valuable changes (Vertex AI improvements, bug fixes)
2. **Avoid** merging commits that remove Augment
3. Keep your Augment implementation separate

---

## 🔄 Regular Workflow

### Weekly Upstream Check (Recommended: Monday)

```bash
# Check for new changes
./Scripts/check_upstreams.sh

# If changes found, review them
./Scripts/review_upstream.sh upstream

# Cherry-pick valuable commits (skip Augment removal)
git cherry-pick <commit-hash>

# Test
./Scripts/compile_and_run.sh

# Merge to main
git checkout main
git merge upstream-sync/upstream-$(date +%Y%m%d)
```

### Weekly Quotio Review (Recommended: Thursday)

```bash
# Analyze recent quotio changes
./Scripts/analyze_quotio.sh

# Review specific files of interest
git show quotio/main:path/to/interesting/file.swift

# Document patterns in docs/QUOTIO_ANALYSIS.md
```

---

## 📋 Selective Sync Strategy

### What to Sync from Upstream

✅ **DO sync:**
- Bug fixes (non-Augment)
- Performance improvements
- New provider support (Vertex AI, etc.)
- Documentation improvements
- Test improvements
- Dependency updates

❌ **DON'T sync:**
- Augment provider removal
- Changes that conflict with fork features
- Breaking changes without careful review

### How to Cherry-Pick Selectively

```bash
# Review upstream commits
git log --oneline main..upstream/main

# Example output:
# 001019c style: fix swiftformat violations ✅ SYNC
# e4f1e4c feat(vertex): add token cost tracking ✅ SYNC
# 202efde fix(vertex): disable double-counting ✅ SYNC
# 0c2f888 docs: add Vertex AI documentation ✅ SYNC
# 3c4ca30 feat(vertexai): token cost tracking ✅ SYNC
# abc123d refactor: remove Augment provider ❌ SKIP

# Cherry-pick the good ones
git cherry-pick 001019c
git cherry-pick e4f1e4c
git cherry-pick 202efde
git cherry-pick 0c2f888
git cherry-pick 3c4ca30
# Skip abc123d (Augment removal)
```

---

## 🎨 Quotio Pattern Learning

### Ethical Guidelines

**DO:**
- ✅ Analyze their architecture and patterns
- ✅ Learn from their UX decisions
- ✅ Understand their approach to problems
- ✅ Implement similar concepts independently
- ✅ Credit inspiration in commits

**DON'T:**
- ❌ Copy code verbatim
- ❌ Use their assets or branding
- ❌ Violate their license
- ❌ Claim their work as yours

### Analysis Workflow

```bash
# 1. Fetch latest quotio
git fetch quotio

# 2. Analyze structure
./Scripts/analyze_quotio.sh

# 3. Review specific areas
git show quotio/main:path/to/AccountManager.swift

# 4. Document patterns (not code!)
# Edit docs/QUOTIO_ANALYSIS.md

# 5. Implement independently
# Create feature branch
git checkout -b quotio-inspired/multi-account

# 6. Commit with attribution
git commit -m "feat: multi-account management

Inspired by quotio's account switching pattern:
https://github.com/nguyenphutrong/quotio/...

Implemented independently using CodexBar architecture."
```

---

## 🚀 Contributing to Upstream

### When to Contribute

**Good candidates:**
- Universal bug fixes
- Performance improvements
- Documentation improvements
- Test coverage
- Provider enhancements (non-fork-specific)

**Keep in fork:**
- Augment provider (they removed it)
- Multi-account management (major change)
- Fork branding
- Experimental features

### Contribution Workflow

```bash
# 1. Prepare clean branch from upstream
./Scripts/prepare_upstream_pr.sh fix-cursor-bonus

# 2. Cherry-pick your fix (without fork branding)
git cherry-pick <your-commit-hash>

# 3. Review - ensure no fork-specific code
git diff upstream/main

# 4. Test
make test

# 5. Push to your fork
git push origin upstream-pr/fix-cursor-bonus

# 6. Create PR on GitHub
# Go to: https://github.com/steipete/CodexBar
# Click "New Pull Request"
# Select: base: steipete:main <- compare: topoffunnel:upstream-pr/fix-cursor-bonus

# 7. Link the originating issue in the PR body (see below)
```

### Linking Issues

Every fix PR should reference its originating issue (if there is one) in the PR body:

- For issues in `steipete/CodexBar`, use `Closes #N` when the PR fully resolves the issue or `Refs #N`
  when it only relates to the issue.
- For issues in a contributor fork or another repository, use `Closes owner/repository#N` or
  `Refs owner/repository#N`.

An upstream PR resolves bare `#N` references in `steipete/CodexBar`. Qualify cross-repository references to avoid
linking—or with `Closes`, closing—an unrelated upstream issue with the same number.

Verify the cross-reference renders on the PR page before requesting review, so
contributors can see which issue each fix belongs to.

---

## 🤖 Automated Monitoring

### GitHub Actions Setup

The workflow `.github/workflows/upstream-monitor.yml` will:
- Run Monday and Thursday at 9 AM UTC
- Check for new commits in both upstreams
- Create/update GitHub issue with summary
- Provide links to review changes

**To enable:**
1. Push the workflow file to your fork
2. Enable GitHub Actions in repository settings
3. Issues will be created automatically

**Manual trigger:**
```bash
# Via GitHub UI: Actions → Monitor Upstream Changes → Run workflow
```

---

## 📊 Verification Checklist

After setup, verify:

- [ ] All three remotes configured (origin, upstream, quotio)
- [ ] Scripts are executable
- [ ] `./Scripts/check_upstreams.sh` runs successfully
- [ ] Can create review branch with `./Scripts/review_upstream.sh`
- [ ] Can analyze quotio with `./Scripts/analyze_quotio.sh`
- [ ] GitHub Actions workflow is present
- [ ] Understand Augment removal in upstream
- [ ] Know how to cherry-pick selectively
- [ ] Know when to contribute upstream vs keep in fork

---

## 🔗 Next Steps

1. **Review Current Upstream Changes**
   ```bash
   ./Scripts/review_upstream.sh upstream
   ```

2. **Decide on Sync Strategy**
   - Which commits to cherry-pick?
   - How to handle Augment removal?
   - See `docs/UPSTREAM_STRATEGY.md`

3. **Start Quotio Analysis**
   ```bash
   ./Scripts/analyze_quotio.sh
   # Then edit docs/QUOTIO_ANALYSIS.md
   ```

4. **Update Fork Roadmap**
   - Review `docs/FORK_ROADMAP.md`
   - Adjust based on upstream changes
   - Plan fork-specific features

---

**Setup Complete!** You now have a robust system for managing your fork while learning from multiple sources.
