Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
813 commits
Select commit Hold shift + click to select a range
16286ab
🪟 feat(ci): add cross-platform matrix builds for Windows/macOS/Linux
mpfaffenberger Oct 19, 2025
ec6d34b
🔥 refactor(integration): require environment vars, eliminate skipifs
mpfaffenberger Oct 19, 2025
a89519f
🐛 debug(ci): add secret debugging for integration tests
mpfaffenberger Oct 19, 2025
7d53da1
♻️ refactor(ci): consolidate test steps, move env vars before tests
mpfaffenberger Oct 19, 2025
faf4e3d
Remove tests from ci.yml
mpfaffenberger Oct 19, 2025
500f4a5
⚡ refactor(git): remove pre-push pytest hook from lefthook
mpfaffenberger Oct 19, 2025
d23f980
feat: enable integration tests on Windows
mpfaffenberger Oct 19, 2025
240e973
fix: guard Windows pexpect backend availability
mpfaffenberger Oct 19, 2025
12cf894
chore: add pywinpty Windows dependency
mpfaffenberger Oct 19, 2025
dd182ef
Win compat on test harness
mpfaffenberger Oct 19, 2025
087c55a
Revert "Win compat on test harness"
mpfaffenberger Oct 19, 2025
5956098
Revert "chore: add pywinpty Windows dependency"
mpfaffenberger Oct 19, 2025
ff028ba
Revert "fix: guard Windows pexpect backend availability"
mpfaffenberger Oct 19, 2025
80b7236
Revert "feat: enable integration tests on Windows"
mpfaffenberger Oct 19, 2025
8da443f
build: pin ripgrep dependency to exact version 14.1.0
mpfaffenberger Oct 20, 2025
79340b4
ci: disable integration tests and remove pexpect dependencies
mpfaffenberger Oct 20, 2025
30c3649
ci: streamline matrix builds - only Ubuntu/macOS with Python 3.13
mpfaffenberger Oct 20, 2025
309eeaa
ci: install pexpect inline for integration test compatibility
mpfaffenberger Oct 20, 2025
9a4be67
chore: bump version [ci skip]
github-actions[bot] Oct 20, 2025
71d9807
- Standardize agent permissions: remove edit_file from code-reviewer,…
diegonix Oct 20, 2025
6601fe0
chore: bump version [ci skip]
github-actions[bot] Oct 20, 2025
6161df7
style: apply automated linting and code formatting
mpfaffenberger Oct 20, 2025
7d67c0f
chore: bump version [ci skip]
github-actions[bot] Oct 20, 2025
ddb725c
feat(ci): re-enable integration tests and enhance PR workflow
mpfaffenberger Oct 21, 2025
611eaf2
fix(ci): resolve integration test timeouts in CI environment
mpfaffenberger Oct 21, 2025
ffb95df
fix(ci): skip flaky integration tests in CI environment
mpfaffenberger Oct 21, 2025
5a3ac4f
fix(ci): skip flaky MCP integration test in CI
mpfaffenberger Oct 21, 2025
85376ce
chore: bump version [ci skip]
github-actions[bot] Oct 21, 2025
27a1e1b
fix(integration): remove CI skips and fix timeout issues
mpfaffenberger Oct 21, 2025
0c823cf
fix(integration): handle Ubuntu CI filesystem timing issues
mpfaffenberger Oct 22, 2025
79a92b5
chore: bump version [ci skip]
github-actions[bot] Oct 22, 2025
3d520b8
feat: Adding edit file permission feature (#45)
cgycorey Oct 22, 2025
5dd6c64
style: format code with consistent whitespace and remove unused imports
mpfaffenberger Oct 22, 2025
3775cab
feat: add configurable diff highlighting with intelligent color pairs
mpfaffenberger Oct 22, 2025
9e6f99c
refactor: improve code formatting and consistency across multiple mod…
mpfaffenberger Oct 22, 2025
b84ff30
feat: add manual autosave session loading command
mpfaffenberger Oct 22, 2025
1a8c97e
feat: add diff command configuration hint
mpfaffenberger Oct 22, 2025
8d703eb
test: fix autosave integration tests by adding explicit triggers
mpfaffenberger Oct 22, 2025
23c1ee0
chore: bump version [ci skip]
github-actions[bot] Oct 22, 2025
d056651
Fix UV Python version management - always use latest compatible Python
mpfaffenberger Oct 24, 2025
e477bc9
Simplify UV installation - just export UV_MANAGED_PYTHON=1
mpfaffenberger Oct 24, 2025
db4df25
build: configure uv to use only managed Python installations
mpfaffenberger Oct 24, 2025
be12bad
Update requires-python to exclude versions greater than 3.13
mpfaffenberger Oct 24, 2025
9efc842
chore: bump version [ci skip]
github-actions[bot] Oct 24, 2025
c3ed68c
fix: race condition between automatic summarization and pending tool …
diegonix Oct 25, 2025
4621a98
chore: bump version [ci skip]
github-actions[bot] Oct 25, 2025
b9ed692
add context diff line config (#65)
cgycorey Oct 25, 2025
942b203
chore: bump version [ci skip]
github-actions[bot] Oct 25, 2025
53aed30
feat: add customizable markdown commands plugin
mpfaffenberger Oct 25, 2025
07ecc53
chore: bump version [ci skip]
github-actions[bot] Oct 25, 2025
231301c
fix: restore autosave functionality by moving autosave calls outside …
mpfaffenberger Oct 25, 2025
e27ceaa
feat: add auto_save_session configuration option and display
mpfaffenberger Oct 25, 2025
90908d1
chore: bump version [ci skip]
github-actions[bot] Oct 25, 2025
8409841
adding planning agent (#66)
cgycorey Oct 25, 2025
1e8c0f7
chore: bump version [ci skip]
github-actions[bot] Oct 25, 2025
e02fc50
feat: add Claude Code OAuth plugin with automatic model discovery
mpfaffenberger Oct 25, 2025
560106f
feat: add ChatGPT OAuth plugin for automatic model discovery and auth…
mpfaffenberger Oct 25, 2025
e83cab4
feat: implement clean task cancellation for agent operations
mpfaffenberger Oct 26, 2025
820e094
refactor: simplify ChatGPT OAuth flow and consolidate HTML templates
mpfaffenberger Oct 26, 2025
3a7513c
test: update test to handle tuple return from run_prompt_with_attachm…
mpfaffenberger Oct 26, 2025
ce35618
chore: bump version [ci skip]
github-actions[bot] Oct 26, 2025
8713cdf
feat: add Claude Code OAuth integration support
mpfaffenberger Oct 26, 2025
323d891
feat: enhance Claude Code agent handling with dedicated prompt
mpfaffenberger Oct 26, 2025
09006e5
chore: bump version [ci skip]
github-actions[bot] Oct 26, 2025
83fa181
feat: overwrite claude_models.json on every auth instead of accumulating
mpfaffenberger Oct 26, 2025
f22bc4d
browser: defer Camoufox imports and add Playwright fallback to avoid …
Oct 26, 2025
aa227b7
Merge remote-tracking branch 'origin/main'
mpfaffenberger Oct 26, 2025
96edd2c
chore: bump version [ci skip]
github-actions[bot] Oct 26, 2025
fc2c914
Improve planning agent prompt and code puppy (#67)
cgycorey Oct 26, 2025
71a211b
test: improve agent tools test by mocking yolo mode
mpfaffenberger Oct 26, 2025
693c584
chore: bump version [ci skip]
github-actions[bot] Oct 26, 2025
61b5c3b
feat: add synthetic-MiniMax-M2 model configuration
mpfaffenberger Oct 27, 2025
e76ca16
chore: bump version [ci skip]
github-actions[bot] Oct 27, 2025
178ab62
Adds codex API
mpfaffenberger Oct 27, 2025
e39787f
chore: bump version [ci skip]
github-actions[bot] Oct 27, 2025
e518675
Fix typo
mpfaffenberger Oct 27, 2025
19bddb0
Merge remote-tracking branch 'origin/main'
mpfaffenberger Oct 27, 2025
de067d7
chore: bump version [ci skip]
github-actions[bot] Oct 27, 2025
f5fcf89
feat: replace Cerebras-Qwen3-Coder with Cerebras-GLM-4.6 model
mpfaffenberger Oct 31, 2025
19c285b
Merge remote-tracking branch 'origin/main'
mpfaffenberger Oct 31, 2025
5153aad
Fix round robin integration test assertion
mpfaffenberger Oct 31, 2025
09516ba
ci: limit publishing workflow to macOS only
mpfaffenberger Oct 31, 2025
28a867f
chore: bump version [ci skip]
github-actions[bot] Oct 31, 2025
7d3e48e
let execute plan trigger be less strict (#75)
cgycorey Oct 31, 2025
5ca1706
chore: bump version [ci skip]
github-actions[bot] Nov 1, 2025
d6963c2
fix: convert agent invocation to async and improve error handling
mpfaffenberger Nov 1, 2025
df2fb45
chore: bump version [ci skip]
github-actions[bot] Nov 1, 2025
992af2e
change prompt for qa (#79)
cgycorey Nov 2, 2025
e2a14a0
chore: bump version [ci skip]
github-actions[bot] Nov 2, 2025
d3aae8f
TUI Changes, --model flag added, API config and loading & Cleanup (#81)
janfeddersen-wq Nov 2, 2025
b170ab0
Revert "TUI Changes, --model flag added, API config and loading & Cle…
mpfaffenberger Nov 2, 2025
059b392
feat: add configurable default agent and model selection
mpfaffenberger Nov 2, 2025
7f37250
refactor: reduce console spam by removing verbose initialization mess…
mpfaffenberger Nov 2, 2025
40fdb52
ci: add SYN_API_KEY to CI and publish workflows
mpfaffenberger Nov 2, 2025
f5c2d35
chore: bump version [ci skip]
github-actions[bot] Nov 2, 2025
468fbb8
TUI Changes (#82)
janfeddersen-wq Nov 2, 2025
f955aff
chore: bump version [ci skip]
github-actions[bot] Nov 2, 2025
bee9cf1
Theme update (#83)
janfeddersen-wq Nov 2, 2025
29a1cb5
chore: bump version [ci skip]
github-actions[bot] Nov 2, 2025
100f581
feat: add escape key support for cancelling shell commands
mpfaffenberger Nov 2, 2025
fda4238
feat: improve agent cancellation with subagent task cleanup
mpfaffenberger Nov 2, 2025
a21b455
feat: add workflow cancellation support for subagent tasks
mpfaffenberger Nov 3, 2025
5bd9ab6
chore: bump version [ci skip]
github-actions[bot] Nov 3, 2025
7daa41b
feat: enhance startup experience with pyfiglet banner and improved RE…
mpfaffenberger Nov 3, 2025
b388ad8
docs: update README with new branding and download statistics
mpfaffenberger Nov 3, 2025
f06ccc0
chore: bump version [ci skip]
github-actions[bot] Nov 3, 2025
5a56816
refactor: improve logo display conditions in interactive mode
mpfaffenberger Nov 3, 2025
766cf1d
chore: bump version [ci skip]
github-actions[bot] Nov 3, 2025
7e614a8
feat: add Cerebras-Qwen3-Coder-480b model configuration
mpfaffenberger Nov 3, 2025
e76a7ae
chore: bump version [ci skip]
github-actions[bot] Nov 3, 2025
151b8fd
Append Unix timestamp to DBOS app version (#84)
qianl15 Nov 3, 2025
0e9b6a2
chore: bump version [ci skip]
github-actions[bot] Nov 3, 2025
eb8cd65
feat: enhance user interface with privacy commitment and visual impro…
mpfaffenberger Nov 3, 2025
6b14f7a
style: improve code formatting in interactive mode
mpfaffenberger Nov 3, 2025
3dea2ec
chore: bump version [ci skip]
github-actions[bot] Nov 3, 2025
1391cbe
Remove agent building statement from README
mpfaffenberger Nov 3, 2025
d306fdd
Fix context len for qwen3
mpfaffenberger Nov 3, 2025
c9974b8
chore: bump version [ci skip]
github-actions[bot] Nov 3, 2025
b8a08fa
refactor: optimize intro gradient rendering with batch processing
mpfaffenberger Nov 3, 2025
d2ea020
chore: bump version [ci skip]
github-actions[bot] Nov 3, 2025
c382b83
feat: add persistent session management for subagent conversations
mpfaffenberger Nov 5, 2025
92bce9c
chore: bump version [ci skip]
github-actions[bot] Nov 5, 2025
903adc0
feat: enhance agent invocation with improved session management
mpfaffenberger Nov 5, 2025
0fc283f
chore: bump version [ci skip]
github-actions[bot] Nov 5, 2025
a0e4680
feat: add synthetic-Kimi-K2-Thinking model configuration
mpfaffenberger Nov 7, 2025
5a34bc8
chore: bump version [ci skip]
github-actions[bot] Nov 7, 2025
330be38
feat: update model configurations and add new OpenRouter Polaris model
mpfaffenberger Nov 8, 2025
eebfa96
Merge remote-tracking branch 'origin/main'
mpfaffenberger Nov 8, 2025
47c42cb
chore: bump version [ci skip]
github-actions[bot] Nov 8, 2025
42ae90f
feat: enable message history accumulation in agent registration
mpfaffenberger Nov 8, 2025
2f4768e
chore: bump version [ci skip]
github-actions[bot] Nov 8, 2025
693a966
small change to remove hanging (#87)
cgycorey Nov 9, 2025
ca6ba77
refactor: Split slash commands into modules with registry system (#95)
cdakotabrown Nov 9, 2025
f147562
test: update integration tests to use Cerebras-GLM-4.6 model
mpfaffenberger Nov 9, 2025
d9abf44
feat: enhance user approval system with interactive feedback and impr…
mpfaffenberger Nov 9, 2025
7246a54
feat: add interactive model picker with arrow-key navigation
mpfaffenberger Nov 9, 2025
0f283bf
test: update test fixtures and remove integration tests
mpfaffenberger Nov 9, 2025
fd70114
chore: bump version [ci skip]
github-actions[bot] Nov 9, 2025
7a745c8
fix: improve Windows terminal handling and error resilience
mpfaffenberger Nov 9, 2025
0632568
fix: improve Windows terminal state handling and spinner cleanup
mpfaffenberger Nov 9, 2025
625ac8c
fix: use taskkill for Windows process termination and clear spinner a…
mpfaffenberger Nov 9, 2025
640dd39
fix: change Rich Live display from transient=False and add console st…
mpfaffenberger Nov 9, 2025
f6bbdf6
docs: update version badge to use PyPI version shield (#98)
cellwebb Nov 10, 2025
57b4927
Remove reset_shell_state function
mpfaffenberger Nov 10, 2025
65ed1e3
docs: update version badge to use PyPI version shield (#98)
cellwebb Nov 10, 2025
33892f1
Merge remote-tracking branch 'origin/main'
mpfaffenberger Nov 10, 2025
890184a
refactor: remove redundant sys imports from common.py
mpfaffenberger Nov 10, 2025
7bbea98
chore: bump version [ci skip]
github-actions[bot] Nov 10, 2025
f78e94e
feat: add tab completion for /pin_model command (#99)
cellwebb Nov 10, 2025
a4574c9
chore: bump version [ci skip]
github-actions[bot] Nov 10, 2025
0e285d4
build: remove pnpm check from pre-commit hook (#101)
cellwebb Nov 10, 2025
8c0f59a
chore: bump version [ci skip]
github-actions[bot] Nov 10, 2025
764a06a
feat: add cache control injection for Claude Code API
mpfaffenberger Nov 11, 2025
8cb4455
chore: bump version [ci skip]
github-actions[bot] Nov 11, 2025
674fa30
prompt reviewer (#104)
cgycorey Nov 11, 2025
7793ced
feat: Implement unified slash command completion system with spacing,…
cellwebb Nov 11, 2025
da71cf9
feat: Add tab completion for /m and /mcp commands (#105)
cellwebb Nov 11, 2025
2da2610
feat: improve command completion UX and model handling
mpfaffenberger Nov 12, 2025
f467768
chore: bump version [ci skip]
github-actions[bot] Nov 12, 2025
18f2954
feat: add interactive TUI menus for autosave loading and diff configu…
mpfaffenberger Nov 12, 2025
a3f195a
fix: improve autosave loading compatibility for non-TTY environments
mpfaffenberger Nov 13, 2025
a610780
chore: bump version [ci skip]
github-actions[bot] Nov 13, 2025
665583f
chore: remove pre-commit configuration (#106)
cellwebb Nov 13, 2025
c8c3ca9
chore: bump version [ci skip]
github-actions[bot] Nov 13, 2025
2f8026a
feat: add interactive agent picker with preview functionality
mpfaffenberger Nov 13, 2025
89c4db0
Merge remote-tracking branch 'origin/main'
mpfaffenberger Nov 13, 2025
057339e
feat: add AI-powered shell command safety checking plugin
mpfaffenberger Nov 14, 2025
8df7a93
test: increase timeout and sleep durations in session rotation test
mpfaffenberger Nov 14, 2025
0dac824
chore: bump version [ci skip]
github-actions[bot] Nov 14, 2025
f36530d
feat: add async version of user approval function
mpfaffenberger Nov 14, 2025
7226baf
Merge remote-tracking branch 'origin/main'
mpfaffenberger Nov 14, 2025
7ff9c0b
feat: enhance model management with latest Claude/GPT models and impr…
cellwebb Nov 14, 2025
e44d33d
Update pyproject.toml
mpfaffenberger Nov 14, 2025
0ecf008
chore: bump version [ci skip]
github-actions[bot] Nov 14, 2025
0d20de6
feat: add support for gpt-5.1-codex-api model
mpfaffenberger Nov 14, 2025
59de5da
refactor: simplify codex model detection with substring check
mpfaffenberger Nov 14, 2025
779f161
chore: bump version [ci skip]
github-actions[bot] Nov 14, 2025
147c587
feat: add proxy support with network traffic monitoring
mpfaffenberger Nov 16, 2025
cca1eb3
chore: bump version [ci skip]
github-actions[bot] Nov 16, 2025
52a43a4
refactor: consolidate diff formatting logic into common utilities
mpfaffenberger Nov 16, 2025
3878055
feat: add full syntax highlighting for diffs with Pygments
mpfaffenberger Nov 16, 2025
f3a9a24
refactor: enhance diff preview with true ANSI color rendering
mpfaffenberger Nov 16, 2025
9339566
refactor: remove text diff mode and simplify color configuration
mpfaffenberger Nov 17, 2025
28b39f2
chore: bump version [ci skip]
github-actions[bot] Nov 17, 2025
fe9f177
feat: add language cycling to diff preview and clean up context lines
mpfaffenberger Nov 17, 2025
22c5867
chore: bump version [ci skip]
github-actions[bot] Nov 17, 2025
59de23c
Add Gemini 3
mpfaffenberger Nov 18, 2025
7700e27
chore: bump version [ci skip]
github-actions[bot] Nov 18, 2025
ffff5b2
feat: add case-insensitive command and model matching (#115)
cellwebb Nov 19, 2025
12bc812
refactor: remove TUI mode and simplify to interactive-only interface
mpfaffenberger Nov 21, 2025
ce5a5c1
Revert "refactor: remove TUI mode and simplify to interactive-only in…
mpfaffenberger Nov 21, 2025
d06b146
Raise coverage
mpfaffenberger Nov 22, 2025
8a8f82e
Raise coverage
mpfaffenberger Nov 23, 2025
593a13d
test: remove flaky and unreliable test cases
mpfaffenberger Nov 23, 2025
a5be200
chore: bump version [ci skip]
github-actions[bot] Nov 23, 2025
a60a8ab
refactor: remove TUI mode and related components
mpfaffenberger Nov 23, 2025
271776e
build: remove unused dependencies from pyproject.toml
mpfaffenberger Nov 23, 2025
8e277bd
Add json-repair dependency version 0.46.2
mpfaffenberger Nov 24, 2025
ecb90ea
refactor: remove deprecated TUI components and improve file operations
mpfaffenberger Nov 25, 2025
52d8ad9
style: standardize string quotes usage across codebase
mpfaffenberger Nov 25, 2025
6685302
chore: bump version [ci skip]
github-actions[bot] Nov 25, 2025
5924dcb
feat: integrate models.dev API for interactive model browsing and add…
mpfaffenberger Nov 27, 2025
d99cba8
refactor: improve code formatting and readability across model manage…
mpfaffenberger Nov 27, 2025
bb763a2
chore: bump version [ci skip]
github-actions[bot] Nov 27, 2025
15baae5
Add a fix for UTF-8 encoding issues with emojis
mpfaffenberger Nov 27, 2025
724a52a
Add temperature handling
mpfaffenberger Nov 27, 2025
5b0970a
Fix 5 failing tests
mpfaffenberger Nov 27, 2025
63d6470
chore: bump version [ci skip]
github-actions[bot] Nov 27, 2025
ff31a35
Add temperature to /show command output
mpfaffenberger Nov 27, 2025
0414f97
chore: bump version [ci skip]
github-actions[bot] Nov 27, 2025
176eeb8
feat: add per-model settings configuration with interactive TUI
mpfaffenberger Nov 27, 2025
5a95f7e
chore: bump version [ci skip]
github-actions[bot] Nov 27, 2025
d77437e
feat: add model-specific settings support for GPT-5 and Claude models
mpfaffenberger Nov 28, 2025
0bbd46a
feat: reload agent when config values are updated
mpfaffenberger Nov 28, 2025
3586bb5
test: remove test for unknown part_kind warning behavior
mpfaffenberger Nov 28, 2025
d84f508
chore: bump version [ci skip]
github-actions[bot] Nov 28, 2025
7575429
Update backend execution instructions in CEREBRAS.md
mpfaffenberger Nov 28, 2025
3429514
chore: bump version [ci skip]
github-actions[bot] Nov 28, 2025
b9f9742
feat: add custom model support in add model menu
mpfaffenberger Nov 29, 2025
2208459
Merge remote-tracking branch 'origin/main'
mpfaffenberger Nov 29, 2025
36d9e2a
test: add mock prepare_request method to round robin test fixtures
mpfaffenberger Nov 29, 2025
3046449
chore: bump version [ci skip]
github-actions[bot] Nov 29, 2025
12616a7
fix: ensure unique DBOS workflow IDs to prevent collisions in rapid s…
mpfaffenberger Nov 29, 2025
8c4499a
chore: bump version [ci skip]
github-actions[bot] Nov 29, 2025
957d552
refactor: remove verbose logging for loaded custom commands
mpfaffenberger Nov 30, 2025
8b9d0f4
chore: bump version [ci skip]
github-actions[bot] Nov 30, 2025
83f387f
feat: add interactive TUI browser for MCP server installation
mpfaffenberger Nov 30, 2025
f9e8aff
chore: bump version [ci skip]
github-actions[bot] Nov 30, 2025
654acfc
fix: some terminals throw an error on emojis in grep tool in windows
mpfaffenberger Nov 30, 2025
9b04f8c
chore: bump version [ci skip]
github-actions[bot] Nov 30, 2025
538af94
feat: add MCP server editing and improve token estimation with claude…
mpfaffenberger Nov 30, 2025
451dd5e
chore: bump version [ci skip]
github-actions[bot] Nov 30, 2025
507cb6f
fix: ensure autosave captures final assistant response
mpfaffenberger Dec 1, 2025
505456b
chore: bump version [ci skip]
github-actions[bot] Dec 1, 2025
936bf50
fix: remove None from risk level type annotation (#120)
cellwebb Dec 1, 2025
f217b55
chore: bump version [ci skip]
github-actions[bot] Dec 1, 2025
d437190
feat: Include AGENT(S).md in subagent instructions (#125)
cellwebb Dec 6, 2025
79463c0
Performance: Add Caching Layer to Shell Safety Callback System (#122)
cellwebb Dec 6, 2025
db27d1b
chore: bump version to 0.0.289
mpfaffenberger Dec 6, 2025
e8fddb6
chore: bump version [ci skip]
github-actions[bot] Dec 6, 2025
3f8c4dc
feat: add comprehensive error logging system with file-based debugging
mpfaffenberger Dec 6, 2025
6e79cba
chore: bump version [ci skip]
github-actions[bot] Dec 6, 2025
6d549d4
Add the possibilty to user an alternative command for interrupting ag…
arnonuem Dec 6, 2025
ae53bf1
feat: improve agent session management with automatic hash suffixes
mpfaffenberger Dec 6, 2025
387a60d
test: update tests to use pathlib.Path.read_text instead of builtins.…
mpfaffenberger Dec 6, 2025
05891bd
chore: bump version [ci skip]
github-actions[bot] Dec 6, 2025
b8af086
fix: stdio server name error
mpfaffenberger Dec 6, 2025
1183724
chore: bump version [ci skip]
github-actions[bot] Dec 6, 2025
71856b8
feat: Add /switch command to change agents while preserving context
thedaneeffect Dec 7, 2025
459fab6
test: Add comprehensive tests for /switch command
thedaneeffect Dec 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions .env

This file was deleted.

28 changes: 28 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Code Puppy API Keys Configuration
# Copy this file to .env and fill in your API keys
# The .env file takes priority over ~/.code_puppy/puppy.cfg

# OpenAI API Key
# OPENAI_API_KEY=sk-...

# Google Gemini API Key
# GEMINI_API_KEY=...

# Anthropic (Claude) API Key
# ANTHROPIC_API_KEY=...

# Cerebras API Key
# CEREBRAS_API_KEY=...

# OpenRouter API Key
# OPENROUTER_API_KEY=...

# Z.ai API Key
# ZAI_API_KEY=...

# Azure OpenAI
# AZURE_OPENAI_API_KEY=...
# AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/

# Synthetic AI API Key
# SYN_API_KEY=...
91 changes: 91 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Quality Checks

on:
pull_request:
branches:
- '**'

jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ['3.13']
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
run: pip install uv

- name: Setup uv virtual environment
run: uv venv

- name: Install dependencies
run: uv pip install -e .

- name: Install pexpect for integration tests
run: uv pip install pexpect>=4.9.0

- name: Debug environment variables
env:
CEREBRAS_API_KEY: ${{ secrets.CEREBRAS_API_KEY || 'fake-key-for-ci-testing' }}
CONTEXT7_API_KEY: ${{ secrets.CONTEXT7_API_KEY || 'fake-key-for-ci-testing' }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY || 'fake-key-for-ci-testing' }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY || 'fake-key-for-ci-testing' }}
SYN_API_KEY: ${{ secrets.SYN_API_KEY || 'fake-key-for-ci-testing' }}
run: |
echo "=== DEBUG: Environment Variables ==="
echo "CEREBRAS_API_KEY is set: ${{ secrets.CEREBRAS_API_KEY != '' }}"
echo "CONTEXT7_API_KEY is set: ${{ secrets.CONTEXT7_API_KEY != '' }}"
echo "OPENAI_API_KEY is set: ${{ secrets.OPENAI_API_KEY != '' }}"
echo "ANTHROPIC_API_KEY is set: ${{ secrets.ANTHROPIC_API_KEY != '' }}"
echo "SYN_API_KEY is set: ${{ secrets.SYN_API_KEY != '' }}"
echo "CEREBRAS_API_KEY length: ${#CEREBRAS_API_KEY}"
echo "CONTEXT7_API_KEY length: ${#CONTEXT7_API_KEY}"
echo "OPENAI_API_KEY length: ${#OPENAI_API_KEY}"
echo "ANTHROPIC_API_KEY length: ${#ANTHROPIC_API_KEY}"
echo "SYN_API_KEY length: ${#SYN_API_KEY}"
echo "=== END DEBUG ==="

- name: Run tests
env:
CEREBRAS_API_KEY: ${{ secrets.CEREBRAS_API_KEY || 'fake-key-for-ci-testing' }}
CONTEXT7_API_KEY: ${{ secrets.CONTEXT7_API_KEY || 'fake-key-for-ci-testing' }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY || 'fake-key-for-ci-testing' }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY || 'fake-key-for-ci-testing' }}
SYN_API_KEY: ${{ secrets.SYN_API_KEY || 'fake-key-for-ci-testing' }}
run: |
echo "Running all tests (including integration tests) on ${{ runner.os }} with Python ${{ matrix.python-version }}..."
echo "Required environment variables are set (using CI fallbacks if secrets not available)"
uv run pytest tests/ -v --cov=code_puppy --cov-report=term-missing

quality:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Python 3.13
uses: actions/setup-python@v5
with:
python-version: '3.13'

- name: Install dev dependencies (ruff)
run: pip install ruff

- name: Install code_puppy
run: pip install .

- name: Lint with ruff
run: ruff check .

- name: Check formatting with ruff
run: ruff format --check .
68 changes: 66 additions & 2 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,82 @@ on:
- main

jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest]
python-version: ['3.13']
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install uv
run: pip install uv

- name: Setup uv virtual environment
run: uv venv

- name: Install dependencies
run: uv pip install -e .

- name: Install pexpect for integration tests
run: uv pip install pexpect>=4.9.0



- name: Debug environment variables
env:
CEREBRAS_API_KEY: ${{ secrets.CEREBRAS_API_KEY || 'fake-key-for-ci-testing' }}
CONTEXT7_API_KEY: ${{ secrets.CONTEXT7_API_KEY || 'fake-key-for-ci-testing' }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY || 'fake-key-for-ci-testing' }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY || 'fake-key-for-ci-testing' }}
SYN_API_KEY: ${{ secrets.SYN_API_KEY || 'fake-key-for-ci-testing' }}
run: |
echo "=== DEBUG: Environment Variables ==="
echo "CEREBRAS_API_KEY is set: ${{ secrets.CEREBRAS_API_KEY != '' }}"
echo "CONTEXT7_API_KEY is set: ${{ secrets.CONTEXT7_API_KEY != '' }}"
echo "OPENAI_API_KEY is set: ${{ secrets.OPENAI_API_KEY != '' }}"
echo "ANTHROPIC_API_KEY is set: ${{ secrets.ANTHROPIC_API_KEY != '' }}"
echo "SYN_API_KEY is set: ${{ secrets.SYN_API_KEY != '' }}"
echo "CEREBRAS_API_KEY length: ${#CEREBRAS_API_KEY}"
echo "CONTEXT7_API_KEY length: ${#CONTEXT7_API_KEY}"
echo "OPENAI_API_KEY length: ${#OPENAI_API_KEY}"
echo "ANTHROPIC_API_KEY length: ${#ANTHROPIC_API_KEY}"
echo "SYN_API_KEY length: ${#SYN_API_KEY}"
echo "=== END DEBUG ==="

- name: Run tests
env:
CEREBRAS_API_KEY: ${{ secrets.CEREBRAS_API_KEY || 'fake-key-for-ci-testing' }}
CONTEXT7_API_KEY: ${{ secrets.CONTEXT7_API_KEY || 'fake-key-for-ci-testing' }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY || 'fake-key-for-ci-testing' }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY || 'fake-key-for-ci-testing' }}
SYN_API_KEY: ${{ secrets.SYN_API_KEY || 'fake-key-for-ci-testing' }}
run: |
echo "Running all tests (including integration tests) on ${{ runner.os }} with Python ${{ matrix.python-version }}..."
echo "Required environment variables are set (using CI fallbacks if secrets not available)"
uv run pytest tests/ -v --cov=code_puppy --cov-report=term-missing

build-publish:
runs-on: ubuntu-latest
needs: test
permissions:
contents: write # Allows writing to the repository
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Python 3.11
- name: Setup Python 3.13
uses: actions/setup-python@v5
with:
python-version: '3.11'
python-version: '3.13'

- name: Install uv, build, and twine
run: pip install uv build twine
Expand Down
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,17 @@ wheels/
.venv

.coverage

# Session memory
.puppy_session_memory.json

# Pytest cache
.pytest_cache/

dummy_path

.idea/

.DS_Store
.env
.serena/
1 change: 0 additions & 1 deletion .python-version

This file was deleted.

Loading