Blog
Notes on agent security, MCP, and building Sallyport.
Latest Posts

8 min read
GitHub release automation with AI agents and approval
GitHub release automation can save time without giving AI agents unchecked publishing power. Use drafts, scoped actions, confirmation, and audit trails.
GitHub release automationAI release agents

6 min read
AI agents in customer support: earn update rights slowly
AI agents in customer support should begin with ticket lookups and private drafts, then earn update rights through approvals, narrow access, and audits.
AI agents in customer supportsupport ticket automation

8 min read
How to diagnose the first break in a hash chained audit log
Learn how to diagnose the first break in a hash chained audit log, preserve evidence, report byte offsets, and scope affected sessions.
hash chained audit logaudit log hash mismatch

8 min read
Shared developer Macs: control agent tool access
Shared developer Macs need clear identity, credential custody, approvals, and audit trails so local AI agents cannot borrow another user's access.
shared developer Macsagent tool access

8 min read
SSH agent forwarding risks in AI-assisted development
SSH agent forwarding risks grow in AI-assisted workflows. Learn how remote hosts reuse signing authority, how to disable it, and safer SSH patterns.
SSH agent forwarding risksAI coding agents

8 min read
Rotate credentials behind an action gateway with proof
Rotate credentials behind an action gateway without exposing secrets to AI agents, losing audit evidence, or leaving old API and SSH access active.
rotate credentials behind an action gatewayAPI key rotation

8 min read
AI agent configuration edits: safe remote change controls
Control AI agent configuration edits with independent backups, parser checks, reload probes, staged access rules, and review gates for remote changes.
AI agent configuration editsremote configuration

8 min read
Do decoded size limits protect an agent from compressed APIs?
Decoded size limits stop gzip and Brotli responses that look small on the wire from exhausting client memory, parsers, logs, or agent context.
decoded size limitsgzip decompression bomb

8 min read
Why are look-alike approval requests dangerous?
Look-alike approval requests can authorize different actions. Learn how to design and test approvals that expose the exact request a human is accepting.
look-alike approval requestsapproval request testing

8 min read
SSRF tests for agent tools that inject credentials
SSRF tests for agent tools need a destination matrix that catches loopback, private ranges, rebinding, redirects, and IPv6 before auth.
SSRF tests for agent toolscredential injection security

8 min read
Basic authentication usernames are sensitive metadata
Basic authentication usernames can reveal tenants, account roles, and API structure. Keep sensitive API metadata out of agent prompts and logs.
Basic authentication usernamessensitive API metadata

6 min read
How MCP tool list changes alter a live session
MCP tool list changes can widen an agent's authority mid-session. Learn when to compare definitions, pause work, and require a fresh run.
MCP tool list changesMCP tool security

8 min read
How to keep agent evidence separate from investigator notes
Keep agent evidence usable in an AI-agent investigation: preserve encrypted records, cite stable IDs, and keep conclusions in a separate case file.
agent evidenceAI agent audit trail

8 min read
Content type confusion in authenticated agent API calls
Content type confusion can let authenticated agent API calls bypass intent. Test JSON, forms, multipart, and empty bodies against one schema.
content type confusionauthenticated agent APIs

8 min read
How GraphQL mutations for AI agents resist destructive calls
GraphQL mutations for AI agents need typed inputs, narrow scopes, real previews, and conditional writes to prevent destructive generated requests.
GraphQL mutations for AI agentssafe GraphQL mutations

8 min read
Why do GET endpoints that mutate data need write approval?
GET endpoints that mutate data invite retries, previews, and accidental actions. Find hidden writes, redesign contracts, and require approval before dispatch.
GET endpoints that mutate dataunsafe GET requests

8 min read
HTTP or SSH for AI agents: limit blast radius
Choose HTTP or SSH for AI agents by comparing authority, audit records, retry safety, and the failure modes that turn small tasks into broad access.
HTTP or SSH for AI agentsAI agent security

8 min read
AI agent production access: a preflight review that holds up
AI agent production access needs narrow credentials, meaningful approvals, proven rollback, and audit evidence. Use this preflight review before a run.
AI agent production accessagent access control

8 min read
Temporary production access: grants that end with the task
Temporary production access for AI coding agents needs a purpose, hard expiry, early revocation, and a real denial test after closure.
temporary production accessAI agent permissions

