# Fluent Boards review context

Trace changed REST behavior from app/Http/Routes/api.php through its policy, controller and service. Use AGENTS.md for repository conventions.

## Derived task views

A stored mention or notification can outlive board membership. When changing task visibility, follow both the result query and the category count in app/Services/TaskService.php. Use current board access for each. Check an accessible board and a formerly accessible board in the same view, including an empty incoming task-ID list. See tests/php/task-medium-access-boundaries-test.php and fix b3346062.

## Task cover lifecycle

Follow upload, replacement, removal and the generic settings update through app/Http/Controllers/TaskController.php and TaskService. Cleanup must identify the image's owning task and object type. Existing settings can reference an image that no longer belongs to the task. Confirm the correct image is removed and unrelated images survive. The focused task boundary fixture above covers this ownership contract.

## Notification delivery

In app/Services/TelegramService.php, follow recipient selection through enqueue and eventual delivery. Board access and global or per-board pauses can change while a job waits. Inspect the shared NotificationService checks at both stages, including retries. Exercise a still-eligible recipient alongside a paused one. Inspect tests/php/telegram-rich-delivery-test.php and tests/php/notification-current-access-test.php for the precise assertions available. Fix f9c73bd2 records the missed pause. A queued job alone does not demonstrate provider delivery.

## Core and Pro handoff

For shared Telegram settings or hook ownership, trace registration, stored settings and the sibling plugin consumer. Check Core alone and mixed supported versions for duplicate dispatch or lost configuration. Start with tests/php/telegram-owner-handoff-test.php and tests/php/telegram-shared-contract-test.php. Record which combinations the fixtures model and whether a live provider was exercised.

## Bulk and frontend state

For archive bulk operations in resources/admin/Components/Board/Menu/ArchiveTasks.vue, inspect selection after partial success. Succeeded rows should leave the selection and failures should remain available for retry. Follow response handling into the task list and its refreshed order. See b1cbeb24. Use the focused fixtures available on the target revision and identify any interaction that still needs a browser.
