One completion check
Every path to Done checks acceptance criteria, required evidence and approval tied to the current task version. Follow the completion check.
For the people who answer for what ships. In Seyal, the web app, MCP tools, rules and agents all reach Done through one check, and every step leaves a record.

The task service is the common path for changes made in the app, through MCP or by server-run agents.
Every path to Done checks acceptance criteria, required evidence and approval tied to the current task version. Follow the completion check.
Changes and their events are written in the same transaction. Actor identities make actions by people, agents and client tokens distinguishable.
Each MCP connection has its own token and tool scope. A member's token is limited to the projects they choose and expires after 90 days unless they pick another term. Only the token hash is stored; revoke the token to refuse its next request.
Agents never merge or delete in Seyal. You manage permissions in connected repositories and decide which integrations and AI features are enabled.
Every API route and MCP tool declares an action that one permission check allows or refuses. Owners change settings and export data, members do task work, and viewers read.
An agent should not be able to weaken the checks that judge its own work.
Task text that Seyal writes into agent instruction files and Dispatcher issues is marked as untrusted data, and commit messages are only recorded as progress notes. Once Ask Seyal has read board text, each change it proposes waits for a person to confirm it.
Changes to auth, permissions, payments, migrations, CI or deploy, dependencies, production data and business decisions always need a person. Owners can adjust the rules in Settings.
A pull request that touches protected paths, such as CI definitions, agent control files or package files, needs an owner's approval of that task version and checks Seyal can trust. A new PR head makes earlier checks and reviews stale.
The defaults favour refusing a request over guessing.
Production needs owner emails. Ownership needs a verified email or a trusted single-tenant Microsoft account. You can limit sign-in to listed email domains.
Webhooks to private and local addresses are refused. Only owners can read a webhook's address; everyone else sees the host.
Request bodies have size limits, and public intake and incident links have rate limits. A team daily AI ceiling and per-project budgets stop new AI runs once spending reaches them.
Self-hosted task records stay on your server. That does not make connected providers local: sign-in, fonts, coding clients and optional integrations have their own data flows.
Review provider settings and terms before enabling a connection. Configure your installation.
Provide settings through environment variables. The repository’s .env.example lists the supported options.
Set database, sign-in and integration credentials in your environment. Keep real tokens and secrets out of source control and logs.
Use HTTPS and a private database connection. Turn off development sign-in on hosted servers, and configure trusted proxy handling only behind a proxy you control. Read the production setup.
Contact INFOC to report a suspected security issue.
Describe the affected version, the steps needed to reproduce the issue and the impact. Leave credentials and private task data out of the report. Use the contact options on the INFOC company website.