8 min read
How local agent approvals survive remote desktop access
Set local agent approvals that remain meaningful during remote desktop sessions, with clear controls for screen sharing, support access, and audit trails.
local agent approvalsremote desktop security

8 min read
SSH host verification for agents that touch production
SSH host verification for autonomous coding agents: pin fingerprints, scope remote accounts, and review commands before damage spreads.
SSH host verificationautonomous coding agents

8 min read
Agent API access testing before a production rollout
Agent API access testing before a production rollout should prove approvals, injected credentials, failure handling, revocation, and call records.
agent API access testingAI agent API security

8 min read
AI agent API access: direct tokens or mediated actions?
AI agent API access needs more than narrow token scopes. Compare direct credentials with mediated actions for issues, deployments, support, and SSH.
AI agent API accessagent credentials

8 min read
Agent executable identity after a symlink swap
Test agent executable identity against symlink swaps on macOS, bind approvals to running code, and keep path aliases out of trust decisions.
agent executable identitysymlink swap macOS

8 min read
Service accounts for AI agents without shared accountability
Use service accounts for AI agents without shared accountability by assigning workflow identities, named owners, scoped access, audit evidence, and retirement rules.
service accounts for AI agentsAI agent identity

8 min read
Separate staging and production access for coding agents
Separate staging and production access for coding agents with distinct credentials, fixed endpoints, human approvals, audit records, and tested revocation.
separate staging and production accesscoding agent security

8 min read
Remote locale settings in agent command tests
Remote locale settings alter dates, sorting, decimals, and text decoding. Pin the environment, record it, and test deliberate variations.
remote locale settingslocale testing

8 min read
API schema changes: contract tests for safer agents
API schema changes can alter an AI agent's decisions without causing an error. Use contract tests for fields, defaults, response meaning, and retries.
API schema changescontract tests

8 min read
AI agent data minimization for safer tool calls
AI agent data minimization keeps customer records out of tool calls by enforcing narrow inputs, bounded outputs, and trusted execution boundaries.
AI agent data minimizationagent tool calls

8 min read
DNS changes by AI coding agents: make reviews safer
DNS changes by AI coding agents need separate create, edit, and delete actions so reviewers can assess DNS impact, drift, caches, and rollback.
DNS changes by AI coding agentsDNS record review

8 min read
Partial SSH command failures: stop agents repeating work
Partial SSH command failures need reconciliation, not blind retries. Capture exit codes, checkpoints, receipts, and observed remote state for AI agents.
partial SSH command failuresAI agent SSH

8 min read
AI coding agent threat model for API and SSH access
Build an AI coding agent threat model for API and SSH access with practical controls for prompt injection, credential isolation, approval, and audit records.
AI coding agent threat modelagent API security

8 min read
How to assess source-available security software
Assess source-available security software by testing its license, code access, release cadence, commercial boundaries, and credible exit path.
source-available security softwaresource-available license review

8 min read
Can SSH environment forwarding leak local context?
SSH environment forwarding can expose local context to remote commands. Audit SendEnv and AcceptEnv, then test an exact variable allowlist.
SSH environment forwardingOpenSSH SendEnv

8 min read
macOS logout security: end local agent authority
macOS logout security should revoke vault access, agent approvals, and queued actions before a departed developer can trigger another call.
macOS logout securityagent authority

8 min read
Does an MCP server rebuild reset an agent session?
Define when an MCP server rebuild must refresh tool metadata, replace executable identity, and invalidate agent authorization during a live session.
MCP server rebuildMCP session refresh

8 min read
Stale API documentation: test agent actions safely
Stale API documentation can mislead autonomous agents into unsafe calls. Learn how to test examples against live behavior and block dangerous drift.
stale API documentationagent tool testing

8 min read
API result truncation: stop agents making bad changes
API result truncation can push agents into unsafe follow-up changes. Design tool responses that expose incomplete data, warnings, limits, and scope.
API result truncationagent tool design

8 min read
AI agent SaaS admin access: replace broad tokens
AI agent SaaS admin access should use narrow, auditable actions for users, groups, billing, and workspace settings instead of broad tokens.
AI agent SaaS admin accessleast privilege agents

8 min read
AI agent package publishing without release-token sprawl
AI agent package publishing needs separate controls for downloads, releases, tags, and deletion. Test the full release path with a disposable package.
AI agent package publishingpackage registry security

8 min read
Secret manager for AI agents: storage is not action control
A secret manager for AI agents protects storage, but approved HTTP and SSH execution keeps credentials out of agent context and logs every action.
secret manager for AI agentscredential injection

