From 693cce1d4ffaadcf3e83e310bea65114c57ff8a8 Mon Sep 17 00:00:00 2001 From: grobomo Date: Wed, 15 Apr 2026 23:01:10 -0500 Subject: [PATCH] T001: Write full native format for pretrust entries ensure_workspace_trusted() now writes all 10 fields matching Claude Code's native project entry format, improving forward-compatibility. 96 tests passing. --- new_session.py | 9 ++++++++- scripts/test.py | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/new_session.py b/new_session.py index dc90388..10dc2a9 100644 --- a/new_session.py +++ b/new_session.py @@ -1017,12 +1017,19 @@ def ensure_workspace_trusted(project_dir): if not parent or parent == check: break check = parent - # Not trusted — write entry for this project + # Not trusted — write full entry matching Claude Code's native format projects_mut = config.setdefault("projects", {}) new_entry = projects_mut.setdefault(project_key, {}) new_entry["hasTrustDialogAccepted"] = True new_entry.setdefault("allowedTools", []) new_entry.setdefault("hasCompletedProjectOnboarding", True) + new_entry.setdefault("mcpContextUris", []) + new_entry.setdefault("mcpServers", {}) + new_entry.setdefault("enabledMcpjsonServers", []) + new_entry.setdefault("disabledMcpjsonServers", []) + new_entry.setdefault("projectOnboardingSeenCount", 0) + new_entry.setdefault("hasClaudeMdExternalIncludesApproved", False) + new_entry.setdefault("hasClaudeMdExternalIncludesWarningShown", False) with open(config_path, 'w', encoding='utf-8') as f: json.dump(config, f, indent=2, ensure_ascii=False) log(f"Pre-trusted workspace in ~/.claude.json: {project_key}") diff --git a/scripts/test.py b/scripts/test.py index 50690fd..8eeb7cf 100644 --- a/scripts/test.py +++ b/scripts/test.py @@ -265,6 +265,9 @@ def test(name, condition): entry = config.get("projects", {}).get(proj_key, {}) test("hasTrustDialogAccepted is True", entry.get("hasTrustDialogAccepted") is True) test("has allowedTools", "allowedTools" in entry) + test("has full native format (10 fields)", len(entry) == 10) + test("has mcpServers", "mcpServers" in entry) + test("has hasClaudeMdExternalIncludesApproved", "hasClaudeMdExternalIncludesApproved" in entry) # Second call is a no-op context_reset.ensure_workspace_trusted(fake_proj) test("idempotent (no error on second call)", True)