Changelog
O que mudou no Standcast. As versões são as mesmas dos releases no GitHub. A seção da API segue a política de versionamento.
Produto
Não lançado
0.3.1 — 01/11/2026
- O site de documentação publica
robots.txte umsitemap.xml, e a landing page serve as próprias fontes.
0.3.0 — 01/11/2026
- O Standwise agora é Standcast: novo nome, binário da CLI
standcast, arquivo de configuraçãostandcast.yml, variáveis de ambienteSTANDCAST_*, headers de webhookStandcast-*, prefixos de tokensc_/sck_e novas URLs (api-standcast.usefachada.dev,docs-standcast.usefachada.dev). As sessões e API keys existentes deixam de funcionar: entre de novo e crie keys novas. - Landing page em standcast.usefachada.dev, em inglês e português, com um formulário para entrar no beta público. Depois de enviar, você vai para o guia de instalação.
- Documentação para agentes de IA:
llms.txt,llms-full.txte uma cópia em Markdown de cada página, em inglês e português. A API serve o própriollms.txt, com links para o documento OpenAPI e os guias da API. - A página de privacidade explica o que o formulário do beta guarda e por quanto tempo.
- Os arquivos CODEOWNERS são lidos em tempo linear.
0.2.1 — 31/10/2026
- Só ferramentas de release: as versões batem com os releases do GitHub em todo lugar. Nenhuma mudança no produto.
0.2.0 — 31/10/2026
Primeiro beta público.
Reforço de robustez:
- A página de setup mostra um aviso quando um time do GitHub no
standwise.ymlnão é encontrado ou é grande demais (só os primeiros 5.000 membros são usados). - Sair na página de setup encerra a sessão web.
- Links de pull request são comparados sem diferenciar maiúsculas de minúsculas, então um impedimento não é encaminhado duas vezes para a mesma pull request.
- Revisões, eventos da timeline e check runs são lidos página por página no GitHub, então pull requests grandes não são mais cortadas.
- O health check tem limite de tempo e não acumula consultas quando o banco está lento.
- O instalador funciona em shells BusyBox.
- Uma identidade antiga do Slack é removida automaticamente quando o Slack responde
user_not_foundouuser_disabled. A pessoa entra de novo para vincular outra vez.
- A página de setup mostra um aviso quando um time do GitHub no
Site de documentação em inglês e português, com a visão geral do produto, guias para admins e membros, a referência do
standwise.ymle os guias da API.Plugin do Claude Code com a skill
/dailye o servidor MCP incluído.standwise mcp: servidor MCP local com as tools de rascunho e de envio confirmado, mais tools de leitura para gestores e admins.CLI
standwise:login,logout,whoami,draft,submitesuggestion.Consolidado do time no Slack no
digest_at, com as dailies atrasadas na thread.Página de setup: estado da configuração, conexão com o Slack, entregas com falha, API keys e webhooks.
Lembretes por mensagem direta no
remind_at, uma vez por pessoa por dia. Oremind_atprecisa ser anterior aodigest_at.Encaminhamento de impedimentos por mensagem direta: revisores, depois CODEOWNERS, depois gestores.
Impedimentos sugeridos para pull requests sem revisão e CI falhando, visíveis só para a pessoa, com
signals.direct_messagepara receber também por mensagem direta.Check run
Standwise confignas mudanças dostandwise.yml.Retenção: logs de entrega de webhook depois de 30 dias, sugestões resolvidas depois de 90 dias, sessões expiradas removidas.
O inglês é o idioma padrão quando nenhum é definido.
Integração com o Linear: um admin conecta um workspace do Linear por instalação na página de setup (app OAuth que age como ele mesmo, escopo só de leitura
read, tokens criptografados e renovados automaticamente). Requisito de deploy: a api e o worker agora precisam deLINEAR_CLIENT_IDeLINEAR_CLIENT_SECRETe não iniciam sem elas.tracker: { provider: linear, team: <CHAVE> }por time emembers.<login>.linear(e-mail); as pessoas também são ligadas pelo e-mail do GitHub.tracker.provider: jiraé aceito, com um aviso no setup.Os seus cards do Linear (
card_started,card_done) no rascunho, e impedimentos de card encaminhados aos responsáveis pelos cards que travam, depois ao responsável pelo card, a quem o criou ou aos gestores.Impedimento sugerido
card_stalepara cards em andamento hásignals.card_stale_days(padrão 5), visível só para a pessoa.
API
O changelog da API é mantido em inglês.
Versions match the GitHub releases. During the public beta (0.x), incompatible changes are listed here before they ship; from 1.0 they are announced at least 90 days in advance. See the versioning guide.
Unreleased
0.3.1 — 2026-11-01
- No API changes.
0.3.0 — 2026-11-01
Breaking: the rename to Standcast
- Base URL:
https://api-standcast.usefachada.dev. - API keys start with
sck_and session tokens withsc_. Keys and sessions created before 0.3.0 stop working; create new keys on the setup page. - Webhook headers are
Standcast-Signature,Standcast-EventandStandcast-Delivery, withUser-Agent: Standcast-Webhooks/1. Update your signature verification to readStandcast-Signature. - The internal confirmation header is
X-Standcast-Confirmation, and the MCP tools are namedstandcast_*. - The configuration file is
standcast.yml, and the check run is named "Standcast config".
New
GET /llms.txt: a plain-text index for AI agents, linking the OpenAPI document, the interactive reference and the documentation'sllms.txt.POST /betareceives the landing page's beta form. It is not part of the public API and is not in the OpenAPI document.- Deploy requirement: the api accepts
LANDING_URL(https, no trailing slash, defaulthttps://standcast.usefachada.dev). The worker acceptsRESEND_API_KEY, and needsBETA_EMAIL_FROMandSUPPORT_EMAILwhen the key is set.
0.2.1 — 2026-10-31
- No API changes.
0.2.0 — 2026-10-31
First public beta.
Agents, CLI and configuration
- The interactive API reference moved from
/docs/apito/reference./docs/apianswers with a permanent redirect. The documentation site moved to its own domain (DOCS_URL);/docsand/docs/*on the api redirect there. Deploy requirement: the api acceptsDOCS_URL(https, no trailing slash, defaulthttps://docs.standwise.dev). - Linear integration. The draft
activitycan includecard_startedandcard_doneitems for your own Linear cards (repois the Linear team key,urlthe card link), andsuggestionscan havekind: "card_stale". Both are additive: clients must ignore kinds they do not know. Blockerrefaccepts a Linear card URL. standwise.yml:tracker: { provider: linear, team: <KEY> },members.<login>.linear(an email) andsignals.card_stale_days(default 5) now take effect.- Deploy requirement: the api and the worker need
LINEAR_CLIENT_IDandLINEAR_CLIENT_SECRETand fail to start without them. - Setup page: Connect Linear and Reconnect Linear for admins. A failed connection returns
linear_oauth_failed(HTTP 502). - Default language is now English when none is specified.
standwise mcp: local MCP server over stdio with the toolsstandwise_whoami,standwise_get_draftandstandwise_submit_daily(confirmed by the person through elicitation, orconfirmed: trueas a fallback), plus the manager toolsstandwise_list_teams,standwise_get_digest,standwise_list_dailiesandstandwise_list_blockers. See the MCP guide.- Suggested blockers:
standwise.ymlacceptssignals.direct_message(defaultfalse). Suggestions are visible only to the person, in their draft, and never in the organization API, the manager tools, the webhooks or the setup page. standwise suggestion confirm|ignore <id>and the MCP toolstandwise_decide_suggestion. Thesuggestionsfield of the draft is now a list of{ id, kind, ref, since }. A repeated decision is accepted; the opposite decision returnssuggestion_already_decided(HTTP 409).managersentries must be GitHub logins;@org/teamis rejected as a validation error.- Internal session routes
GET /v1/manage/teams,/v1/manage/digests,/v1/manage/dailiesand/v1/manage/blockersback the manager tools. They are readable by team managers and organization admins, limited to the last 90 days, and listed only in/openapi.internal.json. - Daily item text and link titles may no longer contain control characters (newlines and tabs included), bidirectional controls or line separators, and link titles are limited to 200 characters. Link URLs follow the same character rules and must use
httporhttps. Invalid dailies getinvalid_daily. GET /healthalso checks the database and returns503with{ "ok": false }when it does not answer.- Internal:
orgis required onGET /v1/draftandGET /v1/today; the documentation said it was optional. - Internal: the GitHub webhook receiver answers a signed body that is not JSON with
422 invalid_requestinstead of400, and rejects bodies over 1 MB with413 payload_too_large. - Internal:
GET /v1/todayreturns the standup date for an organization, andPOST /v1/dailiesaccepts an optionalX-Standwise-Confirmation: human|agentheader that is stored with the daily. Neither changes the public API.
Webhooks
- Outbound webhooks: an organization admin registers HTTPS endpoints on the setup page and picks the events
daily.submitted,blocker.openedanddigest.sent. Apingtest event can be sent from the setup page. - Every delivery is a signed
POSTwith the headersStandwise-Signature(t=<unix seconds>,v1=<hex HMAC-SHA256>),Standwise-Event,Standwise-DeliveryandUser-Agent: Standwise-Webhooks/1. Failed deliveries are retried up to 8 attempts; an endpoint with 20 failed deliveries in a row is disabled. - The OpenAPI document has a
webhookssection with the payload of each event. See the webhooks guide.
Organization API
- API keys (
swk_) created by an organization admin on the setup page, with the scopesteams:read,dailies:read,digests:readandblockers:read. - Read-only organization operations:
GET /v1/org/teams,GET /v1/org/dailies,GET /v1/org/dailies/{id},GET /v1/org/digestsandGET /v1/org/blockers, paginated by cursor. - New error codes
insufficient_scope(HTTP 403, withrequired_scope) andnot_found(HTTP 404).
Foundation
- OpenAPI 3.1 document at
/openapi.jsonand interactive reference at/reference. GET /health.- Rate limits with
RateLimit-*andRetry-Afterheaders; new error coderate_limited(HTTP 429).