|
|
9794a9baef
|
M13: Veilige Claude-agent-workflow (Scrum4Me-side) (#26)
* feat: add pushed_at field to ClaudeJob schema
Nullable DateTime column to record when the agent's feature branch was
pushed to origin. Enables the UI to show a 'pushed' state independently
of DONE status.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: GitHub-link op DONE-card + pushed_at doorvoer
- lib/job-status-url.ts: getBranchUrl(repoUrl, branch) → GitHub tree URL
- JobState + ClaudeJobEvent: pushed_at? veld toegevoegd
- realtime/solo/route.ts: pushed_at in Prisma-select, JobPayload en mapping
- SoloBoardProps + TaskDetailDialog: repoUrl prop doorgevoerd
- task-detail-dialog: "Open op GitHub"-link als done + pushed_at + branch + repoUrl
- 3 unit-tests voor getBranchUrl; totaal 261 tests groen
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: add VerifyResult enum, verify_only on Task, verify_result on ClaudeJob
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: add verify_result+pushed_at to JobState, VerifyResultApi type, SSE payload
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: verify_only field on SoloTask, PATCH route saves verify_only
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: TaskDetailDialog — verify_result display + verify_only checkbox
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* test: verify_only PATCH + verify_result dialog render + store fix
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs: document VerifyResult enum, verify_only task field, pushed_at in architecture
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(M13): cron /api/cron/cleanup-agent-artifacts — hard-delete FAILED/CANCELLED jobs >7 days
* feat(M13): add auto_pr field to Product schema + migration
* feat(M13): auto_pr toggle in product settings — server action + UI component + tests
* feat(M13): add pr_url to ClaudeJob schema + migration
* feat(M13): UI — 'Open PR' link on DONE-card; pr_url in JobState + SSE + task-dialog
* feat(M13): add retry_count migration + regen erd
- Migration ALTER TABLE claude_jobs ADD COLUMN retry_count INT DEFAULT 0
(schema.prisma was reeds bijgewerkt in eerdere commits)
- docs/erd.svg geregenereerd voor de complete M13-schema-wijzigingen
(verify_result, verify_only, pushed_at, pr_url, auto_pr, retry_count)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-01 13:42:18 +02:00 |
|
|
|
8877ea469d
|
feat(M14): 3-pane backlog — generic SplitPane, BacklogStore, SSE realtime, card-grid TaskPanel (#22)
* feat(split-pane): refactor to generic n-pane SplitPane with cookie persistence
New API: panes[], defaultSplit[], cookieKey, tabLabels. Supports arbitrary
number of panes with n-1 draggable dividers and JSON cookie persistence.
Replaces TriplePane; mobile renders tabs.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(split-pane): migrate callers to new panes[] API
Backlog page and sprint board now use generic SplitPane.
TriplePane removed; sprint board uses 3-pane with defaultSplit=[28,35,37].
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* test(split-pane): add unit tests for 2/3-pane, cookie-restore, mobile tabs
Added jsdom + @testing-library/react devDeps for component testing.
7 cases: render, divider count, cookie restore, invalid cookie fallback,
mobile tab render/switch, and no-dividers-on-mobile.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(backlog): add BacklogStore Zustand store with applyChange reducer
State: pbis, storiesByPbi, tasksByStory. setInitialData for server
hydration; applyChange(entity, op, data) handles I/U/D for SSE events.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(backlog): server-fetch tasks + hydrate BacklogStore on page load
Page now fetches tasks parallel to stories and groups by story_id.
BacklogHydrationWrapper calls setInitialData on mount so the store
is ready for downstream SSE consumers.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(backlog): add EmptyPanel shared component, replace inline empty states
EmptyPanel takes title?, message, and optional action with DemoTooltip.
Replaces duplicate inline empty-state markup in pbi-list and story-panel.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(backlog): add TaskPanel with sortable rows and TaskDialog wiring
Reads selectedStoryId + tasksByStory from stores. DnD reorder via
reorderTasksAction. Row click → ?editTask, + button → ?newTask&storyId.
DemoTooltip on drag handles and + button.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(backlog): wire TaskPanel + TaskDialog into backlog page
3-pane SplitPane [20,45,35]. searchParams for newTask/editTask.
TaskDialog and EditTaskLoader render on ?newTask and ?editTask.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* test(backlog): add TaskPanel tests for render states and click handlers
7 cases: no-story empty, no-tasks empty+action, tasks render, + button
router.push, row click router.push, demo disabled button, demo disabled handles.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(backlog): migrate PbiList to store-driven via useBacklogStore
Removes pbis prop; reads from useBacklogStore(s => s.pbis) so SSE
updates reflect in real-time without prop drilling.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(backlog): migrate StoryPanel to store-driven + selectStory on click
Removes storiesByPbi prop; reads from useBacklogStore. Card click now
dispatches selectStory(id) + shows isSelected highlight. Edit moved to
inline pencil button. page.tsx drops pbis/storiesByPbi props.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* test(backlog): add 3-pane integration tests for click-cascade flow
Covers: empty states, PBI→stories, story→tasks, cascade-reset,
isSelected highlight. localStorage mocked for sort-mode persistence.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(ST-1115): SSE backlog realtime — endpoint, hook, hydration mount, tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(ST-1116): mobile auto-switch tabs + back button in BacklogSplitPane
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(ST-1116): update functional-spec (3-pane backlog + mobile) and architecture (backlog SSE + backlog-store)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(ST-1117): TaskPanel card-grid — BacklogCard + rectSortingStrategy, tests updated
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(tests): correct PbiStatusApi type and remove duplicate mock keys
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-30 18:16:07 +02:00 |
|