Repository navigation
Conversation
…and only the opening token or an admin reports on it Migration 0053 records the token that opened an attempt; null is admin-only. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… not the first project of the organization Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…inned and stripped of credentials; repo_url refuses ext::, git:, http: and credentials Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…egular file under a size cap, streamed read; repo_url schema without the URL global Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… type, code and a ref; never the driver message, SQL, params or stack Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…r folder Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…OVERCLICK_DEBUG_RAW_ERRORS, never in production Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Security fixes from the Codex audits (MCP, delivery, logs)
One change per finding, each with tests first.
mission_attempt_startnow requirescanChangeMission; a member who cannot change the mission gets the same NOT_FOUND as a mission that is not there.mission_report_usagerequirescanChangeMissionand that the caller is the token that opened the attempt, or an admin. Same "not found" answer otherwise. Migration0053_mission_attempt_openeraddsmission_attempt.opened_by_token_id(nullable, no backfill: existing attempts are admin-only)./account/agentnames an unlinked project. The name now comes fromprojectScope(principal); with no linked project the page falls back to the workspace name.repo_url. Delivery verification only runs git on anhttps:remote without credentials whose DNS answers are all public; git is pinned to the resolved address (http.curloptResolve),protocol.allow=never+ https only, no redirects, no credential helper, scrubbed environment.file:/path remotes are local checkouts and are not checked;git:,ssh:,http:,ext::and private/loopback/link-local destinations are refused. Therepo_urlschema (project_create / project_update) rejectsext::,git:,http:,ftp:and credentials;file://stays valid because card routing matches local checkouts by it.~/.claude,~/.codex,~/.grok,~/.gemini,~/.cursor, opencode,~/.overclock-app,CLAUDE_CONFIG_DIR, plus the operator'sOVERCLICK_TRANSCRIPT_DIRS). The model identity is read streaming, opened withO_NOFOLLOW.migrateandseedlog only operation, error type, driver code and a short ref (also returned to the caller); no driver message, SQL, params or stack in production.Verification
pnpm typecheck,pnpm build,pnpm testgreen (mcp-core 179, db 181, web 1620; 3 real-Postgres files skipped as before).pnpm db:generateafter the migration: "No schema changes".Notes for the reviewer
OVERCLICK_TRANSCRIPT_DIRS.repoUrldirectly (actions/projects.ts,actions/onboarding.ts) are outside this change; verification enforces its own allowlist regardless of what is stored.🤖 Generated with Claude Code