Repository navigation
Add Dashwise Activity Layer - #376
Merged
Merged
Conversation
andreasmolnardev
marked this pull request as ready for review
October 9, 2026 22:32
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This branch adds a reusable Activity Layer to Dashwise, based on
experimentaland targetingexperimental.activitiescollection with owner relation, bounded fields, chronological and retention indexes, and per-owner/source idempotency index.@dashwise/integrationskit/activitiespublisher that calls the authenticated integration-scoped API without coupling integrations to PocketBase.Design decisions
latest-activitiesglanceable behavior in place and adds a separate activity stream to avoid changing existing dashboards unexpectedly.experimentalbranch contains no file-sharing or snippets prototype to preserve. No sharing/snippet production functionality is introduced.Migration
A new migration creates the private collection and indexes. It has no data backfill. Existing installations should apply it through the normal PocketBase migration flow. The migration test checks the collection definition, bounds, indexes, and private rules from source; it was not executed against a live PocketBase installation in this task.
Verification
bun run test— 43 passed, 0 failed (159 assertions).bun run check— passed (lint, workspace typecheck, generated OpenAPI consistency).bun run buildinapps/backend— passed.bun run buildinapps/web— passed; Vite emitted a large-chunk warning for the Widget bundle.Security
Ownership/source values are resolved server-side. Read, detail, delete, integration publishing, and realtime invalidation are scoped to the authenticated owner. Direct PocketBase API rules for activities are private. Payloads are bounded and reject secret-like metadata keys; action targets must be safe same-origin paths. Producer activity failures are caught so monitoring and feed jobs continue.
Known limitations