8 min read
Remove abandoned MCP servers without leaving access behind
Remove abandoned MCP servers safely by finding every config and launcher, revoking live credentials, deleting old tools, and proving access is gone.
remove abandoned MCP serversMCP server inventory

8 min read
Write Blind Audit Logs for AI Agents That Agents Cannot Edit
Write blind audit logs keep AI agents from shaping the evidence trail by separating action execution, event recording, review access, and verification.
write blind audit logsAI agent auditing

8 min read
Can a SOC 2 evidence table prove agent actions?
Build a SOC 2 evidence table that ties agent session approval, per-call review, revocation, and log verification to auditable controls.
SOC 2 evidence tableAI agent audit evidence

8 min read
Can an approval audit trail prove who approved an agent action?
Build an approval audit trail that links click or Touch ID decisions to the user context, agent session, credential use, and executed call.
approval audit trailagent action approvals

6 min read
Crash report sensitive data: stop agent context leaks
Crash report sensitive data can expose agent prompts, request bodies, and tokens. Learn how to minimize collection, test exports, and retain diagnostics safely.
crash report sensitive dataagent crash telemetry

8 min read
External call budgets that stop agent loops
External call budgets set request, time, and spend limits that stop autonomous agents from retrying, polling, and buying without control.
external call budgetsautonomous agents

8 min read
How MCP stderr limits keep agent runs moving
Set MCP stderr limits that prevent noisy helpers from consuming memory, delaying approvals, stalling shutdown, and leaving incomplete action records.
MCP stderr limitsMCP stderr logging

8 min read
Per-session vs per-call approval for agent actions
Choose per-session vs per-call approval for AI agents by weighing task duration, credential scope, repeat damage, data exposure, and rollback.
per-session vs per-call approvalagent approval

8 min read
Can agent audit timestamps survive clock changes?
Agent audit timestamps can move or repeat. Learn how sequence numbers, UTC, offsets, corrections, and integrity checks preserve a defensible timeline.
agent audit timestampsaudit log sequence numbers

8 min read
AI agent action gateway vs MITM proxy: control points
An AI agent action gateway executes credentialed actions without exposing secrets. Learn how it differs from a MITM proxy and where each control belongs.
AI agent action gatewayMITM proxy

8 min read
Can HTTP request injection start with a line break?
HTTP request injection can begin with a hidden line break. Learn how to reject CRLF in destinations and headers before credentialed requests render.
HTTP request injectionCRLF header injection

8 min read
API audit log investigation when agent records conflict
API audit log investigation for agent actions: compare request IDs, timestamps, outcomes, and missing provider events without false conclusions.
API audit log investigationagent activity logs

8 min read
Encrypted audit logs: what offline verification proves
Encrypted audit logs can prove ciphertext continuity offline. Learn what hash chains, trusted checkpoints, timestamps, and verifiers can and cannot show.
encrypted audit logsoffline audit verification

8 min read
Do credential placeholders still reveal operational details?
Credential placeholders can expose tenants, roles, formats, and secret paths. Learn how to log and name them without publishing your operating map.
credential placeholderssecret metadata exposure

8 min read
AI agent API rate limit: retries that stay safe
Handle an AI agent API rate limit with bounded retries, jittered backoff, idempotency checks, shared quotas, audit records, and human escalation.
AI agent API rate limitretry budget

8 min read
Clipboard credential exposure: stop feeding secrets to agents
Clipboard credential exposure turns a quick copy into retained data across prompts, terminals, sync tools, and history. Use safer action paths instead.
clipboard credential exposureAI agent security

8 min read
VoiceOver approval cards for agent actions
VoiceOver approval cards must present process identity, destination, action, and redacted details in a fixed, testable order for informed consent.
VoiceOver approval cardsaccessible agent approvals

8 min read
Agent action audit record: a practical model for control
Build an agent action audit record that captures process identity, targets, approvals, outcomes, revocations, and tamper evidence without logging secrets.
agent action audit recordAI agent audit trail

8 min read
How local versus upstream approval changes agent control
Use this local versus upstream approval matrix to compare latency, context, identity, outages, retries, and audit evidence for agent actions.
local versus upstream approvalAI agent approvals

8 min read
AI agent infrastructure permissions for safe applies
AI agent infrastructure permissions should bind a reviewed plan, verified target account, expiry, and tested rollback before any apply runs.
AI agent infrastructure permissionsTerraform apply approval

