fix: remove tracked task files and update .gitignore

tasks/backlog/*.md and tasks/examples/*.md were not covered by
.gitignore — only active/ and archive/ were. Added both patterns
and removed 56 tracked task files from the index.

Files remain on disk (only removed from git tracking).
This commit is contained in:
Brad Groux 2026-02-02 20:03:00 -06:00
parent 774673b80a
commit 57f637fe9d
5 changed files with 2 additions and 202 deletions

2
.gitignore vendored
View file

@ -32,6 +32,8 @@ pnpm-debug.log*
# Runtime data (keep .gitkeep for structure)
tasks/active/*.md
tasks/archive/*.md
tasks/backlog/*.md
tasks/examples/*.md
tasks/attachments/
tasks/archive-attachments/
.veritas-kanban/*

View file

@ -1,67 +0,0 @@
---
id: task_example_001
title: Build user authentication flow
type: code
status: in-progress
priority: high
project: my-project
created: '2026-01-15T10:00:00.000Z'
updated: '2026-01-15T14:30:00.000Z'
subtasks:
- id: sub_001a
title: Set up JWT token generation
done: true
- id: sub_001b
title: Create login API endpoint
done: true
- id: sub_001c
title: Build login form component
done: false
- id: sub_001d
title: Add session persistence
done: false
timeTracking:
entries:
- id: time_example_001a
startTime: '2026-01-15T10:15:00.000Z'
endTime: '2026-01-15T11:45:00.000Z'
duration: 5400
- id: time_example_001b
startTime: '2026-01-15T13:00:00.000Z'
endTime: '2026-01-15T14:30:00.000Z'
duration: 5400
totalSeconds: 10800
isRunning: false
comments:
- id: comment_example_001a
author: AI Agent
text: >-
JWT setup complete — using RS256 with 15-minute access tokens and 7-day
refresh tokens. Login endpoint returns both tokens with httpOnly cookie
for the refresh token.
timestamp: '2026-01-15T11:45:00.000Z'
- id: comment_example_001b
author: AI Agent
text: >-
Login API endpoint done. Supports email/password auth with bcrypt
verification. Rate-limited to 5 attempts per minute per IP. Moving to
the frontend form next.
timestamp: '2026-01-15T14:30:00.000Z'
position: 0
---
Implement a complete authentication flow with JWT tokens, login/logout, and session persistence.
**Requirements:**
- JWT-based authentication with access + refresh tokens
- Login form with email/password
- Secure token storage (httpOnly cookies for refresh)
- Rate limiting on auth endpoints
- Session persistence across page reloads
**Technical Notes:**
- Use bcrypt for password hashing (cost factor 12)
- Access tokens: 15 min expiry, RS256
- Refresh tokens: 7 day expiry, stored in httpOnly cookie

View file

@ -1,37 +0,0 @@
---
id: task_example_002
title: 'Fix: Dashboard WebSocket memory leak'
type: code
status: todo
priority: high
project: my-project
created: '2026-01-16T09:00:00.000Z'
updated: '2026-01-16T09:00:00.000Z'
comments:
- id: comment_example_002a
author: Human
text: >-
Seeing memory climb steadily on the dashboard page. Heap snapshot shows
detached DOM nodes from the real-time chart component. Likely the
WebSocket listener isn't cleaning up on unmount.
timestamp: '2026-01-16T09:00:00.000Z'
position: 1
---
The dashboard page leaks memory when left open. After ~30 minutes, the tab consumes over 500MB.
**Steps to Reproduce:**
1. Open the dashboard
2. Leave it running for 30+ minutes
3. Check Chrome DevTools → Memory → Heap snapshot
4. Observe detached DOM nodes growing linearly
**Suspected Root Cause:**
WebSocket event listeners in `RealtimeChart.tsx` are not cleaned up in the `useEffect` return function. Each re-render adds a new listener without removing the old one.
**Fix Plan:**
1. Add cleanup function to WebSocket useEffect
2. Move WebSocket connection to a shared context (avoid per-component connections)
3. Add memory regression test

View file

@ -1,53 +0,0 @@
---
id: task_example_003
title: Research vector database options for semantic search
type: research
status: done
priority: medium
project: my-project
created: '2026-01-14T08:00:00.000Z'
updated: '2026-01-14T16:00:00.000Z'
timeTracking:
entries:
- id: time_example_003a
startTime: '2026-01-14T08:30:00.000Z'
endTime: '2026-01-14T12:00:00.000Z'
duration: 12600
- id: time_example_003b
startTime: '2026-01-14T13:00:00.000Z'
endTime: '2026-01-14T15:45:00.000Z'
duration: 9900
totalSeconds: 22500
isRunning: false
comments:
- id: comment_example_003a
author: AI Agent
text: >-
Evaluated 4 options: Pinecone (managed, expensive at scale), Weaviate
(open-source, good hybrid search), Qdrant (Rust-based, fast), and
pgvector (PostgreSQL extension, simplest if already on Postgres).
Recommendation: pgvector for MVP (zero new infra), migrate to Qdrant
if we need dedicated vector performance later.
timestamp: '2026-01-14T15:45:00.000Z'
position: 2
---
Evaluate vector database solutions for adding semantic search to the application.
**Criteria:**
- Self-hostable (or affordable managed)
- Good TypeScript/Node.js SDK
- Supports hybrid search (vector + keyword)
- Can handle 100K+ documents
- Active community and maintenance
**Databases to Evaluate:**
1. Pinecone
2. Weaviate
3. Qdrant
4. pgvector (PostgreSQL extension)
5. ChromaDB
**Deliverable:** Comparison matrix with recommendation for MVP and scale phases.

View file

@ -1,45 +0,0 @@
---
id: task_example_004
title: Set up CI/CD pipeline with GitHub Actions
type: automation
status: todo
priority: medium
project: my-project
created: '2026-01-16T11:00:00.000Z'
updated: '2026-01-16T11:00:00.000Z'
subtasks:
- id: sub_004a
title: Create lint + typecheck workflow
done: false
- id: sub_004b
title: Add unit test runner
done: false
- id: sub_004c
title: Configure build verification
done: false
- id: sub_004d
title: Set up staging auto-deploy
done: false
- id: sub_004e
title: Add production deploy with manual approval
done: false
position: 3
---
Create a complete CI/CD pipeline using GitHub Actions with staged deployments.
**Pipeline Stages:**
1. **Lint & Typecheck** — Run ESLint + TypeScript compiler on every push
2. **Test** — Run unit and integration tests
3. **Build** — Verify production build succeeds
4. **Deploy Staging** — Auto-deploy to staging on `main` branch push
5. **Deploy Production** — Manual approval gate, then deploy
**Requirements:**
- Use pnpm for package management
- Cache node_modules between runs
- Run stages in parallel where possible
- Slack notification on failure
- Branch protection: require CI pass before merge