|
12 | 12 | import json |
13 | 13 | from pathlib import Path |
14 | 14 |
|
| 15 | +from platforms.claude import _HOST_SKIP as _CLAUDE_HOST_SKIP |
| 16 | +from platforms.codex import _HOST_SKIP as _CODEX_HOST_SKIP |
| 17 | + |
15 | 18 | REPO_ROOT = Path(__file__).resolve().parents[2] |
16 | 19 | ENV_DIR = REPO_ROOT / "env" |
17 | 20 | MCP_DIR = ENV_DIR / "mcp" |
@@ -87,38 +90,22 @@ def validate_mcp_file(path: Path) -> list[str]: |
87 | 90 | } |
88 | 91 |
|
89 | 92 | PLATFORM_FIELDS = { |
90 | | - # Claude-specific |
| 93 | + # Claude-specific: team-shared fields not covered by _HOST_SKIP, unioned |
| 94 | + # with the platform's own host-specific set (kept in sync with the real |
| 95 | + # skip list instead of hand-duplicating it — see platforms/claude.py). |
91 | 96 | "claude": { |
92 | 97 | "model", "effortLevel", "alwaysThinkingEnabled", "outputStyle", |
93 | 98 | "includeGitInstructions", "respectGitignore", "fileCheckpointingEnabled", |
94 | 99 | "autoCompactEnabled", "autoMemoryEnabled", "respondToBashCommands", |
95 | 100 | "permissions", "hooks", "_hostSettings", |
96 | | - "apiKeyHelper", "theme", "tui", "editorMode", "preferredNotifChannel", |
97 | | - "statusLine", "voice", "voiceEnabled", "viewMode", "prefersReducedMotion", |
98 | | - "syntaxHighlightingDisabled", "terminalProgressBarEnabled", |
99 | | - "wheelScrollAccelerationEnabled", "axScreenReaderRender", "showTurnDuration", |
100 | | - "showThinkingSummaries", "showClearContextOnPlanAccept", "autoScrollEnabled", |
101 | | - "spinnerTipsEnabled", "spinnerTipsOverride", "spinnerVerbs", "companyAnnouncements", |
102 | | - "footerLinksRegexes", "language", "ultracode", "fastModePerSessionOptIn", |
103 | | - "autoConnectIde", "autoInstallIdeExtension", "externalEditorContext", |
104 | | - "fileSuggestion", "feedbackSurveyRate", "cleanupPeriodDays", "defaultShell", |
105 | | - "prUrlTemplate", "autoUpdatesChannel", "sshConfigs", "worktree", "plansDirectory", |
106 | | - "autoMemoryDirectory", "teammateMode", "teammateDefaultModel", "disableAgentView", |
107 | | - "agent", "agentPushNotifEnabled", "inputNeededNotifEnabled", "remoteControlAtStartup", |
108 | | - "awsAuthRefresh", "awsCredentialExport", "gcpAuthRefresh", "otelHeadersHelper", |
109 | | - "claudeMd", "claudeMdExcludes", "policyHelper", "skipWebFetchPreflight", |
110 | | - }, |
111 | | - # Codex-specific |
| 101 | + } | _CLAUDE_HOST_SKIP, |
| 102 | + # Codex-specific: team-shared fields not covered by _HOST_SKIP, unioned |
| 103 | + # with the platform's own host-specific set (see platforms/codex.py). |
112 | 104 | "codex": { |
113 | | - "model", "model_provider", "model_providers", "personality", |
114 | | - "model_reasoning_effort", "model_verbosity", "model_reasoning_summary", |
115 | | - "plan_mode_reasoning_effort", "sandbox_mode", "approval_policy", |
116 | | - "allow_login_shell", "default_permissions", "project_doc_max_bytes", |
117 | | - "project_doc_fallback_filenames", "sandbox_workspace_write", "features", |
118 | | - "projects", "hide_agent_reasoning", "web_search", "file_opener", "history", |
119 | | - "tools", "shell_environment_policy", "tui", "agents", "memories", |
120 | | - "analytics", "feedback", |
121 | | - }, |
| 105 | + "model", "model_provider", "model_providers", "sandbox_mode", |
| 106 | + "approval_policy", "allow_login_shell", "default_permissions", |
| 107 | + "sandbox_workspace_write", "projects", |
| 108 | + } | _CODEX_HOST_SKIP, |
122 | 109 | # CodeBuddy-specific |
123 | 110 | "codebuddy": {"models", "availableModels"}, |
124 | 111 | # Qwen-specific |
|
0 commit comments