8 min read
Approval notification previews: protect action details
Approval notification previews can expose agent actions on locked screens. Learn what to show, redact, test, and keep inside the authenticated app.
approval notification previewslock screen privacy

8 min read
Single-process vs daemon-based agent security tools
Single-process vs daemon-based agent security tools differ in local attack surface, credential exposure, restart safety, and operational upkeep.
single-process vs daemon-based agent security toolslocal agent security

8 min read
Orphaned MCP processes can still leave work behind
Orphaned MCP processes need more than a kill command. Find stale stdio servers, revoke their authority, and tie final calls to the owning session.
orphaned MCP processesstale MCP server

8 min read
Rollback endpoints for autonomous deployments without collisions
Design rollback endpoints for autonomous deployments that restore the right release, reject stale state, and preserve unrelated production changes.
rollback endpointsautonomous deployments

8 min read
API response minimization for safer AI agent context
API response minimization keeps unnecessary personal, financial, and operational data out of AI agent context through narrow response contracts.
API response minimizationagent context security

8 min read
Approval card redaction must preserve the decision
Approval card redaction should hide credentials and private data while keeping the destination, target, effect, and risky parameters clear enough to approve.
approval card redactionagent action approval

8 min read
Can a revoked SSH host key still get an agent in?
Build a negative test for a revoked SSH host key that covers aliases, address variants, multiplexed sessions, host certificates, and agent paths.
revoked SSH host keySSH host key revocation

8 min read
Domain registrar security requires per-call approval
Domain registrar security for AI agents needs separate approval for nameserver, transfer lock, contact, and DNSSEC changes on every call.
domain registrar securityAI agent approval

8 min read
Reproducible builds for local agent clients
Reproducible builds connect a local agent client binary to reviewed source, a documented macOS build recipe, signed tags, and verifiable artifacts.
reproducible buildsmacOS app verification

8 min read
MCP client configuration review before you trust a server
Use an MCP client configuration review to inspect commands, inherited environment variables, credentials, and tool capabilities before a local server runs.
MCP client configuration reviewMCP server security

8 min read
ANSI escape sequence sanitization for agent-safe terminals
ANSI escape sequence sanitization keeps terminal controls, OSC payloads, and cursor tricks out of AI agent context while retaining usable command results.
ANSI escape sequence sanitizationterminal output security

8 min read
AI agent access pilot: metrics that earn expansion
Run an AI agent access pilot with approval, denial, failure, audit, and revocation measures that show whether broader authority is justified.
AI agent access pilotagent approval rate

8 min read
AI agents changing feature flags: control every write
AI agents changing feature flags need controlled production writes with explicit approvals, conditional updates, read-back checks, and durable audit evidence.
AI agents changing feature flagsfeature flag approvals

8 min read
Prevent duplicate API writes when AI agents retry requests
Prevent duplicate API writes from AI agents with idempotency tokens, request fingerprints, atomic claims, and confirmations that bind to each action.
prevent duplicate API writesidempotency tokens

8 min read
Separate Unix Accounts for AI Coding Agents Safely
Separate Unix accounts for AI coding agents limit remote access, isolate credentials, tighten SSH, and make agent actions easier to audit.
separate Unix accountsAI coding agents

8 min read
Safe database migration workflows for AI coding agents
Safe database migration workflows keep AI coding agents useful while separating schema plans, backup proof, review, and approved production execution.
safe database migration workflowsAI coding agents

8 min read
JSON Schema Validation for Safer Agent Tool Results
JSON schema validation rejects malformed agent tool results before untrusted fields become facts, prompts, or inputs to later actions.
JSON schema validationagent tool results

8 min read
Do your agent secret leakage tests prove anything?
Agent secret leakage tests should prove more than clean chat output. Build canary checks for environments, arguments, logs, failures, and crashes.
agent secret leakage testsAI agent credentials

8 min read
Discovery Calls vs Mutation Calls for Safer AI Agents
Discovery calls vs mutation calls gives AI agents room to inspect systems while keeping writes, deletion, and external actions under human control.
discovery calls vs mutation callsAI agent permissions

8 min read
Locked local vault access: a runbook for agent work
Plan locked local vault access for autonomous agents with clear unlock windows, run approvals, per-call decisions, pauses, and review evidence.
locked local vault accessagent approval workflow

