Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 05 Sep 06:56
· 20 commits to master since this release
v0.4.0
27f9269

Breaking

  • Existing issue-tracker configuration stops working. A tracker no longer stores an owner/repo (or a GitLab project id) of its own; which repository it files into now comes from the project's repositories, under Project settings → Repositories. Old targets and per-project tracker overrides are not migrated and are no longer read, so issue filing stops until each project has a repository whose URL matches the tracker's forge and host. Set the repository once and it serves both source links and issue filing.
  • The SQLite migration rebuilds the integrations table, which every install has. It brings SQLite in line with PostgreSQL (UNIQUE(org_id, name) plus the missing organisation foreign key) and adds the org-wide routing flag. Back up your database before upgrading.
  • Slack, webhook and issue-tracker integrations now require a commercial license. Existing installs without one keep their configuration and credentials, but delivery through those channels stops on upgrade; each refusal is logged rather than dropped silently. Email alerting — new issues, regressions, thresholds and digests — stays free and is unaffected. A lapsed license keeps delivering for a 30-day grace window and only blocks adding, editing, enabling or testing an integration. Nothing is ever deleted, and everything resumes on renewal. See docs/commercial/integrations.md.

Taken together, a free install upgrading through this release loses Slack, webhook and tracker integrations and has to reconfigure any tracker it was using.

Added

  • Integrations can deliver to every project in the organisation, with a per-project exclusion list
  • Each integration has a page showing where it delivers, where it is customised and where it is excluded
  • Email integrations carry a default recipient, used where a project has not set its own
  • Failed notifications are queued and retried for 24 hours, then wait on Settings → Delivery queue to be replayed or discarded
  • Trackers file into any of the project's repositories, and ask when more than one matches
  • Repositories take a forge-type override, for self-hosted instances the hostname can't identify
  • Filed issue links survive deleting their integration, and can be unlinked individually
  • Issue stream: filter by environment (also in the JSON API and MCP)
  • Transaction summary: span breakdown, related issues, and a percentile trend with regression markers
  • Replay list: duration, URL, user, browser/OS and error count
  • Traces table now pages past its first 25 rows
  • Stack traces: runs of library frames collapse behind one control, plus an in-app-only filter, order toggle and per-frame copy
  • Breadcrumbs: bounded scroll area and a category filter

Changed

  • A repository can carry a stack-path prefix, so a multi-repo project links each frame to the right repository. Once any repository in a project has a prefix, only prefix matching applies and repositories without one stop producing source links.
  • Self-hosted GitHub, Gitea and Forgejo hostnames are detected, repairing source links that were silently missing
  • Durations read 1.59s and 484ms instead of raw milliseconds
  • Every list page offers the same eight time ranges
  • Sidebar, heading and breadcrumb agree on each page's name; the core sections show on every project
  • Sortable columns now look sortable, and the active one is marked
  • Delete all N requires an explicit "select all N matching this filter" step
  • xhr and fetch breadcrumbs read GET https://… [200] instead of showing an empty message

Fixed

  • A multi-byte character in an event, trace or span id crashed the page it appeared on; ids are now validated at ingest
  • The "All events" and "All releases" pages were empty for users whose active organisation owns no projects
  • Trace waterfall drew the root span full-width regardless of its duration, and the header undercounted spans
  • Issue-stream chart labelled its most recent bucket with the previous day
  • /web/projects/{id}/issues/ returned 404 instead of opening the issue stream
  • Long tag values ran underneath their count badge
  • Issues sharing an exception type were indistinguishable in the list

Container images: ghcr.io/franzos/stackpit:0.4.0 (SQLite), ghcr.io/franzos/stackpit:0.4.0-postgres (PostgreSQL)

Verify a download:

sha256sum -c stackpit-x86_64-unknown-linux-gnu.tar.gz.sha256

Install steps: README

Changes since v0.3.27: compare