sinatra.dev

Changelog

What shipped in Sinatra, newest first.

Subscribe by RSS.

September 2026

fix· Models

A run blocked on an unreachable model no longer burns a free task

When no available credential can serve the pinned model, the run now fails before it is counted against your daily allowance.

Pinning a model that none of your credentials could serve already failed before any sandbox was created. It just failed after the run had been counted against your daily free allowance, so a typo in .sinatrarc cost you a task. The check now runs first.

The same change treats a workspace OpenRouter key as able to serve any model in the catalog, since it is a gateway. Workspaces on an OpenRouter key that were previously refused an Anthropic-credentialed model are not refused any more.

#1124

feature· Models

Claude Fable 5.1 in the model catalog

Fable 5.1 is selectable in .sinatrarc and the dashboard, on all three engines.

It is spelled fable-5-1 directly and claude-fable-5.1 through OpenRouter. The sandbox CLI pins moved up in the same change: opencode 1.18.27 and oh-my-pi 18.1.8 are the first pinned versions whose bundled model catalogs list it.

#1123

fix· Billing

The free tier is one pool of 5 tasks a day

Managed runs and own-key runs draw from a single daily pool of five, of which at most one runs on our keys.

The two were counted independently before this, so a workspace could take five own-key tasks and a managed one on top.

The edge is sharper than "one of the five". Once anyone in the workspace has run a task on their own key or subscription, the managed slot is spent for the day, and a member with no credentials of their own gets nothing further even with slots left in the pool. If you were relying on the sixth task, you will notice.

The dashboard billing card shows the pool and what the signed-in member has left.

#1119, #1120

feature· Models

Connect your own ChatGPT subscription, per member

Each member can link their personal Codex subscription to a workspace, and the tasks they start run on it.

A team where everyone already pays for a subscription no longer needs a shared key to get off the managed path. Model credentials were a workspace-level setting before this, so one key or one connection covered everybody.

A personal connection takes precedence over the workspace key and over our managed key for that member's tasks, and onboarding counts it as configured model access.

#1096, #1099, #1101

feature· Workspaces

Invite teammates by email

Invitations are addressed to a person and redeemable only by them, instead of a join link anyone could forward.

A join link is one forward away from being a link anyone can use. An invitation now expires after seven days and can only be redeemed by a signed-in user whose own verified GitHub address matches the one it was sent to.

Delivery took a second pass. The mail was built in August but was not actually being sent in production until 1 September, and it now comes from a named sender with a working reply-to. One gap we have not closed is that the invite list shows "Sent" even when a delivery was skipped or failed.

#1017, #1036, #1100, #1115

August 2026

security· Linear

Linear delegations require a linked Linear identity

Handing an issue to Sinatra from a Linear account that was never linked to a Sinatra user is refused, with a reply saying how to link it.

This broke handovers that used to work. Sinatra runs a task as the person who handed it over, using their Linear identity, and since 28 August it will not start when that Linear account has never been linked to a Sinatra user through Linear sign-in. Being a member of the workspace is not enough.

The run stops and Sinatra replies on the issue with a link to workspace settings; linking takes about half a minute. The first version of that reply told people to sign in, which was useless advice for anyone who already had an account, and it was corrected on 2 September.

#1063, #1114

improvement· GitHub

New pull requests are assigned to whoever asked for the task

The PR Sinatra opens is assigned to the member who asked for the task.

A PR with no assignee sits in nobody's queue. Assignment is best-effort: if the person cannot be resolved to a GitHub account, or that account has no access to the repository, the PR opens unassigned rather than the run failing.

#1083

fix· Linear

Stop in Linear stops the turn, not the whole task

Linear's Stop control used to cancel the entire workstream. It now interrupts the current turn and leaves the task in place.

Stop was wired to the same terminal signal as cancelling a task, so it took the whole workstream down and archived the sandbox, queued follow-ups included. The running turn is now interrupted within a few seconds and no pull request is opened for it.

Anything the agent had already pushed stays on the branch. Anything it had only committed inside the sandbox goes with the sandbox.

#1028

feature· Workspaces

Workspace access requests and member removal

A blocked install now files an access request for an owner to approve, and owners can remove members.

Installing Sinatra on a GitHub or Linear org that already has a workspace used to dead-end, with nothing you could do about it from either side. That attempt now files a request an owner picks up in settings. Removing a member takes effect on their next request.

There is still no way to ask for access from inside the product. The request has to come from an install attempt.

#998, #999, #1000, #1004

security· Sandboxes

Idle sandboxes are deleted after 30 days

A sandbox that has gone 30 days without activity is now deleted outright, instead of sitting archived indefinitely.

Every task gets its own sandbox with your repository in it. It stops when the task ends and is archived a day later, and until now nothing removed it after that. The clock runs on activity rather than on archiving, so in practice a sandbox sits archived for about 29 days before the sweep takes it.

#983

feature· Models

The oh-my-pi engine is selectable

A third agent engine alongside claude-code and opencode, now visible in the dashboard and the published .sinatrarc schema.

oh-my-pi was already in the catalog as hidden plumbing. Free-tier managed runs have been executing on it since July, so unhiding it changes what you can pick rather than what the product could already do. It carries the openai-codex/gpt-5.6-* tiers, which no other engine exposes; the other Codex-backed models are reachable through opencode too.

#980