8 min read
HTTP method override defeats method-only review
HTTP method override can turn an approved POST into DELETE or PATCH. Learn how to test tunneled verbs and make reviews judge the effective action.
HTTP method overridemethod override headers

8 min read
AI agent access handoff checklist for role changes
Use this AI agent access handoff checklist to transfer credentials, approvals, audit review, and emergency authority when developers change roles.
AI agent access handoff checklistagent credential transfer

8 min read
How AI agent action review works without saving prompts
Learn how AI agent action review can prove external actions with process identity, approvals, safe metadata, results, and tamper evidence.
AI agent action reviewagent audit logs

8 min read
AI agents multiple cloud accounts: bind every action
AI agents multiple cloud accounts need explicit target binding. Learn to tie every cloud action to a verified account, environment, identity, and audit trail.
AI agents multiple cloud accountscloud account binding

8 min read
Agent audit logs: session records and call records
Agent audit logs need session records for authority and call records for every external action. Learn how both views speed incident response.
agent audit logsagent session records

8 min read
Approval request binding prevents post-click changes
Approval request binding stops an AI client from changing an HTTP request or SSH command after a person has approved the action.
approval request bindingHTTP request approval

8 min read
Which real agent process is asking for approval?
Learn how to identify the real agent process across terminals, IDEs, shells, scripts, and task runners so reviewers approve a recognizable actor.
real agent processagent process identity

8 min read
Can script approval for AI agents trust a signed interpreter?
Script approval for AI agents needs more than a signed interpreter. Review the exact source bytes, execution context, dependencies, and action target.
script approval for AI agentssigned interpreter security

8 min read
SSH disconnect unknown remote state verification
Handle SSH disconnect unknown remote state with a durable run ID, remote status record, postcondition checks, and safe retry decisions.
SSH disconnect unknown remote stateSSH command verification

7 min read
Can IDE extension host identity prove who an agent is?
IDE extension host identity can verify a signed editor process, but shared plugins blur attribution. Use scoped credentials, action approval, and honest logs.
IDE extension host identitycode signing plugins

8 min read
Testing MCP tools with fake credentials that fail safely
Testing MCP tools with fake credentials and disposable accounts lets teams verify success, denial, timeout, and cleanup paths without production risk.
testing MCP toolsfake credentials

8 min read
API version upgrade security for AI agents
API version upgrade security requires checking changed defaults, added endpoints, and authentication behavior before an agent receives wider authority.
API version upgrade securityagent permissions

8 min read
Agent action timeline: compare timestamps without lies
Build an agent action timeline that survives timezone errors by retaining offsets, comparing local, server, and audit clocks, and handling drift honestly.
agent action timelinetimestamp offsets

8 min read
HTTP connection pool credential isolation for AI agents
HTTP connection pool credential isolation prevents cookies, challenges, and account state from following a reused socket into the wrong agent action.
HTTP connection pool credential isolationconnection pool cookies

7 min read
AI agents opening pull requests with safe controls
AI agents opening pull requests need strict repository scope, protected branches, reviewer routing, test evidence, and an audit record for every change.
AI agents opening pull requestsAI pull request security

8 min read
How AI incident acknowledgement should preserve open incidents
AI incident acknowledgement must record ownership without closing the incident. Learn safe state transitions, approval records, race controls, and audit design.
AI incident acknowledgementincident state transitions

8 min read
Agent audit logs must fail closed under disk pressure
Agent audit logs need a defined storage failure policy. Set denial thresholds, run a disk pressure drill, preserve evidence, and recover safely.
agent audit logsaudit log storage pressure

8 min read
Lost developer Mac response: revoke access safely
Lost developer Mac response checklist for revoking agent sessions, rotating credentials, reviewing activity, and rebuilding access from a clean device.
lost developer Mac responsecredential rotation

8 min read
TLS certificate rotation needs two-sided proof
TLS certificate rotation is complete only when issuance records match a fresh, hostname-verified observation from every live endpoint.
TLS certificate rotationverify served certificate

8 min read
tmux agent session ownership: approvals and audits
tmux agent session ownership can blur approvals and audit trails. Learn how process identity, detached sessions, screen, and incident evidence fit together.
tmux agent session ownershiptmux security

7 min read
How agent cookie jars keep sessions you did not intend
Agent cookie jars can silently retain HTTP sessions. Learn how to test Set-Cookie persistence, redirects, credential changes, and run boundaries.
agent cookie jarsHTTP session cookies