feat(FN-671): add disclosure toggle to QuickEntryBox and reorganize mobile header
- Add persistent disclosure state with localStorage to QuickEntryBox - Add toggle button for manual expand/collapse with ChevronUp/Down icons - Change expanded controls to show based on user preference, not focus - Add comprehensive CSS for toggle button and expanded/collapsed states - Reorganize mobile header overflow menu (Usage and Activity Log buttons) - Update all QuickEntryBox tests for new disclosure behavior
This commit is contained in:
@@ -1,17 +1,30 @@
|
||||
{
|
||||
"id": "FN-667",
|
||||
"description": "Model selector dialog is not rendering properly its behind the board",
|
||||
"column": "todo",
|
||||
"status": "queued",
|
||||
"column": "done",
|
||||
"size": "S",
|
||||
"reviewLevel": 1,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "KB-660",
|
||||
"currentStep": 3,
|
||||
"baseCommitSha": "99d5893c2a5a239b4bc7e94132e2b04292bc200b",
|
||||
"summary": "Task FN-667 is complete. The model selector dropdown z-index has been changed from 100 to 500 in packages/dashboard/app/styles.css (line 6112). The changeset file .changeset/fix-model-dropdown-zindex.md was already created. The fix ensures the dropdown renders above the modal overlay (z-index: 100) when opened in the Task Detail Modal. Pre-existing test/build failures in executor.test.ts are unrelated to this CSS-only fix.",
|
||||
"createdAt": "2026-04-01T06:18:50.482Z",
|
||||
"updatedAt": "2026-04-01T14:01:50.348Z",
|
||||
"columnMovedAt": "2026-04-01T13:50:11.135Z",
|
||||
"updatedAt": "2026-04-01T14:06:53.129Z",
|
||||
"columnMovedAt": "2026-04-01T14:06:53.129Z",
|
||||
"dependencies": [],
|
||||
"steps": [],
|
||||
"steps": [
|
||||
{
|
||||
"name": "Update Z-Index Value",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Testing & Verification",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Documentation & Delivery",
|
||||
"status": "done"
|
||||
}
|
||||
],
|
||||
"log": [
|
||||
{
|
||||
"timestamp": "2026-04-01T06:18:50.482Z",
|
||||
@@ -25,6 +38,49 @@
|
||||
"timestamp": "2026-04-01T13:50:07.714Z",
|
||||
"action": "Spec review: APPROVE",
|
||||
"outcome": "The specification is high-quality, technically accurate, and provides a clear implementation path for fixing the dropdown clipping issue. The mission is well-defined, steps are concrete and verifiable, file references are accurate, and testing requirements are comprehensive. The approach of using fixed positioning to escape the `overflow-y: auto` clipping context is the correct solution."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:38.762Z",
|
||||
"action": "Worktree created at /Users/eclipxe/Projects/kb/.worktrees/brave-creek"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:38.778Z",
|
||||
"action": "Step 0 (Update Z-Index Value) → pending"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:41.196Z",
|
||||
"action": "Step 0 (Update Z-Index Value) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:05:02.272Z",
|
||||
"action": "Step 0 (Update Z-Index Value) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:05:02.297Z",
|
||||
"action": "Step 1 (Testing & Verification) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:10.452Z",
|
||||
"action": "Step 2 (Documentation & Delivery) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:10.453Z",
|
||||
"action": "Verified CSS fix is already applied: .model-combobox-dropdown has z-index: 500",
|
||||
"outcome": "The z-index was already changed from 100 to 500 in commit 63405566"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:10.454Z",
|
||||
"action": "Verified changeset exists: .changeset/fix-model-dropdown-zindex.md",
|
||||
"outcome": "Changeset file was already created in commit 99d5893c"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:10.454Z",
|
||||
"action": "Test and build failures are pre-existing issues in executor.test.ts",
|
||||
"outcome": "These failures are unrelated to the CSS-only z-index fix"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:12.086Z",
|
||||
"action": "Task marked done by agent"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,16 +1,15 @@
|
||||
{
|
||||
"id": "FN-668",
|
||||
"description": "Project selection needs to have a directory picker that shows all directories from system",
|
||||
"column": "in-review",
|
||||
"column": "done",
|
||||
"size": "M",
|
||||
"reviewLevel": 2,
|
||||
"currentStep": 5,
|
||||
"worktree": "/Users/eclipxe/Projects/kb/.worktrees/jade-moss",
|
||||
"baseCommitSha": "cc8cbef97941e0e33fcf46bf877ab645385bf8bf",
|
||||
"summary": "Verified the Claude CLI credentials detection fix is already implemented in the codebase. The `readClaudeKeychainCredentials()` function in `packages/dashboard/src/usage.ts` correctly reads credentials from macOS keychain using `security find-generic-password -s \"Claude Code-credentials\" -w`. The fallback chain (file paths → keychain → no-auth) is properly implemented. All 39 usage tests pass, including tests for keychain credential reading, fallback behavior, and plan detection. Build passes successfully. Added changeset file for the patch release.",
|
||||
"createdAt": "2026-04-01T13:50:14.873Z",
|
||||
"updatedAt": "2026-04-01T14:01:49.829Z",
|
||||
"columnMovedAt": "2026-04-01T14:01:49.829Z",
|
||||
"updatedAt": "2026-04-01T14:02:59.738Z",
|
||||
"columnMovedAt": "2026-04-01T14:02:59.738Z",
|
||||
"dependencies": [],
|
||||
"steps": [
|
||||
{
|
||||
|
||||
@@ -1,19 +1,48 @@
|
||||
{
|
||||
"id": "FN-669",
|
||||
"description": "The main page before you select a project is missing all layouts. It needs to be design properly",
|
||||
"column": "todo",
|
||||
"status": "queued",
|
||||
"column": "in-progress",
|
||||
"size": "M",
|
||||
"reviewLevel": 2,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "KB-622",
|
||||
"currentStep": 2,
|
||||
"worktree": "/Users/eclipxe/Projects/kb/.worktrees/noble-delta",
|
||||
"baseCommitSha": "8ce74f61d3fa0e2108af78aa2f20f9dbd47fe0f7",
|
||||
"modelProvider": "openai-codex",
|
||||
"modelId": "gpt-5.4",
|
||||
"createdAt": "2026-04-01T13:50:48.191Z",
|
||||
"updatedAt": "2026-04-01T14:01:50.357Z",
|
||||
"columnMovedAt": "2026-04-01T13:53:12.703Z",
|
||||
"updatedAt": "2026-04-01T14:10:00.558Z",
|
||||
"columnMovedAt": "2026-04-01T14:06:26.207Z",
|
||||
"dependencies": [],
|
||||
"steps": [],
|
||||
"steps": [
|
||||
{
|
||||
"name": "Add Setting Type and Schema",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Update NtfyNotifier to Include Deep Links",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Update Notifier Tests",
|
||||
"status": "in-progress"
|
||||
},
|
||||
{
|
||||
"name": "Add Dashboard Deep Link Handling",
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"name": "Add Dashboard Hostname Setting UI",
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"name": "Testing & Verification",
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"name": "Documentation & Delivery",
|
||||
"status": "pending"
|
||||
}
|
||||
],
|
||||
"log": [
|
||||
{
|
||||
"timestamp": "2026-04-01T13:50:48.191Z",
|
||||
@@ -27,6 +56,85 @@
|
||||
"timestamp": "2026-04-01T13:53:10.734Z",
|
||||
"action": "Spec review: APPROVE",
|
||||
"outcome": "This is a well-crafted specification for a CSS-only styling task. The spec accurately inventories all class names from both `ProjectOverview.tsx` and `ProjectGridSkeleton.tsx`, correctly references existing CSS patterns and variables, and appropriately scopes the work to a single file. The step breakdown is methodical and verifiable."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:26.421Z",
|
||||
"action": "Worktree created at /Users/eclipxe/Projects/kb/.worktrees/noble-delta"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:26.440Z",
|
||||
"action": "Step 0 (Add Setting Type and Schema) → pending"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:30.688Z",
|
||||
"action": "Step 0 (Add Setting Type and Schema) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:45.989Z",
|
||||
"action": "Completed preflight review of scoped files and current code state.",
|
||||
"outcome": "Task file is provided inline rather than as repo PROMPT.md; existing code already contains partial ntfy deep-link support in core types, notifier, and App.tsx, so remaining work is to verify gaps, add tests/UI validation, and complete end-to-end coverage."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:53.126Z",
|
||||
"action": "Step 0 (Add Setting Type and Schema) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:07:00.674Z",
|
||||
"action": "Step 1 (Update NtfyNotifier to Include Deep Links) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:07:11.421Z",
|
||||
"action": "plan review requested for Step 1 (Add Setting Type and Schema)"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:07:33.751Z",
|
||||
"action": "plan review Step 1: APPROVE",
|
||||
"outcome": "The plan for Step 1 correctly identifies the necessary changes to `packages/core/src/types.ts`. Upon reviewing the codebase, I found that the `ntfyDashboardHost` setting has already been properly added to:\n- `GlobalSettings` interface (line 539)\n- `DEFAULT_GLOBAL_SETTINGS` (line 700) \n- `GLOBAL_SETTINGS_KEYS` array (line 760)\n\nThe type definition follows the existing pattern for other ntfy settings (`ntfyEnabled`, `ntfyTopic`) and is properly exported via `packages/core/src/index.ts`. The option"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:07:54.814Z",
|
||||
"action": "Attempted scoped core tests for Step 1 verification.",
|
||||
"outcome": "Test run is currently blocked because workspace dependencies are not installed in this worktree (`vitest: command not found`, missing node_modules). Proceeding with code verification since Step 1 code already exists; full test/build verification will need dependencies available."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:07:58.955Z",
|
||||
"action": "Step 1 implementation already present in the branch before execution.",
|
||||
"outcome": "No source changes or commit were needed for GlobalSettings schema; proceeding to review the existing implementation as the step baseline matches requirements."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:02.064Z",
|
||||
"action": "code review requested for Step 1 (Add Setting Type and Schema)"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:34.407Z",
|
||||
"action": "code review Step 1: APPROVE",
|
||||
"outcome": "The implementation correctly adds the `ntfyDashboardHost` setting to the `GlobalSettings` interface, `DEFAULT_GLOBAL_SETTINGS`, and `GLOBAL_SETTINGS_KEYS` array. The code follows existing patterns for ntfy-related settings and includes proper JSDoc documentation."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:43.629Z",
|
||||
"action": "Step 1 (Update NtfyNotifier to Include Deep Links) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:49.860Z",
|
||||
"action": "Step 2 (Update Notifier Tests) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:57.682Z",
|
||||
"action": "plan review requested for Step 2 (Update NtfyNotifier to Include Deep Links)"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:19.204Z",
|
||||
"action": "plan review Step 2: APPROVE",
|
||||
"outcome": "The implementation for Step 2 is already complete in the codebase. The plan accurately describes the work, but the implementation has been done ahead of the checklist. The code correctly implements all requirements: reading the `ntfyDashboardHost` setting from settings, building task URLs with proper trailing slash handling, and adding the `Click` header to all notification types (in-review, failed, merged)."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:27.535Z",
|
||||
"action": "plan review requested for Step 3 (Update Notifier Tests)"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:10:00.558Z",
|
||||
"action": "plan review Step 3: APPROVE",
|
||||
"outcome": "The notifier tests for deep link functionality are **already fully implemented** in the codebase. All four test cases specified in the step's checkboxes exist and are more comprehensive than the plan requires. The worker should verify the tests pass rather than writing new ones."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,17 +1,42 @@
|
||||
{
|
||||
"id": "FN-670",
|
||||
"description": "Make sure the system always ensures build passes before merging to main. Make sure this is in the promots",
|
||||
"column": "todo",
|
||||
"status": "queued",
|
||||
"column": "in-progress",
|
||||
"size": "M",
|
||||
"reviewLevel": 2,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "KB-622",
|
||||
"currentStep": 2,
|
||||
"worktree": "/Users/eclipxe/Projects/kb/.worktrees/azure-lotus",
|
||||
"baseCommitSha": "d9fa45fb36c9763edcd0b0bdbce057cc811a9026",
|
||||
"createdAt": "2026-04-01T13:51:35.917Z",
|
||||
"updatedAt": "2026-04-01T14:01:50.385Z",
|
||||
"columnMovedAt": "2026-04-01T13:55:34.310Z",
|
||||
"updatedAt": "2026-04-01T14:10:02.040Z",
|
||||
"columnMovedAt": "2026-04-01T14:08:26.163Z",
|
||||
"dependencies": [],
|
||||
"steps": [],
|
||||
"steps": [
|
||||
{
|
||||
"name": "Update Merger System Prompt for Build Verification",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Pass Build Command to Merge Context",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Update Executor Prompt Template",
|
||||
"status": "in-progress"
|
||||
},
|
||||
{
|
||||
"name": "Handle Build Failure in Merge Flow",
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"name": "Testing & Verification",
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"name": "Documentation & Delivery",
|
||||
"status": "pending"
|
||||
}
|
||||
],
|
||||
"log": [
|
||||
{
|
||||
"timestamp": "2026-04-01T13:51:35.917Z",
|
||||
@@ -34,6 +59,61 @@
|
||||
"timestamp": "2026-04-01T13:55:30.265Z",
|
||||
"action": "Spec review: APPROVE",
|
||||
"outcome": "This is a well-crafted specification for a critical safety feature. The mission is clear: add mandatory build verification to the merge path to prevent broken code from reaching main. The spec correctly identifies the touchpoints in `merger.ts` (merge flow), `executor.ts` (execution prompt), and comprehensive test coverage. The review level of 2 with size M is appropriate given the blast radius to core merge infrastructure."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:26.412Z",
|
||||
"action": "Worktree created at /Users/eclipxe/Projects/kb/.worktrees/azure-lotus"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:26.432Z",
|
||||
"action": "Step 0 (Update Merger System Prompt for Build Verification) → pending"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:28.553Z",
|
||||
"action": "Step 0 (Update Merger System Prompt for Build Verification) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:36.726Z",
|
||||
"action": "Step 0 (Update Merger System Prompt for Build Verification) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:37.830Z",
|
||||
"action": "plan review requested for Step 1 (Update Merger System Prompt for Build Verification)"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:55.903Z",
|
||||
"action": "plan review Step 1: APPROVE",
|
||||
"outcome": "The Step 1 plan is well-scoped and clearly defined. It focuses solely on updating the merger's system prompt to include build verification instructions, with exact text specified. The location (after \"## Commit message\" in `buildMergeSystemPrompt()`) is appropriate, and the step correctly defers logic implementation to later steps."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:58.451Z",
|
||||
"action": "Step 1 (Pass Build Command to Merge Context) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:07.502Z",
|
||||
"action": "Step 1 (Pass Build Command to Merge Context) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:07.503Z",
|
||||
"action": "code review requested for Step 1 (Update Merger System Prompt for Build Verification)"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:28.224Z",
|
||||
"action": "code review Step 1: APPROVE",
|
||||
"outcome": "The implementation correctly adds the \"## Build verification\" section to `buildMergeSystemPrompt()` in `merger.ts` with the **exact text** specified in the task requirements. The section is properly placed after the \"## Commit message\" section as required."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:29.932Z",
|
||||
"action": "plan review requested for Step 2 (Pass Build Command to Merge Context)"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:10:00.644Z",
|
||||
"action": "plan review Step 2: APPROVE",
|
||||
"outcome": "The plan for Step 2 is well-scoped and achievable. The step correctly identifies the functions that need modification (`buildMergePrompt()`, `runAiAgentForCommit()`, and `executeMergeAttempt()`) and specifies clear outcomes for each. The explicit text for the \"## Build command\" section is provided, and the plan appropriately handles the empty string edge case."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:10:02.040Z",
|
||||
"action": "Step 2 (Update Executor Prompt Template) → in-progress"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,15 +1,17 @@
|
||||
{
|
||||
"id": "FN-671",
|
||||
"description": "I can’t access all header icons now on mobile",
|
||||
"column": "in-progress",
|
||||
"column": "in-review",
|
||||
"status": "merging",
|
||||
"size": "S",
|
||||
"reviewLevel": 1,
|
||||
"currentStep": 1,
|
||||
"currentStep": 6,
|
||||
"worktree": "/Users/eclipxe/Projects/kb/.worktrees/eager-thorn",
|
||||
"baseCommitSha": "c3552af142f40e5833f5207c74af0e60de491e99",
|
||||
"summary": "Successfully fixed the mobile header layout by moving Usage and Activity Log buttons to the overflow menu. Changes include:\n\n1. Modified Header.tsx to wrap Usage and Activity Log buttons with `!isMobile` condition (desktop-only inline display)\n2. Added both buttons to the mobile overflow menu in alphabetical order (View Activity Log, View Usage)\n3. Reorganized the entire overflow menu alphabetically: Browse Files, Create a task with AI planning, Git Manager, Import from GitHub, Manage Agents, Open Terminal, Scheduled Tasks, Settings, View Activity Log, View Usage, Workflow Steps\n4. Updated Header.test.tsx with new tests for Activity Log and corrected mobile Usage behavior tests\n5. All 57 Header tests passing, dashboard build successful\n6. Created changeset for the patch release",
|
||||
"createdAt": "2026-04-01T13:51:52.837Z",
|
||||
"updatedAt": "2026-04-01T14:02:01.790Z",
|
||||
"columnMovedAt": "2026-04-01T14:01:50.408Z",
|
||||
"updatedAt": "2026-04-01T14:06:53.198Z",
|
||||
"columnMovedAt": "2026-04-01T14:06:45.151Z",
|
||||
"dependencies": [],
|
||||
"steps": [
|
||||
{
|
||||
@@ -18,23 +20,23 @@
|
||||
},
|
||||
{
|
||||
"name": "Move Activity Log Button to Mobile Overflow Menu",
|
||||
"status": "in-progress"
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Verify Mobile Overflow Menu Organization",
|
||||
"status": "pending"
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Update Tests",
|
||||
"status": "pending"
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Testing & Verification",
|
||||
"status": "pending"
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Documentation & Delivery",
|
||||
"status": "pending"
|
||||
"status": "done"
|
||||
}
|
||||
],
|
||||
"log": [
|
||||
@@ -92,6 +94,84 @@
|
||||
{
|
||||
"timestamp": "2026-04-01T14:02:01.790Z",
|
||||
"action": "plan review requested for Step 1 (Move Usage Button to Mobile Overflow Menu)"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:02:24.238Z",
|
||||
"action": "plan review Step 1: APPROVE",
|
||||
"outcome": "The plan correctly identifies the current code locations and outlines a clear approach for moving the Usage button from inline display to the mobile overflow menu. The suggested code changes follow existing patterns in the codebase and use the correct `!isMobile` condition approach. The plan's line number references (lines 215-225 for Usage button, line 295+ for overflow menu) are accurate."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:02:46.116Z",
|
||||
"action": "Step 1 (Move Activity Log Button to Mobile Overflow Menu) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:02:46.118Z",
|
||||
"action": "Step 2 (Verify Mobile Overflow Menu Organization) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:02:47.217Z",
|
||||
"action": "plan review requested for Step 2 (Move Activity Log Button to Mobile Overflow Menu)"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:06.185Z",
|
||||
"action": "plan review Step 2: APPROVE",
|
||||
"outcome": "The plan for Step 2 accurately identifies the current codebase state and provides correct implementation steps. The Activity Log button at lines 223-228 currently lacks the `!isMobile` condition and is indeed missing from the mobile overflow menu. The plan's checkboxes will correctly achieve the stated outcome of moving the button to the overflow menu while keeping it inline on desktop."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:18.567Z",
|
||||
"action": "Step 2 (Verify Mobile Overflow Menu Organization) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:18.568Z",
|
||||
"action": "Step 3 (Update Tests) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:49.703Z",
|
||||
"action": "Step 3 (Update Tests) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:49.704Z",
|
||||
"action": "Step 4 (Testing & Verification) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:51.425Z",
|
||||
"action": "plan review requested for Step 4 (Update Tests)"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:05.711Z",
|
||||
"action": "plan review Step 4: REVISE",
|
||||
"outcome": "The plan correctly identifies the need to update tests, but there's a **critical gap**: it doesn't explicitly call out that an **existing test will fail** and must be modified (not just added to). The current test for Usage button explicitly expects it to render inline on mobile - this test will break after the component changes."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:05:48.860Z",
|
||||
"action": "Step 4 (Testing & Verification) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:05:48.863Z",
|
||||
"action": "Step 5 (Documentation & Delivery) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:05:56.209Z",
|
||||
"action": "Step 5 (Documentation & Delivery) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:24.345Z",
|
||||
"action": "Step 5 (Documentation & Delivery) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:25.830Z",
|
||||
"action": "Completed FN-671: Mobile Header Layout Fix",
|
||||
"outcome": "Moved Usage and Activity Log buttons from inline display to mobile overflow menu. Desktop layout unchanged. All 57 Header tests passing. Dashboard build successful."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:42.859Z",
|
||||
"action": "Task marked done by agent"
|
||||
}
|
||||
],
|
||||
"modifiedFiles": [
|
||||
".changeset/fix-mobile-header-overflow.md",
|
||||
"packages/dashboard/app/components/Header.test.tsx",
|
||||
"packages/dashboard/app/components/Header.tsx",
|
||||
"packages/dashboard/app/components/__tests__/Header.test.tsx"
|
||||
]
|
||||
}
|
||||
@@ -7,7 +7,7 @@
|
||||
"reviewLevel": 1,
|
||||
"currentStep": 0,
|
||||
"createdAt": "2026-04-01T13:52:10.584Z",
|
||||
"updatedAt": "2026-04-01T14:01:51.092Z",
|
||||
"updatedAt": "2026-04-01T14:10:26.207Z",
|
||||
"columnMovedAt": "2026-04-01T13:56:28.671Z",
|
||||
"dependencies": [
|
||||
"KB-502"
|
||||
|
||||
@@ -1,19 +1,33 @@
|
||||
{
|
||||
"id": "FN-673",
|
||||
"description": "The Claude usage drop down is always saying rate limited now. It wasn’t like this before. Something broke. Fix it. It used to capture from the cli like codexbar",
|
||||
"column": "todo",
|
||||
"status": "queued",
|
||||
"column": "in-review",
|
||||
"size": "S",
|
||||
"reviewLevel": 1,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "FN-668",
|
||||
"currentStep": 3,
|
||||
"worktree": "/Users/eclipxe/Projects/kb/.worktrees/bold-oak",
|
||||
"baseCommitSha": "e13302579838d5891e4079eddb7a549ff4b9d712",
|
||||
"modelProvider": "anthropic",
|
||||
"modelId": "claude-opus-4-6",
|
||||
"summary": "Fixed the Claude usage indicator that was always showing \"Rate limited\" status. Root cause: the `fetchClaudeUsage()` function in `packages/dashboard/src/usage.ts` was sending an outdated `anthropic-beta: oauth-2025-04-20` header that caused the API to return error responses. Fix: (1) removed the outdated beta header, (2) added retry logic with exponential backoff for transient 429 responses (max 3 retries, respects retry-after header), (3) auth errors (401/403) fail immediately without retrying. Added 7 new tests covering header removal, retry behavior, exponential backoff, retry-after header respect, and auth error non-retry behavior. All 46 usage tests pass.",
|
||||
"createdAt": "2026-04-01T13:52:59.547Z",
|
||||
"updatedAt": "2026-04-01T14:01:51.136Z",
|
||||
"columnMovedAt": "2026-04-01T13:56:46.790Z",
|
||||
"updatedAt": "2026-04-01T14:08:13.177Z",
|
||||
"columnMovedAt": "2026-04-01T14:08:13.177Z",
|
||||
"dependencies": [],
|
||||
"steps": [],
|
||||
"steps": [
|
||||
{
|
||||
"name": "Diagnose and Fix Claude Usage Fetcher",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Testing & Verification",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Documentation & Delivery",
|
||||
"status": "done"
|
||||
}
|
||||
],
|
||||
"log": [
|
||||
{
|
||||
"timestamp": "2026-04-01T13:52:59.547Z",
|
||||
@@ -27,6 +41,77 @@
|
||||
"timestamp": "2026-04-01T13:56:43.198Z",
|
||||
"action": "Spec review: APPROVE",
|
||||
"outcome": "The specification is well-structured and accurately identifies the issue. The `fetchClaudeUsage()` function in `packages/dashboard/src/usage.ts` (lines 235-238) indeed uses the `anthropic-beta: oauth-2025-04-20` header which appears to be causing 429 responses. The spec correctly identifies the fix approach (remove/update the header, add retry logic, improve error handling) and appropriately scopes the work to just the Claude provider with comprehensive test requirements."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:37.331Z",
|
||||
"action": "Worktree created at /Users/eclipxe/Projects/kb/.worktrees/bold-oak"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:37.350Z",
|
||||
"action": "Step 0 (Diagnose and Fix Claude Usage Fetcher) → pending"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:41.354Z",
|
||||
"action": "Step 0 (Diagnose and Fix Claude Usage Fetcher) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:43.393Z",
|
||||
"action": "Step 0 (Diagnose and Fix Claude Usage Fetcher) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:49.116Z",
|
||||
"action": "Preflight complete: usage.ts and usage.test.ts read. Existing 39 tests all pass. Root cause identified: fetchClaudeUsage() sends `anthropic-beta: oauth-2025-04-20` header which likely triggers errors from the API, and 429 responses are not retried — they immediately report \"Rate limited\"."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:52.265Z",
|
||||
"action": "Step 0 (Diagnose and Fix Claude Usage Fetcher) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:55.602Z",
|
||||
"action": "plan review requested for Step 0 (Diagnose and Fix Claude Usage Fetcher)"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:05:08.258Z",
|
||||
"action": "plan review Step 0: APPROVE",
|
||||
"outcome": "The plan correctly identifies the issue in `packages/dashboard/src/usage.ts` at line 258 where the beta header `anthropic-beta: oauth-2025-04-20` is sent. The plan's approach to remove/update this header, add retry logic for 429 responses, and improve error handling aligns with the bug fix requirements. The test coverage plan is comprehensive, and the changeset requirement follows project conventions."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:05.756Z",
|
||||
"action": "Step 0 (Diagnose and Fix Claude Usage Fetcher) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:08.857Z",
|
||||
"action": "Step 1 (Testing & Verification) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:12.284Z",
|
||||
"action": "plan review requested for Step 1 (Testing & Verification)"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:25.848Z",
|
||||
"action": "plan review Step 1: APPROVE",
|
||||
"outcome": "The plan for Step 1 is sound and will achieve its stated outcomes. The implementation in `usage.ts` has already been fixed (no beta header is sent, retry logic exists), but the tests need updates to verify the new behavior. The step's checklist correctly identifies the need to add/update tests for 429 retry logic, auth error handling, and the absence of the beta header."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:07:49.507Z",
|
||||
"action": "Step 1 (Testing & Verification) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:07:52.665Z",
|
||||
"action": "Step 2 (Documentation & Delivery) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:04.790Z",
|
||||
"action": "Step 2 (Documentation & Delivery) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:10.748Z",
|
||||
"action": "Task marked done by agent"
|
||||
}
|
||||
],
|
||||
"modifiedFiles": [
|
||||
".changeset/fix-claude-usage-rate-limit.md",
|
||||
"packages/dashboard/src/usage.test.ts",
|
||||
"packages/dashboard/src/usage.ts"
|
||||
]
|
||||
}
|
||||
@@ -6,11 +6,11 @@
|
||||
"size": "S",
|
||||
"reviewLevel": 2,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "KB-622",
|
||||
"blockedBy": "KB-641",
|
||||
"modelProvider": "anthropic",
|
||||
"modelId": "claude-sonnet-4-6",
|
||||
"createdAt": "2026-04-01T13:56:15.834Z",
|
||||
"updatedAt": "2026-04-01T14:01:51.164Z",
|
||||
"updatedAt": "2026-04-01T14:10:26.207Z",
|
||||
"columnMovedAt": "2026-04-01T13:59:03.387Z",
|
||||
"dependencies": [],
|
||||
"steps": [],
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
"size": "S",
|
||||
"reviewLevel": 1,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "KB-622",
|
||||
"blockedBy": "KB-641",
|
||||
"modelProvider": "openai-codex",
|
||||
"modelId": "gpt-5.4",
|
||||
"createdAt": "2026-04-01T13:57:33.907Z",
|
||||
"updatedAt": "2026-04-01T14:01:51.166Z",
|
||||
"updatedAt": "2026-04-01T14:10:26.208Z",
|
||||
"columnMovedAt": "2026-04-01T13:59:48.382Z",
|
||||
"dependencies": [],
|
||||
"steps": [],
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
"size": "S",
|
||||
"reviewLevel": 0,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "KB-660",
|
||||
"blockedBy": "KB-657",
|
||||
"createdAt": "2026-04-01T13:58:01.983Z",
|
||||
"updatedAt": "2026-04-01T14:01:51.189Z",
|
||||
"updatedAt": "2026-04-01T14:10:26.209Z",
|
||||
"columnMovedAt": "2026-04-01T14:00:13.507Z",
|
||||
"dependencies": [],
|
||||
"steps": [],
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
"size": "S",
|
||||
"reviewLevel": 0,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "KB-622",
|
||||
"blockedBy": "FN-669",
|
||||
"createdAt": "2026-04-01T13:58:36.241Z",
|
||||
"updatedAt": "2026-04-01T14:01:51.201Z",
|
||||
"updatedAt": "2026-04-01T14:10:26.209Z",
|
||||
"columnMovedAt": "2026-04-01T14:00:35.176Z",
|
||||
"dependencies": [],
|
||||
"steps": [],
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
"size": "S",
|
||||
"reviewLevel": 1,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "KB-622",
|
||||
"blockedBy": "KB-619",
|
||||
"createdAt": "2026-03-31T20:54:26.274Z",
|
||||
"updatedAt": "2026-04-01T14:01:50.319Z",
|
||||
"updatedAt": "2026-04-01T14:10:26.195Z",
|
||||
"columnMovedAt": "2026-03-31T20:56:09.228Z",
|
||||
"dependencies": [],
|
||||
"steps": [],
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
"size": "L",
|
||||
"reviewLevel": 2,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "KB-622",
|
||||
"blockedBy": "FN-669",
|
||||
"createdAt": "2026-03-31T21:01:18.282Z",
|
||||
"updatedAt": "2026-04-01T14:01:50.321Z",
|
||||
"updatedAt": "2026-04-01T14:10:26.197Z",
|
||||
"columnMovedAt": "2026-03-31T22:15:49.127Z",
|
||||
"dependencies": [
|
||||
"KB-501",
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
{
|
||||
"id": "KB-503",
|
||||
"description": "CLI Multi-Project Commands: project subcommands and --project flag",
|
||||
"column": "in-review",
|
||||
"status": "merging",
|
||||
"column": "done",
|
||||
"size": "M",
|
||||
"reviewLevel": 2,
|
||||
"currentStep": 8,
|
||||
"worktree": "/Users/eclipxe/Projects/kb/.worktrees/merry-otter",
|
||||
"baseCommitSha": "24335d1176cef810803b48fe611bb057b5d62db7",
|
||||
"summary": "Successfully completed KB-503: CLI Multi-Project Commands implementation. Added `kb project` subcommand with list, add, remove, show, set-default, detect operations. Implemented global `--project` flag for all task, settings, git, and backup commands. Project resolution follows the correct order: --project flag → default project → CWD auto-detection. Fixed TypeScript errors by adding `defaultProjectId` to GlobalSettings type and corrected a type issue in task.ts. All core tests pass (720 tests) and new project tests pass (13 tests). Changeset created for the minor version bump.",
|
||||
"createdAt": "2026-03-31T21:01:18.283Z",
|
||||
"updatedAt": "2026-04-01T14:00:05.488Z",
|
||||
"columnMovedAt": "2026-04-01T13:59:48.154Z",
|
||||
"updatedAt": "2026-04-01T14:02:37.155Z",
|
||||
"columnMovedAt": "2026-04-01T14:02:37.155Z",
|
||||
"dependencies": [
|
||||
"KB-501"
|
||||
],
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"reviewLevel": 3,
|
||||
"currentStep": 0,
|
||||
"createdAt": "2026-03-31T21:01:18.284Z",
|
||||
"updatedAt": "2026-04-01T14:01:50.323Z",
|
||||
"updatedAt": "2026-04-01T14:10:26.198Z",
|
||||
"columnMovedAt": "2026-03-31T22:13:59.657Z",
|
||||
"dependencies": [
|
||||
"KB-500",
|
||||
|
||||
@@ -1,20 +1,49 @@
|
||||
{
|
||||
"id": "KB-619",
|
||||
"description": "CLI Multi-Project Commands: Add `fn project` subcommands for managing multiple projects from the command line, plus `--project` flag support on existing commands.\n\n1. **`fn project list`** — List all registered projects:\n - Table output: name, directory, status, in-flight tasks, last activity\n - JSON output with `--json` flag\n - Status indicators (active/paused/errored)\n\n2. **`fn project add [dir]`** — Register a new project:\n - Interactive wizard if no directory specified (prompt for path and name)\n - Auto-detect project name from directory\n - Validate directory has `.kb/` or offer to run `fn init`\n - Options: `--name <name>`, `--isolation <in-process|child-process>`\n\n3. **`fn project remove <name>`** — Unregister a project:\n - Confirmation prompt (or `--force` to skip)\n - Only removes from registry, does NOT delete `.kb/` data\n - Stops runtime if project is active\n\n4. **`fn project info [name]`** — Show project details:\n - Project name, directory, status, isolation mode\n - Task counts by column\n - Active agents count\n - Last activity timestamp\n\n5. **`--project` flag** — Add to all task/settings commands:\n - `fn task list --project myapp`\n - `fn task create --project myapp \"description\"`\n - `fn settings --project myapp`\n - Auto-detect project from cwd (walk up to find `.kb/`)\n - Error if cwd doesn't match any registered project and no `--project` flag\n\n6. **Auto-detection** — Walk up from cwd to find `.kb/` directory, match against registry:\n - If found, use that project context\n - If not found and only one project registered, use it as default\n - If multiple projects and no match, prompt or error\n\n**File scope:**\n- `packages/cli/src/commands/project.ts` (new)\n- `packages/cli/src/bin.ts` (add project subcommand, --project flag)\n- `packages/cli/src/project-resolver.ts` (new — cwd auto-detection logic)\n- `packages/cli/test/project-commands.test.ts` (new)\n\n**Context:** Read `packages/cli/src/bin.ts` for CLI command structure, `packages/core/src/central-core.ts` for CentralCore API.",
|
||||
"column": "todo",
|
||||
"status": "queued",
|
||||
"column": "in-progress",
|
||||
"size": "L",
|
||||
"reviewLevel": 2,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "KB-503",
|
||||
"worktree": "/Users/eclipxe/Projects/kb/.worktrees/sharp-plume",
|
||||
"baseCommitSha": "b8996e55834eb62cff30000dc7b13701fdaf825e",
|
||||
"createdAt": "2026-03-31T23:26:33.164Z",
|
||||
"updatedAt": "2026-04-01T14:01:50.325Z",
|
||||
"columnMovedAt": "2026-03-31T23:34:08.949Z",
|
||||
"updatedAt": "2026-04-01T14:03:10.282Z",
|
||||
"columnMovedAt": "2026-04-01T14:03:07.134Z",
|
||||
"dependencies": [
|
||||
"KB-616",
|
||||
"KB-615"
|
||||
],
|
||||
"steps": [],
|
||||
"steps": [
|
||||
{
|
||||
"name": "Project Resolution Module",
|
||||
"status": "in-progress"
|
||||
},
|
||||
{
|
||||
"name": "Project Subcommands",
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"name": "Update CLI Entry Point",
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"name": "Add --project Flag to Task Commands",
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"name": "Add --project Flag to Settings Commands",
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"name": "Testing & Verification",
|
||||
"status": "pending"
|
||||
},
|
||||
{
|
||||
"name": "Documentation & Delivery",
|
||||
"status": "pending"
|
||||
}
|
||||
],
|
||||
"log": [
|
||||
{
|
||||
"timestamp": "2026-03-31T23:26:33.164Z",
|
||||
@@ -28,6 +57,18 @@
|
||||
"timestamp": "2026-03-31T23:34:05.220Z",
|
||||
"action": "Spec review: APPROVE",
|
||||
"outcome": "This is a well-structured specification for adding multi-project CLI support. The spec correctly identifies dependencies on KB-615 (CentralCore) and KB-616 (ProjectManager), provides concrete step-by-step implementation plans with verifiable outcomes, and mandates comprehensive testing. The file scope is accurate and follows established CLI patterns in the codebase."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:07.341Z",
|
||||
"action": "Worktree created at /Users/eclipxe/Projects/kb/.worktrees/sharp-plume"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:07.358Z",
|
||||
"action": "Step 0 (Project Resolution Module) → pending"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:10.282Z",
|
||||
"action": "Step 0 (Project Resolution Module) → in-progress"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -7,7 +7,7 @@
|
||||
"reviewLevel": 3,
|
||||
"currentStep": 0,
|
||||
"createdAt": "2026-03-31T23:26:48.611Z",
|
||||
"updatedAt": "2026-04-01T14:01:50.326Z",
|
||||
"updatedAt": "2026-04-01T14:10:26.198Z",
|
||||
"columnMovedAt": "2026-03-31T23:35:32.331Z",
|
||||
"dependencies": [
|
||||
"KB-615",
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"id": "KB-622",
|
||||
"description": "Merge steering and comments into a single field just called comments. Agents and humans can post comments and these should be injected into the context",
|
||||
"column": "in-progress",
|
||||
"column": "done",
|
||||
"size": "M",
|
||||
"reviewLevel": 2,
|
||||
"currentStep": 3,
|
||||
"worktree": "/Users/eclipxe/Projects/kb/.worktrees/misty-reef",
|
||||
"currentStep": 8,
|
||||
"baseCommitSha": "c550f10e95a6eec5fbd9928605646e215a249d2e",
|
||||
"summary": "Successfully unified steeringComments and comments into a single comments field across all packages. Key changes:\n\n1. **Store Layer** (`packages/core/src/store.ts`):\n - Updated `addComment` to accept any string author (not just \"user\" | \"agent\")\n - Refactored `addTaskComment` to delegate to unified `addComment` method\n - All comments now include `updatedAt` field for consistency\n\n2. **CLI** (`packages/cli/src/commands/task.ts`):\n - Updated `runTaskSteer` to call `store.addComment()` instead of non-existent `addSteeringComment()`\n\n3. **Tests** - Updated all test files to use unified `comments` field:\n - `packages/cli/src/__tests__/task-steer.test.ts`\n - `packages/dashboard/app/components/__tests__/SteeringTab.test.tsx`\n - `packages/dashboard/app/api.test.ts`\n - `packages/dashboard/src/routes.test.ts`\n - `packages/engine/src/executor.test.ts`\n - `packages/core/src/db.test.ts`\n - `packages/core/src/store.test.ts`\n\n4. **Changeset** created at `.changeset/unify-comments.md`\n\nThe database migration (schema v5) was already in place to migrate `steeringComments` data to the unified `comments` field. All core tests pass (719 passed), and the unified comments field is properly injected into the AI execution context via `buildExecutionPrompt()`.",
|
||||
"createdAt": "2026-03-31T23:28:36.515Z",
|
||||
"updatedAt": "2026-04-01T13:58:31.895Z",
|
||||
"columnMovedAt": "2026-04-01T13:56:47.120Z",
|
||||
"updatedAt": "2026-04-01T14:05:37.081Z",
|
||||
"columnMovedAt": "2026-04-01T14:05:37.081Z",
|
||||
"dependencies": [],
|
||||
"steps": [
|
||||
{
|
||||
@@ -26,23 +26,23 @@
|
||||
},
|
||||
{
|
||||
"name": "Executor Updates",
|
||||
"status": "pending"
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Dashboard API Updates",
|
||||
"status": "pending"
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Dashboard UI Updates",
|
||||
"status": "pending"
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Testing & Verification",
|
||||
"status": "pending"
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Documentation & Delivery",
|
||||
"status": "pending"
|
||||
"status": "done"
|
||||
}
|
||||
],
|
||||
"log": [
|
||||
@@ -105,6 +105,41 @@
|
||||
"timestamp": "2026-04-01T13:58:31.895Z",
|
||||
"action": "Step 1 and 2 are already complete:\n- types.ts already has unified TaskComment interface with id, text, author, createdAt, updatedAt\n- db.ts already has schema version 5 migration that moves steeringComments to comments\n- No SteeringComment interface exists in the codebase",
|
||||
"outcome": "Types and database migration are already in place. Proceeding to Step 3."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:18.541Z",
|
||||
"action": "Step 3 (Executor Updates) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:18.543Z",
|
||||
"action": "Step 4 (Dashboard API Updates) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:18.543Z",
|
||||
"action": "Step 5 (Dashboard UI Updates) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:18.544Z",
|
||||
"action": "Step 6 (Testing & Verification) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:18.544Z",
|
||||
"action": "Step 7 (Documentation & Delivery) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:27.492Z",
|
||||
"action": "Task marked done by agent"
|
||||
}
|
||||
],
|
||||
"modifiedFiles": [
|
||||
"packages/cli/src/__tests__/task-steer.test.ts",
|
||||
"packages/cli/src/commands/task.ts",
|
||||
"packages/core/src/db.test.ts",
|
||||
"packages/core/src/store.test.ts",
|
||||
"packages/core/src/store.ts",
|
||||
"packages/dashboard/app/api.test.ts",
|
||||
"packages/dashboard/app/components/__tests__/SteeringTab.test.tsx",
|
||||
"packages/dashboard/src/routes.test.ts",
|
||||
"packages/engine/src/executor.test.ts"
|
||||
]
|
||||
}
|
||||
@@ -6,9 +6,9 @@
|
||||
"size": "L",
|
||||
"reviewLevel": 2,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "KB-622",
|
||||
"blockedBy": "KB-619",
|
||||
"createdAt": "2026-04-01T01:05:35.675Z",
|
||||
"updatedAt": "2026-04-01T14:01:50.329Z",
|
||||
"updatedAt": "2026-04-01T14:10:26.200Z",
|
||||
"columnMovedAt": "2026-04-01T01:10:33.211Z",
|
||||
"dependencies": [
|
||||
"KB-632"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"reviewLevel": 3,
|
||||
"currentStep": 0,
|
||||
"createdAt": "2026-04-01T01:05:39.475Z",
|
||||
"updatedAt": "2026-04-01T14:01:50.331Z",
|
||||
"updatedAt": "2026-04-01T14:10:26.200Z",
|
||||
"columnMovedAt": "2026-04-01T01:14:44.800Z",
|
||||
"dependencies": [
|
||||
"KB-632",
|
||||
|
||||
@@ -1,19 +1,41 @@
|
||||
{
|
||||
"id": "KB-641",
|
||||
"description": "Terminal still doesn't work. Failed to create session. Max sessions may be reached",
|
||||
"column": "todo",
|
||||
"status": "queued",
|
||||
"column": "in-review",
|
||||
"size": "S",
|
||||
"reviewLevel": 1,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "KB-622",
|
||||
"currentStep": 5,
|
||||
"worktree": "/Users/eclipxe/Projects/kb/.worktrees/ivory-breeze",
|
||||
"baseCommitSha": "edd6cc9c1e181d683018a4079900745071cb8753",
|
||||
"modelProvider": "openai-codex",
|
||||
"modelId": "gpt-5.4",
|
||||
"summary": "KB-641’s requested terminal error handling changes are already present in the scoped files: TerminalService returns a discriminated CreateSessionResult, the terminal session route maps each failure code to the correct HTTP status, and both terminal-service and route tests already assert the specific messages/statuses. I verified the implementation by inspecting the scoped files, but could not run tests or build because this worktree is missing node_modules; pnpm reported vitest/Node type dependencies unavailable. No code changes or documentation updates were required, and there were no out-of-scope findings.",
|
||||
"createdAt": "2026-04-01T01:52:07.518Z",
|
||||
"updatedAt": "2026-04-01T14:01:50.333Z",
|
||||
"columnMovedAt": "2026-04-01T01:53:06.056Z",
|
||||
"updatedAt": "2026-04-01T14:09:29.233Z",
|
||||
"columnMovedAt": "2026-04-01T14:09:29.233Z",
|
||||
"dependencies": [],
|
||||
"steps": [],
|
||||
"steps": [
|
||||
{
|
||||
"name": "Update TerminalService Return Type",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Update Routes Handler",
|
||||
"status": "skipped"
|
||||
},
|
||||
{
|
||||
"name": "Update Tests",
|
||||
"status": "skipped"
|
||||
},
|
||||
{
|
||||
"name": "Testing & Verification",
|
||||
"status": "skipped"
|
||||
},
|
||||
{
|
||||
"name": "Documentation & Delivery",
|
||||
"status": "done"
|
||||
}
|
||||
],
|
||||
"log": [
|
||||
{
|
||||
"timestamp": "2026-04-01T01:52:07.518Z",
|
||||
@@ -27,6 +49,105 @@
|
||||
"timestamp": "2026-04-01T01:53:04.221Z",
|
||||
"action": "Spec review: APPROVE",
|
||||
"outcome": "This is a well-crafted specification for a surgical diagnostic improvement. The mission is clear, the approach using a discriminated union type is idiomatic TypeScript, and the file scope is correctly limited to the four affected files. Steps have concrete outcomes and the testing strategy builds on existing patterns in the codebase."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:05:39.040Z",
|
||||
"action": "Worktree created at /Users/eclipxe/Projects/kb/.worktrees/ivory-breeze"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:05:39.095Z",
|
||||
"action": "Step 0 (Update TerminalService Return Type) → pending"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:05:43.865Z",
|
||||
"action": "Step 0 (Update TerminalService Return Type) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:05:49.645Z",
|
||||
"action": "Preflight complete: target files already include the new CreateSessionResult type in terminal-service.ts; remaining work is likely in route handling/tests and verification.",
|
||||
"outcome": "Proceeding with step-by-step validation and scoped updates only within PROMPT file scope."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:05:56.211Z",
|
||||
"action": "Step 0 (Update TerminalService Return Type) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:03.673Z",
|
||||
"action": "Step 1 (Update Routes Handler) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:11.565Z",
|
||||
"action": "plan review requested for Step 1 (Update Routes Handler)"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:53.128Z",
|
||||
"action": "plan review Step 1: RETHINK",
|
||||
"outcome": "The implementation described in Step 1 is **already complete** in the codebase. Both the `CreateSessionResult` discriminated union type and the updated `createSession()` return logic are fully implemented in `terminal-service.ts`. The route handler in `routes.ts` already handles the new result type with specific HTTP status codes. All tests have been updated to verify the new behavior."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:53.132Z",
|
||||
"action": "Step 1 (Update Routes Handler) → pending"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:53.133Z",
|
||||
"action": "RETHINK: Step 1 plan rewound — session checkpoint 3ad17360",
|
||||
"outcome": "The implementation described in Step 1 is **already complete** in the codebase. Both the `CreateSessionResult` discriminated union type and the updated `createSession()` return logic are fully implemented in `terminal-service.ts`. The route handler in `routes.ts` already handles the new result type with specific HTTP status codes. All tests have been updated to verify the new behavior."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:56.382Z",
|
||||
"action": "Plan review for Step 1 returned RETHINK because the requested route-handler changes are already implemented in the codebase.",
|
||||
"outcome": "Adapting by treating Step 1 as verification-only and confirming behavior with focused inspection/tests rather than re-implementing existing logic."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:07:17.316Z",
|
||||
"action": "Step 1 (Update Routes Handler) → skipped"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:07:22.879Z",
|
||||
"action": "Step 2 (Update Tests) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:07:31.914Z",
|
||||
"action": "plan review requested for Step 2 (Update Tests)"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:08.821Z",
|
||||
"action": "plan review Step 2: APPROVE",
|
||||
"outcome": "The plan for updating tests is well-structured and aligns with the implementation changes made to `terminal-service.ts` and `routes.ts`. The test files already contain the necessary updates to verify the new discriminated union result type and specific HTTP status codes. All four error codes (`max_sessions`, `invalid_shell`, `pty_load_failed`, `pty_spawn_failed`) are covered with proper assertions."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:17.185Z",
|
||||
"action": "Focused test run is blocked by missing installed dependencies in the worktree; pnpm reports vitest not found and missing node_modules.",
|
||||
"outcome": "Cannot execute verification until workspace dependencies are available. Inspecting repository state and package-manager availability next."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:35.071Z",
|
||||
"action": "Step 2 (Update Tests) → skipped"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:40.807Z",
|
||||
"action": "Step 3 (Testing & Verification) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:14.942Z",
|
||||
"action": "Full verification is blocked: build fails immediately because the worktree has no node_modules, causing missing Node and Vitest type definitions.",
|
||||
"outcome": "No code changes are needed for KB-641, but test/build acceptance cannot be executed in the current environment without installing dependencies."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:19.912Z",
|
||||
"action": "Step 3 (Testing & Verification) → skipped"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:21.375Z",
|
||||
"action": "Step 4 (Documentation & Delivery) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:25.059Z",
|
||||
"action": "Step 4 (Documentation & Delivery) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:25.065Z",
|
||||
"action": "Task marked done by agent"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -7,9 +7,9 @@
|
||||
"size": "M",
|
||||
"reviewLevel": 2,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "KB-622",
|
||||
"blockedBy": "FN-669",
|
||||
"createdAt": "2026-04-01T01:54:15.047Z",
|
||||
"updatedAt": "2026-04-01T14:01:50.336Z",
|
||||
"updatedAt": "2026-04-01T14:10:26.205Z",
|
||||
"columnMovedAt": "2026-04-01T01:58:47.407Z",
|
||||
"dependencies": [
|
||||
"KB-292"
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
"size": "M",
|
||||
"reviewLevel": 2,
|
||||
"currentStep": 0,
|
||||
"blockedBy": "KB-622",
|
||||
"blockedBy": "FN-669",
|
||||
"modelProvider": "openai-codex",
|
||||
"modelId": "gpt-5.4",
|
||||
"createdAt": "2026-04-01T02:35:50.893Z",
|
||||
"updatedAt": "2026-04-01T14:01:50.342Z",
|
||||
"updatedAt": "2026-04-01T14:10:26.206Z",
|
||||
"columnMovedAt": "2026-04-01T02:41:37.980Z",
|
||||
"dependencies": [],
|
||||
"steps": [],
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"id": "KB-656",
|
||||
"description": "Don't auto expand the quick add view in list view",
|
||||
"column": "in-progress",
|
||||
"column": "done",
|
||||
"size": "S",
|
||||
"reviewLevel": 1,
|
||||
"currentStep": 1,
|
||||
"worktree": "/Users/eclipxe/Projects/kb/.worktrees/sleek-delta",
|
||||
"currentStep": 4,
|
||||
"baseCommitSha": "948ef36ae6c051c92221f1ed3d15208ae970b796",
|
||||
"summary": "Task KB-656 is complete. The autoExpand prop was already fully implemented in QuickEntryBox.tsx with:\n- Optional autoExpand?: boolean prop (defaults to true for backward compatibility)\n- handleFocus callback checks autoExpand before expanding\n- ListView.tsx passes autoExpand={false} to disable auto-expand in list view\n- Column.tsx uses default behavior (continues to auto-expand)\n- All 60 QuickEntryBox tests pass including the test for autoExpand={false}\n- Added changeset file for the dashboard package patch",
|
||||
"createdAt": "2026-04-01T02:38:16.858Z",
|
||||
"updatedAt": "2026-04-01T13:58:34.968Z",
|
||||
"columnMovedAt": "2026-04-01T13:57:47.132Z",
|
||||
"updatedAt": "2026-04-01T14:06:35.186Z",
|
||||
"columnMovedAt": "2026-04-01T14:06:35.186Z",
|
||||
"dependencies": [],
|
||||
"steps": [
|
||||
{
|
||||
@@ -18,15 +18,15 @@
|
||||
},
|
||||
{
|
||||
"name": "Update ListView to Disable Auto-Expand",
|
||||
"status": "pending"
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Testing & Verification",
|
||||
"status": "pending"
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Documentation & Delivery",
|
||||
"status": "pending"
|
||||
"status": "done"
|
||||
}
|
||||
],
|
||||
"log": [
|
||||
@@ -63,6 +63,40 @@
|
||||
"timestamp": "2026-04-01T13:58:34.968Z",
|
||||
"action": "Preflight completed - autoExpand prop is already implemented in QuickEntryBox.tsx, ListView.tsx already passes autoExpand={false}, and test already exists. Verifying implementation correctness.",
|
||||
"outcome": "Code is already in place, proceeding to verification."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:38.285Z",
|
||||
"action": "Step 1 verification: QuickEntryBox.tsx already has autoExpand prop with default true. Prop interface defined (line 33-37), component parameter defaults to true (line 57), handleFocus checks autoExpand before expanding (lines 215-222).",
|
||||
"outcome": "Implementation complete - no changes needed"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:38.286Z",
|
||||
"action": "Step 2 verification: ListView.tsx already passes autoExpand={false} to QuickEntryBox (lines 773-781).",
|
||||
"outcome": "Implementation complete - no changes needed"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:38.287Z",
|
||||
"action": "Step 3 verification: All 60 QuickEntryBox tests pass. Test for autoExpand={false} exists (lines 78-86) and passes.",
|
||||
"outcome": "Tests pass - no changes needed"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:38.287Z",
|
||||
"action": "Step 1 (Update ListView to Disable Auto-Expand) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:38.288Z",
|
||||
"action": "Step 2 (Testing & Verification) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:38.288Z",
|
||||
"action": "Step 3 (Documentation & Delivery) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:54.168Z",
|
||||
"action": "Task marked done by agent"
|
||||
}
|
||||
],
|
||||
"modifiedFiles": [
|
||||
".changeset/quick-entry-auto-expand.md"
|
||||
]
|
||||
}
|
||||
@@ -1,18 +1,45 @@
|
||||
{
|
||||
"id": "KB-657",
|
||||
"description": "Have a button to expand the quick add view to show additional options. Keep it in expanded until button is pressed . Both board and list vkdes",
|
||||
"column": "todo",
|
||||
"status": "queued",
|
||||
"column": "in-review",
|
||||
"size": "M",
|
||||
"reviewLevel": 2,
|
||||
"currentStep": 0,
|
||||
"currentStep": 6,
|
||||
"worktree": "/Users/eclipxe/Projects/kb/.worktrees/azure-cedar",
|
||||
"baseCommitSha": "52e34cdd8255d5dbbb780acacaf9affc90c11302",
|
||||
"summary": "Completed task KB-657: Added expand/collapse toggle button to Quick Add views. Both QuickEntryBox (list view) and InlineCreateCard (board view) now have manual toggle buttons with ChevronDown/ChevronUp icons. The components were already implemented in KB-656 with: isExpanded state defaulting to false, no auto-expand on focus, no auto-collapse on blur, proper accessibility attributes (aria-expanded, aria-controls), and CSS styles for collapsed/expanded states. Updated ListView tests to use toggle button instead of focus for expanding QuickEntryBox. Created changeset file documenting the UI behavior improvement. All 98 component tests pass (61 QuickEntryBox + 37 InlineCreateCard).",
|
||||
"createdAt": "2026-04-01T02:38:43.252Z",
|
||||
"updatedAt": "2026-04-01T14:01:50.343Z",
|
||||
"columnMovedAt": "2026-04-01T02:46:36.886Z",
|
||||
"updatedAt": "2026-04-01T14:10:06.038Z",
|
||||
"columnMovedAt": "2026-04-01T14:10:06.038Z",
|
||||
"dependencies": [
|
||||
"KB-656"
|
||||
],
|
||||
"steps": [],
|
||||
"steps": [
|
||||
{
|
||||
"name": "Update QuickEntryBox (List View)",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Update InlineCreateCard (Board View)",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Add CSS Styles",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Update Tests",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Testing & Verification",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Documentation & Delivery",
|
||||
"status": "done"
|
||||
}
|
||||
],
|
||||
"log": [
|
||||
{
|
||||
"timestamp": "2026-04-01T02:38:43.252Z",
|
||||
@@ -26,6 +53,100 @@
|
||||
"timestamp": "2026-04-01T02:46:34.520Z",
|
||||
"action": "Spec review: APPROVE",
|
||||
"outcome": "The specification is well-structured, verifiable, and correctly identifies the affected files and behavior changes needed. The steps have concrete outcomes with clear test requirements. The dependency on KB-656 is appropriately noted, and the file scope accurately matches the codebase."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:56.396Z",
|
||||
"action": "Worktree created at /Users/eclipxe/Projects/kb/.worktrees/azure-cedar"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:56.415Z",
|
||||
"action": "Step 0 (Update QuickEntryBox (List View)) → pending"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:06:58.359Z",
|
||||
"action": "Step 0 (Update QuickEntryBox (List View)) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:07:14.519Z",
|
||||
"action": "Step 0 (Update QuickEntryBox (List View)) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:07:14.524Z",
|
||||
"action": "Completed Step 0 (Preflight). Analysis shows both QuickEntryBox and InlineCreateCard already have toggle implementations with isExpanded state, toggle buttons, and proper accessibility attributes. CSS already has collapsed/expanded styles. Tests already expect the new toggle behavior. Need to verify everything works by running tests.",
|
||||
"outcome": "Both components appear to already have the toggle functionality implemented from KB-656. Now verifying with tests."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:07:17.996Z",
|
||||
"action": "Step 1 (Update InlineCreateCard (Board View)) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:45.432Z",
|
||||
"action": "Step 1 (Update InlineCreateCard (Board View)) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:45.437Z",
|
||||
"action": "Completed Step 1 - QuickEntryBox already has full toggle implementation: isExpanded state defaults to false, toggle button with ChevronDown/ChevronUp, no auto-expand on focus, no auto-collapse on blur, resetForm collapses view, accessible attributes, toggle button always visible. All 61 QuickEntryBox tests pass.",
|
||||
"outcome": "Step 1 verified complete. QuickEntryBox implementation was already done in KB-656. Tests pass."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:47.441Z",
|
||||
"action": "Step 2 (Add CSS Styles) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:56.816Z",
|
||||
"action": "Step 2 (Add CSS Styles) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:56.827Z",
|
||||
"action": "Completed Step 2 - InlineCreateCard already has full toggle implementation: isExpanded state defaults to false, toggle button with ChevronDown/ChevronUp in main row, collapsed state shows textarea+toggle, expanded state shows all controls (Deps, Models, Plan, Subtask, Save), accessible attributes aria-expanded/aria-controls. All 37 InlineCreateCard tests pass.",
|
||||
"outcome": "Step 2 verified complete. InlineCreateCard implementation was already done in KB-656. Tests pass."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:59.087Z",
|
||||
"action": "Step 3 (Update Tests) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:08:59.093Z",
|
||||
"action": "Step 3 - CSS styles already exist in styles.css: .quick-entry-toggle (line 9597), .quick-entry-box--collapsed (line 9608) with reduced padding, .inline-create-toggle (line 3000), .inline-create-card--collapsed (line 3011) with minimal padding. All styles use existing btn/btn-sm classes and transition patterns.",
|
||||
"outcome": "Step 3 verified complete. CSS styles were already implemented in KB-656."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:04.603Z",
|
||||
"action": "Step 3 (Update Tests) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:04.605Z",
|
||||
"action": "Step 4 (Testing & Verification) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:04.607Z",
|
||||
"action": "Step 4 - All tests already updated and passing: QuickEntryBox (61 tests) covers toggle button expand/collapse, no auto-expand on focus, no auto-collapse on blur, collapse on reset. InlineCreateCard (37 tests) covers toggle button expand/collapse, Escape key behavior, no cancel on blur when expanded. ListView tests (98 tests) updated to use toggle button instead of focus.",
|
||||
"outcome": "Step 4 complete. All component tests pass. ListView tests updated to work with new toggle behavior."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:06.616Z",
|
||||
"action": "Step 5 (Documentation & Delivery) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:35.002Z",
|
||||
"action": "Step 5 (Documentation & Delivery) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:09:46.658Z",
|
||||
"action": "Step 6 complete - Created changeset file .changeset/add-expand-toggle-quick-add.md documenting the UI behavior change. The changeset describes the new manual toggle button behavior for QuickEntryBox and InlineCreateCard components.",
|
||||
"outcome": "Documentation complete. Changeset created with patch bump for @gsxdsm/fusion package."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:10:03.153Z",
|
||||
"action": "Step 4 (Testing & Verification) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:10:03.160Z",
|
||||
"action": "Task marked done by agent"
|
||||
}
|
||||
],
|
||||
"modifiedFiles": [
|
||||
".changeset/add-expand-toggle-quick-add.md",
|
||||
"packages/dashboard/app/components/__tests__/ListView.test.tsx"
|
||||
]
|
||||
}
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"id": "KB-660",
|
||||
"description": "The git manager dialog renders off screen",
|
||||
"column": "in-progress",
|
||||
"column": "done",
|
||||
"size": "S",
|
||||
"reviewLevel": 1,
|
||||
"currentStep": 4,
|
||||
"worktree": "/Users/eclipxe/Projects/kb/.worktrees/swift-eagle",
|
||||
"currentStep": 5,
|
||||
"baseCommitSha": "bd87ea58c97652b4badea1151226f70c205aa58d",
|
||||
"summary": "Fixed the Git Manager dialog rendering issue that caused it to render partially off-screen on mobile viewports.\n\n**Changes made:**\n1. Added `.gm-modal .modal-header { flex-shrink: 0; }` to prevent header compression during flex layout\n2. Fixed mobile responsive styles: changed `height: 100vh` to `height: auto` with `max-height: 90vh` to account for the overlay's `padding-top: 10vh`\n\n**Verification:**\n- All 53 GitManagerModal tests pass\n- CSS-only fix, no TypeScript/React changes required\n- Created changeset for the patch release",
|
||||
"createdAt": "2026-04-01T02:41:53.945Z",
|
||||
"updatedAt": "2026-04-01T14:01:33.943Z",
|
||||
"columnMovedAt": "2026-04-01T14:00:05.946Z",
|
||||
"updatedAt": "2026-04-01T14:04:23.608Z",
|
||||
"columnMovedAt": "2026-04-01T14:04:23.608Z",
|
||||
"dependencies": [],
|
||||
"steps": [
|
||||
{
|
||||
@@ -30,7 +30,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Documentation & Delivery",
|
||||
"status": "in-progress"
|
||||
"status": "done"
|
||||
}
|
||||
],
|
||||
"log": [
|
||||
@@ -95,6 +95,23 @@
|
||||
{
|
||||
"timestamp": "2026-04-01T14:01:33.943Z",
|
||||
"action": "Step 4 (Documentation & Delivery) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:08.899Z",
|
||||
"action": "Step 4 (Documentation & Delivery) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:18.972Z",
|
||||
"action": "Completed Git Manager modal CSS fix",
|
||||
"outcome": "Fixed mobile rendering by changing height: 100vh to height: auto with max-height: 90vh, added flex-shrink: 0 to header. All 53 GitManagerModal tests pass."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:03:18.973Z",
|
||||
"action": "Task marked done by agent"
|
||||
}
|
||||
],
|
||||
"modifiedFiles": [
|
||||
".changeset/fix-git-manager-modal-rendering.md",
|
||||
"packages/dashboard/app/styles.css"
|
||||
]
|
||||
}
|
||||
@@ -1,28 +1,28 @@
|
||||
{
|
||||
"id": "KB-662",
|
||||
"description": "When dashboard becomes visible refresh data",
|
||||
"column": "in-progress",
|
||||
"column": "done",
|
||||
"size": "S",
|
||||
"reviewLevel": 1,
|
||||
"currentStep": 0,
|
||||
"worktree": "/Users/eclipxe/Projects/kb/.worktrees/quiet-plume",
|
||||
"currentStep": 3,
|
||||
"baseCommitSha": "e478311c531d314b7f2ce3d95fd08aad67b05b7c",
|
||||
"summary": "Task KB-662 implementation was already complete. The visibility change listener in `useTasks.ts` includes: (1) `useEffect` hook listening for `visibilitychange` events, (2) 1-second debouncing via `VISIBILITY_FETCH_DEBOUNCE_MS` and `lastVisibilityFetchRef`, (3) fetch and state update when `visibilityState` becomes \"visible\", (4) proper cleanup on unmount. All 26 tests pass including 4 visibility-specific tests covering refetch on visible, no refetch on hidden, debouncing behavior, and cleanup. Build passes successfully.",
|
||||
"createdAt": "2026-04-01T05:35:18.262Z",
|
||||
"updatedAt": "2026-04-01T14:00:36.543Z",
|
||||
"columnMovedAt": "2026-04-01T14:00:20.319Z",
|
||||
"updatedAt": "2026-04-01T14:05:56.236Z",
|
||||
"columnMovedAt": "2026-04-01T14:05:56.236Z",
|
||||
"dependencies": [],
|
||||
"steps": [
|
||||
{
|
||||
"name": "Add Visibility Change Listener",
|
||||
"status": "in-progress"
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Testing & Verification",
|
||||
"status": "pending"
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"name": "Documentation & Delivery",
|
||||
"status": "pending"
|
||||
"status": "done"
|
||||
}
|
||||
],
|
||||
"log": [
|
||||
@@ -50,6 +50,27 @@
|
||||
{
|
||||
"timestamp": "2026-04-01T14:00:36.543Z",
|
||||
"action": "Step 0 (Add Visibility Change Listener) → in-progress"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:05.807Z",
|
||||
"action": "Step 0 (Add Visibility Change Listener) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:05.808Z",
|
||||
"action": "Step 1 (Testing & Verification) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:05.809Z",
|
||||
"action": "Step 2 (Documentation & Delivery) → done"
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:07.523Z",
|
||||
"action": "Verified implementation already complete in useTasks.ts",
|
||||
"outcome": "Visibility change listener with 1-second debounce is implemented. All 26 tests pass including 4 visibility-specific tests. Build succeeds."
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-04-01T14:04:23.613Z",
|
||||
"action": "Task marked done by agent"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user