Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 0 additions & 1 deletion packages/treebeard/src/App.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ vi.mock('./components/WorkspaceDashboard', () => ({
const config: AppConfig = {
repositories: [{ id: 'repo-1', name: 'treebeard', path: '/repo' }],
workspaces: [],
kiroCrewSessions: {},
pollIntervalSec: 60,
fetchIntervalSec: 300,
autoUpdateEnabled: true,
Expand Down
11 changes: 0 additions & 11 deletions packages/treebeard/src/bun/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import {
} from './services/git'
import { getPRForBranch, getPRStackDetails, getPRStackSummary } from './services/github'
import { getJiraIssue, getMyJiraIssues } from './services/jira'
import { isKiroCrewAvailable, openKiroCrewSession } from './services/kiro-crew'
import { launchGhostty, launchIde, launchOpencode, launchPippinShell, launchURL } from './services/launcher'
import { getShellEnv } from './services/shell-env'
import {
Expand All @@ -43,7 +42,6 @@ let isUpdateCheckInFlight = false
let isUpdatePromptOpen = false
let dependencyStatus: DependencyStatus | null = null
let dependencyCheckInFlight: Promise<DependencyStatus> | null = null
let kiroCrewAvailability: Promise<boolean> | null = null

interface UpdateCheckResult {
success: boolean
Expand Down Expand Up @@ -256,9 +254,6 @@ const mainviewRPC = BrowserView.defineRPC<TreebeardRPC>({
'launch:opencode': ({ worktreePath }) => {
launchOpencode(worktreePath)
},
'launch:kiroCrew': async ({ worktreePath }) => {
return openKiroCrewSession(worktreePath)
},
'launch:url': async ({ url }) => {
if (Utils.openExternal(url)) {
return { success: true }
Expand Down Expand Up @@ -288,12 +283,6 @@ const mainviewRPC = BrowserView.defineRPC<TreebeardRPC>({
const result = (await new Response(proc.stdout).text()).trim()
return result || null
},
'system:kiroCrewAvailable': () => {
if (!kiroCrewAvailability) {
kiroCrewAvailability = isKiroCrewAvailable()
}
return kiroCrewAvailability
},
'dialog:openDirectory': async () => {
const paths = await Utils.openFileDialog({
startingFolder: os.homedir(),
Expand Down
15 changes: 0 additions & 15 deletions packages/treebeard/src/bun/services/config.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ describe('config service', () => {
expect(getConfig()).toEqual({
repositories: [],
workspaces: [],
kiroCrewSessions: {},
pollIntervalSec: 60,
fetchIntervalSec: 300,
autoUpdateEnabled: true,
Expand All @@ -65,7 +64,6 @@ describe('config service', () => {
setConfig({
repositories: [],
workspaces: [],
kiroCrewSessions: {},
pollIntervalSec: 1,
fetchIntervalSec: 30,
autoUpdateEnabled: false,
Expand All @@ -79,7 +77,6 @@ describe('config service', () => {
expect(getConfig()).toEqual({
repositories: [],
workspaces: [],
kiroCrewSessions: {},
pollIntervalSec: 10,
fetchIntervalSec: 60,
autoUpdateEnabled: false,
Expand All @@ -96,18 +93,6 @@ describe('config service', () => {
expect(getCollapsedRepos()).toEqual(['repo-1', 'repo-2'])
})

it('sanitizes Kiro Crew session associations', () => {
mockReadFileSync.mockImplementation(() => JSON.stringify({
kiroCrewSessions: {
'/repo/worktree': 'chat-123',
'/repo/invalid': 42,
'': 'chat-456'
}
}))

expect(getConfig().kiroCrewSessions).toEqual({ '/repo/worktree': 'chat-123' })
})

it('preserves direct-path workspace members created before symlink support', () => {
mockReadFileSync.mockImplementation(() => JSON.stringify({
workspaces: [{
Expand Down
12 changes: 0 additions & 12 deletions packages/treebeard/src/bun/services/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ const WORKSPACES_ROOT = path.join(os.homedir(), 'Developer', 'workspaces')
const DEFAULTS: AppConfig = {
repositories: [],
workspaces: [],
kiroCrewSessions: {},
pollIntervalSec: 60,
fetchIntervalSec: 300,
autoUpdateEnabled: true,
Expand All @@ -35,16 +34,6 @@ function clamp(value: number, min: number, max: number): number {
return Math.min(Math.max(value, min), max)
}

function sanitizeKiroCrewSessions(sessions: unknown): Record<string, string> {
if (!sessions || typeof sessions !== 'object' || Array.isArray(sessions)) return {}

return Object.fromEntries(
Object.entries(sessions).filter(([worktreePath, slotKey]) =>
worktreePath.length > 0 && typeof slotKey === 'string' && slotKey.length > 0
)
)
}

function isWorkspacePath(workspacePath: string): boolean {
const relative = path.relative(WORKSPACES_ROOT, workspacePath)
return relative.length > 0 && !relative.startsWith('..') && !path.isAbsolute(relative)
Expand Down Expand Up @@ -125,7 +114,6 @@ function sanitizeConfig(config: Partial<AppConfig>): AppConfig {
return {
repositories: Array.isArray(config.repositories) ? [...config.repositories] : [],
workspaces: sanitizeWorkspaces(config.workspaces),
kiroCrewSessions: sanitizeKiroCrewSessions(config.kiroCrewSessions),
pollIntervalSec,
fetchIntervalSec,
autoUpdateEnabled: typeof config.autoUpdateEnabled === 'boolean' ? config.autoUpdateEnabled : DEFAULTS.autoUpdateEnabled,
Expand Down
154 changes: 0 additions & 154 deletions packages/treebeard/src/bun/services/kiro-crew.test.ts

This file was deleted.

Loading
Loading