Skip to content

Releases: relaticle/activity-log

v1.2.2

Choose a tag to compare

@AsmitNepali AsmitNepali released this 14 Aug 16:15

A single bug fix: timelines no longer 404 on soft-deleted records. Upgrading from v1.2.1 requires no code changes on your side.

Fixed

  • Soft-deleted subjects resolve again. If a model uses SoftDeletes and the record was trashed, rendering its timeline threw ModelNotFoundException — a 404 for the whole page, not just an empty timeline. This hit anyone following Filament's soft-delete guidance to let users open trashed records.

Why it happened

Filament hands ActivityLogLivewire a subject's class and key rather than the model instance — Livewire has to serialize component state between requests, so it can't hold the object. The component re-queries by key, and that query still had the model's SoftDeletingScope applied, so a trashed record matched nothing and findOrFail() threw. Filament had already authorized the record and put it on screen; only the round-trip through the database lost it.

The scope is now dropped when resolving the subject. That is a no-op for models without SoftDeletes (the scope was never registered) and for records that aren't trashed (the scope would have matched them anyway). The only behavior change is that a trashed record which previously 404'd now renders its timeline.

Reported and originally fixed by @rafaucau in #39; #40 removed the config gate so the fix applies by default.

Full Changelog: v1.2.1...v1.2.2

v1.2.1

Choose a tag to compare

@AsmitNepali AsmitNepali released this 08 Aug 07:11

Packaging and CI hardening only — no runtime code changed in this release. Upgrading from v1.2.0 requires no code changes on your side.

Changed

  • Dist archive no longer ships development-only paths. A .gitattributes marks docs/, tests/, art/, .github/ and phpunit.xml.dist as export-ignore, so a composer require install drops from ~2.5 MB (153 files) to ~123 KB (58 files) — a 95% reduction. Only src/, resources/, config/ and the package metadata now ship. docs/ (the Nuxt site source) was the bulk of the old weight.

Security

  • All GitHub Actions pinned to full commit SHAs. Every uses: ref previously pointed at a mutable tag (@v6, @v2, @v4), which the upstream owner can force-move. Pinning removes that path for altering what runs in CI — notably in the docs workflow, which holds contents: write. Resolved from the tags already in use, so CI behaviour is unchanged.
  • Added a Dependabot config covering github-actions, composer, and the docs npm tree, with weekly grouped updates and a release cooldown. The github-actions entry is what keeps the new SHA pins from going stale.

Note on export-ignore

export-ignore applies at tag time, so v1.2.1 is the first release with the lean archive. v1.2.0 and earlier are unaffected and keep their original size.

Full Changelog: v1.2.0...v1.2.1

v1.2.0

Choose a tag to compare

@AsmitNepali AsmitNepali released this 20 Jun 10:08

Added

  • Opt-in same-save merge for fromActivityLog(mergedRenderer: ...): rows sharing a non-empty spatie batch_uuid collapse into one TimelineEntry whose properties union every grouped row's payload and whose renderer is set explicitly. Read-side only; requires a batch_uuid column on activity_log (host-owned).
  • Merged properties now accumulate repeated array-valued keys instead of overwriting them: a save touching several entities under the same key (e.g. one custom_field_changes row per field) keeps every payload via array_merge — list payloads concatenate, associative maps still union per key.

Backward-compatible: default mergedRenderer = null keeps the original per-row behaviour.

Full Changelog: v1.1.1...v1.2.0

v1.1.1

Choose a tag to compare

@AsmitNepali AsmitNepali released this 15 Jun 01:49

Patch release on the 1.x line.

Added

  • Visible empty state on the timeline with a host-configurable message

Fixed

  • Replaced remaining Remix icons with Heroicons so the timeline renders with the bundled icon set (#24)
  • Timeline dedup no longer over-collapses distinct activities saved in the same second; the dedup key now includes the activity id
  • Empty-state card now uses heroicon-o-clock instead of the missing Remix ri-history-line, so it renders instead of showing a blank card
  • Read path resolves the Activity model from the plugin key, then Spatie's activitylog.activity_model, then the base model, so a tenant-scoped Activity subclass applies to reads as well as writes

Full Changelog: v1.1.0...v1.1.1

v1.1.0

Choose a tag to compare

@AsmitNepali AsmitNepali released this 13 Jun 14:11

First feature release on the 1.x line since v1.0.1.

Added

  • Configurable activity model via the activity_model config key in activity-log.php; ActivityLogSource and RelatedActivityLogSource resolve the model from config instead of hardcoding it
  • Laravel 13 support (illuminate/* ^13.0)
  • Versioned documentation site (Nuxt Content + Docus) on GitHub Pages
  • Community files: LICENSE.md, CHANGELOG.md, CONTRIBUTING.md, SECURITY.md

Changed

  • Reworked the timeline as a continuous border rail with connector lines centered on entry icons for even, symmetric spacing

Fixed

  • RelatedActivityLogSource now emits type='related_activity_log'
  • Removed the dead date_groups config key (#10)
  • Scoped TimelineCache::forget() to a single subject so it no longer over-invalidates other caches (#12)
  • Capped the related-row fetch in RelatedActivityLogSource (#14)
  • Removed the orphan root-namespace ActivityLogPlugin

Full Changelog: v1.0.1...v1.1.0

v1.0.1

Choose a tag to compare

@ManukMinasyan ManukMinasyan released this 29 Apr 12:07
04725b4

What's Changed

New Contributors

Full Changelog: v1.0.0...v1.0.1

v1.0.0

Choose a tag to compare

@AsmitNepali AsmitNepali released this 28 Apr 09:16
2ae439b

First stable release of relaticle/activity-log.

v1.0.0-alpha.1

Choose a tag to compare

@ManukMinasyan ManukMinasyan released this 20 Apr 10:54

What's Changed

New Contributors

Full Changelog: https://github.com/relaticle/activity-log/commits/v1.0.0-alpha.1