Releases: relaticle/activity-log
Release list
v1.2.2
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
SoftDeletesand the record was trashed, rendering its timeline threwModelNotFoundException— 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
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
.gitattributesmarksdocs/,tests/,art/,.github/andphpunit.xml.distasexport-ignore, so acomposer requireinstall drops from ~2.5 MB (153 files) to ~123 KB (58 files) — a 95% reduction. Onlysrc/,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 holdscontents: write. Resolved from the tags already in use, so CI behaviour is unchanged. - Added a Dependabot config covering
github-actions,composer, and the docsnpmtree, with weekly grouped updates and a release cooldown. Thegithub-actionsentry 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
Added
- Opt-in same-save merge for
fromActivityLog(mergedRenderer: ...): rows sharing a non-empty spatiebatch_uuidcollapse into oneTimelineEntrywhosepropertiesunion every grouped row's payload and whoserendereris set explicitly. Read-side only; requires abatch_uuidcolumn onactivity_log(host-owned). - Merged
propertiesnow accumulate repeated array-valued keys instead of overwriting them: a save touching several entities under the same key (e.g. onecustom_field_changesrow per field) keeps every payload viaarray_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
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-clockinstead of the missing Remixri-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
First feature release on the 1.x line since v1.0.1.
Added
- Configurable activity model via the
activity_modelconfig key inactivity-log.php;ActivityLogSourceandRelatedActivityLogSourceresolve 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
RelatedActivityLogSourcenow emitstype='related_activity_log'- Removed the dead
date_groupsconfig 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
v1.0.0
First stable release of relaticle/activity-log.
v1.0.0-alpha.1
What's Changed
- Update design by @AsmitNepali in #2
- feat(docs): Add docs. by @AsmitNepali in #3
New Contributors
- @AsmitNepali made their first contribution in #2
Full Changelog: https://github.com/relaticle/activity-log/commits/v1.0.0-alpha.1