Mission support and limits
What a mission can authorise today and where its enforcement stops.
On this page
A mission limits one tree of agent work to an authorised contract and an expiry. It can allow only internal work, with an empty external-capability list. Memory, team reads, coordination and pure computation are classified by the backend's internal-tool table. That classification does not bypass the agent's ordinary grants.
The GitHub pilot
Provider-specific enforcement currently covers a narrow GitHub pilot: content reads and writes, branch creation, pull-request reads, creation and merge. Optional GitHub work needs a connection and exact repository, branch, path or pull-request bounds. A non-SDLC township does not need that connection or any of those capabilities.
Calls refused inside a mission
Other provider calls, generic HTTP, connector tools and MCP calls remain refused inside a mission. A tool being available outside missions does not mean it is supported inside one. Coverage reports these differences for actual grants. Broad provider-neutral external admission is not implemented by hiding GitHub rows.
Outside a mission
Outside a mission, Legacy preserves normal tool behaviour. Observe allows external calls and records what enforcement would refuse. Enforce refuses external calls without a mission. Scheduled, webhook and action-step work is not automatically bound, so enabling Enforce can stop those calls. Preview the consequences for the township before changing this policy.
Write limits and spend
Write limits are shared across the whole mission tree. External cost is currently zero for the governed pilot operations. Model spend is checked before each model round and recorded after it, so in-progress rounds can exceed the remaining model allowance. An internal-only mission can still consume model capacity through the work loop.
Uncertain outcomes
A provider write with an unknown outcome is blocked from an equivalent retry. A failed receipt alone does not prove the provider did nothing. Later verified evidence can update an action and complete its mission or ancestors. Authorised operators can record an outcome after checking the provider. That decision can permit a retry and must not be guessed.
Containment and cancellation
Containment stops new admissions. Cancellation ends mission authority. Closing a Townsify access session does not invalidate the GitHub token stored by the connection. The pilot does not supply provider-side session revocation. A call already admitted near cancellation can still be sent because admission is the ordering point.
Custody records
Custody is append-only and hash-chained in the database. It can reveal an edit or missing event relative to a known head. It is not independently anchored outside the platform. A signature, an audit record and a provider effect verdict answer different questions.
Completion
A mission with no provider completion criteria stays active until its lifecycle ends through cancellation or expiry. Finishing an internal task does not claim verified provider completion. Provider credentials changed after authorisation require the corresponding mission authority to be reviewed again.
Current provider support
| Operation | Bounds |
|---|---|
| GitHub content read | Account, repository, permitted paths and optional ref; file reads pin an immutable commit and refuse symlinks. |
| GitHub content write | Account, repository, branch, paths and exact content. |
| GitHub branch creation | Account, repository, new branch and base. |
| GitHub pull-request read | Account, repository and pull request. |
| GitHub pull-request creation | Account, repository, head and base. |
| GitHub pull-request merge | Account, repository, pull number, expected head SHA and approval policy. |
| Other external providers | No mission adapter yet. Calls are refused inside a mission. |
Related pages
Need more help?
Open Mysaria from the console header to ask about the page you're on, or send work to an agent in your township.