feat(KB-184): change autoMerge default from false to true
- Update DEFAULT_SETTINGS in core types to set autoMerge: true - Update initial state defaults in App and SettingsModal components - Update test fixtures in App, Board, and SettingsModal tests - Update kb-board skill docs to reflect new default - Add minor changeset for the default change
This commit is contained in:
@@ -57,7 +57,7 @@ Settings are in `.kb/config.json`:
|
|||||||
| `maxConcurrent` | Max tasks executing simultaneously | 2 |
|
| `maxConcurrent` | Max tasks executing simultaneously | 2 |
|
||||||
| `maxWorktrees` | Max git worktrees | 4 |
|
| `maxWorktrees` | Max git worktrees | 4 |
|
||||||
| `pollIntervalMs` | Scheduler/triage poll interval | 15000 |
|
| `pollIntervalMs` | Scheduler/triage poll interval | 15000 |
|
||||||
| `autoMerge` | Auto-merge tasks when they reach in-review | false |
|
| `autoMerge` | Auto-merge tasks when they reach in-review | true |
|
||||||
|
|
||||||
## Task storage
|
## Task storage
|
||||||
|
|
||||||
|
|||||||
5
.changeset/auto-merge-default-true.md
Normal file
5
.changeset/auto-merge-default-true.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@dustinbyrne/kb": minor
|
||||||
|
---
|
||||||
|
|
||||||
|
Changed `autoMerge` to default to `true` for new boards.
|
||||||
@@ -159,7 +159,7 @@ export const DEFAULT_SETTINGS: Settings = {
|
|||||||
maxWorktrees: 4,
|
maxWorktrees: 4,
|
||||||
pollIntervalMs: 15000,
|
pollIntervalMs: 15000,
|
||||||
groupOverlappingFiles: false,
|
groupOverlappingFiles: false,
|
||||||
autoMerge: false,
|
autoMerge: true,
|
||||||
worktreeInitCommand: undefined,
|
worktreeInitCommand: undefined,
|
||||||
recycleWorktrees: false,
|
recycleWorktrees: false,
|
||||||
taskPrefix: undefined,
|
taskPrefix: undefined,
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ function AppInner() {
|
|||||||
const [settingsOpen, setSettingsOpen] = useState(false);
|
const [settingsOpen, setSettingsOpen] = useState(false);
|
||||||
const [settingsInitialSection, setSettingsInitialSection] = useState<SectionId | undefined>(undefined);
|
const [settingsInitialSection, setSettingsInitialSection] = useState<SectionId | undefined>(undefined);
|
||||||
const [maxConcurrent, setMaxConcurrent] = useState(2);
|
const [maxConcurrent, setMaxConcurrent] = useState(2);
|
||||||
const [autoMerge, setAutoMerge] = useState(false);
|
const [autoMerge, setAutoMerge] = useState(true);
|
||||||
const [globalPaused, setGlobalPaused] = useState(false);
|
const [globalPaused, setGlobalPaused] = useState(false);
|
||||||
const [enginePaused, setEnginePaused] = useState(false);
|
const [enginePaused, setEnginePaused] = useState(false);
|
||||||
const { tasks, createTask, moveTask, deleteTask, mergeTask, retryTask } = useTasks();
|
const { tasks, createTask, moveTask, deleteTask, mergeTask, retryTask } = useTasks();
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ interface SettingsModalProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function SettingsModal({ onClose, addToast, initialSection }: SettingsModalProps) {
|
export function SettingsModal({ onClose, addToast, initialSection }: SettingsModalProps) {
|
||||||
const [form, setForm] = useState<Settings & { worktreeInitCommand?: string }>({ maxConcurrent: 2, maxWorktrees: 4, pollIntervalMs: 15000, groupOverlappingFiles: false, autoMerge: false, recycleWorktrees: false, includeTaskIdInCommit: true, worktreeInitCommand: "" });
|
const [form, setForm] = useState<Settings & { worktreeInitCommand?: string }>({ maxConcurrent: 2, maxWorktrees: 4, pollIntervalMs: 15000, groupOverlappingFiles: false, autoMerge: true, recycleWorktrees: false, includeTaskIdInCommit: true, worktreeInitCommand: "" });
|
||||||
const [loading, setLoading] = useState(true);
|
const [loading, setLoading] = useState(true);
|
||||||
const [activeSection, setActiveSection] = useState<SectionId>(initialSection ?? SETTINGS_SECTIONS[0].id);
|
const [activeSection, setActiveSection] = useState<SectionId>(initialSection ?? SETTINGS_SECTIONS[0].id);
|
||||||
const [prefixError, setPrefixError] = useState<string | null>(null);
|
const [prefixError, setPrefixError] = useState<string | null>(null);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ const defaultSettings: Settings = {
|
|||||||
maxWorktrees: 4,
|
maxWorktrees: 4,
|
||||||
pollIntervalMs: 15000,
|
pollIntervalMs: 15000,
|
||||||
groupOverlappingFiles: false,
|
groupOverlappingFiles: false,
|
||||||
autoMerge: false,
|
autoMerge: true,
|
||||||
recycleWorktrees: false,
|
recycleWorktrees: false,
|
||||||
worktreeInitCommand: "",
|
worktreeInitCommand: "",
|
||||||
testCommand: "",
|
testCommand: "",
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ function renderBoard() {
|
|||||||
onCancelCreate={noop}
|
onCancelCreate={noop}
|
||||||
onCreateTask={noopAsync}
|
onCreateTask={noopAsync}
|
||||||
onNewTask={noop}
|
onNewTask={noop}
|
||||||
autoMerge={false}
|
autoMerge={true}
|
||||||
onToggleAutoMerge={noop}
|
onToggleAutoMerge={noop}
|
||||||
globalPaused={false}
|
globalPaused={false}
|
||||||
/>,
|
/>,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ const defaultSettings: Settings = {
|
|||||||
maxWorktrees: 4,
|
maxWorktrees: 4,
|
||||||
pollIntervalMs: 15000,
|
pollIntervalMs: 15000,
|
||||||
groupOverlappingFiles: false,
|
groupOverlappingFiles: false,
|
||||||
autoMerge: false,
|
autoMerge: true,
|
||||||
recycleWorktrees: false,
|
recycleWorktrees: false,
|
||||||
worktreeInitCommand: "",
|
worktreeInitCommand: "",
|
||||||
testCommand: "",
|
testCommand: "",
|
||||||
|
|||||||
Reference in New Issue
Block a user