v0.30.0November 9, 2026Latest
Hardening: safe retries, fair limits, several orgs and a rebuilt Tickets page
- ✓Tickets, rebuilt. Saved views with counts (Mine, Triage, Needs review, Blocked, Overdue, All), grouping, sorting and search; one-line rows that show review state, blockers, Issue progress and the Jira key, with status and assignee menus right in the row. Opening a ticket shows it in a detail pane (beside the list on wide screens) with a Next step card and Overview, Activity, Review, Child tasks and Jira tabs. Keyboard shortcuts (press ? for the list), bulk Assign, Approve, Dismiss and Follow, a six-column board and a quicker New ticket dialog. See Dashboard.
- ✓Belong to more than one organization. Accept invites to, auto-join, create or activate several organizations. Anything that names an org uses that org; everything else uses your default org, which you pick with the switcher on the Organization page. sfs org list shows them all. See Organizations.
- ✓A more grounded session helper. Every sentence that states a fact is tied to the result it came from, and a sentence with no source is marked “not verified”. A conversation stays in one scope and one organization, citations must point at what a tool actually returned, lists say whether they are complete, and the helper always ends with an answer. Docs answers say whether the feature is on your plan and on your kind of install. See Session Helper.
- ✓Safe retries. Send an Idempotency-Key header on any create and a retry returns the first answer instead of creating a duplicate; the CLI and MCP server send one automatically. See REST API.
- ✓A published API contract. An OpenAPI snapshot with checks for breaking changes, deprecation headers, and an X-SessionFS-Ignored-Fields header that names request fields the server didn’t read. See API Contract and Versioning.
- ✓Business metrics and SLOs. Prometheus metrics for tickets, review loops, approvals, sweeps and integrations, four service level objectives with ready-made alert rules (optional Helm PrometheusRule) and Grafana panels. See Metrics Reference and Service Level Objectives.
- ✓Fair limits per organization. Meeting and chat extraction, helper questions, knowledge compiles and CSV exports are capped per organization (over the cap: 429 org_concurrency_limit with Retry-After), and heavy reads stop after 15 seconds. See Tenancy and Isolation.
- ✓Bulk operations. Invite up to 100 people, grant up to 100 project group members or resolve up to 100 meeting participants in one all-or-nothing request (sfs org invite --file, sfs project group grant --file, --file on resolve-participant).
- ✓Lineage and review loop guarantees. A distilled_from lineage edge (teacher to student model) and a page on every edge type; a page listing each review loop guarantee with the test that proves it. See Lineage Edge Types and Review Loop Guarantees.
- ✓Explained as you go. Product terms across the dashboard explain themselves on hover, focus or tap with a link to the docs; every icon button has a tooltip and a disabled button says why. The project header is one line with a section menu, and project details moved to Settings → About.
- ✓Changed: merge checks posted to GitHub and GitLab are ordered per commit, so an older result can’t overwrite a newer one; session pushes are scanned under the strictest DLP policy of every organization the session could land in; statuses read in sentence case (“In progress”, “In review”).
- ✓Fixed: POST /api/v1/sessions now runs the same DLP scan as a sync push; self-hosted signup verification links point at your own server; five review-loop races (retried worker starts, a stale worker finishing after a takeover, a double-posted verdict, loop status showing an older commit); admins of a second organization can manage its service keys, residents, trusted reviewers and teams; invites created without an email provider return the link to share.
- ●Migrations 001–137 (134 idempotency keys, 135 the distilled_from edge, 136 per-org concurrency slots, 137 merge check ordering; all additive). Self-hosted: run migrations 134–137 and schedule the idempotency-keys sweep hourly (see Self-Hosted). 145 MCP tools (unchanged).