--- phase: 02-core-crud plan: 03 type: execute wave: 3 depends_on: [02-02] files_modified: - src/lib/components/EntryCard.svelte - src/lib/components/CompletedToggle.svelte - src/routes/+page.svelte - src/routes/+page.server.ts autonomous: true must_haves: truths: - "Clicking an entry expands it to show edit fields" - "Editing title or content auto-saves after typing stops" - "User can toggle show/hide completed tasks" - "User can change entry type after creation" artifacts: - path: "src/lib/components/EntryCard.svelte" provides: "Expandable entry with inline editing" contains: "expanded" - path: "src/lib/components/CompletedToggle.svelte" provides: "Toggle for showing completed tasks" min_lines: 15 - path: "src/routes/+page.svelte" provides: "Main page with completed toggle" contains: "CompletedToggle" key_links: - from: "src/lib/components/EntryCard.svelte" to: "src/routes/+page.server.ts" via: "form action ?/update" pattern: "action=.*\\?/update" --- Implement inline editing with expand/collapse and auto-save, plus completed tasks toggle. Purpose: Users can click an entry to expand and edit it in place. Changes save automatically as they type (debounced). Completed tasks can be shown/hidden. Output: Expandable EntryCard with auto-save, CompletedToggle component, updated page with toggle integration. @/home/tho/.claude/get-shit-done/workflows/execute-plan.md @/home/tho/.claude/get-shit-done/templates/summary.md @.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.md @.planning/phases/02-core-crud/02-CONTEXT.md @.planning/phases/02-core-crud/02-RESEARCH.md @.planning/phases/02-core-crud/02-02-SUMMARY.md @src/lib/components/EntryCard.svelte @src/routes/+page.svelte @src/routes/+page.server.ts Task 1: Add expand/collapse and inline editing to EntryCard src/lib/components/EntryCard.svelte Update EntryCard to support expand/collapse with inline editing and debounced auto-save. Key changes: 1. Add `expanded` state variable 2. When collapsed, show title + truncated content (current behavior) 3. When expanded, show editable fields: title input, content textarea, type selector 4. Auto-save changes with 400ms debounce using fetch to ?/update 5. Use Svelte's slide transition for smooth expand/collapse ```svelte
{:else} T {/if}

{entry.title || 'Untitled'}

{#if !expanded}

{entry.content}

{/if}
{#if isSaving} Saving... {/if} {entry.type}
{#if expanded}
{/if}
``` Features: - Click anywhere on header to expand/collapse - Checkbox click doesn't trigger expand (stopPropagation) - Smooth slide transition - 400ms debounce on input changes - "Saving..." indicator during save - Delete with confirmation dialog - Type can be changed after creation
Start dev server: `npm run dev` - Click an entry - should expand - Edit title or content - should see "Saving..." briefly - Click again - should collapse - Change type - should save - Delete - should prompt for confirmation EntryCard expands/collapses with inline editing and 400ms debounced auto-save
Task 2: Create CompletedToggle component and wire up showCompleted src/lib/components/CompletedToggle.svelte, src/routes/+page.svelte, src/routes/+page.server.ts **CompletedToggle.svelte** - Toggle for showing/hiding completed tasks: ```svelte ``` **Update +page.server.ts** - Accept showCompleted parameter: Modify the load function to accept a URL search param: ```typescript export const load: PageServerLoad = async ({ url }) => { const showCompleted = url.searchParams.get('showCompleted') === 'true'; const entries = entryRepository.getOrdered({ showCompleted }); return { entries, showCompleted }; }; ``` **Update +page.svelte** - Add toggle and use invalidateAll for refresh: ```svelte TaskPlaner

TaskPlaner

``` Note: The preference syncs with URL so the server can filter correctly. When toggle changes, URL updates and data reloads.
Start dev server: `npm run dev` - Create a task, mark it complete - Should disappear from list - Check "Show completed" - completed task should appear - Refresh page - toggle state should persist CompletedToggle shows/hides completed tasks, state persists in preferences and URL
After all tasks complete: 1. **TypeScript**: `npm run check` passes 2. **Expand/collapse**: Click entry to expand, click again to collapse 3. **Inline editing**: Title, content, type can be edited in expanded view 4. **Auto-save**: Editing shows "Saving..." then saves (no need to click save) 5. **Delete**: Delete button in expanded view with confirmation 6. **Completed toggle**: Checkbox in header shows/hides completed tasks 7. **Persistence**: Toggle state persists across page refreshes Requirements satisfied: - CORE-02: Edit entry ✓ - CORE-03: Delete entry ✓ (with confirmation) - CORE-06: Add notes (append to content) ✓ - EntryCard expands on click to show edit fields - Changes auto-save with 400ms debounce - Delete button with confirmation dialog - CompletedToggle shows/hides completed tasks - Toggle state persists in localStorage - TypeScript compilation passes After completion, create `.planning/phases/02-core-crud/02-03-SUMMARY.md`