-
Notifications
You must be signed in to change notification settings - Fork 577
V0.15.0rc #810
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
V0.15.0rc #810
Changes from all commits
Commits
Show all changes
176 commits
Select commit
Hold shift + click to select a range
45f6f17
fix(docker): Pre-install Playwright Chromium browsers for automated t…
Shironex b37a287
fix(docker): Address PR #745 review feedback
Shironex 3ccea7a
fix(docker): Address remaining PR #745 review comments
Shironex aad3ff2
fix(auth): Improve OAuth credential detection and startup warning
Shironex 0aef725
fix(auth): Enhance credential detection logic for OAuth
Shironex 3b361cb
chore: update Codex SDK to version 0.98.0 and add GPT-5.3-Codex model
Shironex 835ffe3
feat: update Claude model to Opus 4.6 and enhance adaptive thinking s…
Shironex f974534
feat: enhance adaptive thinking model support and update UI components
Shironex 220c8e4
feat: add 'dev-server:url-detected' event type to EventType
Shironex 094f080
chore: final dev commit
DhanushSantosh 152cf00
docs: map existing codebase
Shironex ef544e7
docs: initialize project
Shironex a0ea65d
chore: ignore planning docs from version control
Shironex 70fc034
test(01-01): add characterization tests for ConcurrencyManager
Shironex b73ef9f
feat(01-01): extract ConcurrencyManager class from AutoModeService
Shironex c92c8e9
refactor(01-01): wire ConcurrencyManager into AutoModeService
Shironex 3bcdc88
feat(01-03): create TypedEventBus class with tests
Shironex bc9dae0
feat(01-02): extract WorktreeResolver from AutoModeService
Shironex 1eb2820
refactor(01-03): wire TypedEventBus into AutoModeService
Shironex 6029e95
feat(01-02): extract FeatureStateManager from AutoModeService
Shironex 18fd1c6
refactor(01-02): wire WorktreeResolver and FeatureStateManager into A…
Shironex 8387b76
feat(02-01): create PlanApprovalService with timeout and recovery
Shironex 58facb1
test(02-01): add PlanApprovalService tests
Shironex 5dca97d
refactor(02-01): wire PlanApprovalService into AutoModeService
Shironex 2fac438
feat(03-01): create SpecParser module with comprehensive tests
Shironex ec5179e
refactor(03-01): wire SpecParser into AutoModeService
Shironex 25fa6fd
feat(03-02): create AgentExecutor class with core streaming logic
Shironex cbb45b6
test(03-02): add AgentExecutor tests
Shironex 8f245e7
refactor(03-02): wire AgentExecutor into AutoModeService
Shironex e3a1c8c
refactor(03-03): wire runAgent() to delegate to AgentExecutor.execute()
Shironex b24839b
test(03-03): add AgentExecutor execution tests
Shironex 4912d37
fix(03-03): fix type compatibility and cleanup unused imports
Shironex ba45587
feat(04-01): create PipelineOrchestrator with step execution and auto…
Shironex 4f00b41
test(04-01): add PipelineOrchestrator unit tests
Shironex 2e577bb
refactor(04-02): wire PipelineOrchestrator into AutoModeService
Shironex 0cd149f
test(04-02): add PipelineOrchestrator delegation and edge case tests
Shironex 7807255
refactor(04-02): remove duplicated pipeline methods from AutoModeService
Shironex 94a8e09
feat(05-01): create AutoLoopCoordinator with loop lifecycle
Shironex 2aa156e
test(05-01): add AutoLoopCoordinator unit tests
Shironex e0f785a
feat(05-02): create ExecutionService with feature execution lifecycle
Shironex 71a0309
test(05-02): add ExecutionService unit tests
Shironex 18624d1
feat(05-03): create RecoveryService with crash recovery logic
Shironex 828d0a0
test(05-03): add RecoveryService unit tests
Shironex 1b39e25
refactor(05-03): wire coordination services into AutoModeService
Shironex afa6039
refactor(05-03): remove duplicated methods from AutoModeService
Shironex 1a7dd5d
refactor(05-03): wire ExecutionService delegation in AutoModeService
Shironex 0383f85
chore(06-01): create facade types and directory structure
Shironex a048462
feat(06-01): create AutoModeServiceFacade with all 23 methods
Shironex 1b32a6b
chore(06-01): create index.ts with exports
Shironex 071af1b
refactor(06-02): migrate Batch 1 query-only routes to facade pattern
Shironex 31f8afc
refactor(06-02): migrate Batch 2 state change routes to facade pattern
Shironex ade22ef
refactor(06-03): migrate Batch 3 feature lifecycle routes to facade p…
Shironex 7bc1f68
refactor(06-03): migrate Batch 4 complex routes to facade pattern
Shironex 7fd3d61
refactor(06-03): migrate Batch 5 secondary routes and wire router index
Shironex 473f935
refactor(06-04): delete auto-mode-service.ts monolith
Shironex efd4284
refactor(06-04): trim 5 oversized services to under 500 lines
Shironex 43309e3
refactor(06-04): extract types and condense agent-executor/pipeline-o…
Shironex 0ed4494
chore(deps): update lint-staged version and change node-gyp repositor…
Shironex df10bcd
fix: lock file
Shironex 28224e1
fix(facade): wire runAgentFn to AgentExecutor.execute
Shironex 49bdaaa
fix(agent-executor): restore wrench emoji in tool output format
Shironex 63b1a35
fix(facade): pass previousContent to AgentExecutor for pipeline steps
Shironex 7c89923
fix: address PR review issues for auto-mode refactor
Shironex 5ffbfb3
fix(server): Address PR #733 review feedback and fix cross-platform t…
Shironex bcc8542
Fix custom providers not passing model name properly
gsxdsm 0f0f515
feat(auto-mode): implement facade caching and enhance error handling
gsxdsm 0745832
refactor(auto-mode): convert getStatusForProject to async and enhance…
gsxdsm 8542a32
refactor(auto-mode): enhance feature retrieval logic in facade and gl…
gsxdsm c703441
chore: update .gitignore to include new configuration files
Shironex 09507bf
Merge branch 'v0.15.0rc' into feat/new-claude-and-codex-models
Shironex 8ed1356
fix: address PR #757 review comments
Shironex 67ebf8c
Merge pull request #757 from AutoMaker-Org/feat/new-claude-and-codex-…
Shironex ad6ce73
Merge remote-tracking branch 'origin/v0.15.0rc' into feature/bug-star…
Shironex d4f68b6
fix: address PR #747 review comments
Shironex 6f1325f
Merge pull request #747 from AutoMaker-Org/feature/bug-startup-warnin…
Shironex d4439fa
Merge branch 'v0.15.0rc' into fix/docker-playwright-missing-browsers
Shironex 8226699
fix(docker): add @playwright/test to server devDependencies
Shironex a08ba1b
fix: address PR #745 review comments
Shironex 1662c6b
Merge pull request #745 from AutoMaker-Org/fix/docker-playwright-miss…
Shironex a3a5c9e
Merge remote-tracking branch 'upstream/v0.15.0rc' into refactor/auto-…
gsxdsm a935229
fix: enhance error handling in feature creation process
gsxdsm f459b73
fix: update kanban card status handling
gsxdsm 7765a12
Feat: Add z.ai usage tracking
gsxdsm 7d5bc72
Feat: Show Gemini Usage in usage dropdown and mobile sidebar
gsxdsm ac2e8cf
Feat: Add z.ai usage tracking
gsxdsm 41014f6
fix: resolve TypeScript errors after upstream merge
gsxdsm e9802ac
Feat: Add ability to duplicate a feature and duplicate as a child
gsxdsm bea26a6
style: Fix inconsistent indentation in components and imports
gsxdsm eed5e20
fix(agent-service): fallback to effectiveModel when requestedModel is…
gsxdsm 462dbf1
fix: Address code review comments
gsxdsm 434792a
fix: Normalize 'main' branch to __main__ in auto-loop key generation
gsxdsm 0b03e70
fix: Resolve null coalescing, feature verification, and test abort ha…
gsxdsm ab5d6a0
feat: Improve callback safety and remove unnecessary formatting in au…
gsxdsm 67dd628
test: Add mock for getCurrentBranch in pipeline orchestrator tests
gsxdsm 46dd219
Merge pull request #771 from gsxdsm/refactor/auto-mode-service-gsxdsm
gsxdsm 727a7a5
feat: Exclude waiting_approval cards from active running state display
gsxdsm 2805c0e
Merge pull request #775 from gsxdsm/refactor/auto-mode-service-gsxdsm
gsxdsm 416ef3a
feat: Add error handling to auto-mode facade and implement followUp f…
gsxdsm 4a8c6b0
Update feature-state-manager.test.ts
gsxdsm 30fce3f
test: Update task finalization behavior to keep pending tasks in revi…
gsxdsm 381698b
Merge pull request #776 from gsxdsm/fix/claude-weekly-usage
gsxdsm aa940d4
feat: Add task retry logic and improve max turns limit
gsxdsm d5340fd
Update apps/ui/src/components/views/board-view/components/kanban-card…
gsxdsm 8af1b8b
chore: Increase default max turns for agent execution from 20/50 to 100
gsxdsm f06088a
feat: Update maxTurns default from 20 to 100 and format code
gsxdsm 78ec389
Merge remote-tracking branch 'upstream/main' into feat/duplicate-festure
gsxdsm fa799d3
feat: Implement optimistic updates for feature persistence
gsxdsm 57446b4
Merge pull request #778 from gsxdsm/fix/features-completed-too-soon
gsxdsm 44ef208
Merge remote-tracking branch 'upstream/v0.15.0rc' into feat/duplicate…
gsxdsm b9653d6
fix: Strip runtime and state fields when duplicating features
gsxdsm a09a2c7
fix: Address code review feedback and fix lint errors
gsxdsm 98b925b
Merge remote-tracking branch 'upstream/v0.15.0rc' into patchcraft
DhanushSantosh b5ad77b
feat: Add feature state reconciliation on server startup
gsxdsm f7b3f75
feat: Add path validation and security improvements to worktree routes
gsxdsm dee770c
refactor: Consolidate global settings fetching to avoid duplicate calls
gsxdsm efcdd84
fix: Add 'ready' status to FeatureStatusWithPipeline type union
gsxdsm 7e84591
Merge pull request #774 from gsxdsm/feat/duplicate-festure
gsxdsm 06ef4f8
Merge pull request #781 from gsxdsm/fix/improve-restart-recovery
gsxdsm 8bb1063
Merge remote-tracking branch 'upstream/v0.15.0rc' into feat/add-zai-u…
gsxdsm de021f9
fix: Remove unused vars and improve type safety. Improve task recovery
gsxdsm 7fcf3c1
feat: Mobile improvements and Add selective file staging and improve …
gsxdsm cb44f8a
Comprehensive set of mobile and all improvements phase 1
gsxdsm 1df778a
chore: Add PageTransitionEvent and APP_BUILD_HASH to eslint globals
gsxdsm c7f515a
feat: Add auto-fix for SSH URLs in lockfile before linting
gsxdsm f4e87d4
Update apps/ui/src/styles/global.css
gsxdsm 17a99a0
fix: restrict Linux native bindings install to Linux runners only
DhanushSantosh 9af63bc
refactor: Improve all git operations, add stash support, add improved…
gsxdsm cb99c4b
feat: Replace Select with Popover+Command for branch selection UI
gsxdsm 6b9946d
chore: restore check-sync.sh and DEVELOPMENT_WORKFLOW.md
DhanushSantosh a2d5c1d
Merge remote-tracking branch 'upstream/v0.15.0rc' into patchcraft
DhanushSantosh 627580a
chore: untrack check-sync.sh and DEVELOPMENT_WORKFLOW.md
DhanushSantosh 43c19c7
Update apps/server/src/routes/worktree/routes/discard-changes.ts
gsxdsm dd4c738
fix: Address code review comments
gsxdsm 887e2ea
fix: Correct parsing of git output blocks and improve stash UI access…
gsxdsm bddf1a4
fix: Handle staged-new files correctly in discard changes
gsxdsm 854ba6e
fix: Add symlink validation to prevent path traversal attacks
gsxdsm 13261b7
Update apps/ui/src/components/dialogs/project-file-selector-dialog.tsx
gsxdsm 829c161
Update apps/ui/src/components/views/board-view/dialogs/discard-worktr…
gsxdsm e6e04d5
Update apps/ui/src/components/views/board-view/worktree-panel/worktre…
gsxdsm d30296d
feat: Add git log parsing and rebase endpoint with input validation
gsxdsm 00f9891
Merge pull request #783 from DhanushSantosh/patchcraft
DhanushSantosh 5c441f2
feat: Add GPT-5 model variants and improve Codex execution logic. Add…
gsxdsm 6903d3c
fix: Standardize event name and import path
gsxdsm df9a631
refactor: Enhance session management and error handling in AgentServi…
gsxdsm 983eb21
feat: Address review comments, add stage/unstage functionality, confl…
gsxdsm 4ba0026
feat: Add conflict resolution event types
gsxdsm 4ee160f
fix: Address review comments
gsxdsm 15ca1eb
feat: Add process abort control and improve auth detection
gsxdsm 2d90793
feat: Add TypeScript type annotation and fix session_id default value
gsxdsm 53d07fe
feat: Fix new branch issues and address code review comments
gsxdsm 205f662
fix: Improve error handling and validation across multiple services
gsxdsm a144a63
fix: Resolve git operation error handling and conflict detection issues
gsxdsm be4153c
fix: Improve error handling and state management in auto-mode and uti…
gsxdsm ae10dea
feat: Add includeUntracked option and improve error handling for stas…
gsxdsm 47bd7a7
Merge pull request #782 from gsxdsm/feat/mobile-improvements
gsxdsm ee52333
chore: refresh lockfile after dependency sync
DhanushSantosh 7df2182
Improve pull request flow, add branch selection for worktree creation…
gsxdsm 0a5540c
Fix concurrency limits and remote branch fetching issues (#788)
gsxdsm 0e020f7
Feature: File Editor (#789)
gsxdsm c81ea76
Feature: Add PR review comments and resolution, improve AI prompt han…
gsxdsm 3ddf26f
Fix: Dev server detection bug fixes. Settings sync bug fixes. Cli pro…
gsxdsm f3edfbf
Fix: Delete Worktree Crash + PR Comments + Dev Server UX Improvements…
gsxdsm f785f12
Changes from fix/pwa-cache-fix (#794)
gsxdsm 28becb1
Fix Docker Compose CORS issues with nginx API proxying (#793)
gsxdsm dfa7190
Changes from fix/manual-crash (#795)
gsxdsm 91bff21
Feature: Git sync, set-tracking, and push divergence handling (#796)
gsxdsm 72cb942
Fix Codex CLI timeout handling and improve CI workflows (#797)
gsxdsm 629fd24
Improve pull request prompt and generation handling (#800)
gsxdsm 1d73291
Fix event hooks not persisting across server syncs (#799)
gsxdsm 2f071a1
Fix deleting worktree crash and improve UX (#798)
gsxdsm 9305ecc
Fix: Restore views properly, model selection for commit and pr and sp…
gsxdsm e7504b2
Add quick-add feature with improved workflows (#802)
gsxdsm 0330c70
Feature: worktree view customization and stability fixes (#805)
gsxdsm 51e9a23
Fix agent output validation to prevent false verified status (#807)
gsxdsm 09a4d3f
fix: Resolve Claude-compatible provider for backlog plan when client …
patrick-patel 6b97219
fix: Add dev-server:url-detected to EventType (#808)
patrick-patel File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,81 @@ | ||
| # AutoModeService Refactoring | ||
|
|
||
| ## What This Is | ||
|
|
||
| A comprehensive refactoring of the `auto-mode-service.ts` file (5k+ lines) into smaller, focused services with clear boundaries. This is an architectural cleanup of accumulated technical debt from rapid development, breaking the "god object" anti-pattern into maintainable, debuggable modules. | ||
|
|
||
| ## Core Value | ||
|
|
||
| All existing auto-mode functionality continues working — features execute, pipelines flow, merges complete — while the codebase becomes maintainable. | ||
|
|
||
| ## Requirements | ||
|
|
||
| ### Validated | ||
|
|
||
| <!-- Existing functionality that must be preserved --> | ||
|
|
||
| - ✓ Single feature execution with AI agent — existing | ||
| - ✓ Concurrent execution with configurable limits — existing | ||
| - ✓ Pipeline orchestration (backlog → in-progress → approval → verified) — existing | ||
| - ✓ Git worktree isolation per feature — existing | ||
| - ✓ Automatic merging of completed work — existing | ||
| - ✓ Custom pipeline support — existing | ||
| - ✓ Test runner integration — existing | ||
| - ✓ Event streaming to frontend — existing | ||
|
|
||
| ### Active | ||
|
|
||
| <!-- Refactoring goals --> | ||
|
|
||
| - [ ] No service file exceeds ~500 lines | ||
| - [ ] Each service has single, clear responsibility | ||
| - [ ] Service boundaries make debugging obvious | ||
| - [ ] Changes to one service don't risk breaking unrelated features | ||
| - [ ] Test coverage for critical paths | ||
|
|
||
| ### Out of Scope | ||
|
|
||
| - New auto-mode features — this is cleanup, not enhancement | ||
| - UI changes — backend refactor only | ||
| - Performance optimization — maintain current performance, don't optimize | ||
| - Other service refactoring — focus on auto-mode-service.ts only | ||
|
|
||
| ## Context | ||
|
|
||
| **Current state:** `apps/server/src/services/auto-mode-service.ts` is ~5700 lines handling: | ||
|
|
||
| - Worktree management (create, cleanup, track) | ||
| - Agent/task execution coordination | ||
| - Concurrency control and queue management | ||
| - Pipeline state machine (column transitions) | ||
| - Merge handling and conflict resolution | ||
| - Event emission for real-time updates | ||
|
|
||
| **Technical environment:** | ||
|
|
||
| - Express 5 backend, TypeScript | ||
| - Event-driven architecture via EventEmitter | ||
| - WebSocket streaming to React frontend | ||
| - Git worktrees via @automaker/git-utils | ||
| - Minimal existing test coverage | ||
|
|
||
| **Codebase analysis:** See `.planning/codebase/` for full architecture, conventions, and existing patterns. | ||
|
|
||
| ## Constraints | ||
|
|
||
| - **Breaking changes**: Acceptable — other parts of the app can be updated to match new service interfaces | ||
| - **Test coverage**: Currently minimal — must add tests during refactoring to catch regressions | ||
| - **Incremental approach**: Required — can't do big-bang rewrite with everything critical | ||
| - **Existing patterns**: Follow conventions in `.planning/codebase/CONVENTIONS.md` | ||
|
|
||
| ## Key Decisions | ||
|
|
||
| | Decision | Rationale | Outcome | | ||
| | ------------------------- | --------------------------------------------------- | --------- | | ||
| | Accept breaking changes | Allows cleaner interfaces, worth the migration cost | — Pending | | ||
| | Add tests during refactor | No existing safety net, need to build one | — Pending | | ||
| | Incremental extraction | Everything is critical, can't break it all at once | — Pending | | ||
|
|
||
| --- | ||
|
|
||
| _Last updated: 2026-01-27 after initialization_ |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Port numbers are duplicated across multiple env vars (PORT and TEST_SERVER_PORT). Define a single variable and reference it to avoid sync issues when changing test ports.