Enhance NotificationDropdown with type-specific icons, French description builder,
click-to-navigate with mark-as-read, and "Voir toutes les notifications" link.
Add full notifications page at /notifications with pagination (25/page), individual
mark-as-read, and empty state. Includes code review fixes: workspace-scoped unread
count and dropdown items, race condition fix (mark-as-read before navigate),
efficient markAllAsRead via direct update, deleted declaration URL handling,
and per-workspace cache keys. 7 new feature tests.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add NudgeController with 1-hour throttling per declaration, NudgePopover component
on declarations index and dashboard, shadcn-vue popover primitives, and per-declaration
nudge tracking. Owners/managers can nudge assigned workers with one click.
Includes 10 feature tests covering authorization, throttling, and cache invalidation.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Set up Laravel notification system with NotificationType enum (5 types),
NudgeNotification, DocumentUploadedNotification, and DeclarationOverdueNotification
classes with database + mail channels. Add email templates, infrastructure tests,
and fix existing NotificationController tests for workspace compatibility.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Load all retrospective files during story creation to carry forward
lessons learned, open action items, architecture corrections, and
deferred code review items. Fulfills Epic 2 retro action item A1.
Also includes Epic 2 retrospective and sprint status updates.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Delete 14 legacy Folder test files (FolderTypeTest, MediaDownloadTest,
FolderMentionTest) that referenced removed routes/tables from the Epic 0
folders-to-declarations rename. Declaration equivalents already exist.
Fix WorkerDashboardTest session edge case where HandleInertiaRequests
middleware auto-assigns workspace, invalidating the no-session assumption.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add role-scoped activity feed to the dashboard showing the 20 most recent
workspace events. Owners/Managers see all activity (declarations, clients,
team changes); Workers see only their assigned declarations. Includes
French descriptions, relative timestamps, responsive layout (desktop
sidebar, tablet inline, mobile collapsible), and 7 passing Pest tests.
Review fixes applied: batch-load declarations/clients/users to eliminate
N+1 queries, consistent soft-delete handling in URL resolution, French
grammar singular/plural fix, missing icon map entry, and corrected tablet
breakpoint per spec.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Scope stat cards and urgent declarations table to the authenticated
worker's own assignments. Add empty state when no declarations are
assigned, hide the "Assigné à" column for worker role, and expose
isWorker flag through DashboardController and dashboard types.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add PriorityAlertsPanel component to the dashboard, update DashboardController
with alert logic, and apply misc UI fixes across sidebar, forms, and pages.
Includes epic-1 retrospective and sprint status update.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Story 1.1: Permission enum, config, AuthorizesPermissions & HasWorkspaceScope traits, member→worker migration
- Story 1.2: Team page with member list, invitation system with queued email
- Story 1.3: Role assignment (Manager/Worker) and member removal with activity logging
- Story 1.4: Owner-only permission toggle matrix for Managers (manage team, view logs, configure portal)
- Story 1.5: Role-based access enforcement — Workers see only assigned declarations/clients, sidebar scoping
- Story 1.6: Workspace switcher dropdown for multi-workspace users with session-based switching
- 83 new/modified files, 182 tests passing with zero regressions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Stories 0.2-0.5: rename folders→declarations (backend+frontend), configure
Redis for cache/queue/sessions, add foundation database migrations
(permissions, archived_at), replace DeclarationStatus enum with architecture
lifecycle values, create DeclarationObserver for status transition validation
and auto-archive, fix controller status transitions to respect observer rules.
93 tests pass (240 assertions).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Include .claude/commands/ and .cursor/commands/ containing all BMAD
workflow definitions so team members can use them out of the box.
Only .claude/settings.local.json remains gitignored (user-specific).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Initial commit of the L'Ami Fiduciaire SaaS platform built on Laravel 12,
Vue 3, Inertia.js 2, and Tailwind CSS 4.
Story 0.1 (rename folders to declarations in database) is implemented and
code-reviewed: migration, rollback, and 6 Pest tests all passing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>