Upgrading
Storyfeed is pre-1.0. Breaking changes are named here with their replacement.
Before you upgrade
composer update storyfeed/storyfeed
php artisan vendor:publish --tag="storyfeed-migrations"
php artisan migrate
php artisan storyfeed:doctorREPUBLISHING MIGRATIONS
Publishing is additive — new add_* files appear, existing ones are untouched. If you published before v0.5, check for a duplicate column migration and read the schema note before deploying. Verify with migrate:fresh locally, never on the deploy.
DON'T RUN optimize FIRST
If you verify with your test suite, do not run php artisan optimize beforehand — cached config overrides phpunit.xml and can drop a seeded database. Run php artisan optimize:clear first. See Testing.
v0.7 — read modes renamed
flat / grouped / curated → log / live / summary. The default is summary; curated is reserved for a future relevance-ranked view.
Storyfeed::feed()->flat(); // → ->log()
Storyfeed::feed()->grouped(); // → ->live()
Storyfeed::feed()->curated(); // → ->summary()'grouping' => ['default' => 'summary'], // 'curated' now throwsAPI-only: mode names never appeared in the payload or in cursors, so no client change is required. The old values throw and name their replacement rather than falling back to a default.
If your UI exposes modes in a query string, translate old values rather than letting a stale bookmark fall through to the default — showing the wrong view silently is worse than an error.
v0.6 — aggregation
- Axes formalized. Custom axes need no package edits; hashes are unchanged for the built-ins, so no payload change.
- Composites.
Collectablemodels bundle at batch close. Author bothcomposite.{verb}aggregate grammar and*.{verb}singular grammar for the parent — see Grammar. - Null-headline groups became reachable. A group with no safe headline now arrives with both
headline_templateandheadlinenull. Audit any last-resort branch in your renderer that composes prose from node entities: written for singletons, it announces one actor over a many-actor group. sync_tokenadded to the envelope. Store and compare it; on change, drop accumulated nodes and refetch.
v0.5 — the Story layer
Storyfeed\Story classes and make:story replace hand-authoring seven registries per activity type. The registries remain supported — Stories compile into them.
Nothing to migrate: existing registry calls keep working, and you can move types over one at a time.