KB: todo-app

← All workspaces
3775 entries 170 domains 4.39 MB database Last ingest: 2026-03-22 02:00

3775 results — page 69 of 76

Title Domain Type Severity Source Freshness Updated
[Workflow] agent-meta-base: Step 2: Discover Current State claude/agents/agent-meta-base pattern medium agent-meta-base.md 88 2026-03-22 02:00:03
Source file: /home/heine/.claude/agents/agent-meta-base.md
Source date: 2026-03-20
Keywords: ["agent","meta","base","step","discover","current","state"]
Cross-domain: []
Symptoms: []
Body:
```bash python3 ~/.claude/scripts/usage-stats.py summary --days=30 python3 ~/.claude/scripts/usage-stats.py unused --days=60 ls ~/.claude/agents/*.md | wc -l ls ~/.claude/hooks/*.sh 2>/dev/null ```
[Workflow] agent-meta-base: Modular Agent Build System claude/agents/agent-meta-base pattern medium agent-meta-base.md 88 2026-03-22 02:00:03
Source file: /home/heine/.claude/agents/agent-meta-base.md
Source date: 2026-03-20
Keywords: ["agent","meta","base","modular","build","system"]
Cross-domain: []
Symptoms: []
Body:
Some agent files are auto-generated from `~/.claude/agents/parts/`. A hook blocks direct edits. Currently generated: `orchestrator.md`. To modify: edit parts, then `~/.claude/agents/build-agent.sh orchestrator [profile]`. See `orchestrator-ops.md` for full details.
[Tool usage] agent-meta-base: Step 1: Load Context claude/agents/agent-meta-base api_note medium agent-meta-base.md 88 2026-03-22 02:00:03
Source file: /home/heine/.claude/agents/agent-meta-base.md
Source date: 2026-03-20
Keywords: ["agent","meta","base","step","load","context","mcp"]
Cross-domain: []
Symptoms: []
Body:
Read: `~/.claude/agents/agent-meta/context-{WORKSPACE}.md` If it doesn't exist, discover the workspace: ```bash ls .claude/agents/*.md 2>/dev/null # Local agents ls .claude/commands/*.md 2>/dev/null # Local commands cat .mcp.json 2>/dev/null | python3 -c "import json,sys; print(list(json.load(sys.stdin).get('mcpServers',{}).keys()))" 2>/dev/null ls coordination/experts/ 2>/dev/null # Expert structure cat CLAUDE.md 2>/dev/null | head -30 # Workspace...
[Workflow] agent-meta-base: Agent-Ops — Generic Fallback claude/agents/agent-meta-base pattern medium agent-meta-base.md 88 2026-03-22 02:00:03
Source file: /home/heine/.claude/agents/agent-meta-base.md
Source date: 2026-03-20
Keywords: ["agent","meta","base","agentops","generic","fallback"]
Cross-domain: []
Symptoms: []
Body:
You are **agent-meta** in a workspace that doesn't have a specialized variant yet. Read the context file for data, then apply these generic procedures. **Shared principles are in the router:** `~/.claude/agents/agent-meta.md` — you inherit all of them.
Need Help? general/getting-started-with-services pattern info getting-started-with-services.md 75 2026-03-22 02:00:03
Source file: docs/llm/getting-started-with-services.md
Source date: 2026-03-10
Keywords: ["need","help"]
Cross-domain: []
Symptoms: []
Body:
- Check the detailed migration guides in `docs/llm/` - Look at the example files in `public/js/examples/` - Review the modernization plan for the big picture --- **Remember:** The goal is to write less code that does more, with better UX!
Next Steps general/getting-started-with-services pattern info getting-started-with-services.md 75 2026-03-22 02:00:03
Source file: docs/llm/getting-started-with-services.md
Source date: 2026-03-10
Keywords: ["next","steps"]
Cross-domain: []
Symptoms: []
Body:
Once you're comfortable with the basics: 1. Explore batch operations (update/delete multiple items at once) 2. Use advanced filtering 3. Implement file uploads with `taskAPI.attachDocument()` 4. Customize notification appearance 5. Migrate more complex files
Troubleshooting general/getting-started-with-services pattern info getting-started-with-services.md 75 2026-03-22 02:00:03
Source file: docs/llm/getting-started-with-services.md
Source date: 2026-03-10
Keywords: ["troubleshooting"]
Cross-domain: []
Symptoms: []
Body:
### Services not found error **Error:** `ReferenceError: taskAPI is not defined` **Solution:** Make sure the service scripts are included in your HTML **before** your application code. ### Notifications not showing **Problem:** Notifications don't appear **Solution:** 1. Check that `notification.js` is included 2. Check browser console for JavaScript errors 3. Make sure you're calling the notification functions correctly ### CSRF token errors **Error:** 419 CSRF token mismatch **Solution...
Tips general/getting-started-with-services pattern info getting-started-with-services.md 75 2026-03-22 02:00:03
Source file: docs/llm/getting-started-with-services.md
Source date: 2026-03-10
Keywords: ["tips"]
Cross-domain: []
Symptoms: []
Body:
### 1. Start Small Don't try to migrate everything at once. Start with one file or one feature. ### 2. Test Frequently Test each change after migrating to catch any issues early. ### 3. Keep Old Code Commented When migrating, keep the old code commented out until you're sure the new code works: ```javascript /* // Old way const response = await fetch('/tasks', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': document.querySelector('meta[...
Example Files general/getting-started-with-services pattern info getting-started-with-services.md 75 2026-03-22 02:00:03
Source file: docs/llm/getting-started-with-services.md
Source date: 2026-03-10
Keywords: ["example","files"]
Cross-domain: []
Symptoms: []
Body:
Check out these example files: - `public/js/examples/modernized-task-crud.js` - Complete CRUD example
API Reference Quick Links general/getting-started-with-services api_note info getting-started-with-services.md 75 2026-03-22 02:00:03
Source file: docs/llm/getting-started-with-services.md
Source date: 2026-03-10
Keywords: ["api","reference","quick","links"]
Cross-domain: []
Symptoms: []
Body:
For complete API documentation, see: - [API Service Migration Guide](./api-service-migration-guide.md) - [Notification Migration Guide](./notification-migration-guide.md) - [Modernization Plan](./modernisering-plan.md)
Common Patterns general/getting-started-with-services pattern info getting-started-with-services.md 75 2026-03-22 02:00:03
Source file: docs/llm/getting-started-with-services.md
Source date: 2026-03-10
Keywords: ["common","patterns"]
Cross-domain: []
Symptoms: []
Body:
### Loading Data ```javascript // Load all tasks const tasks = await taskAPI.getAll(); // Load with filters const completedTasks = await taskAPI.getCompleted(); const favoriteTasks = await taskAPI.getFavorites(); const projectTasks = await taskAPI.getByProject(projectId); // Load all projects const projects = await projectAPI.getAll(); const activeProjects = await projectAPI.getActive(); ``` ### Creating/Updating ```javascript // Create const newTask = await taskAPI.create(taskData); const ...
Complete Example general/getting-started-with-services pattern info getting-started-with-services.md 75 2026-03-22 02:00:03
Source file: docs/llm/getting-started-with-services.md
Source date: 2026-03-10
Keywords: ["complete","example"]
Cross-domain: []
Symptoms: []
Body:
Here's a complete before/after example: ### Before (Old Way) ```javascript async function createTask(formData) { try { const response = await fetch('/tasks', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content }, body: JSON.stringify(formData) }); if (!response.ok) { throw new Error('Failed...
Step 4: Replace confirm() Calls general/getting-started-with-services pattern info getting-started-with-services.md 75 2026-03-22 02:00:03
Source file: docs/llm/getting-started-with-services.md
Source date: 2026-03-10
Keywords: ["step","replace","confirm","calls"]
Cross-domain: []
Symptoms: []
Body:
**Before:** ```javascript if (confirm('Are you sure?')) { deleteTask(taskId); } ``` **After:** ```javascript if (await notificationService.confirm('Are you sure?')) { deleteTask(taskId); } ``` **Note:** The new `confirm()` is **async**, so you must use `await`.
Step 3: Replace fetch() Calls general/getting-started-with-services pattern info getting-started-with-services.md 75 2026-03-22 02:00:03
Source file: docs/llm/getting-started-with-services.md
Source date: 2026-03-10
Keywords: ["step","replace","fetch","calls"]
Cross-domain: []
Symptoms: []
Body:
Find any `fetch()` calls and use the API services instead: **Before:** ```javascript const response = await fetch('/tasks', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content }, body: JSON.stringify(taskData) }); const newTask = await response.json(); ``` **After:** ```javascript const newTask = await taskAPI.create(taskData); ```
Step 2: Replace alert() Calls general/getting-started-with-services pattern info getting-started-with-services.md 75 2026-03-22 02:00:03
Source file: docs/llm/getting-started-with-services.md
Source date: 2026-03-10
Keywords: ["step","replace","alert","calls"]
Cross-domain: []
Symptoms: []
Body:
Find any `alert()` calls in your code and replace them: **Before:** ```javascript alert('Task created successfully!'); ``` **After:** ```javascript showSuccess('Task created successfully!'); ``` ### Quick Reference | Old | New | |-----|-----| | `alert('Success message')` | `showSuccess('Success message')` | | `alert('Error message')` | `showError('Error message')` | | `alert('Warning message')` | `showWarning('Warning message')` | | `alert('Info message')` | `showInfo('Info message')` |
Step 1: Include the Services general/getting-started-with-services pattern info getting-started-with-services.md 75 2026-03-22 02:00:03
Source file: docs/llm/getting-started-with-services.md
Source date: 2026-03-10
Keywords: ["step","include","the","services"]
Cross-domain: []
Symptoms: []
Body:
Add these script tags to your main layout file (e.g., `resources/views/layouts/app.blade.php`) **before** your other JavaScript files: ```html <!-- Modern Services --> <script src="{{ asset('js/services/api.js') }}"></script> <script src="{{ asset('js/services/task-api.js') }}"></script> <script src="{{ asset('js/services/project-api.js') }}"></script> <script src="{{ asset('js/services/reference-api.js') }}"></script> <script src="{{ asset('js/services/notification.js') }}"></script> <!-- You...
Quick Start Guide general/getting-started-with-services pattern info getting-started-with-services.md 75 2026-03-22 02:00:03
Source file: docs/llm/getting-started-with-services.md
Source date: 2026-03-10
Keywords: ["quick","start","guide"]
Cross-domain: []
Symptoms: []
Body:
This guide shows you how to start using the new API Service Layer and Notification System in your Laravel Todo app.
Common Patterns Summary general/code-patterns pattern info 07-code-patterns.md 75 2026-03-22 02:00:03
Source file: docs/llm/07-code-patterns.md
Source date: 2026-03-10
Keywords: ["common","patterns","summary"]
Cross-domain: []
Symptoms: []
Body:
### 1. Relationship Syncing Always use `sync()` for many-to-many relationships with array of IDs ### 2. Eager Loading Always eager load relationships in controllers to prevent N+1 queries ### 3. Service Injection Inject services via constructor for reusable business logic ### 4. Zone Filtering Check session for `active_zone_id` and apply `whereHas` filter ### 5. Validation Use `$request->validate()` for inline validation or Form Requests for complex cases ### 6. Response Types Check `$reque...
JavaScript Patterns general/code-patterns pattern info 07-code-patterns.md 75 2026-03-22 02:00:03
Source file: docs/llm/07-code-patterns.md
Source date: 2026-03-10
Keywords: ["javascript","patterns"]
Cross-domain: []
Symptoms: []
Body:
### AJAX Request ```javascript async function updateTask(taskId, data) { try { const response = await axios.patch(`/tasks/${taskId}`, data); if (response.data.success) { showNotification('Task updated!', 'success'); updateTaskInUI(response.data.task); } } catch (error) { if (error.response?.status === 422) { // Validation errors displayErrors(error.response.data.errors); } else { showNot...
Database Query Patterns general/code-patterns pattern info 07-code-patterns.md 75 2026-03-22 02:00:03
Source file: docs/llm/07-code-patterns.md
Source date: 2026-03-10
Keywords: ["database","query","patterns"]
Cross-domain: []
Symptoms: []
Body:
### Eager Loading (Prevent N+1) ```php // BAD - N+1 queries $tasks = Task::all(); foreach ($tasks as $task) { echo $task->projects->count(); // Queries for each task } // GOOD - Single query $tasks = Task::with('projects')->get(); foreach ($tasks as $task) { echo $task->projects->count(); // No additional queries } // Multiple relationships $tasks = Task::with(['projects', 'areas', 'contexts', 'zones'])->get(); ``` ### Conditional Eager Loading ```php $tasks = Task::with([ 'proj...
View Patterns (Blade) general/code-patterns pattern info 07-code-patterns.md 75 2026-03-22 02:00:03
Source file: docs/llm/07-code-patterns.md
Source date: 2026-03-10
Keywords: ["view","patterns","blade"]
Cross-domain: []
Symptoms: []
Body:
### Form with Validation ```blade <form method="POST" action="{{ route('tasks.store') }}"> @csrf {{-- Text input with validation --}} <div class="mb-3"> <label for="title" class="form-label">Title</label> <input type="text" class="form-control @error('title') is-invalid @enderror" id="title" name="title" value="{{ old('title', $task->title ?? '') }}" required> @error('title') ...
Service Patterns general/code-patterns pattern info 07-code-patterns.md 75 2026-03-22 02:00:03
Source file: docs/llm/07-code-patterns.md
Source date: 2026-03-10
Keywords: ["service","patterns"]
Cross-domain: []
Symptoms: []
Body:
### Lookup Data Service ```php class LookupDataService { public function getAllLookupData($zoneId = null) { // Build base queries $allAreasQuery = Area::query(); $allProjectsQuery = Project::query(); // Apply zone filtering if provided if ($zoneId) { $allAreasQuery->whereHas('zones', fn($q) => $q->where('zones.id', $zoneId) ); $allProjectsQuery->whereHas('zones', fn($q) => $q->wh...
Model Patterns general/code-patterns pattern info 07-code-patterns.md 75 2026-03-22 02:00:03
Source file: docs/llm/07-code-patterns.md
Source date: 2026-03-10
Keywords: ["model","patterns"]
Cross-domain: []
Symptoms: []
Body:
### Standard Model ```php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Task extends Model { // Table name (if non-standard) protected $table = 'tasks'; // Mass assignable attributes protected $fillable = [ 'title', 'notes', 'due_date', 'tag', 'energy', 'time', 'action_state', 'task_type', 'is_completed', 'favorite', 'inactive', ]; // Attributes to cast p...
Controller Patterns general/code-patterns pattern info 07-code-patterns.md 75 2026-03-22 02:00:03
Source file: docs/llm/07-code-patterns.md
Source date: 2026-03-10
Keywords: ["controller","patterns"]
Cross-domain: []
Symptoms: []
Body:
### Standard CRUD Controller ```php class TaskController extends Controller { // List resources public function index(Request $request) { $tasks = Task::with(['projects', 'contexts', 'areas']) ->paginate(20); return view('tasks.index', compact('tasks')); } // Show create form public function create() { $lookup = $this->lookupService->getAllLookupData(); return view('tasks.create', $lookup); } // Store new resourc...
Naming Conventions general/code-patterns pattern info 07-code-patterns.md 75 2026-03-22 02:00:03
Source file: docs/llm/07-code-patterns.md
Source date: 2026-03-10
Keywords: ["naming","conventions"]
Cross-domain: []
Symptoms: []
Body:
### Files and Directories ``` Controllers: PascalCase + "Controller" suffix (TaskController.php) Models: PascalCase, singular (Task.php, Project.php) Services: PascalCase + "Service" suffix (TimeCapacityService.php) Views: snake_case (task_index.blade.php, project_edit.blade.php) Routes: kebab-case (/tasks, /time-capacity, /area-aliases) Migrations: timestamp + snake_case (2025_01_21_055011_create_tasks_table.php) ``` ### Variables and Methods ```ph...
Summary general/refactoring-summary pattern info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["summary"]
Cross-domain: []
Symptoms: []
Body:
This refactoring transformed a **monolithic codebase** into a **modular, testable, type-safe architecture** following SOLID principles and modern PHP best practices. **Key Achievements**: - ✅ 42 focused controllers (from 19 fat controllers) - ✅ 6 Enums with rich behavior - ✅ 2 DTOs for type safety - ✅ 4 Form Requests for validation - ✅ 6 Services for business logic - ✅ 7 comprehensive test suites - ✅ CI/CD pipeline with GitHub Actions - ✅ PSR-12 code style enforcement - ✅ 11 refactoring phases ...
Refactoring Lessons Learned general/refactoring-summary lesson info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["refactoring","lessons","learned"]
Cross-domain: []
Symptoms: []
Body:
### What Worked Well 1. **Phased Approach**: 11 phases made it manageable 2. **Testing First**: Tests caught issues early 3. **Type Safety**: Enums and DTOs prevented bugs 4. **CI/CD**: Automated checks ensured quality 5. **Documentation**: Inline comments helped 6. **Iterative Refinement**: Second pass on controllers (Phase 10) showed value of revisiting earlier work ### Challenges Overcome 1. **Large Controllers**: Extracted responsibility carefully 2. **Enum Migration**: Handled backward c...
Documentation Updates Required general/refactoring-summary pattern info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["documentation","updates","required"]
Cross-domain: []
Symptoms: []
Body:
This refactoring requires updates to: - ✅ Architecture documentation (patterns, layers) - ✅ Backend documentation (controllers, services, DTOs, Enums) - 🔄 API routes documentation (new controllers) - 🔄 Code patterns documentation (new patterns) - 🔄 Development guide (how to use new patterns)
Future Improvements general/refactoring-summary pattern info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["future","improvements"]
Cross-domain: []
Symptoms: []
Body:
### Recommended Next Steps 1. **Repository Pattern**: Abstract database queries further 2. **Event Sourcing**: For audit trail and undo/redo 3. **Command Pattern**: For complex task operations 4. **Queue Jobs**: For async task processing 5. **API Layer**: RESTful API with API Resources 6. **GraphQL**: For flexible client queries 7. **WebSockets**: For real-time updates 8. **Multi-tenancy**: Support multiple users/workspaces
Performance Impact general/refactoring-summary pattern info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["performance","impact"]
Cross-domain: []
Symptoms: []
Body:
### Neutral to Positive **No Performance Regression**: - Same number of database queries - Eager loading still used - Caching strategies unchanged **Performance Improvements**: - DTOs reduce array manipulation overhead - Explicit scopes more predictable - Service layer caching opportunities
Migration Path general/refactoring-summary pattern info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["migration","path"]
Cross-domain: []
Symptoms: []
Body:
### Backward Compatibility ✅ **Maintained**: All existing routes work ✅ **Database**: No schema changes required ✅ **Views**: No breaking changes ✅ **APIs**: Response formats unchanged ### Breaking Changes ⚠️ **Enum Values**: String comparisons must use `->value` ```php // Before if ($task->action_state === 'next') { ... } // After if ($task->action_state === ActionState::NEXT) { ... } // OR if ($task->action_state->value === 'next') { ... } ``` ⚠️ **LookupDataService**: Returns DTO instead...
Route Organization general/refactoring-summary api_note info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["route","organization"]
Cross-domain: []
Symptoms: []
Body:
### Before Refactoring ~100 routes, mixed organization ### After Refactoring **215 routes**, organized by domain: ```php // Tasks (40+ routes) Route::prefix('tasks')->group(function () { // CRUD, filtering, conversions, documents, chunks, dependencies, batch }); // Projects (30+ routes) Route::prefix('projects')->group(function () { // CRUD, filtering, conversions, documents, batch }); // References (20+ routes) Route::prefix('references')->group(function () { // CRUD, filtering,...
Database & Model Improvements general/refactoring-summary pattern info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["database","model","improvements"]
Cross-domain: []
Symptoms: []
Body:
### Enum Casts **Before**: ```php protected $casts = [ 'action_state' => 'string', 'task_type' => 'string', ]; ``` **After**: ```php use App\Enums\ActionState; use App\Enums\TaskType; protected $casts = [ 'action_state' => ActionState::class, 'task_type' => TaskType::class, ]; ``` **Benefits**: - Type-safe values - IDE autocomplete - Compile-time checking ### Query Scopes **Global Scopes Removed** (problematic, request-coupled) **Explicit Scopes Added**: ```php // Task mod...
SOLID Principles Adherence general/refactoring-summary pattern info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["solid","principles","adherence"]
Cross-domain: []
Symptoms: []
Body:
### S - Single Responsibility ✅ Each controller has one clear purpose ✅ Each service encapsulates one domain ✅ Form Requests focus solely on validation ### O - Open/Closed ✅ Easy to add new Enums (extend, don't modify) ✅ New filters can be added without changing existing code ✅ New controllers follow established patterns ### L - Liskov Substitution ✅ Controllers implement consistent interfaces ✅ Services are interchangeable ✅ DTOs can be extended (LookupDataWithHierarchyDTO extends LookupDataD...
Design Patterns Applied general/refactoring-summary pattern info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["design","patterns","applied"]
Cross-domain: []
Symptoms: []
Body:
### 1. Service Layer Pattern Business logic extracted to services (TaskFilterService, ZoneFilterService, etc.) ### 2. Data Transfer Object Pattern Type-safe data containers (LookupDataDTO, LookupDataWithHierarchyDTO) ### 3. Rich Enum Pattern Enums with behavior, not just values (ActionState, TaskType, etc.) ### 4. Form Request Pattern Validation separated from controllers ### 5. Single Responsibility Principle 42 focused controllers (from 19 fat controllers) ### 6. Orchestrator Pattern Agen...
Code Quality Improvements general/refactoring-summary pattern info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["code","quality","improvements"]
Cross-domain: []
Symptoms: []
Body:
### Laravel Pint **Applied**: PSR-12 code style to entire codebase **Benefits**: - Consistent formatting - Enforced in CI/CD - Automatic fixes via `./vendor/bin/pint` ### PHP 8.1+ Features **Used**: - Backed Enums with methods - Readonly properties (DTOs) - Constructor property promotion - Match expressions - Named arguments
Testing Infrastructure general/refactoring-summary pattern info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["testing","infrastructure"]
Cross-domain: []
Symptoms: []
Body:
### Before Refactoring - No meaningful tests (only example test) - No test factories - No CI/CD ### After Refactoring **Pest PHP** (modern, expressive testing framework) **Test Files**: 1. `FormRequestValidationTest.php` - Validates all form requests (265 lines) 2. `ModelScopesTest.php` - Tests query scopes (310 lines) 3. `TaskCrudTest.php` - Task CRUD operations (221 lines) 4. `ProjectCrudTest.php` - Project CRUD operations (259 lines) 5. `TaskFilterServiceTest.php` - Filtering logic (259 li...
Architecture Improvements general/refactoring-summary pattern info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["architecture","improvements"]
Cross-domain: []
Symptoms: []
Body:
### Before Refactoring ``` Controllers (19, avg 800+ lines) ↓ Models (24) ↓ Database ``` **Problems**: - Fat controllers with multiple responsibilities - String constants for states/types (error-prone) - Validation mixed with business logic - Difficult to test individual features - Hard to understand large controller files ### After Refactoring ``` Controllers (42, avg 200 lines) ← Form Requests (validation) ↓ Services (6) ← DTOs (type-safe data) ↓ Models (24) ← Enums (type-s...
Refactoring Phases general/refactoring-summary pattern info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["refactoring","phases"]
Cross-domain: []
Symptoms: []
Body:
### Phase 1: Foundation (Enums & DTOs) **Implemented**: - 6 Rich Enums with behavior (ActionState, TaskType, ProjectState, ProjectType, EnergyLevel, TimeLength) - 2 DTOs for type safety (LookupDataDTO, LookupDataWithHierarchyDTO) **Benefits**: - Type safety at compile time - Eliminated magic strings - Centralized UI metadata (labels, colors, icons) - Self-documenting code ### Phase 2: Validation & Service Layer **Implemented**: - 4 Form Request classes (StoreTaskRequest, UpdateTaskRequest, S...
Overview general/refactoring-summary pattern info 09-refactoring-summary.md 75 2026-03-22 02:00:03
Source file: docs/llm/09-refactoring-summary.md
Source date: 2026-03-10
Keywords: ["overview"]
Cross-domain: []
Symptoms: []
Body:
This document summarizes the comprehensive refactoring completed in the branch `claude/continue-codebase-refactoring-01X8BTyypJ2hgBFcaeZjZ2K7`. **Refactoring Stats**: - **25 commits** across 11 phases - **149 files changed** - **13,107+ lines added** (new patterns, tests, documentation) - **7,414 lines removed** (simplified, extracted logic) - **Net improvement**: +5,693 lines of better-structured code
Estimated Impact general/notification-migration-guide pattern info notification-migration-guide.md 75 2026-03-22 02:00:03
Source file: docs/llm/notification-migration-guide.md
Source date: 2026-03-10
Keywords: ["estimated","impact"]
Cross-domain: []
Symptoms: []
Body:
- **Alert calls replaced**: 213+ - **Code quality**: Much better UX - **User satisfaction**: Higher (non-blocking notifications) - **Accessibility**: Improved - **Time to migrate**: ~16 hours (all files) **Per file average**: 15 minutes to migrate all alerts
Next Steps general/notification-migration-guide pattern info notification-migration-guide.md 75 2026-03-22 02:00:03
Source file: docs/llm/notification-migration-guide.md
Source date: 2026-03-10
Keywords: ["next","steps"]
Cross-domain: []
Symptoms: []
Body:
After Notification System migration is complete, move to: 1. **XSS Security Fixes** - Audit and fix innerHTML usage 2. **jQuery Removal** - Replace with modern alternatives 3. **Drag & Drop Migration** - Migrate to SortableJS See `docs/llm/modernisering-plan.md` for full roadmap. ---
Comparison with alert() general/notification-migration-guide pattern info notification-migration-guide.md 75 2026-03-22 02:00:03
Source file: docs/llm/notification-migration-guide.md
Source date: 2026-03-10
Keywords: ["comparison","with","alert"]
Cross-domain: []
Symptoms: []
Body:
| Feature | alert() | Notification System | |---------|---------|---------------------| | Blocks UI | ✅ Yes | ❌ No (toast) | | Styling | ❌ Browser default | ✅ Custom, consistent | | Auto-dismiss | ❌ No | ✅ Yes | | Multiple at once | ❌ No | ✅ Yes (stacked) | | Types (success/error) | ❌ No | ✅ Yes | | Accessible | ⚠️ Basic | ✅ Full ARIA | | Mobile friendly | ⚠️ Blocks | ✅ Non-blocking | ---
Troubleshooting general/notification-migration-guide pattern info notification-migration-guide.md 75 2026-03-22 02:00:03
Source file: docs/llm/notification-migration-guide.md
Source date: 2026-03-10
Keywords: ["troubleshooting"]
Cross-domain: []
Symptoms: []
Body:
### Notifications not showing **Check:** 1. Is the script included in your HTML? 2. Are there JavaScript errors in console? 3. Is the notification container created? (Check DOM) ### Notifications showing but no styles **Check:** 1. Are the styles injected? Look for `<style id="notification-styles">` in `<head>` 2. Are there CSS conflicts? 3. Try force-reloading the page (Ctrl+F5) ### Confirm dialog not working **Remember:** - `notificationService.confirm()` is **async** - you must use `awai...
Testing general/notification-migration-guide pattern info notification-migration-guide.md 75 2026-03-22 02:00:03
Source file: docs/llm/notification-migration-guide.md
Source date: 2026-03-10
Keywords: ["testing"]
Cross-domain: []
Symptoms: []
Body:
After migration, test: - ✅ Success notifications appear and auto-dismiss - ✅ Error notifications appear and stay visible (or longer duration) - ✅ Multiple notifications stack correctly - ✅ Notifications are readable and styled correctly - ✅ Confirm dialogs work and return correct boolean - ✅ Notifications don't block interaction with the page - ✅ Notifications are accessible (test with screen reader if possible) ---
Files to Migrate (Priority Order) general/notification-migration-guide pattern info notification-migration-guide.md 75 2026-03-22 02:00:03
Source file: docs/llm/notification-migration-guide.md
Source date: 2026-03-10
Keywords: ["files","migrate","priority","order"]
Cross-domain: []
Symptoms: []
Body:
### High Priority (Most alert() calls): 1. `public/js/tasks.js` (~15 alert calls) 2. `public/js/projects.js` (~12 alert calls) 3. `public/js/references.js` (~10 alert calls) 4. `public/js/batch_update.js` (~8 alert calls) ### Medium Priority: 5. `public/js/common.js` 6. `public/js/agenda.js` 7. `public/js/settings.js` 8. `public/js/areas.js` 9. `public/js/zones.js` ### Lower Priority: - All other JavaScript files
Migration Checklist general/notification-migration-guide pattern info notification-migration-guide.md 75 2026-03-22 02:00:03
Source file: docs/llm/notification-migration-guide.md
Source date: 2026-03-10
Keywords: ["migration","checklist"]
Cross-domain: []
Symptoms: []
Body:
- [ ] Include notification service in layout - [ ] Migrate one file at a time - [ ] Replace `alert()` with appropriate `showSuccess/Error/Warning/Info()` - [ ] Replace `confirm()` with `notificationService.confirm()` (note: async!) - [ ] Test all notifications - [ ] Remove all `alert()` and `confirm()` calls - [ ] Update any documentation
Find and Replace Patterns general/notification-migration-guide pattern info notification-migration-guide.md 75 2026-03-22 02:00:03
Source file: docs/llm/notification-migration-guide.md
Source date: 2026-03-10
Keywords: ["find","and","replace","patterns"]
Cross-domain: []
Symptoms: []
Body:
To speed up migration, you can use these find/replace patterns: ### Pattern 1: Simple alerts **Find**: `alert\('([^']*)'\);` **Replace**: `showSuccess('$1');` **Note**: Review each replacement to use the correct type (success, error, warning, info) ### Pattern 2: Confirm dialogs **Find**: `if\s*\(\s*confirm\('([^']*)'\)\s*\)` **Replace**: `if (await notificationService.confirm('$1'))` ### Pattern 3: Alert in catch block **Find**: `alert\('Failed` **Replace**: `showError('Failed` ### Pattern...
Advanced Usage general/notification-migration-guide pattern info notification-migration-guide.md 75 2026-03-22 02:00:03
Source file: docs/llm/notification-migration-guide.md
Source date: 2026-03-10
Keywords: ["advanced","usage"]
Cross-domain: []
Symptoms: []
Body:
### Using the Service Directly For more control, use the `notificationService` object directly: ```javascript // Show notification with all options const id = notificationService.show('Custom message', 'warning', { title: 'Custom Title', duration: 5000 }); // Manually dismiss a notification notificationService.dismiss(id); // Dismiss all notifications notificationService.dismissAll(); // Different types notificationService.success('Success message'); notificationService.error('Error...
Real File Migration Examples general/notification-migration-guide pattern info notification-migration-guide.md 75 2026-03-22 02:00:03
Source file: docs/llm/notification-migration-guide.md
Source date: 2026-03-10
Keywords: ["real","file","migration","examples"]
Cross-domain: []
Symptoms: []
Body:
### Example: tasks.js (partial migration) **Before:** ```javascript // Create task async function createNewTask(formData) { try { const response = await fetch('/tasks', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content }, body: JSON.stringify(formData) }); if (!response.ok) { const errorD...
Ingestion History

Loading…