Skip to content

Actions - fixes, Claim support and dedicated page#2

Open
kov wants to merge 3 commits into
infinitedevice:mainfrom
kov:actions
Open

Actions - fixes, Claim support and dedicated page#2
kov wants to merge 3 commits into
infinitedevice:mainfrom
kov:actions

Conversation

@kov

@kov kov commented May 20, 2026

Copy link
Copy Markdown

These are small fixes to actions, as I noticed they were shuffling around and I wanted a way to "take" a specific action that I could then follow on a separate page, so I added the Claim button.

kov-collabora and others added 3 commits May 14, 2026 09:58
The cached ChannelSummary snapshots action items at summarisation time
using ActionItemSummary (id + text only, no resolved/ignored fields).
The frontend's pending filter (!i.resolved && !i.ignored) treated
undefined as truthy, so Ignore/Done buttons had no visible effect.

Fix handle_summaries_cached to re-query the live store for each
channel's pending action items on every request, so PATCH changes
are reflected immediately without waiting for the next cycle.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add 'claimed' column to action_item table (migration-safe ALTER TABLE)
- Add claimed bool to ActionItem and ActionItemSummary types
- Add set_action_item_claimed() to Store
- Add 'claim'/'unclaim' actions to PATCH /api/v1/action-items/{id}
- Pass claimed state through handle_summaries_cached
- Add Claim/Unclaim button to ActionItemsList (blue, with 'claimed' badge)
- New ActionsPage: top section shows claimed items grouped by channel;
  bottom section shows all channel cards with pending action items
- Add Actions nav tile (clipboard-check icon) to the sidebar

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…m cache

- handle_channel_mark_read now also removes the channel from the
  in-memory summary_cache and deletes its SQLite cached_summary row,
  so it cannot reappear via GET or SSE after being dismissed.

- SummarisePage.onActionItemUpdate now merges action_items in-place
  per channel instead of replacing the full summaries array with a
  re-sorted copy — prevents scroll position loss and list reordering
  on every Ignore/Done/Claim click.

- SummarisePage tracks dismissedChannelIds; mergeSummary() skips
  any SSE event for a channel the user already marked as read.

- ActionsPage splits loadData (initial, shows spinner) from
  refreshData (post-action, silent in-place merge) so clicking
  buttons no longer flashes the loading state.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants